The Scream Machine + Free Game

by ldsulmann in Circuits > Arduino

223 Views, 0 Favorites, 0 Comments

The Scream Machine + Free Game

WhatsApp Image 2023-06-14 at 12.36.57.jpeg
WhatsApp Image 2023-06-14 at 13.13.20.jpeg
Screenshot 2023-06-14 134040.png
Screenshot 2023-06-14 134100.png

Hallo allemaal, ik wilde een kleine machine/game maken waarbij ik mensen enthousiast kan maken en tegelijkertijd een uitlaatklep kan bieden voor agressie, spanningen door middel van je stem te gebruiken.

Daarom heb ik een scenario gekozen dat ik hier in Amsterdam vaak tegenkom: toeristen! De frustratie ontstaat wanneer ze de weg blokkeren door op de fietspaden te staan, vaak met een mobiele telefoon in hun handen. Als snelle fietser vind ik het heerlijk om dan te roepen: "Aan de kant!"

Deze ervaring wilde ik graag met jullie delen. Als je deze tutorial volgt, kun je de game downloaden als beloning. Veel plezier! Wat gaan we precies doen?

We gaan een stuur maken dat geluid detecteert, zodat we er tegen kunnen schreeuwen. Ik zal alleen de elektronica laten zien, inclusief hoe je alles moet bedraden en welke onderdelen je nodig hebt om dit te realiseren. Wat betreft de behuizing, laat ik het aan jullie over om daarmee te experimenteren. Ik heb bijvoorbeeld gekeken naar objecten in mijn omgeving die ik hiervoor kan gebruiken. Daarom ziet mijn stuur eruit als een koffiemolen, omdat ik die ook heb gebruikt.

Verzamel De Benodigde Materialen

Untitled-1.jpg
  • Arduino Uno-board
  • 5V roterende encoder
  • Geluidssensor Module met KY-038-microfoon
  • 4 LED-lampjes
  • 4 weerstanden (voor elke LED één)
  • Jumper Draden
  • Breadboard (optioneel)

Sluit De Roterende Encoder Aan

  • Verbind de +5V-pin van de Arduino Uno met de VCC-pin van de encoder.
  • Sluit de GND-pin van de Arduino Uno aan op de GND-pin van de encoder.
  • Verbind de DT pin met de digitale pin 6 op de arduino.
  • Verbind de SW pin met de digitale pin 7 op de arduino.

Sluit De Geluidssensor Module Aan

  • Verbind de +5V-pin van de Arduino Uno met de VCC-pin van de geluidssensor module.
  • Sluit de GND-pin van de Arduino Uno aan op de GND-pin van de geluidssensor module.
  • Verbind de analoge uitgang van de geluidssensor module met een analoge ingang spin op de Arduino Uno (bijv. A0).


Sluit De LED-lampjes Aan

  • Verbind de positieve (langere) poot van elke LED via een weerstand (bijv. 220 Ohm) met een digitale pin van de Arduino Uno (bijvoorbeeld 4, 5, 6 en 7).
  • Sluit de andere (kortere) poot van elke LED aan op de GND-pin van de Arduino Uno.


De Behuizing

Screenshot 2023-06-14 130228.png
Screenshot 2023-06-14 131051.png

Voor dit voorbeeld gebruik ik gewoon een simpel ontwerp, zoals te zien is op de afbeelding hieronder. Ik begrijp dat jullie waarschijnlijk niet dezelfde koffiemolen zullen hebben, dus dit ontwerp is flexibel. Aan de bovenkant wil ik 4 gaten plaatsen, één in elke hoek, voor de lampjes. In het midden wil ik een gat maken voor de rotary encoder. Daarnaast wil ik ook een gaatje aan de zijkant maken waarin ik de microfoon wil plaatsen. Ook wil ik een rechthoek maken waar de USB-kabel doorheen kan, zodat je het stuur kunt verbinden met de computer. De exacte plaatsing van de gaten hangt natuurlijk af van jullie ontwerp.


Nu is het aan jou om hier een stuur van te maken, wat ik heb gedaan is letterlijk deze box op maat gemaakt in mijn coffee grinder geplaatst om als volgt de rotary encoder op de deksel te verbinden met het meganisme die in deksel van de coffee grinder zit. 


Aansluiting RoteryEncoder En Coffeegrinder (is Optioneel Ter Inspiratie)

WhatsApp Image 2023-06-14 at 12.34.35.jpeg
WhatsApp Image 2023-06-14 at 12.34.35 (1).jpeg
WhatsApp Image 2023-06-14 at 12.39.07.jpeg
WhatsApp Image 2023-06-14 at 12.39.07 (1).jpeg

Dit is natuurlijk wat minder belangrijk voor jullie aangezien jullie design er anders uit gaat zien, daarom zou je deze pagina kunnen overslaan. Toch wilde ik even laten zien hoe ik de rotary encoder heb verbonden met de coffee grinder. Zoals je in de afbeelding linksboven ziet, zie je een rotary encoder door de deksel van het doosje dat we eerder hebben besproken. Op de rotary encoder heb ik een dopje gemaakt met daarop een klein vierkantje dat in het vormpje past dat ik heb geplaatst op het mechanisme van de coffee grinder. 


Hiervoor heb ik met een lasersnijder vormpjes gemaakt die in elkaar vallen. Daarna heb ik aan beide kanten een omhulsel gemaakt zodat wanneer ik de deksel erop doe dat de vormen altijd in de goede plaats vallen.



yes code 1.png
Code 2 .png
Code3.png

In de gegeven code wordt een roterende encoder en een microfoon (geluidssensor) gebruikt in combinatie met een Arduino. 

  1. Allereerst worden de benodigde pinnen en variabelen gedefinieerd. outputA en outputB zijn de pinnen die verbonden zijn met de roterende encoder. counter is een variabele die de tellerwaarde bijhoudt. micPin is de analoge pin die verbonden is met de microfoon, en sensorValue wordt gebruikt om de gemeten waarde van de microfoon op te slaan. led1 tot led4 zijn de pinnen die verbonden zijn met de LED-lampjes.
  2. In de setup()-functie worden de pinnen geconfigureerd. De pinnen outputA en outputB worden ingesteld als invoer voor de roterende encoder. De pinnen led1 tot led4 worden geconfigureerd als uitvoer voor de LED-lampjes. Ook wordt de seriële communicatie gestart met een baud rate van 9600. Dit is erg belangrijk aangezien de game ook hierop is ingesteld.
  3. De loop()-functie wordt continu uitgevoerd. In deze functie wordt eerst de huidige staat van outputA gelezen. Vervolgens wordt gecontroleerd of de huidige staat verschilt van de vorige staat (aLastState). Als dat het geval is, wordt gecontroleerd of outputB dezelfde staat heeft als outputA. Op basis hiervan wordt de counter verhoogd of verlaagd.
  4. Er zijn twee voorwaarden (if-statements) om de waarde van counter te beperken. Als counter groter is dan of gelijk is aan 10, wordt deze met één verlaagd. Als counter kleiner is dan of gelijk is aan -10, wordt deze met één verhoogd.
  5. De waarde van de microfoon wordt gemeten door de analoge pin micPin uit te lezen en opgeslagen in sensorValue.
  6. Afhankelijk van de waarde van sensorValue worden de LED-lampjes in- of uitgeschakeld. Als sensorValue groter is dan 95, worden alle LED's ingeschakeld. Als sensorValue kleiner is dan 95, worden alle LED's uitgeschakeld.
  7. Vervolgens worden de waarden van counter en sensorValue afgedrukt naar de seriële monitor.
  8. Aan het einde van elke iteratie wordt de huidige staat van outputA opgeslagen in aLastState om te gebruiken bij de volgende iteratie. Ook wordt de waarde van de microfoon opnieuw gemeten voor de volgende iteratie.


Kort samengevat, deze code gebruikt de roterende encoder om een tellerwaarde bij te houden (counter) en de microfoon om een geluidswaarde te meten (sensorValue). De LED-lampjes worden aangestuurd op basis van de gemeten geluidswaarde. De tellerwaarde en de geluidswaarde worden afgedrukt naar de seriële monitor.



The Game

Screenshot 2023-06-14 134100.png

https://levisulmann.itch.io/touristscreamgame

Password: ScreamGame