Introduction: Linefollower Robot

Voor het vak Syntheseproject in 3e Bachelor Automatisering aan de HoGent moesten we een linefollower-robot maken. Hieronder staan alle stappen om dit prototype zelf te kunnen maken.

Step 1: Componenten Bestellen

Hieronder een lijst van alle benodigde onderdelen:

  • 2 x 50:1 Pololu motoren
  • DRV-8835 Arduino shield
  • 2 x 18650 batterijen
  • Arduino Leonardo
  • Motor brackets
  • QTR-8A reflective sensor array
  • HC-05 Bluetooth module

De meeste van deze onderdelen kunnen via https://www.tinytronics.nl/shop/nl besteld worden met een aanvaardbaar levertermijn.

Step 2: Proof of Concept

Een proof of concept dient om alle componenten te testen en de werking ervan te begrijpen.

1. Controller

Met het blink-programma kunnen we de Arduino testen en verifiëren dat de communicatie correct verloopt.

2. Sensoren

Verbindt de QTR-8A met de Arduino en lees met behulp van de library de verschillende waarden uit. Controleer hierbij dat de bekomen waarden voor zwart en wit ver genoeg uit elkaar liggen. Wit zo groot mogelijk is (maar niet 1023) en zwart zo klein mogelijk (maar niet 0).

3. H-brug

Verbind de motoren met de juiste uitgangen van de DRV8835. Maak gebruik van deze library en bijhorende voorbeelden om de h-brug en motoren te testen. Let hierbij zeer goed op de draairichting van de motoren. Draai de draden van de motor om indien die omgekeerd draait.

4. Bluetooth

We maken gebruik van de HC-05 bluetooth module om te kunnen communiceren met onze robot. Verbind de module op de juiste manier met de microcontroller en probeer via de Serial1-poort boodschappen te sturen en ontvangen. Met een bluetooth terminal app voor Android kan je boodschappen ontvangen en sturen naar de module.

Step 3: Assemblage

Gebruik een hard stuk karton of licht hout om je robot op te bouwen. Je kan uiteraard ook een chassis 3D-printen. Let bij het monteren van de onderdelen goed op de gewichtsverdeling. Plaats de motoren helemaal achteraan en probeer de zware onderdelen zo dicht mogelijk bij die motoren te plaatsen. Het gewicht achteraan zorgt ervoor dat de wielen genoeg grip hebben. Plaats de sensoren onderaan en maak een inkeping voor de kabels naar de Arduino. Vooraan kan je gebruik maken van kleine boutjes zodat de sensor ongeveer 5cm boven de grond hangt.

Step 4: Wiring Diagram

Verbind alle componenten volgens bovenstaand schema. De DRV8835 is een schield die op de Leonardo past, hier moet je dus enkel nog de motoren en voeding aansluiten op de klemmen.

Step 5: Code

Download deze code en upload het in de Arduino Leonardo. Zorg ervoor dat de benodigde libraries (voor de DRV8835 en de QTR-sensoren) geïnstalleerd zijn en de serialcommand-library en eepromanything-library in dezelfde map staan als je Arduino programma.

In het programma zijn er 5 parameters die we kunnen aanpassen, namelijk kp, ki, kd, power en diff.

Om te beginnen begin je best met veilige waarden:

  • kp = 10
  • diff = 0.50
  • power = 50

Bij een lage snelheid moeten er geen waarden gegeven worden aan de ki- en kd-parameters. Voor snelheden onder de 0.5m/s hebben we voldoende aan een proportionele regelaar.

Alle waarden kunnen ingesteld worden met het set-commando (voorbeeld set power 15) en met het debug-commando kunnen op ieder moment alle waarden uitgelezen worden.

Het is belangrijk de sensor-waarden voor iedere parcours opnieuw te kalibreren.

Test eerst en vooral dat de motoren in de juiste richting draaien wanneer je de positie van de robot veranderd.

Step 6: Resultaat

Door de verschillende waarden aan te passen, kan je de robot sneller en vlotter laten rijden. Dit vraagt wat tijd, maar uiteindelijk zou je een mooi resultaat moeten behalen zoals in het filmpje getoond wordt.

Step 7: Tips

Hieronder nog enkele tips om het werk vlotter te laten verlopen.
  1. Beperk de lengte van je robot. Wanneer je robot te lang is, zal deze moeite hebben om de korte bochten te nemen. Maak de robot niet langer dan 13cm.
  2. Vergeet niet om een oplader te bestellen om je batterijen op te laden.