Awesome-o Project |
Dit is het verslag van mijn Awesom-o project.
Awesom-o is een karakter uit de gelijknamige aflevering van Southpark.
De naam van de robot AWESOM-O verwijst naar de robot ASIMO. uit Japan
Ik wilde graag een Obstacle Avoidance robotje bouwen en het leek me leuk om hem het uiterlijk van Awesom-o te geven.
Dit is mijn robot:
Dit is nog een prototype, gemaakt van restjes hout en karton. De hardware en software ontwikkel ik terwijl ik verschillende dingen uitprobeer.
Arduino Nano
De heeft een Arduino nano om de wielen en sensoren te bedienen. De arduino nano is tegenwoordig zo goedkoop dat een losse microcontroller niet eens meer de moeite waard is. Ik kocht 5 nano's voor €13,55 bij Banggood.comVideo 1, intro van dit project
Aandrijving
update Maart 2015:Iets over de aandrijving. Awesom-o heeft 2 aangedreven wielen.
Deze wielen, plus motor zijn te koop op ebay of in de bekende chinese webwinkels. Per stuk kosten ze ongeveer €3,50
Om deze motors aan te sturen met Arduino, en de draairichting te regelen maak ik gebruik van een H-Brug. Elke motor heeft zijn eigen H-Brug nodig.
Werking van de H-brug:
Het schema hierboven geeft de H-Brug weer. Helemaal links en rechts zie je de stuursignalen, de motor draait nu rechtsom (met de klok mee). Als de 5 volt en nul volt signalen worden omgedraaid zal ook de draairichting van de motor omdraaien.
De onderste transistor wordt aangesloten om een pwm pin van de Arduino (bijvoorbeeld pin 5). Deze geeft ons snelheidsregeling.
In deze video leg ik het uitgebreid uit.
Opmerking over de snelheidsregeling: Pas op, de snelheidsregeling zorgt ervoor dat de motortjes erg veel storing geven op de voeding van de robot. De Arduino kan hier last van hebben en spontaan resetten. Op dit moment gebruik ik de snelheidsregeling zelf niet.
Afstandsensor
update 2 April 2015:De Robot maakt gebruik van een ultrasone afstandssensor om zijn omgeving af te speuren.
Deze sensor is te koop op ebay en alle bekende (en onbekende) Chinese webwinkels
Het aansluiten van deze sensor is eenvoudig, er zijn 4 pootjes, Voeding, Ground, Trigger en Echo.
Hier is de Arduino (voor Uno of Nano) code om deze sensor te testen:
In deze video leg ik het uitgebreid uit.
Servos op Arduino
update 9 April 2015:Het hoofd van awesome-o wordt door een servo bestuurd. Sero's kun je op nog veel meer dingen toepassen en daarom is het leuk om daar eens mee te expirimenteren.
Dit zijn de 3 servo's die ik gebruik. Ik heb deze puur op prijs geselecteerd
De mini servo SG90 van towerpro. Dit is een erg kleine servo, en spotgoedkoop. Het is natuurlijk niet de meest krachtige servo maar als een klein formaat belangrijk is, is dit een optie. Prijs op ebay (prijs is van augustus 2015): minder dan €2 |
|
De SG5010 van towerpro. Met de SG5110 krijg je veel servo voor je geld. Hij is niet duur en erg sterk. Deze servo heb ik gebruikt in mijn Useless Machine (zie youtube Link) Prijs op ebay (prijs is van augustus 2015): minder dan €5 |
|
De S3003 van Futuba. Dit is een alternatief voor de SG5110, iets goedkoper nog. Zelfde formaat en net zo sterk. Prijs op ebay (prijs is van augustus 2015): minder dan €3.50 |
Servo's aansluiten op Arduino
Elke servo heeft dezelfde 3 polige aansluiting, soms verschillen de kleuren een beetje maar altijd hebben ze: Ground, Power en Signal.
De ground en power sluit je aan op de GND en 5V pinnen van Arduino.
De signaaldraad gaat in mijn voorbeeld naar pin 6. Je mag ook een andere pin kiezen als dat beter uit komt.
Als jet het volgens het plaatje hierboven aansluit kun je met de volgende sketch testen of de servo goed werkt met de standaard functies van Arduino:
Met wat geluk zie je met deze sketch de servo van 0 naar 180 graden gaan (en weer terug).
Maar in de praktijk blijkt dat niet alle servos hetzelfde zijn, de aansturing verschilt per merk en type. Hoe je dat oplost laat ik zien in mijn video over servo's op Arduino.
In de video gebruik ik deze sketch om de signaallengte van de servo te vinden
Bekijk de video!
Geluid afspelen met Arduino
update 23 April 2015:Met behulp van een micro SD Card reader is het mogelijk om verschillende geluiden of muziekfragmenten af te spelen vanaf je Arduino project.
Ik gebruik de volgende Card Reader:
Ik kocht de reader bij BangGood.com, prijs: 5 stuks voor €6,96 (prijs is van augustus 2015)
SD Card Reader aansluiten op arduino
De card reader heeft een S.P.I. interface, we maken gebruik van de standaard clock en datalijnen (CLK, MOSI en MISO)
De CS (Slave select) pin mag je zelf kiezen, ik neem pin 4.
Software
Voor de software ga je naar GitHub.com en je gebruikt de zoekterm TRMPCM om de juiste library te vinden
Ik raad aan om de versie van GitHub.com te nemen maar hier is een lokale link: Link
Bij deze library zit een standaard voorbeeld met de naam basic. Dat kun je gebruiken om de setup te testen
WAV Files voorbereiden
Je kunt niet zomaar elk formaat afspelen met de TRMPCM library, de files moeten een specifiek formaat hebben. Ik gebruik Audacity om de files om te zetten in het juiste formaat. Audacity is gratis en beschikbaar voor windows, Linux en Mac.
Stap 1:
Open het geluidsfragment (begin met iets kleins!) en maximaliseer het volume.Stap 2:
Stel Audacity in op een sample frequency van 16kStap 3:
Bewaar of exporteer de file als other uncompressed, unsigned 8 bit, Microsoft Wav (zie afbeelding)Daarna is het slechts een kwestie van het wav bestand op de SD Card zetten de voorbeeld sketch een beetje aanpassen zodat de bestandsnaam op de SD Card overeen komt met de bestandsnaam in de sketch.
In de video hieronder leg ik het allemaal uit.
Tilt Sensor en Low Battery detection
Ik heb nog twee nieuwe functies voor de robot bedacht:
- Een tilt sensor, zodat hij weet wanneer hij omvalt of opgepakt wordt.
- Een Batterij monitor, zodat de robot zelf in de gaten houdt of de batterij nog genoeg kracht heeft.
Het Schema
Hier is het complete schema (Klik om het hele schema te zien en te downloaden)
CAD tekeningen voor het lichaam
Het lichaam van deze robot is een triplex frame met een skin van karton.
De invulling kartonnen buitenkant laat ik geheel aan jou over, maar het houten frame kun je hier downloaden: het hoofd
zijkanten van het lijf
voor en achterkant van het lijf
bovenkant van het lijf
onderkant van het lijf
subframe aan de onderkant (voor de motors en de wielen)
de wielen
Hier zijn wat fotos die helpen om de puzzle in elkaar te zetten :-).. Succes!
Final Sketch
Dit is de uiteindelijke sketch.