Introduction: Linefollower HoGent - Syntheseproject
Voor het vak syntheseproject kregen we de opdracht een linefollower te maken. In deze instructable zal ik uitleggen hoe ik deze gemaakt heb, en tegen welke problemen ik o.a ben aangelopen.
Step 1: De Componenten Verzamelen
Bill Of Materials:
- Chassis is 3D-printed 5 x 100 x 150
- 50:1 Polulu motoren
- DRV 8833 H- Brug
- 18650 Li-on batterijen (2x)
- 2x 18650 Batterij houder
- Arduino Leonardo
- 2 Wago klemmen
- QTR-8A Sensor
- HC-05 BT Module
- USB oplader voor de batterijen
- Jumper wires
- Arduino to +/- cable
Dit alles is besteld op opencircuit en tme.eu, goede levertermijn.
Step 2: Proof of Concepts
Vooraleer je start aan de programmatie raad ik aan om van elke component (DRV - HC 05 - QTR-8A) een POC te maken. Zo weet je zeker dat je weet hoe de componenten werken.
In bijlage de datasheets.
1.Sensor
Let er op dat de sensorwaardes voor zwart en wit voldoende uit elkaar liggen, dit kan met de Arduino QTR library.
2. H-Brug
De DRV 8833 heeft 4 ingangen en 4 uitgangen. De uitgangen spreken voor zich, maar let bij het sturen van de ingangen zeker op de richting van de motoren, test dit zéker allemaal uit vooraleer je naar de volgende stap gaat.
3. HC-05
Voor deze POC ondervond ik weinig problemen. Let er zéker op dat je Serial1 selecteert, en de baudrate op 9600 zet voor deze Serial. Test uit of je data kan verzenden in 2 richtingen, vooraleer je doorgaat naar de volgende stap. (PC TO PHONE - PHONE TO PC).
In bijlage vind je mijn code van de proof of concepts, moest je er niet aan uit geraken.
Step 3: De Assembly Van De Robot
Ik bouwde de robot volgens plattegrond in bijlage. Let er op dat je achteraan genoeg gewicht hebt zodat de motoren genoeg grip hebben. Verder koos ik ervoor de sensor ongeveer 5 mm boven de grond te laten hangen.
Achteraan heb ik gewicht voorzien dmv 2 carwash-jetons, het is belangrijk dat je genoeg grip hebt om de robot niet te laten slippen in de bochten.
De bodemplaat is 10 x 15 x 0,5 cm, en is ge 3D print. De motoren - batterijen heb ik bevestigd met spanbandjes (zie foto's) , om ze zo makkelijk opnieuw te verwijderen. Eens alles goed vast zit, kan je doorgaan naar het aansluiten.
Step 4: Wiring
Bedrading gebeurd aan de hand van het schema in bijlage.
OPGELET:
- Let zéker op met A1/2 en B1/2, zodat je zeker bent dat de motoren in de juiste richting draaien!
- Zorg dat de batterijen in serie staan en niet parralel!
- Zorg dat alles netjes gesoldeerd is zodat je geen bad connections hebt!
Step 5: De Code
Laad volgend programma op de Arduino, zorg ervoor dat je library serialcommand en eepromanything in dezelfde map hebt staan als je arduino project.
De code vind je hier:
Step 6: De Regelaar
In de code vind je 3 parameters terug die je met het commando set kan veranderen. (bv set kp 50, set diff 2,..)
De huidige parameters vraag je op met het commando 'debug'.
Veranderen de parameters aan de hand van volgende waarnemingen:
- Volgt de robot de lijn niet / verhoog KP
- Schokt de robot op de lijn / verlaag KP
- Versnelt de robot in de bochten / verlaag diff
- Vertraagt de robot in de bochten/valt stil / verhoog diff
- Valt de robot stil / te traag / verhoog power
Start met kp 1 - diff 0.5 en power 55.
Step 7: Het Resultaat
Et voila! Je robot zou na enkele uurtjes regelwerk de lijn moeten volgen en rondjes rijden.
Step 8: Tips & Tricks
Ik ondervond enkele problemen met mijn robot, ik geef graag enkele tips mee:
- Zorg ervoor dat de wielen in de juiste richting draaien (H-BRUG correct) met leftForward, leftBackward, rightForward en rightBackward.
- Controleer dat je op index 0 (0) en 5 (30) de juiste position selecteert
- Zorg dat alles hardware matig OK is, sensor ver genoeg van het chassis - wielen goed vast