Wiebelbot
De wiebelbot gaat aan het dansen bij elk signaal van een tv-afstandsbediening. Een microcontroller en een infrarood (IR) ontvanger detecteren het signaal en sturen een servo aan. De bouw kan met wat eenvoudig soldeerwerk. Het programma kan eenvoudig zijn, of uitgebreid worden om op specifieke commando’s van specifieke afstandsbedieningen verschillend te reageren. De bouwtijd van 2u omvat niet het schrijven van een eigen programma.

Wat hebben we nodig?
Benodigdheden

Gereedschappen

Deel 1 – De microcontroller programmeren
Installeer de Arduino IDE
De microcontroller wordt geprogrammeerd met de Arduino IDE software. Hier vind je de verschillende versies naargelang je type computer en installatie instructies: https://www.arduino.cc/en/software. Voor dit project werd versie 1.8.13 gebruikt. Als je een andere versie gebruikt kan het zijn dat het bijgesloten voorbeeldprogramma niet werkt.
De microcontroller wordt geprogrammeerd met de Arduino IDE software. Hier vind je de verschillende versies naargelang je type computer en installatie instructies: https://www.arduino.cc/en/software. Voor dit project werd versie 1.8.13 gebruikt. Als je een andere versie gebruikt kan het zijn dat het bijgesloten voorbeeldprogramma niet werkt.
Selecteer het juiste microcontrollerbord
De Arduino IDE compiler dient te weten met welke microcontroller de sketch zal gebruikt worden. Je kiest de microcontroller in het menu Hulpmiddelen > Board (Arduino Nano).
Kopieer de code (sketch)
Het programma voor een Arduino microcontroller heet een “sketch”. In het voorbeeld is na de // commentaar toegevoegd om het uit te leggen. Tussen { } staat code die samen hoort.
Je kan deze code in een lege Arduino sketch kopiëren of de bijgesloten sketch openen.
Je kan deze code in een lege Arduino sketch kopiëren of de bijgesloten sketch openen.
Zet de sketch op de microcontroller
• Gebruik de USB-kabel om de microcontroller te verbinden met je computer.
• Het is voor de IDE noodzakelijk om te weten met welke poort van je computer de microcontroller verbonden is.
• Je kiest de poort in het menu Hulpmiddelen > Poort > (bij twijfel proberen tot je de juiste vindt).
• Klik op het bolletje met een pijltje naar rechts (Uploaden).
• Het is voor de IDE noodzakelijk om te weten met welke poort van je computer de microcontroller verbonden is.
• Je kiest de poort in het menu Hulpmiddelen > Poort > (bij twijfel proberen tot je de juiste vindt).
• Klik op het bolletje met een pijltje naar rechts (Uploaden).
Deel 2 – Solderen
Waarvoor dient de condensator?
De IR ontvanger vraagt een stabiele spanning. De servo in het circuit kan echter bij opstarten de spanning wat doen schommelen. Daarom voegen we een condensator toe vlakbij de ontvanger: we solderen die op de + (VCC) en – (GND). De functie van de “benen” van de IR ontvanger zie je hieronder. De – van de condensator is op de zijkant aangeduid.
De IR ontvanger vraagt een stabiele spanning. De servo in het circuit kan echter bij opstarten de spanning wat doen schommelen. Daarom voegen we een condensator toe vlakbij de ontvanger: we solderen die op de + (VCC) en – (GND). De functie van de “benen” van de IR ontvanger zie je hieronder. De – van de condensator is op de zijkant aangeduid.

Verbind de condensator
Verbindt aan elk van de “beentjes” één van de jumperkabeltjes. Voor een betrouwbare werking kan je die best solderen, nadat je zwarte plasticjes van de metalen connectoren afgehaald hebt (zie de volgende stap voor een tip om dat gemakkelijk te doen met een mesje). Bewaar één van die zwarte plasticjes voor het volgende deel.

Isoleer beentjes met isolatietape
Noteer welke kleur kabeltje op welk beentje zit (of kies logische kleuren als rood en zwart voor +/VCC) en -/GND). Na het solderen isoleer je alle “beentjes” ten opzichte van elkaar. Zorg dat je zeker geen kortsluitingen kan krijgen.

