Debuggen
Werkt iets niet zoals je verwacht? Loop deze pagina door. De problemen staan gegroepeerd per onderwerp. Klik op een vraag om de oorzaak en oplossing te zien.
Stroom
Mijn robot doet helemaal niets
- Brandt het groene lampje op de microcontroller? Zo niet, dan krijgt hij geen stroom.
- Staat de ON/OFF-schakelaar op ON bij het Murphy Shield?
- Staat de ON/OFF-schakelaar op ON bij het Motor Shield?
- Staat de ON/OFF-schakelaar op ON bij de batterijhouder?
Mijn computer heeft geen verbinding met de robot
- USB-kabel: zit hij goed aan beide kanten? Probeer een andere USB-poort of een andere kabel (sommige laadkabels kunnen geen data versturen).
- Interpreter: staat rechtsonder in Thonny iets dat begint met
MicroPython (RP2040)? Zo niet, klik er rechts onderin op en kies hem. - Poort: ga naar
Run > Configure interpreter...en kies de juiste poort. Soms helpt het om de microcontroller los te koppelen en opnieuw aan te sluiten, en dan in Thonny op Stop/Restart backend te drukken.
Mijn computer heeft alleen USB-C-ingangen
Dan heb je een moderne laptop. Gebruik een USB-C naar USB-A-adapter of vraag je docent om een geschikte kabel.
IR-sensoren
Pinnen A4 en A5 zijn nodig voor I2C (SDA en SCL). Heb je een multiplexer, TOF-sensor of OLED-scherm? Dan zijn deze pinnen bezet. Sluit IR-sensoren alleen aan op A0, A1, A2, A3, A6 of A7.
Mijn sensor geeft rare of geen waardes
- Krijgt de sensor stroom? Brandt het groene lampje op de sensor?
- Print de ruwe waardes zodat je ziet wat er gebeurt:
from leaphymicropython.sensors.linesensor import AnalogIR
from time import sleep
sensor = AnalogIR("A0", 2500)
while True:
print(sensor.get_analog_value())
sleep(0.1)
Beweeg je hand boven de sensor of houd er een zwart/wit vel papier voor. Veranderen de waardes?
Mijn lijnvolger volgt de lijn niet
- Kalibreer de drempel: print de waardes boven de lijn én ernaast. Kies een drempel daar precies tussenin (zie 11.2 Eén analoge IR-sensor).
- Sensorpositie: zitten de sensoren laag genoeg en op de goede breedte?
- Logica: loop in je hoofd of op papier door wat de motoren moeten doen bij elke combinatie van zwart/wit.
Motoren
Sluit hier geen andere sensoren of actuatoren op aan (geen buzzer, LED of sensor). Zie 13.3 Let op: bezet pinnen.
Motor draait niet
Snelheid te laag? Probeer minimaal 180–200 vanwege het gewicht. Check ook of de batterijen vol zijn.
Motor draait de verkeerde kant op
Wissel de + en - draden van de motor om op het motor shield. Of pas in je code forward() en backward() om.
Motor shield-lampje brandt maar motor draait niet
Check of de batterijen vol zijn en zet de snelheid op minstens 180–200.
Robot rijdt niet rechtdoor
Motoren draaien zelden precies even snel. Geef ze losse snelheden, bijvoorbeeld motor_a.forward(200) en motor_b.forward(210).
Eén of beide motoren werken niet
-
Gebruik
test()om snel te checken of de aansturing klopt:from leaphymicropython.actuators.dcmotor import DCMotors
motoren = DCMotors()
motoren.motor_a.test()
motoren.motor_b.test() -
Onder 200 beweegt de robot vaak niet. Probeer eerst
motor_a.forward(255). -
Zitten de draden goed in de schroefterminals?
TOF-sensoren
TOF-sensor geeft 0 of 8190
- Het object is buiten bereik. De TOF meet tussen 3 cm en 200 cm. Daarbuiten krijg je
0of8190. - Test met een wit vel op 10–30 cm afstand:
from leaphymicropython.sensors.tof import TimeOfFlight
from time import sleep
tof = TimeOfFlight()
while True:
print(tof.get_distance())
sleep(0.1)
TOF-sensor geeft onstabiele metingen
- Gebruik een wit oppervlak om op te richten — donkere of glanzende oppervlakken werken slechter.
- Voeg
sleep(0.05)toe tussen metingen. - Check de SDA- en SCL-kabels naar de multiplexer of de Nano.
Meerdere TOF-sensoren werken niet tegelijk
- Je hebt een multiplexer nodig — alle TOFs hebben hetzelfde I2C-adres.
- Geef elke sensor zijn eigen channel:
tof_1 = TimeOfFlight(channel=0)
tof_2 = TimeOfFlight(channel=1)
TOF-sensor werkt helemaal niet
- Check de multiplexer: is die goed aangesloten op de SDA- en SCL-pinnen?
- Krijgt de sensor stroom? (VCC en GND.)
- Klopt het
channel-nummer in je code met de plek op de multiplexer?
OLED-scherm
OLED-scherm blijft leeg of zwart
- Vergeet
oled.show()niet aan te roepen — anders verschijnt er niets:
oled.text('Hallo!', x=0, y=0)
oled.show()
- Check het channel van de multiplexer (meestal 7).
- Check de bedrading: SDA, SCL, VCC en GND.
Oude tekst blijft op het scherm staan
- Wis eerst met
oled.fill("white")ofoled.fill("black"):
oled.fill("white")
oled.text('Nieuwe tekst', x=0, y=0)
oled.show()
Error bij het tonen van getallen
- Zet getallen om met
str():
afstand = 123
oled.text('Afstand: ' + str(afstand), x=0, y=0)
oled.show()
Tekst valt buiten het scherm
- Het scherm is 128 pixels breed en 64 pixels hoog.
- Een tekstregel is ongeveer 10 pixels hoog. Gebruik
y=0,y=10,y=20, ...:
oled.text('Regel 1', x=0, y=0)
oled.text('Regel 2', x=0, y=10)
oled.text('Regel 3', x=0, y=20)
oled.show()
Scherm flikkert of is traag
- Update niet vaker dan 10 keer per seconde. Zet
sleep(0.1)in je loop. - Roep
show()alleen aan als de tekst echt verandert.