Arduino Linefollower DIY

Introduction: Arduino Linefollower DIY

Doel:

Een auto maken die een zwarte lijn kan volgen op een wit blad en die draadloos bediend kan worden (bluetooth).


Inleiding:

Ik raad aan, vooraleer je begint met alles te assembleren, alles eens individueel te testen. Dit zorgt er later voor dat als er zich een fout voordoet op het einde, dit waarschijnlijk niet goed aangesloten of geprogrammeerd is.

Sommige onderdelen/ gereedschap kunnen vervangen worden door andere. Dit
zijn niet de essentiële benodigdheden, dit zijn de benodigdheden die ik heb gebruikt. Hiermee zal ook worden gewerkt in de verdere instructable.


Benodigdheden:

  • 1x Houten frame linefollower (100mm x 150mm x 5mm)
  • 1x Arduino Leonardo
  • 2x Pololu 50:1 micro metal gearmotor HP 6V
  • 2x Pololu wielen 60x8mm
  • 2x L-bracket 15.5D metalen gearmotors
  • 1x HC-05 Bluetooth module
  • 2x 18650 Batterijen
  • 2x 18650 Batterijhouders
  • 1x DRV-8833 Dual motor driver carrier
  • 1x QTR-8A Reflectance sensor array
  • 21x Jumpercables (Male-Female)
  • 2x Jumpercables (Female-Female)
  • 1x 2.1 x 5.5 DC fiche
  • 6x Nagels
  • 2x Nagels met kunststof kop
  • 4x Schroeven
  • 1x Spanbandje
  • 4x M1.6 boutjes
  • 2x Sluitringen
  • 3cm Dubbelzijdige tape
  • (Krimpkous)

Gereedschap:

  • Soldeerbout + soldeertin
  • Schroevendraaiers
  • Hamer
  • 3mm (en 1.5 mm) boor + boormachine
  • Figuurzaag
  • Kniptang
  • (Lijmpistool)
  • (Schuurpapier)

Step 1: Frame Maken

Begin bij het afzagen van een rechthoek stuk hout van 100mm x 150mm. Schuur eventueel de afgezaagde randen af met een schuurpapiertje. Om later onze sensor array te kunnen monteren moeten we aan de voorkant (zelf te bepalen) een stukje uitzagen met de figuurzaag. Zaag nu een stuk uit de voorkant van 39mm x 5mm en dit op 40mm van de zijkant. De zijde waarvan je 40mm bent afgebleven is nu de linkerkant van de linefollower, dit is belangrijk voor de volgende stappen.


Waarom zagen we een stuk uit het center van het frame?

Dit doen we omdat onze sensor array (QTR-8A) 8 sensoren heeft en we er maar 6 gaan gebruiken. Er is een verzwakking gemaakt aan de laatste 2 sensoren, dit dient ervoor om eventueel die sensoren eraf te breken. Dan hebben we nog 6 sensoren over en zal je zien dat de sensoren gecentreed staan. Je kan deze sensoren afbreken, dit is niet noodzakelijk.

Step 2: Monteren Senoren

Schuif de sensor array onder het frame, zodat de zijkant van de sensor array gelijk komt met de voorkant van het frame (zoals op de afbeeldingen). Klop voorzichtig 2 nagels in de gaten van de sensor array. Deze heeft 2 of 4 gaten, afhankelijk of je sensor 7 en 8 hebt afgebroken of niet. Als je de sensoren niet hebt afgebroken, zorg er dan voor dat je de nagel niet klopt in het uiterst linkse gat (aan de rechterkant van het frame). Nu de sensor array bevestigd is, is de kant waar de pinnen uitsteken je bovenkant van het frame. Dit is belangrijk voor de volgende stappen, zodat onze sensoren aan de onderkant staan en uiteindelijk het parkour kan volgen. Dit is ook het enigste dat aan de onderkant komt, in alle volgende stappen zal alles op de bovenkant gemonteerd worden.

Tip:Om het monteren van de motorhouder makkelijker te
maken, kunnen we eerst een gaatje voorboren met een boor van 1.5mm. Dit zorgt ervoor dat de nagel er gemakkelijker in gaat, dit kan je toepassen voor deze en alle toekomstige nagels.

Waarom mag je niet het uiterste linkse gat van de sensor array gebruiken om deze te bevestigen?