Deel 3 – De servo voorbereiden
Demonteer de servo
Om straks de servo juist aan te sluiten dien je de oranje (soms witte) kabeltje uit de stekker te halen. Met de punt van een mes doe je het plastic lipje omhoog zodat je het kabeltje met de metalen connector uit de stekker kan trekken. Het zwarte plasticje dat je spaarde in het vorige deel doe je nu over de connector van de losgemaakte draad.
Om straks de servo juist aan te sluiten dien je de oranje (soms witte) kabeltje uit de stekker te halen. Met de punt van een mes doe je het plastic lipje omhoog zodat je het kabeltje met de metalen connector uit de stekker kan trekken. Het zwarte plasticje dat je spaarde in het vorige deel doe je nu over de connector van de losgemaakte draad.

Bevestig de massa
Maak het gewicht vast aan het uiteinde van het opzetstuk van de servo. Dat gaat het gemakkelijker als je het eerst met een ijzerdraadje vastmaakt en dan met smeltlijm. Zorg dat het gewicht niet in de weg zit om het opzetstuk op de servo te zetten en vast te schroeven.
Deel 4 – Aansluiten en testen
Koppel de condensator en servo met de Arduino
De rode draad van de servo sluit je aan op de Vin pin en de bruine of zwarte draad op de GND pin ernaast. De oranje (of witte) draad gaat op de pin die in de sketch gekozen is om de servo aan te sturen (Pin D3 in het bijgesloten voorbeeld).
De +/VCC kabel van de IR ontvanger gaat op de 5V pin en de -/GND kabel gaat op de GND pin aan de overkant. De signaalkabel van de IR ontvanger gaat op de pin die in de sketch daarvoor gekozen is (Pin D2 in het bijgesloten voorbeeld).
De rode draad van de servo sluit je aan op de Vin pin en de bruine of zwarte draad op de GND pin ernaast. De oranje (of witte) draad gaat op de pin die in de sketch gekozen is om de servo aan te sturen (Pin D3 in het bijgesloten voorbeeld).
De +/VCC kabel van de IR ontvanger gaat op de 5V pin en de -/GND kabel gaat op de GND pin aan de overkant. De signaalkabel van de IR ontvanger gaat op de pin die in de sketch daarvoor gekozen is (Pin D2 in het bijgesloten voorbeeld).
Test het programma
Bij correcte werking zal de servo bij elk indrukken van een knop op de afstandsbediening even heen en weer bewegen. Blijf je een knop indrukken dan zal de servo ook blijven bewegen. Omdat de eenvoudige sketch geen onderscheid maakt tussen de ontvangen codes kan de servo heel soms ook gaan bewegen door een ander signaal dan van je eigen afstandsbediening.
Sluit aan op een USB-voeding (powerbank of stekkervoeding) die minstens een stroom van 1A kan leveren Een servo heeft typisch zelf 0,5A nodig en de Arduino en IR ontvanger hebben ook nog stroom nodig. Als de USB-voeding de nodige stroom niet kan leveren, kan de IR ontvanger en/of de Arduino niet verder werken. Vaak blijft de servo dan bewegen zonder dat er een IR-signaal ontvangen wordt.
Wanneer het wel werkt zonder gewicht op de servo en niet met, dan is de USB-voeding zeker niet krachtig genoeg. Maar ook als het zonder gewicht niet werkt is het best een krachtiger USB-voeding te proberen.
Sluit aan op een USB-voeding (powerbank of stekkervoeding) die minstens een stroom van 1A kan leveren Een servo heeft typisch zelf 0,5A nodig en de Arduino en IR ontvanger hebben ook nog stroom nodig. Als de USB-voeding de nodige stroom niet kan leveren, kan de IR ontvanger en/of de Arduino niet verder werken. Vaak blijft de servo dan bewegen zonder dat er een IR-signaal ontvangen wordt.
Wanneer het wel werkt zonder gewicht op de servo en niet met, dan is de USB-voeding zeker niet krachtig genoeg. Maar ook als het zonder gewicht niet werkt is het best een krachtiger USB-voeding te proberen.
Deel 5 – Samenbouw en testen
Vijl een opening in de transparante bal.
In één van de balhelften vijl je opening in de rand waar de USB-kabel in past. Controleer of de bal sluit met de kabel er doorheen.
Lijm de onderkant van de servo op de binnenkant van de ene halve bol, zodanig dat het gewicht buiten de halve bol komt.
In één van de balhelften vijl je opening in de rand waar de USB-kabel in past. Controleer of de bal sluit met de kabel er doorheen.
Lijm de onderkant van de servo op de binnenkant van de ene halve bol, zodanig dat het gewicht buiten de halve bol komt.

