Bewegende En Lichtgevende Fantasie Boom

by Naotics in Circuits > Arduino

60 Views, 0 Favorites, 0 Comments

Bewegende En Lichtgevende Fantasie Boom

Screenshot 2023-05-18 143757.png
ITTT 3

Voor dit project heb ik me bezig gehouden met de interactie van blazen. Hiervoor heb ik een boom gemaakt gevuld met lampjes, die aangaan wanneer er in een microfoon geblazen wordt. Daarnaast gaan de blaadjes van de boom op en neer om doormiddel van een Servo.


Voor het werken aan dit project had ik nog nooit met een arduino gewerkt dus veel van dit alles was compleet nieuw voor me. Ik heb dan ook erg veel geleerd, zoals dat je altijd moet kijken hoeveel volt een specifiek lampje gebruikt en dat ze niet allemaal hetzelfde zijn. Ook heb ik meer geleerd over hoe Servo’s en motors werken en hoe je hier constructies mee kan maken. Daarnaast heb ik ook geleerd hoe je moet solderen, iets wat ik uiteindelijk nog wel erg leuk vond om te doen, ook al had ik dat totaal niet verwacht. Iets zelf helemaal in elkaar zetten en het dan ook te zien werken gaf me erg veel voldoening.

Supplies

Elektronische Componenten

-       Arduino Uno

-       Sound Detection Sensor Module (microfoon)

-       Jumpwires male to male (x15)

-       Jumpwires male to female (x3)

-       UV/paarse LED’s (x5)

-       Servo Mini

-       Prototype board

-       Breadboard

-       100 ohm Weerstand (x5)

-       Plakband of krimpkousen

 

Materialen voor behuizing

-       Buigbare rietjes (x11)

-       Touw

-       WC rol

-       IJzerdraad

-       Klei

-       Karton

-       IJslollystokjes (ongeveer 40)

-       Kratje of container

-       Crepepapier

 

Gereedschap

-       Soldeerbout met tin

-       Schaar

-       Striptang

-       Lijmpistool

Concepten

Pic 2.jpg
Pic 1.jpg
Pic 3.jpg

Voor dit project wou ik me graag bezig houden met het idee van blazen, gezien dit na mijn idee voor een interessante interactieve ervaring zou zorgen. Ik had verschillende ideeën om dit concept op uit te voeren. Allereerst wou ik voor een soort snowglobe gaan, en wanneer je daarop zou blazen, zou er een fan aangaan waardoor er sneeuw doorheen wordt geblazen (schets 1). Ik kwam er echter al snel achter, na het doen van wat research, dat het aansluiten van een fan op een Arduino lastiger is dan verwacht, waardoor ik met een ander concept moest komen. Al snel kwam ik op het idee van bomen terecht. Eerst dacht ik eraan om een landschap te maken met heen en weer wapperende bomen (schets 2), maar het idee van een boom waarvan de blaadjes heen en weer gaan bij het blazen leek me interessanter (schets 3). Mijn doel hierbij was om iets te maken waar mensen plezier bij hebben als ze ermee interacteren. Daarom ben ik uiteindelijk dan met dit idee verder gegaan.

Electronica Testen

Screenshot 2023-05-18 160737.png
IMG-2605.jpg
IMG-2607.jpg
IMG-2606.jpg
IMG-2579.jpg
IMG-2578.jpg

Als eerste ben ik begonnen met het testen van mijn elektronica. Mijn Sound Detection Sensor Module kwam al snel binnen, maar mijn LED-lampjes duurde iets langer, vandaar dat ik besloot om mijn eerste testen met wat LED’s te doen die ik nog in huis had van een andere kleur. Ik wou eerst al mijn lampjes in serie zetten, zodat ik maar 1 pin nodig had om de lampjes aan te sturen, wat me erg veel dradentroep zou besparen. Ik kwam er echter al snel achter dat dit niet ging werken, gezien de Arduino Uno een output heeft van 5V en elke rode LED ongeveer 1,9V gebruikt. Hierdoor kon ik er dus maar 2 in serie achter elkaar zetten. In deze versie heb ik dan ook 3 pins in gebruik voor mijn LED’s.