Zoals je kan zien op de afbeelding komt daar later één van onze nagels in met een kunststof kop. Dit omdat we er geen kunnen kloppen naast de sensor array, als deze niet afgebroken is. Die nagels dienen om vlot over het parkour te kunnen bewegen.

Step 3: Monteren Motorhouders

Plaats beide motorhouders op de achterkant in beide hoeken van het frame. De lange kant komt op het frame en de kortere kant komt rechtstaand gelijk met de zijkant erop. Klop voorzichtig 2 nagels in de daarvoor voorziene gaten van de lange kant, doe dit ook aan de andere motorhouder (+ zie tip vorige stap).

Step 4: Monteren H-brug (DRV-8833)

Boor nu 2 gaten op 80mm van de voorkant met de boor van 3mm (mag ook iets groter zijn). Het eerste gat komt op 35mm van de rechterkant, het tweede op 35mm van de linkerkant. Leg nu de H-brug (DRV-8833) met de pinnen naar boven, in de lengte tussen de 2 gaten. Steek het spanbandje door beide gaten met de kop van het spanbandje aan de onderkant en maak deze vast. Indien de gaten te klein zijn kan je met een grotere boor nog eens door de bestaande gaten boren. Knip het uiteinde van het spanbandje af met de kniptang.

Extra: Je kan ook met de kniptang de nagel uiteinden een stuk inkorten, door deze af te knippen. Bijkomend kan eventueel de afgeknipte stukken opgeschuurd worden, zodat deze geen verwondingen kunnen veroorzaken.

Step 5: Monteren Arduino

Positioneer je Arduino in het midden van het frame en ergens tussen de uitstekende pinnen van en sensor array en de H-brug. Teken minstens 2 gaten (beste is 2 overstaande gaten) af op het frame en boor daar een gat door. Leg de Arduino terug op de geboorde gaten en bevestig deze door middel van 2 schroeven erin te draaien. Let wel op dat je deze niet te hard aandraait, dit kan schade aan de Arduino opleveren.

Step 6: Monteren Bluetooth Module (HC-05)

Afhankelijk van hoe de Arduino gemonteerd is plaatsen we de bluetooth module aan de linker of rechterkant van de linefollower. Dit is hangt af van aan welke kant de aansluiting(en) zit voor de voeding van de Arduino, waar we later op terug komen. In dit geval zijn de aansluitingen aan de linkerkant, dus zal mijn bluetooth module aan de rechterkant komen. Kleef het stuk dubbelzijdige tape waar de bluetooth module moet komen en plak de module hierop en druk aan totdat deze blijft plakken.

Step 7: Monteren Batterijhouders

Plaats één batterijhouder in het midden van de linefollower en tegen de motorhouders. Zet de tweede batterijhouder tegen de andere (ook in het midden) en teken beide gaten af op het frame. Boor nu door deze 2 gaten en leg de batterijhouders terug op die gaten. Bevestig deze door middel van een schroef in het gat te draaien, doe voor de andere batterijhouder hetzelfde. De batterijhouders hebben we als laatste gemonteerd, omdat deze veel plaats innemen en in de weg konden zitten voor het monteren van de andere onderdelen.

Step 8: Monteren Motoren + Wielen

Steek beide motoren met hun motoras door het middelste gat van de motorhouders. Draai nu 2x M1.6 boutjes door de motorhouders in de gaten van de motor. Afhankelijk van hoe de motor gemonteerd is zullen we de boutjes de onderste en bovenste of links en rechtse gaten gebruiken van de motorhouders. Nu beide motoren bevestigd zijn kunnen we voorzichtig onze wielen over de motorassen schuiven, let hierbij op dat de motoras niet volledig rond is en het wiel er maar op één manier op past!

Step 9: Liften Voorkant

