Reagera

Klara…färdiga…Gå! Testa din reaktionstid!

I det här spelet kommer en av tre LED:s slumpmässigt att lysa upp. När det händer måste du nudda den tillhörande sensorn, så snabbt som möjligt. Om du inte reagerar tillräckligt snabbt är spelet slut.

Material

  • 1 Arduino Uno
  • 1 Education-sköld
  • 1 piezohögtalare
  • 3 LED:s
  • 3  220 ohms resistorer
  • 3 1M ohms resistorer
  • 6 svarta labbkablar
  • 12 färgade labbkablar (3 långa)
  • Aluminiumfolie
  • Maskeringstejp

Instruktioner

  1. Fäst skölden på Arduinons ovansida.
  2. Koppla tre LED:s över kopplingsdäckets mittengap.
  3. Koppla en 220 ohms resistor till digitala pin 9. Koppla resistorn till det långa benet på den första LED:n.
  4. Koppla digitala pin 10 och 11 till varsin LED, genom att följa samma metod.
  5. Använd de svarta labbkablarna och koppla det korta benet på varje LED till GND.
  6. Koppla piezohögtalaren över kopplingsdäcket mittengap. Koppla ett ben till digitala pin 8 och det andra till GND.
  7. Koppla en 1M ohms resistor mellan digitala pin 3 och 2 genom ett separat kopplingsdäck.
  8. Koppla digital pin 4 och 5 till digitala pin 2 genom att följa samma metod.
  9. Gör en kapacitiv sensor genom att skära ut en 5 x 5 cm stor fyrkant av aluminiumfolie. Vira ett hörn kring en ände på en labbkabel. Se till att kabelns metalldel har kontakt med folien.
  10. Gör ytterligare två kapacitiva sensorer. Koppla sensorerna till digitala pin 3, 4 och 5. Se till så att sensorerna inte nuddar varandra.
  11. Koppla Arduinokonstruktionen till datorn, ladda upp exemplet ’React’ och testa spelet.

Kod

Hitta koden i File>Examples>EducationShield>Block2-Sports>Projects>React

Så här fungerar det

  • CapacitiveSensor- och EducationShield-biblioteken inkluderas.
  • pitches.h inkluderas, filen som innehåller tonernas definitioner
  • En array som håller de tre CapacitiveSwitch-objekten deklareras
  • Variabeln reactTime deklareras och tilldelas reaktionstiden i millisekunder.
  • Melody-objekten deklareras
  • I setup() konfigureras och initialiseras VU-metern och de kapacitiva sensorerna.
  • I loop() pausas programmet en slumpmässig tidsperiod, någonstans mellan 50 och 2000 millisekunder.
  • Variabeln target deklareras och tilldelas ett slumpmässigt värde mellan 0 och 3.
  • LED:n på target-numrets position sätts på.
  • Om den kapacitiva sensorn på target-numrets position nuddas inom reaktionstiden, stängs LED:n av igen.
  • Om den kapacitiva sensorn på target-numrets position nuddas för sent, hoppar programmet till funktionen gameOver().
  • I gameOver() sätts alla LED:s på.
  • En kort melodi definieras genom att deklarera variablerna melody[], noteDurations[] och numberOfNotes[].
  • Melodin spelas upp.
  • Alla LED:s blinkar.
  • Alla LED:s stängs av.
  • Programmet hoppar tillbaka till samma plats i loop().
  • loop() fortsätter att upprepas.

Problemlösning

  • Hänvisa till illustrationen och dubbelkolla dina kopplingar. Var noga med att skölden och labbkablarna  är ordentligt kopplade. Kolla LED:ernas polaritet för att vara säker att de är kopplade åt rätt håll.
  • För att enklare felsöka spelet kan du öka reaktionstiden.Kom ihåg att ändra tillbaka den när allting fungerar.
  • Om VU-metern inte fungerar korrekt, se referenssidan för VU-meter.
  • Om de kapacitiva sensorerna inte fungerar, se referenssidan för kapacitiva sensorer.

Lär genom att göra

  • Öka spelets svårighetsgrad: ändra reaktionstiden och väntetiden.
  • Hitta på dina egna melodier: ändra på tonerna och lägg till fler.
  • Förbättra game over-reaktionen: ändra sättet som LED:erna blinkar när spelet är slut.
  • Lägg till fler komponenter: testa att lägga till fler LED:s och sensorer. Kom ihåg att både koppla dem till Arduinon och att lägga till dem i koden.