micro:Maqueen – Afstandsbediening met micro:bit (proportioneel)
De eenvoudige afstandsbediening voor een Maqueen met een andere micro:bit werkt natuurlijk prima, maar het is aan, uit, links, en rechts. Het is ook mogelijk om een echte (proportionele) regeling te maken waarbij je de Maqueen sneller en langzamer kunt laten rijden en ook kan regelen hoe snel het robotje door de bocht gaat.
Op iedere micro:bit komt een apart programma te staan:
- De zender (afstandsbediening)
- De ontvanger (Maqueen)
Tip
Omdat je met twee verschillende micro:bits en twee verschillende programma’s werkt is het handig als je de programma’s een duidelijke naam geeft. Helemaal handig is et als je twee aparte computers gebruikt waarop je met de codes kunt spelen.
De zender (afstandsbediening)
Zet deze code op de micro:bit die je als afstandsbediening gaat gebruiken.
De code voor de zender is niet zo ingewikkeld. In feite hoef je alleen maar de x-versnelling (van links naar rechts) en de y-versnelling (van voor naar achter) te sturen. Deze kunnen variëren van -1023 tot 1023.
Bij het opstarten zetten we de middelste led aan zodat we weten dat de afstandsbediening aan staat en stellen we de radiogroep 1.
Daarna worden met tussenpauzes van 100 ms de x- en de y-versnelling verstuurd. De pauzes zijn opgenomen om de micro:bit de tijd te geven om de waardes ook werkelijk te versturen. Bij het versturen krijgen de waardes de namen “x” en “y” mee.
De ontvanger (Maqueen)
De code voor de ontvanger is op zich niet zo lang, maar heeft toch wat uitleg nodig. In het speciale programmablokje kan je aangeven welke motor met welke snelheid in welke richting moet draaien.
Tip
Als je niet zo geïnteresseerd bent in de theorie en het programma meteen wilt testen, ga dan naar: https://makecode.microbit.org/_eChPFFE0083K
Draairichting
De draairichting wordt aangegeven met CW (Clock Wise = met de klok mee) en CCW (Counter Clock Wise = tegen de klok in). Dit klopt echter niet. CW betekent voor Motor 1 en Motor 2 dat het wiel zo draait dat de Maqueen vooruit gaat. Je kan dit testen met dit programma:
https://makecode.microbit.org/_4r6ezXFbpMFK
Het algoritme
Via de radio ontvangen we de hele tijd de x- en de y-versnelling van de afstandsbediening. De snelheid waarmee de Maqueen naar voren en naar achteren rijdt zit in de y-waarde (voor – achter) en de bocht die moet worden gemaakt zit in de x-waarde (links -rechts).
Als de Maqueen naar rechts moet gaan dan moet de rechtermotor minder snel draaien en de linkermotor sneller. Om linksaf te gaan is dit net andersom. Wat we dus doen is van de y-waardes de x-waardes aftrekken op optellen. Omdat deze ook negatief kunnen zijn kan optellen betekenen dat de uiteindelijke waarde toch kleiner kan zijn.
Als de uitkomst van de som (snelheidM1Rechts of snelheidM2Links) positief is dan moeten beide motoren CCW draaien. Als deze negatief is dan is de richting CW. Dit laatste doen we door de absolute waardes te nemen.
https://makecode.microbit.org/_eChPFFE0083K
Delen door 8
Wat nog opvalt in dit programma is dat de ontvangen x- en y-waarde door 8 worden gedeeld. Dit is gedaan omdat de maximale waarde voor x- en y-versnelling 1023 is en de maximale waarde voor de snelheid 255.
Door de ontvangen x- en y-versnelling te delen door 8 kunnen de x- en de y-waarde bij elkaar opgeteld nooit meer zijn dan 254 en blijven we mooi binnen het regelbereik van de Maqueen.
Bestanden
[wpfilebase tag=file id=87 tpl=simple /]
[wpfilebase tag=file id=88 tpl=simple /]