Voorlopig steunt de linefollower op de achterste wielen en op de voorkant. Wanneer we de voorkant beter bekijken merken we op dat onze sensoren over de grond zullen slepen. Om dit te vermijden gaan we vooraan links en rechts 2 nagels met een kunststof kop laten uitsteken. Om de hoogte van de sensoren te regelen kunnen we een aantal sluitringen achter de kop steken. Hoe meer we er achter steken, hoe hoger de voorkant gelift wordt van de grond en dus de sensoren hoger komen te staan. De positie van deze nagels is niet van essentieel belang, ze kunnen vooraan naar keuze worden gezet. Het beste is zoveel mogelijk vooraan in beide hoeken. Als de laatste 2 sensoren van de sensor array niet afgebroken zijn, dan kunnen we best het uiterste gat gebruiken om een nagel door de steken. Aan de andere kant zal dan minstens één of meerdere sluitringen geplaatst moeten worden om beide nagels evenveel te laten uitsteken naar onder toe. Dit zorgt ervoor dat de linefollower niet een lichte vorm van kantelen in de bochten vertoont.

Step 10: Tussentijd Resultaat

De linefollower zit nu volledig in elkaar en is klaar om aangesloten te worden. Hij zou er ongeveer zoals op de afbeelding moeten uitzien, maar dan zonder al de verbindingen. Verder kan er nog iets onder de motoren gestoken worden als ondersteuning. Ik heb gebruik gemaakt van 2 stukjes karton, maar dit kan beter en laat ik aan jullie over. Laat maar in de comments weten wat jullie hiervoor gebruikt hebben, of misschien heb je er wel niet onder gestoken. Dit kan altijd nog gedaan worden, als je merkt dat de motoren nog licht bewegen tijdens het rijden.

Step 11: Batterijen Als Voeding

Ten eerste gaan we batterijen klaar maken om als voeding te gebruiken voor onze Arduino. De Arduino moet een spanning krijgen tussen 7-12V (niet via de micro USB ingang!!). Als we onze batterijen in serie zetten krijgen we een spanning van ongeveer 8,2V, dit is genoeg om de Arduino te voeden.

Praktisch betekent dit dus dat we de plus van de ene batterij aan de min van de andere moeten verbinden. Hierdoor zal de spanning van de batterijen opgeteld worden. Dit doen we door beide uiteindes aan elkaar te solderen en kan eventueel een krimpkous over gedaan worden. Aan de overige plus en min van de batterijen beschikken we over deze spanning en sluiten we de E44 5.5 DC fiche hierop aan. Deze zou in de externe voedingspoort van de Arduino passen, indien niet dient men de juiste fiche erop te plaatsen.

Zoals op de afbeeldingen te zien is er nog een aftakking gebeurt, dit dient niet te gebeuren maar hierover later meer.

Step 12: Aansluiten Sensor Array (QTR-8A)

Nu gaan gaan we de sensoren aansluiten op de Arduino, let hierbij op dat je de juiste pinnen gebruikt (pinnen 7 en 8 niet). Aan de hand van 2 jumpers (Male-Female) gaan we onze sensor array voeden, één VCC hangen we aan de +5V-pin en een GND aan een GND-pin van de Arduino. Verder hebben we nog 6 jumpers (Male-Female) nodig om onze 6 sensoren aan de analoge pinnen van de Arduino te hangen.

Let op: Hang sensor 1 aan A0, sensor 2 aan A1, sensor 3 aan A2... Anders kunnen we later praktische problemen ondervinden.

Waarom sluiten we de sensoren aan op de analoge pinnen van de Arduino?

De sensoren op onze sensor array moeten analoog worden binnen gelezen. Indien je over niet genoeg analoge pinnen beschikt (minstens 6 pinnen), kunnen we gebruik maken van een QTR-RC. Die sensor array kan digitaal binnen gelezen worden.

Step 13: Aansluiten H-brug (DRV-8833)

Na de sensoren gaan we de H-brug aansluiten op de Arduino en extern voeden. Eerst dienen we deze te voeden door middel van 3 jumpers (Male-Female), beide GND-pinnen op de H-brug moeten we aan de GND-pinnen van de Arduino hangen. Dan moeten we de VMM-pin OF de VIN van de H-brug aan de VIN-pin van de Arduino hangen.

Om de motoren vooruit en achteruit te kunnen laten draaien sluiten we AIN1, AIN2, BIN1 en BIN2 elk aan een PWM pin van de Arduino met 4 jumpers (Male-Female). Achteraf kunnen we deze dan gewoon sturen of via PWM. Ik heb volgende pinnen gebruikt: 5, 6, 9 en 10. Andere PWM pinnen kunnen ook gebruikt worden.

Step 14: Aansluiten Motoren

