Stap 3 — Rechtdoor rijden
Nu laat je de motoren reageren op wat de sensoren zien. We beginnen met het makkelijkste geval: beide sensoren zien wit, dus de lijn zit netjes tussen de sensoren in. Dan moet de robot gewoon rechtdoor. Het scherm laat je intussen zien wat de sensoren meten.
from leaphymicropython.sensors.linesensor import AnalogIR
from leaphymicropython.actuators.dcmotor import DCMotors
from leaphymicropython.actuators.oled_screen import OLEDSH1106
from time import sleep
motoren = DCMotors()
motor_a = motoren.motor_a # linker motor
motor_b = motoren.motor_b # rechter motor
links = AnalogIR("A0", 2500)
rechts = AnalogIR("A1", 2500)
oled = OLEDSH1106(width=128, height=64, channel=7)
while True:
kleur_links = links.black_or_white()
kleur_rechts = rechts.black_or_white()
oled.fill('white')
oled.text('Links: ' + kleur_links, 0, 0)
oled.text('Rechts: ' + kleur_rechts, 0, 10)
oled.show()
if kleur_links == "white" and kleur_rechts == "white":
motor_a.forward(255)
motor_b.forward(255)
sleep(0.01)
- Je voegt de motoren toe met
DCMotors(). - Met
ifstel je een voorwaarde: alleen als beide sensoren wit zien, rijden beide motoren vol vooruit. ==betekent "is gelijk aan" enandbetekent "allebei moeten waar zijn".
Zet de robot op de baan met de lijn tussen de sensoren. Rijdt hij rechtdoor?
Python opfrissen
Deze stap draait om beslissen. Lees na wat je nodig hebt:
Controlevraag
Wat doet de robot in deze code zodra één van de sensoren zwart ziet?
Antwoord
Niets nieuws: er is nog maar één if-tak (beide wit). Bij zwart klopt de voorwaarde niet, dus de motoren houden hun laatste snelheid. Het bijsturen ga je in de volgende stap zelf maken.