Toen ik de paarse/UV LED’s binnen kreeg en de rode LED’s in mijn circuit verving door deze, kwam ik erachter dat mijn tweede LED in de serie niet meer aanging. Na wat onderzoek gedaan te hebben kwam ik erachter dat deze LED’s een doorlaatspanning hebben van 3,1V in plaats van de 1,9V van de rode LED’s. Hierdoor kon ik ze dus niet in serie plaatsen en heb ik besloten om elke LED zijn eigen pin te geven, gezien ik genoeg pins over had. Dit zorgde er echter wel voor dat er meer jumpwires gebruikt moesten worden dan eerst verwacht.

Nadat ik alle lampjes verbonden had met mijn arduino, heb ik de Sound Detection Sensor Module aangesloten met 3 male to female jumpwires, zodat de lampjes aan zouden gaan bij het blazen in de microfoon. De microfoon was op het begin nog vrij sensitief, maar door aan de potentiometer die op de Sound Detection Sensor Module zat te draaien, kon ik dit gelukkig makkelijk aanpassen. De potentiometer is het blauwe kastje wat aan de Sound Detection Sensor Module zit, en door daar een kleine schroevendraaier in te steken en die een kwartslag te draaien kun je de gevoeligheid van de microfoon veranderen.

Als laatste heb ik ook de Servo Mini aangesloten en ervoor gezorgd dat deze heen en weer draait wanneer er in de microfoon geblazen wordt. De code die ik hiervoor heb gebruikt staat onderaan deze Instructable genoteerd. Op het diagram hierboven kun je zien welke kabel ik waar naartoe heb laten gaan om alles correct aan te sluiten.

Mechanisme Testen

unnamed.png

Voor het mechanisme waarmee de bladeren zouden moeten bewegen had ik verschillende ideeën. Allereerst wou ik de motor een ijslollystokje omhoog en naar beneden laten bewegen binnen een afgesloten buis. Dit stokje zou op zijn beurt weer een stokje aan tikken die verbonden zat aan de blaadjes, waardoor ze zouden bewegen (eerste schets). Dit bleek in praktijk niet echt goed te werken, omdat ik geen rekening had gehouden met hoe zwaar de blaadjes waren geworden, waardoor het stokje niet meer terug zou vallen naar beneden. Uiteindelijk ben ik met mijn tweede idee gegaan. Hiervoor heb ik draadjes aan de Servo geknoopt en deze verbonden met de blaadjes van mijn boom, zodat het draadje de hele tijd korter en langer wordt gemaakt door de draaibeweging van de Servo (tweede schets).

Solderen

IMG-2624.jpg
IMG-2626.jpg
ITTT 1

Omdat de lampjes naar boven in de boom geleidt moesten worden, moesten de lampjes gesoldeerd worden aan een jumpwire om ze genoeg lengte te geven om helemaal naar boven te kunnen. Hierbij heb ik een jumpwire gesoldeerd aan de negatieve kant van het LEDje, een 100 ohm weerstand gesoldeerd aan de positieve kant van het LEDje, en een jumpwire gesoldeerd aan de andere kant van de weerstand, zoals je kan zien in de afbeelding hierboven. Daarna heb ik alle jumpwires die verbonden waren aan de negatieve kant van de LEDjes aan elkaar gesoldeerd op een prototype board. Aan het uiteinde hiervan heb ik nog een jumpwire gesoldeerd die verbonden kan worden met de GND van de arduino. Ik heb extra veel tin toegevoegd op de prototype board omdat de jumpwires bleven breken doordat ze bestaan uit allemaal kleine fragiele draadjes.

Behuizing Bouwen

ITTT 2
IMG-2615.jpg