Om de motoren te laten werken moeten we deze ook nog aansluiten op de H-brug. Dit doen we door pinnen AOUT1 en AOUT2 aan een motor te verbinden. Pinnen BOUT1 en BOUT2 verbinden we dan aan de andere motor, in totaal hebben we dan 4 jumpers (Male-Female) nodig. De H-brug zou dan normaal ongeveer hetzelfde aangesloten zijn zoals bovenstaande afbeelding.

Step 15: Aansluiten Bluetooth Module (HC-05)

Ten slotte willen we de linefollower vanop afstand kunnen besturen en beregelen, dit doen we aan de hand van een bluetoothmodule. Eerst gaan we de module voeden door de VCC aan de overige VCC-pin van de sensor array te verbinden. Voor de GND doe we hetzelfde, hiervoor hebben we de 2 jumpers Male-Male nodig. Dan hebben we de laatste 2 jumpers (Male-Female) nodig om de RX en TX te verbinden met de Arduino. LET OP: verbind de RX van de bluetooth module met de TX van de Arduino! De TX van de module wordt verbonden met de RX van de Arduino.

Waarom voeden we de bluetooth module via de sensor array?

Zoals misschien al opgevallen hebben we al de +5V en GND pinnen van de Arduino gebruikt. Om toch nog +5V en GND te kunnen verkrijgen gaan we deze aftakken van de sensor array, omdat het makkelijk en praktisch mogelijk is.


Waarom verbinden we de RX niet met RX en TX met de TX?

De TX wil data doorsturen en de RX wil data ontvangen. Stel we de pinnen aan elkaar verbinden gaan we enerzijds data versturen vanuit de Arduino en de bluetoothmodule naar elkaar. En anderzijds gaan we de Arduino en de module op elkaar wachten op data. Dit zal nooit gebeuren omdat ze beide alleen maar kunnen ontvangen en niet zenden. De TX zullen naar elkaar data versturen, maar beide gaan de data niet ontvangen of kunnen uitlezen.

Step 16: Afwerking

Nu zou alles correct aangesloten moeten zijn en moeten werken met een correct programma. Laat mij de commands weten hoe het gelukt is bij jullie en hoe het eruit ziet!

Als parkour heb ik een wit A0 blad met een zwarte lijn van 15mm breed gebruikt.

Meer info:

https://syntheseprojectbrampoppe.jouwweb.be/

of

Klik hier voor meer info

Be the First to Share

    Recommendations

    • Rice & Grains Challenge

      Rice & Grains Challenge
    • Lamps Challenge

      Lamps Challenge
    • CNC and 3D Printing Contest

      CNC and 3D Printing Contest

    8 Comments

    0
    WilkoL
    WilkoL

    1 year ago

    De laatste stappen zijn leeg, komen die later nog? En een filmpje zou ook geweldig zijn. Ik ben benieuwd.

    0
    BramPoppe
    BramPoppe

    Reply 1 year ago

    Ja, ik ben er nog mee bezig. Ik probeer het zo snel mogelijk af te werken!

    0
    WilkoL
    WilkoL

    Reply 1 year ago

    Duidelijk verhaal. Jammer dat het niet een "featured item" is geworden. Dat zal wel komen doordat de editors geen andere talen beheersen dan engels.

    0
    BramPoppe
    BramPoppe

    Reply 1 year ago

    Wat zou er dan nog anders kunnen of aangepast moeten worden volgens u?

    0
    WilkoL
    WilkoL

    Reply 1 year ago

    Hoi Bram, er hoeft niets aangepast te worden.. Het is een uitstekende Instructable. Het probleem is dat de editors van Instructable geen Nederlands spreken, dus kunnen ze niet op de juiste waarde schatten. Hetzelfde zie ik wel eens gebeuren met Spaans talige instructables. Ik kan die ook niet lezen maar als ik er een poosje naar kijk zie ik dat het vrijwel zeker een prima verhaal is waar door de maker (net als bij jouw verhaal) flink veel tijd in is gestoken.
    Sinds ik ook een paar Instructables heb geschreven is mijn waardering voor schrijvers met stukken omhoog gegaan. Ik neem mijn pet voor je af.

    0
    WilkoL
    WilkoL

    Reply 1 year ago

    Laat je niet opjagen :-) Morgen is er weer een dag.

    0
    BramPoppe
    BramPoppe

    Reply 1 year ago

    Thank you!!