Bob De Vogel
Hallo allemaal! Hierbij mijn project genaamd "Bob De Vogel"!
Dit is een fidget robot geïnspireerd van een Furby.
Supplies
Arduino onderdelen:
- Arduino UNO
- 9V Batterij
- Batterijclip
- Drukknop
- Knop kapje
- 4x Micro Servo 9g SG90
- Joystick module OT620-B36
- ~80x Jumper wires (M-M / F-F / M-F)
- 2x Led diode (blauw en geel)
Bouwen:
- Wit wol (300 m)
- Een kam om de wol mee uit te kammen
- Binddraad
- Lijmpistool
- Soldeer apparaat
- Dubbelzijdige tape
- ~120x Houten wegwerpstaafjes
- 2x Houten dozen
- Schaar
- 8x Schroeven
- Schroevendraaier
- 30 x Plastic elastiekbandjes
Ideeën Bedenken...
Toen ik begon na te denken over ideeën voor dit project, had ik moeite om iets unieks en leuks te bedenken. Mijn eerste idee was om een piano te maken, omdat ik nieuwsgierig was naar het gebruik van een Arduino om er één te maken. Toen ik mijn interesses verder ging verkennen, stuitte ik op een video waarin een Furby orgel werd getoond.
https://www.youtube.com/watch?v=GYLBjScgb7o
Vervolgens heb ik nagedacht over de mechanismen achter het besturen van een piano waardoor ik de mogelijkheid overwoog om een Furby te besturen, vooral de jaren '90 versie. Je hebt eigenlijk een soort van controle over een piano en die zou ik dan eigenlijk ook willen hebben over een Furby, meestal zijn ze wat moeilijk in te schatten dus het leek me interessant om daar eens controle over te hebben. Na wat onderzoek ontdekte ik dat verschillende mensen in het verleden een Arduino hebben gebruikt om een Furby te besturen. Als iemand die al gefascineerd is door robots, verlegde ik mijn aandacht naar Hatchanimals, omdat die relatief een eenvoudiger bouw hebben en makkelijker te begrijpen zijn dan Furbies. Ik vond het idee echter een beetje te simpel omdat andere dit ook al in het verleden hadden gedaan en wou liever met iets uitdagender komen.
Toen ik met een Furby aan het prullen was, kreeg ik het idee om een robotje te maken dat iemand zelf kan besturen, zoals een fidget toy. Ik besloot er een vogel van te maken omdat ik een voorliefde heb voor vogels maar ook omdat Furbies en Hatchanimals eigenschappen hebben die lijken op die van vogels, wat ik inspirerend vond.
Wat Wil Ik Dat De Vogel Doet?
Nadat ik een idee had wat ik precies wou gaan maken ben ik gaan kijken naar hoe ik het wou gaan maken en welke onderdelen ik wou gebruiken.
Het bedenken van ideeën voor mijn vogelrobotproject begon met het verkennen van de inhoud van de Arduino-kit die we op school hadden gekregen. Terwijl ik de verschillende onderdelen bekeek, stuitte ik op de servo en ik kreeg meteen een ingeving. De veelzijdigheid van de servo fascineerde me, want hij kon voor talloze doeleinden worden gebruikt. De uitdaging was echter om uit te vinden hoe ik hem in mijn vogel kon integreren. Toen ik meer tijd besteedde aan het spel met de servo, drong het tot me door dat hij gebruikt kan worden om de vleugels van de vogel te besturen. Het mechanisme van de servo was perfect om de slagbeweging van vogelvleugels na te bootsen.
Na het verkennen van de mogelijkheden om een servo te gebruiken voor de vleugels, besefte ik dat het belangrijk zou zijn om het de gebruiker gemakkelijk te maken om de beweging te controleren. Hierdoor ging ik op zoek naar een geschikte besturingsinterface en ontdekte ik de joystickmodule. Als iemand die zelf graag met joysticks speelt en prul, vond ik dit de perfecte oplossing voor het besturen van de vleugels.
Om ervoor te zorgen dat de gebruiker de vleugels gemakkelijk met de joystick kan besturen, heb ik onderzocht hoe ik de joystickmodule op de juiste manier kan verbinden met de servomotor. Hierdoor kwam ik bij deze video die ik heb gebruikt voor de servo's.
https://www.youtube.com/watch?v=kA_pbMR6jVs
Hoe het er uiteindelijk uit zag: https://www.youtube.com/watch?v=08pOUuLu9jk
Nadat ik het mechanisme voor de vleugels had bedacht, richtte ik me op het hoofd van Bob. Ik brainstormde en overwoog verschillende materialen voor het hoofd, en uiteindelijk kwam ik op het idee om binddraad te gebruiken. Ik bedacht dat binddraad kon worden gebruikt om een skeletstructuur te maken voor de kop van de vogel die op en neer kon worden bewogen met behulp van twee servo's.
Om dit idee te testen, begon ik te experimenteren met binddraad en servo's. Ik realiseerde me dat de combinatie van deze twee elementen perfect werkte en de kop de flexibiliteit en beweging gaf die ik zocht. Met behulp van de joystickmodule kon ik de bewegingen van het hoofd besturen, wat een extra laag van interactiviteit toevoegde aan Bob.
Toen ik eenmaal klaar was met de kop en de vleugels van de vogel besefte ik dat de robot nog steeds niet compleet was, en dus bog ik weer te brainstormen over extra mogelijkheden om toe te voegen. Aanvankelijk probeerde ik beweging in de snavel aan te brengen met behulp van een klein mechanisme dat servo's zou gebruiken om de snavel te bewegen, maar helaas waren mijn pogingen niet succesvol. Ik besloot in plaats daarvan inspiratie te zoeken bij andere bronnen. Toen ik de nieuwere versies van Furbies en Hatchanimals bestudeerde, zag ik dat de ogen van dit speelgoed oplichten als reactie op bepaalde emoties. Deze observatie bracht me op een idee en ik begon de mogelijkheid te onderzoeken om lichtjes te gebruiken voor de ogen van de vogel. Bovendien herinnerde ik me dat je bij de Hatchanimal op zijn snavel kon drukken om een bepaalde emotie op te wekken. Op basis van dit concept dacht ik erover om de ogen van de vogel te laten oplichten door op zijn snavel te duwen.
Bouwen Van Het Hoofd
Nu dat ik de basis had voor het hoofd gebruikten ik wol om rond de bindraad te binden zodat het langzaam een hoofd zal vormen. Nadat ik dit had, had ik het begin van het hoofd. Om ervoor te zorgen dat het hoofd blijft vast zitten maar dat de servo's toch nog wat beweging mogelijkheid hebben gebruikten ik een autospons waar ik een deel van de spons had uitgesneden om de servo erin te zetten, hier plakte ik de servo in met een lijmpistool.
Ik gebruikten hierbij nog wat houten wegwerpstokjes voor wat stabiliteit.
Bouwen Van De Vleugels
Voor de vleugels heb ik hetzelfde gedaan als de servo's voor het hoofd. Ik zette de servo's vast in een spons zodat er stevigheid was, en plakte deze aan de rest van het figuur.
Ik heb de vleugels gemaakt door vier houten wegwerpstaafjes op elkaar te stapelen, daar een schroef doorheen te doen zodat ik die aan de servo kon schroeven en op de houten staafjes wat uitgekamt wol te plakken.
Bouwen Van De Snavel En Ogen
Doordat het hoofd was gemaakt van wol en binddraad kon ik gemakkelijk de draden waar de lampjes en knop aanhingen voorzichtig in het hoofd duwen zodat ze door de andere kant er uit kwamen.
De eerste knop die ik gebruikte was te onstabiel en te moeilijk om in te drukken waardoor ik ben overgestapt naar een knop die een iets langere toets had waardoor het makkelijker in te duwen was.
Ik heb de snavel gemaakt met gebruik te makken van een kapje van een drukknop en die aan de knop vast te lijmen en met lijm en permanente stift de vorm van een snavel te maken en die zwart te maken.
Video van de knop en de lichtjes voordat ze in het hoofd waren gezet: https://youtube.com/shorts/Yj1ZvwKt-rQ?feature=share
Joystick Module
Voordat ik alle vacht erop ging plakken heb ik een klein platformpje gemaakt voor het lichaam van de vogel op te zetten aan de hand van wat houten wegwerpstokjes aan elkaar te plakken en wol over het platform te binden. Hierdoor kon ik het lichaam erop plakken en kon ik gaan starten met de joystick module.
Ik haalde de draaden voor de joystick module door de plek zoals u kan zien op de tweede foto, en gebruikten een klein doosje om de joystick module met schroeven op te zetten.
Versieren
Nadat ik alle onderdelen aan de vogel had toegevoegd werd het tijd om de vogel er goed te laten uitzien. Dit deed ik aan de hand van wat houten wegwerpstokjes over de spons heen te plakken en de kleine doosjes en kleine witte pompometjes te maken en die op de vogel te plakken.
De vogel is geïnspireerd van kleine witte staartmeesjes.
Solderen
Tijdens dit project is er niet veel gesoldeerd, dit komt doordat ik een allergie heb voor tin waardoor het solderen moeilijk ging en ik de hele tijd tijdens het solderen uitslag kreeg. Ik had het met handschoenen geprobeerd maar helaas werkten dit niet omdat ik ook uitslag kreeg in m'n gezicht. Ik heb dit tijdens het project aangegeven aan mijn leerkracht die mij aanraden om het mogelijk aan andere mensen te vragen die dan voor mij zouden solderen. Helaas hadden vele het druk en heb ik moeten vragen aan mijn ouderen broer. Helaas werkten het gesoldeerde plaatje niet en ontplofte de batterij dus ik heb er toen voor gekozen om het maar op het breadboard te houden.
Ik heb dit breadboard dan in de doos geplakt met de Arduino en de doos achter de vogel gelegd.
Uiteindelijke Versie!
En hierbij dan de uiteindelijke versie!
Alle Code Voor Het Project
//add the servo library
#include <Servo.h>
//define the servo
Servo servo1; //vleugel
Servo servo2; //hoofd
Servo servo3; //hoofd
Servo servo4; //vleugel
//define joystick pins (Anolog)
int joyX = 0;
int joyY = 1;
//variables to read the values from the analog pins
int joyVal;
int buttonPin = 9; //de pin voor de knop
int ledPin = 12; //pin voor één van de lichtjes voor de ogen
int ledPin_2 = 13; //pin voor één van de lichtjes voor de ogen
void setup() {
//attaches the servo on pins PWM 3
servo1.attach(3);
servo2.attach(5);
servo3.attach(7);
servo4.attach(10);
pinMode(buttonPin, INPUT_PULLUP); // PULL UP Om ervoor te zorgen dat het lichtje niet ging knipperen
//De knop is de input voor de lichtjes waardoor de lichtjes de output worden.
pinMode(ledPin, OUTPUT);
pinMode(ledPin_2, OUTPUT);
}
void loop() {
joyVal = analogRead(joyX); //Als de joystick op de x-as wordt beweegt, beweeg één van de servo's die wordt gebruikt voor de vleugels
joyVal = map(joyVal, 0, 1023, 180, 0); //Servo moet van 180 naar 0 kunnen bewegen omdat deze servo omgedraait staat en ik wil dat de servo's hetzelfde bewegen en niet de ene andersom
servo1.write(joyVal); //laat de servo bewegen als de joystick wordt gebruikt
joyVal = analogRead(joyX); //Als de joystick op de x-as wordt beweegt, beweeg één van de servo's die wordt gebruikt voor de vleugels
joyVal = map(joyVal, 0, 1023, 0, 180); //Servo moet van 0 naar 180 graden kunnen bewegen
servo4.write(joyVal); //laat de servo bewegen als de joystick wordt gebruikt
joyVal = analogRead(joyY);//Als de joystick op de y-as wordt beweegt, beweeg één van de servo's die vast zit aan het hoofd
joyVal = map(joyVal, 0, 1023, 0, 180); //Servo moet van 0 naar 180 graden kunnen bewegen
servo2.write(joyVal);//laat de servo bewegen als de joystick wordt gebruikt
joyVal = analogRead(joyY);//Als de joystick op de y-as wordt beweegt, beweeg één van de servo's die vast zit aan het hoofd
joyVal = map(joyVal, 0, 1023, 0, 180);//Servo moet van 0 naar 180 graden kunnen bewegen
servo3.write(joyVal);//laat de servo bewegen als de joystick wordt gebruikt
delay(15);
//led
int buttonState = digitalRead(buttonPin);//lees de buttonpin's activiteit
if (buttonState == LOW)//als knop wordt ingeduwt
{
digitalWrite(ledPin, HIGH); //zet de led aan
digitalWrite(ledPin_2, HIGH);
Serial.println("Led high");
} else { //zo niet zet de led uit
digitalWrite(ledPin, LOW);
digitalWrite(ledPin_2, LOW);
Serial.println("Led low");
}
}
Reflectie
Na afronding van het project ben ik zeer tevreden met het resultaat. Hoewel het ingewikkelder had kunnen zijn, ben ik tevreden met het resultaat aangezien het de eerste keer was dat ik met een Arduino werkte en onderweg nog veel moest leren. De ervaring om iets te maken wat mensen kunnen aanraken en waarmee mensen kunnen communiceren was fascinerend voor mij. Gewoonlijk worden mijn projecten online of digitaal uitgevoerd dus dit was een verfrissende verandering.
Het hele proces van werken aan Bob was erg leuk en ik genoo vooral van de kans om uit mijn comfortzone te stappen en me met iets heel anders bezig te houden. Het was een grote uitdaging, maar ook een belangrijke leerervaring.
Ik was echter teleurgesteld dat ik niet helemaal kon solderen vanwege mijn tin allergie, die ik tijdens het project ontdekte. Toch blijf ik hopen dat ik enkele alternatieven kan vinden en dit kan oplossen voor hopelijk volgende projecten!