Sluit de bal
Sluit de Arduino aan op de USB-kabel en lijm alles vast zodanig dat er genoeg plaats overblijft opdat het gewicht kan bewegen wanneer je de twee helften juist op elkaar plaatst.
Mogelijks moet je de USB-kabel waar die uit de bol komt wat verbuigen zodat de bol blijft liggen met het gewicht naar beneden.
Sluit de USB-voeding terug aan en test de werking.
Decoreer naar wens, maar zorg dat de onderkant kan blijven rollen en dat de bovenkant niet te zwaar wordt.
Wanneer je de bal verft of bedekt, blijf controleren of de wiebelbot nog reageert op de afstandsbediening, maar je zal werken dat het signaal ook nog door ondoorzichtige verf e.d. gaat.
Mogelijks moet je de USB-kabel waar die uit de bol komt wat verbuigen zodat de bol blijft liggen met het gewicht naar beneden.
Sluit de USB-voeding terug aan en test de werking.
Decoreer naar wens, maar zorg dat de onderkant kan blijven rollen en dat de bovenkant niet te zwaar wordt.
Wanneer je de bal verft of bedekt, blijf controleren of de wiebelbot nog reageert op de afstandsbediening, maar je zal werken dat het signaal ook nog door ondoorzichtige verf e.d. gaat.
Link met STEM
Enkele STEM-weetjes
Het signaal van een tv-afstandsbediening werkt op een vaste golflengte, typisch 940 nanometer, dus voorbij het zichtbaar licht 400 nm (violet) en 750 nm (rood). Zonlicht bevat ook deze golflengte. Infraroodstaling is immers warmtestraling en daarom werkt dit soort afstandsbedieningen minder goed buiten.
Om het signaal van natuurlijke IR straling te onderscheiden wordt het heel snel aan- en uitgeschakeld (gemoduleerd) en dit 38.000 keer per seconde (dus een frequentie van 38kHz). De IR ontvanger heeft een ingebouwde filterfunctie die alleen signaal met (ongeveer) die frequentie door laat.
In deze Instructable wordt een kleiner wiebelbot beschreven op basis van een pingpongbal en een Attiny microcontroller. De kleine afmetingen maken de bouw wel een stuk uitdagender.
Meer over het uitlezen van de codes van de afstandsbediening met Arduino vind je o.m. hier:
https://opencircuit.be/Blog/InfraRed-IoT-Lerende-Universele-Afstandbediening
en hier:
https://jarnobaselier.nl/je-eigen-arduino-infrarood-afstandsbediening/
Het signaal van een tv-afstandsbediening werkt op een vaste golflengte, typisch 940 nanometer, dus voorbij het zichtbaar licht 400 nm (violet) en 750 nm (rood). Zonlicht bevat ook deze golflengte. Infraroodstaling is immers warmtestraling en daarom werkt dit soort afstandsbedieningen minder goed buiten.
Om het signaal van natuurlijke IR straling te onderscheiden wordt het heel snel aan- en uitgeschakeld (gemoduleerd) en dit 38.000 keer per seconde (dus een frequentie van 38kHz). De IR ontvanger heeft een ingebouwde filterfunctie die alleen signaal met (ongeveer) die frequentie door laat.
In deze Instructable wordt een kleiner wiebelbot beschreven op basis van een pingpongbal en een Attiny microcontroller. De kleine afmetingen maken de bouw wel een stuk uitdagender.
Meer over het uitlezen van de codes van de afstandsbediening met Arduino vind je o.m. hier:
https://opencircuit.be/Blog/InfraRed-IoT-Lerende-Universele-Afstandbediening
en hier:
https://jarnobaselier.nl/je-eigen-arduino-infrarood-afstandsbediening/





