abonneren

mBot-tutorial: Programmeren in mBlock

Inhoudsopgave

  1. Inleiding
  2. mBot laten rijden met lijnvolg module

Om de kracht van mBlock te tonen, creëren we een programma dat lijnen volgt. Daarvoor eerst even wat uitleg over de algemene aanpak in dit programma. De lijnsensor geeft drie mogelijke waardes terug: 0 als de robot midden op een lijn staat, 1 als de robot zich rechts van een lijn bevindt en 2 als de robot zich links van een lijn bevindt.

Wat de robot moet doen om de lijn te volgen, is dus eenvoudig. Als de robot op de lijn staat, blijft hij rechtdoor rijden. Als de robot zich rechts van de lijn bevindt, stuurt hij naar links. En als de robot zich links van de lijn bevindt, stuurt hij naar rechts. Dat links of rechts sturen doen we door beide motoren met een andere snelheid te bewegen.

Hoe zetten we deze redenering nu om in mBlock? Na het verplichte blokje mBot Programma gaan we eerst variabelen definiëren voor drie snelheden: traag, normaal en snel. Daardoor hoef je later niet op verschillende plaatsen in je programma de getallen te veranderen als je je robot sneller of trager wilt laten draaien.

Klik daarom op de categorie Data&Blokken en dan op Maak een Variabele. Geef als naam voor je variabele normaal en herhaal dit voor snel en traag. Voeg dan drie blokjes wijzig … naar … onder mBot Programma. Wijzig de vakjes in de blokjes zodat je achtereenvolgens de waarde van traag op 50 zet, van normaal op 150 en van snel op 250.

Lijnvolg module

Sleep dan uit de categorie Bediening een blokje herhaal voor altijd en klik daarin een blokje als … dan … anders. Voeg in de uitsparing van anders nog eens een blokje als … dan … anders en in de uitsparing van anders van die laatste een blokje als … dan. Je hebt nu drie tests waarin er als aan een bepaalde voorwaarde is voldaan, bepaalde opdrachten worden uitgevoerd. 

Sleep uit de categorie Operatoren het blokje … = … achter de als, drie keer. Achter het gelijkheidsteken vul je de eerste keer 0 in, de tweede keer 1 en de derde keer 2. Vóór het gelijkheidsteken voeg je telkens het ovaal blokje Lijnvolg module op Poort 2 uit de categorie Robots toe.

We hebben nu de drie posities ten opzichte van de lijn gedefinieerd. Het enige wat er nu nog nodig is, zijn de motoracties in die drie situaties. Voeg daarom achter elke dan twee blokjes wijzig motor … naar snelheid … toe. Zorg dat het telkens om motor M1 en M2 gaat. Wat we nu nog moeten invullen zijn de snelheden van de motoren. 

Snelheid van mBot aanpassen

Ga daarvoor naar de categorie Data&Blokken en sleep het ovaal blokje van de juiste snelheid op de juiste plaats: in het eerste geval draaien beide motoren normaal, in het tweede geval de ene traag en de andere snel en in het derde geval andersom. Upload het programma naar je mBot en kijk hoe hij secuur de lijnen volgt.

Dit is je eerste echte mBot-programma, dus we raden je aan om dit op te slaan. Dat doe je in het menu Bestand / Project opslaan. Het programma staat na het uploaden uiteraard op je mBot, maar als je iets wilt veranderen en je hebt het programma niet op je pc opgeslagen, moet je helemaal opnieuw beginnen. 

mBot stoppen

Toe nu toe volgt onze robot gewoon autonoom de lijn en hebben we er voor de rest geen vat op. Gelukkig is er ook interactie mogelijk. We gaan ervoor zorgen dat de robot stopt als we op de knop vooraan op de mCore klikken. Vervang daarvoor het blokje herhaal voor altijd door herhaal tot en voeg achter tot het blokje knop is ingedrukt uit de categorie Robots toe. Vergeet ook niet onderaan het programma beide motoren stil te zetten met blokjes wijzig motor M1 naar snelheid 0 en wijzig motor M2 naar snelheid 0.

Maar uiteraard is dat nog niet zo handig. We moeten immers een piepklein knopje zien in te drukken op een robotje dat de kamer rond sjeest. Dat kan toch gemakkelijker? Inderdaad, met het blokje IR knop … ingedrukt, waardoor we onze robot laten reageren op de infrarood-afstandsbediening. Daarvoor hergebruiken we een groot deel van onze vorige code. We moeten alleen wat blokjes vervangen en toevoegen.

IR programmeren

In de uitsparing van herhaal voor altijd voeg je wacht tot … toe, daarna herhaal tot … en daarna zet je de snelheid van beide motoren op 0. In de uitsparing van herhaal tot komt het hele als-blok om de lijn te volgen. In de zeshoekige gaatjes bij wacht tot … en herhaal tot … voeg je telkens IR knop … ingedrukt, de eerste keer met het pijltje naar boven en de tweede keer met het pijltje naar beneden. Op die manier start en stop je met de afstandsbediening het volgen van de lijn door je robot.

In deze workshop hebben we het standaard lijnvolgprogramma uitgebreid. Nu is het aan jou om te experimenteren. Probeer bijvoorbeeld eens het standaard handmatige programma na te maken in mBlock en te verbeteren. Of, iets pittiger, de obstakels vermijdende modus. Daarvoor zet je het ovaal blokje Ultrasonische sensor op … meet afstand in. En wie zichzelf echt eens aan een uitdaging wil zetten, kan het lijnvolgprogramma combineren met het vermijden van obstakels: laat je robot een lijn volgen, maar tegelijk ook de lijn verlaten als er een obstakel in zicht is.

Meer informatie

Op deze site vind je meer informatie over de mBot en hoe je alle componenten programmeert. Je vindt er ook wat voorbeeldprogramma’s. De beste manier om je eigen programma’s te schrijven is om op basis van die voorbeeldprogramma’s te starten en die dan aan te passen. En voor je het weet, voert je mBot programma’s uit die je je nooit had kunnen voorstellen.

Geschreven door: Redactie PCM op

Category: Workshop, Hardware

Tags: arduino, mbot