Nu was het tijd om de behuizing van de boom te gaan bouwen. Ik ben begonnen met een WC rol. Deze heb ik opengeknipt door de lengte en daarna weer vastgeplakt zodat de WC rol een kegelvorm had. Daarna heb ik een aantal rietjes gepakt en de buigbare stukken ervan afgeknipt. Deze stukken heb ik daarna omwikkeld met ijzerdraad en doormiddel van een lijmpistool vastgeplakt aan de zijkant van de WC rol (zie de afbeelding hierboven). Zorg ervoor dat je genoeg ijzerdraad gebruikt en de rietjes goed omwikkelt. In een eerdere versie had ik dit niet gedaan, waardoor de rietjes niet stevig genoeg waren om de kracht van de bewegende bladeren te weerstaan. Dit zorgde ervoor dat de rietjes hevig heen en weer zwongen en soms zelfs afbraken. Als laatste heb ik de Servo in het midden aan de bovenkant van de WC rol vastgedrukt en heb ik de draadjes naar beneden door de WC rol geleidt. Zorg ervoor dat als de Servo gaat draaien, dat hij niet in contact komt met zowel de rietjes als het ijzerdraad. Dit kan ervoor zorgen dat je Servo niet draait of zelfs kapot gaat.

Motor Verbinden

ITTT 5
IMG-2623.jpg

Hierna ben ik bezig gegaan met het daadwerkelijke mechanisme. Ik heb van klei 6 balletjes gemaakt en hier een oogje in vast gemaakt. Deze heb ik voor een dag laten drogen. Daarna heb ik een touw door de rietjes heen geleidt en deze aan de ene kant aan de Servo vastgeknoopt, en aan het andere uiteinde heb ik een van de klei balletjes eraan geknoopt. De reden dat ik ervoor heb gekozen om klei ballen te maken in plaats van gewoon bloemetjes op het touw te plakken, is omdat het touw gewicht nodig had om weer naar zijn originele plek toe te komen. Ik heb de Servo eerst laten draaien zonder dat er gewicht aan het touw zat, en door de wrijving met het rietje komt het touw dan niet terug op zijn originele lengte en blijft het opgekropt bij de ingang van het rietje zitten. Toen ik er een klei balletje onder aan had gehangen, was er genoeg gewicht om het touw weer door het rietje terug te forceren.

Lampjes in De Boom Monteren

IMG-2628.jpg
IMG-2629.jpg
IMG-2632.jpg

Nadat het mechanisme werkte, werd het tijd om de lampjes toe te voegen aan de boom. Ik heb ervoor gekozen om meerdere nieuwe takken te maken en deze aan het uiteinde een lampje te geven. Om deze takken te maken heb ik nogmaals het buigbare gedeelte van de rietjes gebruikt. Het was echter iets ingewikkelder om deze takken te maken, gezien de LED-lampjes net niet door een rietje paste. Hierdoor heb ik ervoor gekozen eerst een gaatje te maken in de WC rol en het draad met het LED-lampje er doorheen te drukken. Daarna heb ik een rietje opengeknipt door de lengte, hem om het draad en de weerstand heen gewikkeld zodat het LED-lampje er nog net bovenuit stak, en daarna weer vastgeplakt met een lijmpistool. Voordat ik dit heb gedaan, heb ik de beide gesoldeerde kanten van het lampje omwikkelt met plakband zoals je op een van de foto’s hierboven kan zien. Dit heb ik gedaan omdat ik geen krimpkousen had voor isolatie. Als ik dit niet had gedaan, waren de twee kanten van het LED-lampje tegen elkaar aan gekomen in het rietje en had dat ervoor gezorgd dat het LED-lampje niet langer zou werken.

Wegwerken En Versieren

Screenshot 2023-05-18 143757.png

De allerlaatste stap was het mooi maken van dit project en het wegwerken van alle elektronische componenten.

Voor de arduino en het prototype board heb ik een bakje gemaakt van ijslollystokjes, waaraan ik een aantal rechtopstaande stokjes vast heb gemaakt. Dit bakje heb ik vervolgens in een kratje gezet en afgedekt met karton. Ik heb een zijkant van dit bakje opengehouden om de arduino eruit te kunnen halen mocht het nodig zijn. Ook kan je het bakje optillen om zo aan de binnenkant te kijken om te zien hoe de elektronica van mijn project eruit ziet.

Om de behuizing van de boom heen en op het karton heb ik klei gebruikt om de boom wat meer vorm te geven en vast te zetten. Ik heb hierbij gekozen voor klei omdat dit een makkelijk en flexibel medium is waardoor ik me eerst kon focussen op het werkend maken van al mijn mechanismes en later pas de finishing touches kon doen. Als ik gebruik had gemaakt van bijvoorbeeld een 3D printer, had ik de onderdelen er nooit goed ingekregen.

Ik heb voor de bladeren gebruik gemaakt van crete papier waarvan ik kleine bloemetjes heb gemaakt. Dit heb ik gedaan door stroken te knippen en ze op te rollen. Deze heb ik vastgemaakt op zowel de bladerballen als de bovenkant van de boom met een lijmpistool. Omdat ik geen klei over de motor wou gebruiken omdat er dan een kans bestond dat er iets tussen zou komen en hij niet meer zou draaien, heb ik ervoor gekozen om deze ook te verbergen met bloemen.

Code

#include <Servo.h>


Servo myServo;


//Making ints for the pins to which my components are connected, set to constant so they can't be changed later on in the code by accident

const int MIC_PIN = A0;

const int LED_PIN1 = 13;

const int LED_PIN2 = 12;  

const int LED_PIN3 = 10;  

const int LED_PIN4 = 9;  

const int LED_PIN5 = 8;

 

//Create a int for the threshold at which the microphone sends a signal

const int THRESHOLD = 400;

void setup() {

  //setting up the pins to which my components are connected

  pinMode(LED_PIN1, OUTPUT);

  pinMode(LED_PIN2, OUTPUT);

  pinMode(LED_PIN3, OUTPUT);

  pinMode(LED_PIN4, OUTPUT);

  pinMode(LED_PIN5, OUTPUT);

  pinMode(LED_PIN6, OUTPUT);

  pinMode(LED_PIN7, OUTPUT);

  pinMode(LED_PIN8, OUTPUT);

  myServo.attach(11);

}

 

void loop() {

  //Creates and int for the current mic input levels from 0-658

  int micValue = analogRead(MIC_PIN);

 

  //tells the arduino that if the input levels from the mic are higher than the threshold, to do the following

  if (micValue > THRESHOLD) {      

 

    //turns on all the LED's  

    digitalWrite(LED_PIN1, HIGH);

    digitalWrite(LED_PIN2, HIGH);

    digitalWrite(LED_PIN3, HIGH);

    digitalWrite(LED_PIN4, HIGH);

    digitalWrite(LED_PIN5, HIGH);

    digitalWrite(LED_PIN6, HIGH);

    digitalWrite(LED_PIN7, HIGH);

    digitalWrite(LED_PIN8, HIGH);

 

    //Turns the servo motor to 90 degrees and back to 0 4 times with a short delay

    myServo.write(90);  

    delay(400);

    myServo.write(0);

    delay(400);

    myServo.write(90);

    delay(400);

    myServo.write(0);

    delay(400);

    myServo.write(90);  

    delay(400);

    myServo.write(0);

    delay(400);

    myServo.write(90);

    delay(400);

    myServo.write(0);

    delay(400);

   

    //longer delay to keep the lights on a little longer

    delay(1000);

   

    //tells the arduino that if the input levels of the microphone aren't higer than the treshold, to do the following

  } else {  

 

    //turn off all the LED's

    digitalWrite(LED_PIN1, LOW);

    digitalWrite(LED_PIN2, LOW);  

    digitalWrite(LED_PIN3, LOW);

    digitalWrite(LED_PIN4, LOW);

    digitalWrite(LED_PIN5, LOW);  

    digitalWrite(LED_PIN6, LOW);

    digitalWrite(LED_PIN7, LOW);  

    digitalWrite(LED_PIN8, LOW);

  }

 

  //short delay between measuring the inputs of the mic and turning the mechanism back on

  delay(100);