Debuggen
Hieronder vind je een lijst met veelvoorkomende problemen en tips om ze op te lossen.
Stroom
Mijn robot doet helemaal niets!
- Controleer het groene lampje op je microcontroller: Brandt deze niet, dan krijgt de microcontroller geen stroom.
- Controleer of de ON/OFF switch op ON staat op je
Murphy Shield
- Controleer of de ON/OFF switch op ON staat op je
Motor Shield
- Controleer of de ON/OFF switch op ON staat op je
batterijhouder
Mijn computer heeft geen verbinding met de robot
- Controleer de USB-kabel: Is de kabel goed aangesloten op zowel de computer als de microcontroller? Probeer een andere USB-poort of een andere kabel.
- Controleer de interpreter: Staat er rechtsonder in Thonny iets wat begint met
Micropython (RP2040)...
, dan is alles goed! Zo niet, klik dan rechtsonder en kies wat begint metMicropython (RP2040)
. - Controleer de poortinstellingen in Thonny: Ga naar
Run > Configure interpreter...
en zorg ervoor dat de juiste poort is geselecteerd. Soms helpt het om de microcontroller los te koppelen en opnieuw aan te sluiten, en dan in Thonny op de 'Stop/Restart backend' knop te drukken.
IR-sensoren
Mijn sensor geeft rare of geen waardes.
- Krijgt de sensor stroom? Is de sensor aangesloten op de juiste pinnen? Als het groene lampje op de sensor brandt, dan krijgt deze in ieder geval stroom!
- Print de sensorwaardes: De beste manier om te zien wat een sensor doet, is door de waardes continu te printen in de 'Shell'.
Beweeg nu je hand boven de sensor of houd er een zwart/wit vel papier voor. Zie je de waardes veranderen?
from leaphymicropython.sensors.ir import IR
from time import sleep
# Vervang A0 door de pin waar jouw sensor op aangesloten is
ir_sensor = IR("A0")
while True:
print(ir_sensor.read_analog())
sleep(0.1)
Mijn lijnvolger volgt de lijn niet.
- Kalibreer je sensoren: De waardes voor 'zwart' en 'wit' kunnen verschillen per ondergrond en lichtinval. Print de waardes van je IR-sensoren boven de lijn en naast de lijn. Bepaal een goede 'drempelwaarde' (threshold) in je code om te beslissen of de sensor de lijn ziet.
- Controleer de sensorpositie: Staan de sensoren niet te ver van de grond? Staan ze op de juiste breedte om de lijn te kunnen detecteren?
- Controleer je logica: Wat moet de robot doen als de linker sensor zwart ziet? En de rechter? En als ze allebei wit zien? Loop je code stap voor stap na in je hoofd (of op papier).
Motoren
Eén of beide motoren werken niet.
- Gebruik de
test()
functie: Deleaphymicropython
bibliotheek heeft een handige testfunctie.Als de motor kort vooruit en achteruit beweegt, weet je dat de aansturing en bedrading goed zijn.from leaphymicropython.actuators.dcmotor import DCMotors
motoren = DCMotors()
motoren.motor_a.test() # Test motor A
motoren.motor_b.test() # Test motor B - Controleer de snelheid: Een snelheid onder de
200
is vaak te laag om de robot in beweging te krijgen vanwege het gewicht. Probeer de motor met maximale snelheid aan te sturen:motor_a.forward(255)
. - Controleer de bedrading: Zitten de draden van de motor goed in de schroefterminals van het motor shield? Zitten de jumper wires van het shield naar de Nano goed?
De robot rijdt de verkeerde kant op.
- Draai de draden om: De makkelijkste manier om de draairichting van een DC-motor om te draaien, is door de twee draden die van de motor naar het motor shield lopen om te wisselen.
- Pas de code aan: Je kunt ook
forward()
enbackward()
in je code omwisselen. Dit is handig als je de draden niet wilt aanpassen.