De Maqueen is een betaalbare robot (goedkoper via onze ledenaanbieding) die je zelf kunt programmeren. In deze workshop leggen we uit hoe je dat doet via Microsoft MakeCode.

Ger Stokrobot

 


Ledenvoordeel

Om aan de slag te gaan met de Maqueen, heb je de Maqueen, een micro:bit en batterijen nodig.
Ga naar www.hcc.nl/ledenvoordeel voor de ledenaanbieding.

     
    

 

Bij het zien van een robot als de Maqueen denken we al heel gauw aan kinderspeelgoed, maar daarmee doen we hem tekort. Deden we in het begin ook niet lacherig over de Raspberry Pi? Inmiddels weten we wel beter. De Maqueen is een uitgebreide robotauto, die geheel zelfstandig kan rijden, objecten detecteren en vermijden, automatisch over een lijn kan rijden, etc. Ook heeft hij een luidspreker, 4 RGB neopixel leds, een led-matrix, diverse sensoren en een IR-ontvanger aan boord. Het kloppend hart van het geheel is het micro:bit-(moeder)bordje, dat het robotautootje aanstuurt. Iedereen die met de micro:bit aan de slag gaat, zal versteld staan van de vele mogelijkheden.

BOUWPAKKET
De Maqueen wordt geleverd als een bouwpakket, maar de assemblage is super simpel. Monteer de bandjes op de wielen en schuif de wielen op de asjes van de motoren. Plak vervolgens de dubbelzijdige tape op de batterijhouder, sluit de batterijhouder aan en plak hem op de robot. Steek ten slotte de micro:bit in het slot, met de led-matrix en de bedieningsknopjes naar voren. De robot is nu gereed voor gebruik.

PROGRAMMEREN: MEERDERE OPTIES
Maar nu begint het natuurlijk pas. Een robot zonder programmatuur komt immers niet van zijn plaats. Voor het programmeren van de micro:bit zijn er meerdere mogelijkheden:

Microsoft MakeCode (een grafische drag-and-drop editor), MicroPython: een robuuste, tekstgebaseerde ontwikkelomgeving die door professionele softwareontwikkelaars wordt gebruikt en kijk bijvoorbeeld eens op https://microbit.org/nl/ code-alternative-editors

Wij gaan aan de slag met MakeCode, die uitermate geschikt is voor beginnende robotprogrammeurs. Deze online programmeeromgeving, gehost door Microsoft, vind je op www.microsoft.com/en-us/makecode. Je kunt daar inloggen met je Microsoft-account en vervolgens staan er diverse programmeeromgevingen voor je klaar, bijvoorbeeld voor LEGO Mindstorms en Adafruit Circuit Playground Express. Websites als www. microsoft.com/en-us/makecode microsoft.com/en-us/makecode en https:// makecode.microbit.org/ werken ook zonder een Microsoft-account. Maar wij zijn natuurlijk geïnteresseerd in de micro:bitomgeving. Ben je bekend met het programmeren met Scratch, dan zul je je hier onmiddellijk thuis voelen, want daar is MakeCode namelijk op gebaseerd.

Extensions1 2EXTRA EXTENSIE NODIG
Alle commando’s voor micro:bit zijn in MakeCode standaard beschikbaar, maar voor de Maqueen heb je nog een extra extensie nodig. Om die toe te voegen, doe het je volgende: start een Nieuw Project (New Project). Ga in de nu geopende pagina naar het tandwieltje rechtsboven.

Klik op Extensions. Vul in het URL-vak de volgen- de URL in: https://github.com/MKleinSB/maqueen

Extensions2 2Je wordt nu naar de website geleid, waar je klikt op het Maqueen-blokje om de extensie te downloaden en te installeren.

Je hebt nu extra besturingselementen voor de Maqueen tot je beschikking.
Extensions3 2

TAAL INSTELLEN
Nu we toch bezig zijn met aanpassen: klik nogmaals op het tandwieltje en installeer bij Language Nederlands als taal als je Windows of browser niet op Nederlands staat ingesteld. Nederlands is niet strikt noodzakelijk, maar voor het begrip van de commando’s kan het handig zijn. Je kunt nu aan de slag met een groot aantal instructies.

BLOKJE VOOR ELKE OPDRACHT
Voor elke instructie heeft de MakeCode-omgeving een eigen ‘blokje’. Die blokjes laten zich vrij eenvoudig samenvoegen tot een programma. We lichten er een aantal uit.

Blokje01Met het voorgaande blokje kun je aangeven welke motor moet gaan draaien en in welke richting: met de klok mee of tegen de klok in. Bij snelheid stel je de snelheid in tussen 0 en 255.
Blokje02
Met bovenstaand blokje geef je aan welke motor moet stoppen.
Blokje03
Met bovenstaand blokje stoppen alle twee de motoren.
Blokje04Met ‘Sensor eenheid’ lees je de door de ultrasone sensor gemeten afstand tot een object. Je kunt twee dingen meten: de afstand in centimeters (cm) en de tijd dat het ultrasone geluid onderweg is geweest in microsecondes (μs).
Blokje05Met bovenstaand blok zet je de rode leds aan of uit. De led aan de linkerkant is aangesloten op P8 en de led aan de rechterkant zit op P12.
Blokje07Met het blokje hierboven lees je de infrarode lijnsensors aan de onderkant van de Maqueen. Dit blokje kun je twee numerieke waardes teruggeven: 0: Ik zie wit of 1: Ik zie zwart. De sensor links zit op P13, de sensor rechts zit op P14. Handig is om eerst de variabele ‘message’ aan te maken voordat je dit blok selecteert.

HET EERSTE PROGRAMMA
Maak nu je eerste programma om de Maqueen zonder botsen autonoom te laten rijden. Bouw daarvoor in MakeCode het volgende programma na. Je vindt dit ook op www.hcc.nl/robotica-drones-programmeren
Ultrasoon 2Ultrasoon 3We gebruiken in dit voorbeeld de snelheid-variabele die je eerst aanmaakt via de categorie Variabelen waar je de naam ‘snelheid’ intypt. De snelheid-variabele wordt op 128 gezet en verder wel gebruikt op zes plaatsen, maar nergens gewijzigd. Voor sommigen is het eenvoudiger om overal de waarde 128 te gebruiken in plaats van ‘snelheid’.
MicrobitBewaar het programma en geef het een logische naam.

UPLOADEN NAAR DE ROBOT
Om het zojuist opgeslagen programma op de robot te plaatsen, doe je het volgende: sluit de micro:bit aan op je pc met een usb-micro-B-kabeltje (dezelfde kabel als voor de meeste Android toestellen). De micro:bit zal in je verkenner verschijnen als een opslagapparaat.

Open nu je project in MakeCode en klik op Downloaden. Plaats het project in de map Downloads en kopieer vervolgens het hex-bestand naar de micro:bit. Rechtstreeks naar de micro:bit kopiëren mag natuurlijk ook, maar dan heb je geen lokale kopie. Als je in de toekomst tussen programma’s wilt wisselen, zal je dan steeds weer moeten inloggen bij MakeCode om het betreffende programma op te halen. Je kunt een hex-bestand lokaal op je eigen computer opslaan en later weer laden om er verder mee te werken.

Je kunt ook de hele programmeeromgeving lokaal installeren. Ga daarvoor naar de Windows 10 Store en installeer de Windows-10 app van MakeCode. Uitgebreide uitleg hierover is te vinden op www.codekids.nl/een-klik

NOG EEN STAPJE VERDER
Ben je een beetje op dreef met programmeren, dan is het leuk om de Maqueen wat verder aan te kleden, bijvoorbeeld door de leds in te schakelen. Onderop de Maqueen zitten namelijk vier Neopixel-leds op pin P15. Deze leds kun je verschillende kleuren geven. Om de leds aan te sturen, gebruik je de uitbreiding Neopixels. Die voegen we op dezelfde manier toe als we eerder hebben gedaan met de Maqueen-extensie, alleen hoeft deze nu niet meer via een URL geïnstalleerd te worden: de extensie staat in het rijtje van beschikbare uitbreidingen.

Een programma om de Neopixels om de beurt groen licht te laten geven, schrijf je als volgt:
Neopixel 2Als je ook dit onder de knie hebt, mag je je zo langzamerhand een echte programmeur gaan noemen!

VOORBEELDEN EN EXTRA INFORMATIE
Programmeren is in het begin lastig, zelfs met MakeCode. Daarom is het vaak heel nuttig om te zien hoe anderen te werk gaan. Op de MakeCode-site zijn voorbeelden van allerlei projecten te vinden. Steek daar je licht eens op.

Daarnaast zijn er nog talloze andere sites met programmeervoorbeelden of informatie. Bijvoorbeeld de officiële site voor de micro:bit: www. microbit.org microbit.org. Ook de site van ITPro biedt naast Raspberry/Arduino veel materiaal voor de micro:bit: https://bit.ly/2ARpfzb. En niet te vergeten: er staan ook veel instructiefilmpjes op YouTube. Zoek daar maar eens op de term micro:bit.

Op de HCC-site staat achter inlog in het kader van het seizoensthema Robotica, drones en programmeren heel veel informatie, waaronder een uitgebreide syllabus hierover en het voorbeeldprogramma. Wij wensen je veel succes en vooral heel veel plezier met programmeren.