Programmeren met de mBot
Programmeren met de mBot
Computers
Computers doen overal hun taak. De computer in de wasmachine zorgt ervoor dat het wasprogramma goed verloopt. Precies de juiste temperatuur, op tijd het wasmiddel erbij, op de goede snelheid gecentrifugeerd. Een stoplicht zorgt ervoor dat er verkeerslichten op rood springen en jij bij groen licht veilig kan oversteken. In een auto werken tientallen computers samen, om de benzinetoevoer voor de motor te regelen of de parkeersensoren in de gaten te houden.
Enen en nullen
Een computer kan niet tot 2 tellen. Een computer ‘werkt’ met enen en nullen. 1 of 0 dat is hetzelfde als aan/uit, ja/nee, true/false. Er bestaat geen ‘misschien’ of ‘een beetje’. Een computerbrein is dus opgebouwd uit onvoorstelbaar veel schakelaars. Deze noemen we ‘bits’.
Algoritme
Een computer kan niets zonder opdrachten. Er moet ze verteld worden wat ze moeten doen, wanneer ze dat moeten doen en wanneer niet. Echt álles moet omschreven worden.
Zo’n reeks van opdrachten noemen we een algoritme. Dat algoritme maak je met programmeertaal. Een programmeertaal bestaat uit woorden, codes en getallen die mensen begrijpen en zet deze om in enen en nullen (machinetaal die wordt gebruikt door computers).
Programmeertalen
Er zijn heel veel programmeertalen. Er zijn programmeertalen waarmee je slimme websites kan maken, waarmee je machines in een fabriek kunt aansturen of waarmee de apps op je telefoon gemaakt zijn.
Scratch
Scratch is een programmeertaal waarmee je kunt leren hoe een programmeertaal werkt. Je kunt met Scratch games, interactieve filmpjes en gewoon mooie dingen maken. Interactief betekent dat je iemand anders iets kunt laten doen, zoals op een knop drukken of tekst invullen, waardoor er iets gebeurt.
Scratch blokken
In Scratch klik je met blokken je eigen programma aan elkaar. De blokken hebben per functie een eigen kleur.
Sommige blokken hebben een speciale vorm, zodat je snel ziet hoe ze in elkaar passen. Zo geef je de logische volgorde aan waarin het algoritme moet worden uitgevoerd: van boven naar beneden. Zo werkt een echte programmeertaal ook, maar deze bestaat uit (Engelse) tekst en getallen. Met als nadeel dat je al snel een tikfout maakt en je script niet meer werkt.
Voorbeeld Scratch
Open source
Scratch is ‘open source’ software, wat betekent dat wie het wil het programma zelf kan aanpassen en verbeteren. Er bestaat ook open source hardware. Arduino is daar een voorbeeld van en maakt goedkope minicomputers waarop sensors, schakelaars, lampjes en motoren kunnen worden aangesloten. Arduino heeft ook een eigen programmeertaal.
Dit is de mBot. De mBot is een kleine robot die je helemaal zelf kunt programmeren. Hij kan rijden, geluid maken, heeft verschillende kleuren lampjes, kan lijnen op de grond volgen en heeft zelfs een ultrasonische afstandsdetectie module. Hiermee kun je bijvoorbeeld voorkomen dat de mBot ergens tegenaan rijdt.
mBot
mBlock
Om de mBot te kunnen programmeren gebruiken we het programma mBlock. Dit programma is gebaseerd op Scratch. Door verschillende blokken onder elkaar te zetten schrijf je een programma. In mBlock heb je 10 verschillende soorten blokken, zoals beweging, geluid en gebeurtenissen.
mBlock Blockly
mBlock heeft ook een app waarmee je de mBot kunt leren besturen. In deze app krijg je allerlei programmeeropdrachten. Je kunt pas naar een volgend level als je de opdracht goed hebt uitgevoerd.
Starten
Zoek via Google naar mBlock online
Verbind je mBot via de kabel met een USB-poort op je chromebook
Zet de mBot aan
Ga in mBlock linksonder naar 'apparaten'
Verwijder de 'CyberPi', klik op toevoegen en selecteer de mBot
Verbind nu de mBot met het programma door op 'seriëel' te klikken (linksonder). Selecteer de USB-poort en klik op 'verbinden'.
Starten met programmeren
Selecteer bij gebeurtenis 'wanneer op vlag wordt geklikt'
Voeg een actie toe, bijvoorbeeld: speel noot A3
Om de actie uit te voeren klik je op de vlag
Hoor je geluid?
Oefening 1: Licht en geluid
Verander de kleur van de ledlampjes en laat de mBot geluid maken.
Tip:
Oefening 2: Rijden
Laat de mBot een stukje rijden. Maak gebruik van verschillende richtingen en snelheden.
Tip:
Oefening 3: Combineren
Zet een sirene op je mBot met licht en geluid.
Laat je mBot gebruik maken van een knipperlicht als hij naar rechts of links rijdt.
Laat de mBot 'dansen' met licht en geluid. Varieer in snelheid en seconden.
Sensoren
Tot nu toe was je mBot nog geen echte robot. Je hebt de mBot alleen bestuurd. Een echte robot kan zelfstandig taken verrichten en reageert op zijn omgeving. Hiervoor gebruikt een robot sensoren, deze laten het computerbrein "zien, horen, voelen en ruiken". De resultaten die een sensor meet, kan je gebruiken om de robot dingen te laten doen. Je kunt de mBot bijvoorbeeld op tijd laten stoppen als de ultrasone sensor een te kleine afstand meet tot een obstakel.
Ultrasone sensor
Met een ultrasone sensor kun je de afstand meten tot een object, zoals een muur. De sensor zendt geluid uit. Dit geluid is zo hoog dat mensen het niet kunnen horen. Dat noemen we ultrasoon. Wanneer geluid ergens tegenaan botst, wordt dit teruggekaatst. De sensor vangt dit geluid op en berekent hoe lang het geluid erover heeft gedaan om weer terug te komen en hoe groot de afstand is.
Oefening 4: 4x afstand houden
1. De mBot rijdt vooruit. Telkens wordt gecheckt of er een obstakel binnen een afstand van 35 cm is. Is dat het geval, dan stopt de mBot.
Oefening 4: 4x afstand houden
2. Als je dat obstakel weghaalt, rijdt de robot verder. Totdat er weer iets anders op zijn pad komt.
Oefening 4: 4x afstand houden
3. Je kan de weg voor de mBot blokkeren en op een afstand van 35 cm houden door de mBot voor- en achteruit te laten rijden, afhankelijk van de gemeten afstand.
Oefening 4: 4x afstand houden
4. De mBot is nu wel erg onrustig, de afstand is immers nooit precies 35 cm. Je kan een bereik instellen, bijvoorbeeld tussen de 35 en 50 cm waarbinnen de mBot gewoon stil mag staan.
Oefening 5: Ultrasone sensor
Als je mBot een obstakel tegenkomt, kan hij stoppen, maar ook een andere route kiezen, bijvoorbeeld naar rechts.
Extra:
Laat de mBot geluid maken en even achteruit rijden wanneer hij een obstakel detecteert.
Lijnvolg-module
De mBot heeft een lijnvolg-module waarmee de robot een zwarte lijn kan volgen. Deze module heeft twee sensors, één voor rechts en één voor links. Die sensor zendt infrarood licht uit en vangt het weerkaatste licht weer op. Dat hangt af van de kleur van de achtergrond. Wit kaatst het licht goed terug, zwart doet dat nauwelijks.
Lijnvolg-module
De lijnvolg-module kan 4 waarden teruggeven:
Lijnvolg-module
Let op:
De lijn moet dik genoeg zijn. De twee sensors op de lijnvolt-module moeten tegelijk de lijn kunnen zien.
Extra:
Met de lijnvolg-module kun je de mBot ook op een witte tafel laten rijden zonder dat hij eraf valt. Op de lijnvolg-module zitten 2 blauwe lichtjes. Zolang het wit van de tafel (of vel papier) terugkaatst, branden de lichtjes, maar wanneer je de lijnvolger naast de tafel houdt gaan ze uit (=omgekeerde van lijnvolg-script).
Lijnvolg-module
Lichtsensor oefeningen
Stroomdiagram
Met een stroomdiagram laat je schematisch zien hoe, wanneer en welke beslissingen genomen moeten worden.
Opruimrobot
Gebruik een witte tafel of teken met een dikke zwarte stift of met zwart plakband een vak van 1 x 1 meter. Zet daarop wat rommel, zoals (plastic) bekertjes of proppen papier. Deze opdracht bestaat uit twee taken:
1. rommel zoeken
2. rommel opruimen
Opruimrobot