Nean Lotze - ITTT
Welkom bij mijn intructables pagina over mijn ervaring met de arduino uno. Ik neem je mee door mijn ontwerp proces, mijn leermomenten, mijn circuit en de code die ik heb gebruikt. (Onderaan de pagina, stap 24, staan de verbeteringen voor de herkansing)
Downloads
Supplies
Arduino Uno R3
Micro servo
DC Lego Motor
Ultrasonic Sonar
Radio Controller Transmitter and Receiver
Lego mechanics
Houtplaat
Hete Lijm
Powerbank
Brainstormen
Ik had al snel het idee van een van afstand bestuurbaar mechanisme, die een gebruiker kon aansturen om iets uit te laten voeren. Hierbij zat ik te denken aan een voertuig op wielen, een drijvend voertuig of een mechanisme met een grijphaak.
Plan Van Aanpak
Na het besluit om een voertuig op wielen te maken, heb ik een lijstje gemaakt met dingen die ik sowieso nodig zou gaan hebben en testjes die ik zou kunnen uitvoeren. Ik heb een speelgoed helicopter gekocht die werkte met infrarood sensoren. Dit heb ik gekocht met het idee de ontvanger uit de helikopter te halen en de controller te kunnen gebruiken in combinatie met de arduino.
Test 1 - Servo
Hier heb ik wat testjes gedaan met een servo om te weten welke posities ik nodig had zodat je naar links en rechts kan sturen.
Leermoment
Nadat ik de speelgoed helikopter uit elkaar had gehaald, bleken de signalen gecodeerd te zijn. Aangezien dit een goedkoop product was stond er geen code online die deze signalen voor mij kon ontcijferen. Dus ging deze methode in de prullenbak en heb ik een RC transmitter met receiver gekocht.
Test 2 - Radio Controller
Hier de eerste test waarbij ik nog niet de goede kabels in huis had, dus heb ik wat connecties zitten solderen. Maar na het vaak herhalen was de test gelukkig een succes.
Test 3 - Motor
Vervolgens ging ik testen hoe ik een motor aan de praat moest krijgen. Dit had enkel wel zijn complicaties omdat ik hem beide richtingen op wou laten draaien. Dit betekende dat ik het niet gemakkelijk met en kabel kon aansluiten maar een extern motor driver board moest aanschaffen.
Test 4 - Servo & Motor
Ook de motor test in samenwerking met de controller was een succes. Hierna heb ik dit alles gecombineerd zodat ik met de linker stick van de controller de motor kon besturen, en met de rechter stick de servo.
Concreet Bouwplan
Nadat mijn elektronica werkte heb ik een tekening gemaakt van de constructie. Dit was enkel nog een grof model. Bij de bouwmarkt heb ik een plaat 3 mm dik hout gekocht om mijn frame uit te maken, ook heb ik wat tape en lijm gehaald. Mijn plan was om ook wieltjes te kopen en materiaal voor een stuurmechanisme, maar toen kwam ik op het idee om dit te maken van lego. Dit bespaarde mij kosten en ik had een heleboel keuze uit onderdelen.
Aandrijving
Toen ik bezig was met het maken van een aandrijving mechanisme, kwam ik er achter dat het motortje wat ik had niet geschikt was voor het aandrijven van mijn lego onderdelen. Daarom heb ik een oude lego motor uit elkaar gehaald, hier nieuwe kabels aan gesoldeerd en hem weer in elkaar gezet. Dit werkte haast perfect.
Beginnen Met Bouwen
Dit zijn de twee mechanismes die ik nodig had voor de besturing van het voertuig. Achterin zit de motor die beide wielen aandrijft. Voorin zit een stang die verplaatst kan worden door een servo zodat de wielen draaien. In het midden is een plek aangegeven voor een powerbank met een gat voor de aan knop.
Test 5 - Rijles
Hier heb ik hem voor het eerst helemaal in elkaar gezet. Alleen de sonar ontbreekt nog, omdat ik die compleet vergeten was. Alles werkte prima, hij was alleen een beetje traag door het gewicht.
Test 6 - Sonar
Op deze foto is te zien dat ik de sonar heb toegevoegd zodat hij eindelijk compleet was. De volgende stap was het maken van een eigen breadboard aangezien ik hem tot nu toe nog gebruikte voor het gemak.
Soldeerwerk
Hier is mijn eigen gemaakte breadboard te zien.
Tussenstap
Tussen fase tijdens het maken van het frame, hier zat ik net over de helft.
Het Einde Is in Zicht
Hier is hij zo goed als af. Naast een paar afwerkinkjes die nog moesten plaatsvinden. Zoals je kan zien zit de usb - power kabel een beetje losjes en remt het stuurvermogen van het voertuig. Het dak zit los zodat je nog de mogelijkheid hebt om de arduino eruit te halen. Ook steekt de receiver kabel uit het dak.
Afplakken
Hier heb ik het voertuig afgeplakt zodat hij bespoten kan worden met spuitverf. Het dak heb ik tijdelijk vastgeplakt met dubbelzijdige tape zodat de verf niet naar binnen kon komen.
Resultaat
Dit is het eindresultaat. Door eerst met blauwe verf te spuiten en vervolgens hier weer tape overheen te plakken, krijg je na het spuiten van de paarse verf, het effect van blauwe strepen. Ook heb ik een kleine houder gemaakt voor de usb kabel, zodat hij vast zit als het voetuig uit staat.
Reflectie
Ik heb geleerd om eerst een los en simpel plan te hebben, maar daarna vooral te doen. Het heeft bijna geen nut om alles van te voren te plannen, omdat het in de praktijk er toch anders uit gaat zien. Ook heb ik geleerd om te genieten van de dingen die je fout doet, omdat het extra fijn voelt wanneer je het uiteindelijk goed hebt gedaan. Naast vele technische dingen zoals coderen met de arduino, ben ik ook beter geworden in solderen en monteren. Tijdens mijn eindpresentatie kreeg ik voor het eerst te horen dat lego niet toegestaan was, hierdoor was mijn beoordelaar lichtelijk geirriteerd en had hij, naar mijn mening, iets minder aandacht voor het aantal werk dat ik er in heb gestopt. Als er beter werd aangegeven dat lego niet toegestaan was, had ik dit natuurlijk nooit gebruikt. Ook staat dit nergens vermeld op Canvas, of in de besproken lesstof.
Circuit
Code 1
Dit is het begin van de code waarbij aangegeven word welke bibliotheken gebruikt moeten worden, ook worden en een paar variabelen aangemaakt die ik later in de code gebruik. Deze variabelen bevatten de gewenste output en input Pins, de waarde van een deadzone en de maximale afstand van de sonar.
Code 2
Dit is het eerste deel van de loop functie, hierin worden de signalen van de transmitter ontvangen en opgeslagen in nieuwe variabelen. Deze worden vervolgens naar de juiste Pin gestuurd.
Code 3
Dit is het tweede deel van de loop functie. Dit is een if statement waarbij het voertuig een soort animatie af gaat spelen wanneer de afstand tussen de sonar en een object minimaal 15 cm is. Het voertuig stopt met rijden, stuurt dan een paar keer van links naar rechts, rijdt weer terug naar achteren en stopt vervolgens weer.
Code 4
Dit is een functie die wordt aangeroepen in het begin van de loop. Deze zet de ontvangen signalen om in bruikbare getallen en zorgt ervoor dat eventuele uitschieters worden afgerond door een deadzone. De eerste is speciaal aangemaakt voor de servo positie. De tweede speciaal voor de motor rotatie.
Verbeterd Concept -> De Eigewijze Vierwieler
Mijn idee is om een voertuig te maken die van afstand te bedienen is, hij doet alleen iets meer dan dat. Het is als het ware een auto die vooruit en achteruit kan rijden, ook kan je hem naar links en rechts besturen. Echter als je nog niet goed kan rijden en je bijna tegen een obstakel op botst, wijgert hij te functioneren, hij schud zijn "hoofd" en rijdt naar achter. Ook laat hij zijn emotie zien door middel van led lampjes, hij wordt namelijk boos als je botst. Welke knop je nu indrukt op de controller, niks werkt om hem weer aan de praat te krijgen. Je moet hem weer kalmeren door achterop aan zijn staart te draaien, als je het goed doet laat hij een klein traanje en wordt zijn led lampje blauw. Als je hem daarna een "schouderklopje" geeft, door op de knop te drukken, is hij weer blij en mag je hem weer besturen. Uiteindelijk kan je hem zo goed besturen dat hij niet meer boos kan worden.
Ook werkt dit perfect tegen diefstal, als iemand hem oppakt wordt hij ook boos, maar alleen jij weet hoe je hem weer blij kan maken, als een soort "beveiligingsslot"
Supplies:
Arduino Uno
Micro servo
DC Motor
Ultrasonic Sonar
4x LED lichtjes
Potentiometer
Knopje
Radio Controller Transmitter and Receiver
Houtplaat
Hete Lijm
Powerbank
Lego mechanics
Foto's En Video Van Verbetering
Verbeterd Circuit
Verbeterde Code
Hier heb ik de verbeterde code.
In deze code zijn de lampjes, de potentiometer en de knop toegevoegd. Hierbij is er een "answer" variabel die elke keer wanneer de auto binnen 15 cm van een object is naar een ander getal veranderd, dit is als het ware het "slot". In een if statement wordt gekeken wanneer de potentiometer op dit zelfde getal komt te staan, als dit het geval is varanderen de lampjes van kleur, als je daarna het knopje indrukt mag je weer rijden.