Sleep Extinguisher
Ik zoek in mijn ontwerpen vaak naar manieren om anderen te helpen. Ik maak graag interactieve ontwerpen die bijvoorbeeld emotioneel inzicht kunnen bieden of die mensen samen kunnen brengen. Van digitaal werk naar emotie, de brug tussen twee ontastbare elementen, fascineert mij.
Het maken van een fysiek mechanisme was volledig nieuw voor mij en ik wilde daarom ook kijken naar een nieuw uitgangspunt: Ik besloot dat ik een brug wilde leggen tussen twee tastbare elementen. Ik ging op zoek naar een manier waarop ik met een fysiek ontwerp, een fysiek product kon helpen.
Na te hebben gekeken naar allerlei alledaagse hulpmiddelen en de manieren waarop wij die hulpmiddelen gebruiken, kwam ik op het idee. Ik wilde iets gaan maken dat hetgene zou helpen dat de gehele wereld haast iedere dag helpt, maar wat al te vaak genegeerd wordt en haast nooit gewaardeerd; de wekker.
De Sleep Extinguisher moet de wekker helpen met het bereiken van zijn/haar doel; het wekken van de slapende mens.
Supplies
Arduino:
- Arduino UNO + USB kabel
- HvA Geluidssensor
- Micro Servo
- Microschakelaar
- Jumper kabels
Behuizing:
- Hout
- Trechter
- Siliconen rietje
- Nagels & spijkers
- Houtlijm
- Verf
Iteratie 1
In eerste instantie was het idee dat de wekker van de gebruiker af zou gaan en als de gebruiker drie keer zou sluimeren, zou de Arduino worden aangestuurd om de knop van de spuitfles in te drukken, waardoor er vloeistof met een geur uit zou worden gespoten.
Voor de vloeistof zou ik dan onderzoek doen naar geuren die zorgen voor activerende stoffen in het brein of het zou een geur zijn die je brein op langere termijn moet associëren met opstaan, waardoor je uiteindelijk eerder opstaat.
Helaas bleek, na overleg met Tim, dat het indrukken van de knop van een spuitfles vrij veel kracht vraagt. Hij adviseerde om te zoeken naar een andere manier.
Omdat de spuitfles waarschijnlijk niet ging lukken, besloot ik ook iets te doen met water in plaats van geur. Dit besloot ik, omdat het ontwerp waarschijnlijk een grotere hoeveelheid aan vloeistof los zou laten dan een spuitfles, waardoor een chemische geur wellicht niet veilig zou zijn.
Iteratie 2
Ik kwam op het idee om een rietje te gebruiken die ik gebogen in een flesje zou steken. De microfoon zou de wekker oppikken en de Arduino zou een signaal sturen om de Servo een bepaalde beweging te laten maken, waarna het rietje naar beneden wordt geduwd en er water uit stroomt. Ik tekende dit vervolgens voor mezelf uit.
Ik ging op zoek naar hoe ik dit kon doen en kwam op het volgende project, die perfect aansloot op wat ik in gedachten had.
https://darksmo.github.io/arduino-trampolino/
Na dit project te hebben bekeken wist ik dat het voor mij mogelijk was mijn idee uit te voeren en ging ik direct aan de slag, maar ik liep al snel tegen problemen aan.
Iteratie 2 - Probleem 1
Ik liep direct vast toen ik probeerde het rietje in het flesje te steken. Ik probeerde allerlei verschillende dingen, maar wat ik ook deed, er bleef altijd water lekken uit de opening.
Iteratie 2 - Probleem 2
Ik besloot toen die stap even in de wacht te plaatsen en ging aan de slag met de microfoon en het oppikken van geluid. Ik ging op zoek naar hoe ik de geluidssignalen op mijn KY-038 kon meten en kwam op de volgende video:
Alhoewel het wel lukte om het lampje aan te krijgen als ik klapte, lukte het me niet om de microfoon iets anders op te laten pikken dan het klappen. Ik probeerde allerlei manieren, maar niets werkte.
Iteratie 3
Toen de microfoon niet werkte, ging ik in mijn omgeving op zoek en ik had het geluk dat ik iemand kende die nog een Arduino pakket had van haar opleiding die ik mocht gebruiken. Hierin zat een andere microfoon, die ik testte en die meteen werkte.
Ik ging toen op zoek naar hoe ik de geluidssignalen af kon lezen in de Serial Plotter binnen Arduino, zodat ik kon testen hoe hoog het signaal zou zijn dat van een telefoon wekker komt. Hierdoor kwam ik op het volgende voorbeeld:
https://learn.adafruit.com/adafruit-microphone-amp...
Deze code pastte ik vervolgens aan om helemaal aan te sluiten bij mijn microfoon en de geluidssignalen van de wekker van mijn telefoon.
Toen dit onderdeel volledig functioneerde heb ik aan Tim gevraagd wat ik kon doen om het rietje op de juiste manier in het flesje te krijgen. Hij kwam met het idee om een siliconen rietje aan een trechter aan te sluiten om op die manier het mechanisme na te maken, wat uiteindelijk ook perfect werkte.
Ik kon vervolgens de Servo motor aan het rietje vastmaken en dit alles verwerkte ik in een doos waarin ik het prototype kon testen.
Toen dit prototype werkte, ging ik aan de slag met het maken van een waardige behuizing.
Iteratie 4
Om een beeld voor mezelf te krijgen van hoe ik wilde dat de behuizing eruit zou zien, tekende ik dit voor mezelf uit.
1. De Arduino is te vinden in een aparte ruimte, waarbij de kabel er aan de achterkant in gaat en de jumper kabels vanuit een klein kiertje aan de zijkant van de behuizing van de microfoon, schakelaar en servo de Arduino in gaan.
2. De Servo zit met een stokje vastgeplakt aan het siliconen rietje, zodat het rietje op en neer kan worden bewogen. De Servo is geplaatst op een plankje die moet voorkomen dat er water kan lekken op de microfoon en de telefoon. Boven de Servo heb ik nog een plankje geplaatst, zodat deze niet kan bewegen en ook niet nat kan worden vanaf de bovenkant.
3. De microfoon is te vinden achter de plek waar de telefoon in wordt gezet. Hierdoor ligt de microfoon zo dicht mogelijk bij de speaker en hoeft deze niet onnodig gevoelig te worden gemaakt. Daardoor wordt het risico op het oppikken van de verkeerde geluiden verholpen.
4. De telefoon wordt geplaatst op de schakelaar. Slechts wanneer de schakelaar naar beneden wordt gedrukt neemt de microfoon geluid op. Hierdoor voorkom ik dat de Servo motor de hele dag, wanneer het rumoeriger is, wordt geactiveerd door allerlei geluiden.
5. De trechter wordt bovenin de behuizing geplaatst. Hierdoor kun je de trechter gemakkelijk vullen met water.
6. De telefoon dient te worden geplaatst aan de onderkant, waar een open gat is dat groot genoeg is voor de grootste telefoons.
7. Om te voorkomen dat een telefoon schuin kan komen te staan, zitten er planken aan de binnenkant die zorgen voor stabilisatie van de telefoon.
Bouwproces
Allereerst begon ik met het nodige soldeerwerk voor de microfoon en de Servo. Nadat ik dit had gedaan ondervond ik echter problemen met de Servo en ik kwam er na wat onderzoek achter dat ik de Servo ook direct op de Arduino aan kon sluiten. Vervolgens soldeerde ik de jumper kabels aan de microschakelaar.
Toen ik dit allemaal op de juiste plekken had gemonteerd, begon ik de plek te maken waar de telefoon zou komen te staan. Ik plaatste de microschakelaar op de ondergrond en monteerde microfoon aan het achterwerk.
Toen dit stond, monteerde ik het middelste plankje. Dit middelste plankje moet voorkomen dat er water vanuit de trechter op de elektronica kan lekken.
Vervolgens monteerde ik de trechter en zaagde ik de opening waar het rietje doorheen ging steken. Hierna monteerde ik de Arduino aan een apart plakje en plaatste er muurtjes omheen. Ik zaagde achter de Arduino een gat om een opening te creëren voor de USB kabel.
Ik maakte een stokje vast aan de Servo en plakte dit stokje vast aan het rietje dat aan de trechter hing. Ik zette de Servo motor vervolgens vast door een ander plankje erboven te plaatsen.
Ik zaagde de nodige vormen uit voor de zijkanten van de behuizing en monteerde deze, waardoor alles mooi recht stond.
Dit alles zette ik vervolgens vast op een ondergrond, om het nog stabieler te maken en zodat het makkelijker zou zijn om te vervoeren.
Tot slot verfde ik alles rood; dit omdat de vorm en de connectie met water me deed denken aan een vuurtoren.
Circuit En Code
Het was dus de bedoeling dat de activatie van de schakelaar door een telefoon erop te plaatsen, ervoor zou zorgen dat de microfoon wordt geactiveerd. De microfoon begint dan vervolgens geluiden op te pikken. Ik heb vervolgens met de hand getest en vastgesteld vanaf welk geluidsniveau, uitgedrukt in volts, de Servo moet worden geactiveerd. Deze Servo zit vast aan een siliconen rietje en draait over een bepaalde hoeveelheid graden heen en weer, zodat er niet te veel, maar ook niet te weinig water uit het rietje komt. Nadat dit is gebeurd zal de microfoon tijdelijk geen geluid opnemen. Dit is om te voorkomen dat, omdat een wekker altijd eventjes afgaat, er niet continu water op je wordt gegoten en hij wordt niet definitief gestopt, omdat hij nu ook nog werkt op het moment dat er is gesluimerd of dat je er alsnog doorheen had geslapen.
Beschrijving code:
Foto 1:
In deze foto is de setup van het project te zien. Hierin staat allereerst de library van de Servo, die zorgt voor extra functionaliteiten van de Servo. De Servo krijgt nu een waarde toegekend en er wordt bepaald in welke pin hij komt op de Arduino.
Vervolgens wordt er een window bepaald waarbinnen er samples door de microfoon kunnen worden opgepikt. Adafruit, waar mijn code op is gebaseerd (zie Iteratie 3), geeft aan dat samples van 50 milliseconde genoeg is voor het meten van frequenties die zo laag gaan als 20 Hz. Hierdoor heb ik deze waarde aangehouden. Vervolgens creëer ik de waarde 'sound' voor de samples zelf, oftewel de geluiden.
Tot slot creëer ik hier ook een waarde voor de microschakelaar in pin 2.
In de void setup-sectie hecht ik de servo1 aan de servoPin en geef ik aan dat de Mswitch input gaat verzorgen.
Foto 2:
In deze sectie bevindt zich het grootste deel van de microschakelaar en de microfoon.
Allereerst worden de nodige waarden gecreëerd voor het bepalen van het beginnen van de sampleWindow, de minimale en maximale gemeten waarden en de PeaktoPeak. De PeaktoPeak, ook wel bekend als de Peak Sound Pressure, legt de maximale en minimale opgenomen waarden tegen elkaar af om een grof gemiddelde te berekenen. Dit wordt veelvoudig gebruikt om geluid te meten, zoals je ook kunt lezen op de volgende website:
https://www.acoustic-glossary.co.uk/sound-pressure...
Nadat de nodige waarden zijn vastgesteld, kan er worden begonnen aan het meten van het geluid. Allereerst mag dit echter alleen gebeuren als de microschakelaar wordt ingedrukt, waardoor er een if-statement moet worden gemaakt waarin dit wordt aangegeven.
Als de microschakelaar wordt ingedrukt, mag het meten beginnen.
Er wordt een while statement gecreëerd, hierin moet het geluid worden gemeten voor 50 milliseconden. Hierbinnen wordt gemeten dat als er een geluid wordt opgenomen dat hoger is dan het maximale signaal, het programma dit moet onthouden en dat als er geluid wordt opgenomen dat lager is dan het minimale signaal, dit ook moet worden opgenomen. signalMin en signalMax hebben hierdoor nieuwe waarden en deze maximale en minimale peaks worden van elkaar afgetrokken en geconverteerd naar de volts.
Deze volts worden vervolgens geprint in de monitor en ik kon die aflezen om daarmee te bepalen welk signaal er gemiddeld door verschillende wekkers wordt afgegegeven.
Foto 3:
Dit gemiddelde bleek rond de 12 volts te liggen. Hierdoor heb ik een if-statement gemaakt die de Servo vertelt dat deze slechts mag worden geactiveerd als er een waarde wordt bereikt die hoger is dan 11.99 volts. De geluiden die je in je slaap en in bed maakt, komen namelijk niet boven deze waarde en slechts de hardere geluiden, zoals een wekker, kunnen nu de Servo activeren. De geactiveerde Servo draait het aangesloten rietje naar beneden en trekt hem rustig weer omhoog, dit is om te voorkomen dat er nog enkele waterdruppels naar achteren schieten. Nadat er een signaal van boven de 11.99 volts is opgevangen en de Servo is geactiveerd, kan deze nu door een delay tijdelijk niet meer activeren. Dit is om te voorkomen dat er continu water op je wordt gegoten.
Ook staat hieronder een if-statement die aangeeft dat als de microschakelaar niet is ingedrukt, het systeem niets hoeft te doen.
Tot slot staat er nog een laatste lijn die ervoor zorgt dat als de microschakelaar is geactiveerd, deze ook weer kan worden gedeactiveerd als je de telefoon er weer af haalt.
Uiteindelijke Ontwerp En Mijn Ervaring
Uiteindelijke ontwerp:
Deze video legt uit waar dit alles naartoe heeft geleid; het eindontwerp 'Sleep Extinguisher'.
Mijn ervaring:
Dit project was voor mij een enorme uitdaging. In de conceptuele fase liep ik al snel vast, omdat ik maar niet in mijn hoofd kon krijgen wat alle mogelijkheden waren en waar ik moest beginnen. Ik kon er geen beeld over vormen, waardoor het erg overweldigend was en ik pas na veel onderzoek en nadenken kon beginnen.
Toen ik eenmaal een idee had van wat ik wilde doen, ging ik op zoek naar de benodigdheden. Ook hier stond ik versteld van de mogelijkheden, maar met hulp van Tim kwam ik hier uiteindelijk gelukkig prima uit.
Ik liep voornamelijk in de productiefase tegen problemen aan. Ik wist te weinig af van de onderdelen die ik had gekocht, waardoor er bepaalde dingen steeds niet werkten. Ik kon dan ook niet goed zien waar het probleem lag, waardoor ik het ook moeilijk op kon zoeken en vaak lukte het me uiteindelijk dan ook niet om het op te lossen. Ik moest dan op zoek naar nieuwe manieren, door bijvoorbeeld een nieuwe microfoon te zoeken of het idee van het ontwerp aan te passen en gelukkig waren die er uiteindelijk altijd, maar ik merkte dat ik er gauw door uit het veld werd geslagen.
Ook ben ik iemand die graag begint en het in de loop van de tijd allemaal uitzoekt, maar ik heb ontdekt dat fysiek werk veel meer voorbereiding vereist. Zo kwam ik bijvoorbeeld met allerlei dingen steeds niet uit; te korte kabeltjes, mechaniek dat niet helemaal deed wat ik dacht, de kabels die ik had gesoldeerd werkten niet, de behuizing begon scheef te staan doordat ik niet had gedacht aan de verdeling van het gewicht enzovoort. Ik testte te weinig en werkte te gehaast, waardoor ik steeds tegen problemen aanliep en niet lekker aan de slag kwam.
Ik besloot even een stap terug te doen en helemaal opnieuw te beginnen. Tegen die tijd werkte het mechanisme wel enigzins, maar ik besloot voor mezelf uit te tekenen hoe ik wilde dat het eruit zou zien en baseerde daar mijn materiaalkeuzes op. Ik had bijvoorbeeld nooit gedacht aan een plankje tussen de trechter en de telefoon voor het geval van een lekkage als ik het niet eerst had getekend.
Toen ik een stevigere basis had begon het allemaal direct beter te lopen. Natuurlijk liep ik nog steeds tegen problemen aan, maar ze waren hapbaar en daarom leuke uitdagingen om op te lossen. Ik zei al die tijd al tegen mezelf: 'Als ik nou eens zou weten wat ik deed, zou ik dit zelfs nog leuk kunnen vinden.' alhoewel ik nog steeds lang niet alles weet, heb ik er nu wel een veel beter beeld van en begon ik het ook leuk te vinden.