Inhoudsopgave:

Line Follower Robot voor het aanleren van besturingsalgoritmen - Ajarnpa
Line Follower Robot voor het aanleren van besturingsalgoritmen - Ajarnpa

Video: Line Follower Robot voor het aanleren van besturingsalgoritmen - Ajarnpa

Video: Line Follower Robot voor het aanleren van besturingsalgoritmen - Ajarnpa
Video: История и будущее программирования [Уроки лучшего инструктора Японии] 2024, November
Anonim
Image
Image
Lijnvolgerrobot voor het aanleren van besturingsalgoritmen
Lijnvolgerrobot voor het aanleren van besturingsalgoritmen
Lijnvolgerrobot voor het aanleren van besturingsalgoritmen
Lijnvolgerrobot voor het aanleren van besturingsalgoritmen

Ik ontwierp deze lijnvolgerrobot een paar jaar geleden toen ik een roboticaleraar was. Het doel van dit project was om mijn studenten te leren hoe ze een lijnvolgende robot coderen voor een wedstrijd en ook te vergelijken tussen If/Else en PID-regeling. En niet in de laatste plaats, hoe de mechanica en de lengte van de robot deze besturingsalgoritmen beïnvloeden. Het doel was om het sneller en betrouwbaarder te maken.

Ik heb het gemaakt om te worden geprogrammeerd met de Arduino IDE, maar het is ook mogelijk om de ontwikkel-IDE te gebruiken die u verkiest. Het heeft een krachtige PIC32 met een USB-bootloader, dus je hebt geen programmeur nodig. Het heeft ook een AAN/UIT-schakelaar, een reset en een start-/programmaknop. De LED's zijn verbonden met het PWM-signaal van de motoren, zodat u gemakkelijk kunt zien hoeveel stroom u toepast.

De robot is volledig modulair om te experimenteren en eenvoudig te repareren voor het geval je er een ongeluk mee krijgt. Dat maakt deze robot de perfecte tool om op een hele leuke manier te leren programmeren. Mijn studenten gebruikten het al een lange periode en leerden elke keer iets nieuws, zelfs PID-regeling. Om nog maar te zwijgen van het feit dat de sensorbalk een algoritme gebruikt om een geheel getal terug te geven, negatieve waarde de robot staat links, positief rechts en cero staat in het midden van de lijn.

Benodigdheden

2x 6V Micro metalen motorreductoren met verlengde steunbeugels (elke overbrengingsverhouding is ok, de mijne zijn 10:1)

1x lijnsensorkaart

1x Hoofdbesturingseenheid

1x 20 via platte draad, 1 mm afstand. De mijne is 20 cm lang.

1x acryl linker (gesneden in 3 mm helder acryl)

1x 1/8 zwenkwiel (de mijne is van metaal)

2x Rubberen wiel, 3 cm diameter.

1x Lipo-batterij. Je kunt de robot van stroom voorzien tot 10v, maar houd er rekening mee dat de motoren geschikt zijn voor 6v.

Enkele M2 schroeven en moeren om alles aan elkaar te bevestigen.

Als u uw eigen ontwerpbestanden, schema's en alles om het te bouwen, zijn bijgevoegd bij de volgende stap.

Stap 1: De hardware

de hardware
de hardware
de hardware
de hardware
de hardware
de hardware
de hardware
de hardware

Zoals u op de foto's kunt zien, zijn alle componenten SMD, de perfecte gelegenheid om uw soldeervaardigheden te oefenen. Deze robot is gesoldeerd door 3 van mijn studenten, dus je kunt het zonder problemen doen. Alle ontwerpbestanden zijn bijgevoegd, u kunt de bestanden zien met EAGLE. Gerbers zijn ook inbegrepen als u de borden naar uw favoriete PCB-fabrikant wilt.

De twee planken zijn samengevoegd met een stuk acryl, het lasergesneden patroon is ook inbegrepen. Ik gebruikte M2 schroeven en moeren om het op zijn plaats te houden. Ook de ballcaster is hierin geplaatst. En als je de robot crasht, breekt het acryl en beschermt het de planken tegen beschadiging, ideaal om te testen! De platte draad wordt gebruikt om de verbinding tussen de CPU en het sensorbord te maken. De motoren zijn eenvoudig met draden te verbinden met het CPU-bord.

Opmerking: de PIC gebruikt een aangepaste firmware, is een aangepaste versie van de originele DP32-firmware. U kunt de firmware hier downloaden. Aan de onderkant van het CPU-bord is een ICSP-aansluiting opgenomen.

Stap 2: De software

De software
De software
De software
De software

Ik raad aan om de Arduino IDE te gebruiken om de robot te programmeren. Zoals ik je al eerder vertelde, is deze lijnvolger gebaseerd op de PIC32MX250 en is hij compatibel met de chipKIT DP32. U hoeft alleen het chipKIT-pakket op de pakketbeheerder op de Arduino IDE te installeren en u bent klaar om te gaan. Je kunt het ook programmeren op MPLAB of de IDE die je wilt, maar je kunt de basis leren op Arduino.

De rest is als het programmeren van een ander Arduino-bord. Sluit de robot aan op uw computer met een micro-USB-kabel en druk direct op de programmaknop nadat u op reset hebt gedrukt. Stuur dan de schets met de upload-knop in de IDE.

Ik heb 3 schetsen opgenomen in deze tutorial. De eerste test de sensorarray, de tweede is een If/Else-lijnvolger en de laatste is een PID-lijnvolger. Alles werkt al, maar u zult enkele waarden moeten aanpassen als u het ontwerp wijzigt. En voel je ook vrij om het zelf te doen! Er zijn betere manieren om het lijnvolger-algoritme te doen, experimenteren is de sleutel tot succes.

Stap 3: Experimenteren

Experimenteren
Experimenteren
Experimenteren
Experimenteren
Experimenteren
Experimenteren

Dit is echt het belangrijkste onderdeel, je moet alle mogelijkheden proberen en degene vinden die voor jou werkt.

Experimenteer gerust met wielen en materialen met verschillende diameters. Verander de lengte van de robot die de acrylverbinding wijzigt. Gebruik een andere batterij, ook met een ander voltage. Het kan ook kleiner of groter zijn. Misschien een andere overbrengingsverhouding voor de motoren.

Pas de software aan om minder sensoren te gebruiken of probeer zelfs een ander algoritme, je zult er versteld van staan hoeveel de prestaties kunnen veranderen. Of waarom niet, als u een gevorderde gebruiker bent, doe het dan met MPLAB.

De lucht is de limiet!

Als extra tip… Het afstemmen van de PID-winsten is een fascinerende reis waarin u de effecten op de robot kunt leren wanneer u de lijn volgt met verschillende waarden van Kp, Kd en Ki. Uren en uren leren gegarandeerd!!! De kinderen zullen niet merken dat ze wiskunde gebruiken om alle vereiste taken uit te voeren.

Ik hoop dat je deze instructable leuk vindt, als je iets nodig hebt, vraag het me dan in de comments. Bedankt voor het lezen:)

Aanbevolen: