Kakmonstret

Vi fick reda på att det är någon som äter kakor från kakburken i köket! Vi tänkte på saken och kom fram till att det bästa vore att gillra en fälla för att avslöja vem det är. Du kommer bygga något som tar en bild på den som öppnar kakburken.

Inga kakmonster blev skadade under det här experimentet.

Material

  • 1 Arduino Uno
  • 1 Education-sköld
  • 1 kopplingsdäck
  • 1 webkamera
  • 1 ultraljus, vit TinkerKit-LED
  • 1 1M ohm resistor
  • 1 TinkerKit-kabel
  • 3 färgade labbkablar (en lång)
  • 1 Kakmonster-kit
  • Aluminiumfolie
  • 1 ledande kakburk
  • 3-4 gummiband

Instruktioner

  1. Fäst skölden på Arduinons ovansida.
  2. Koppla TinkerKit-LED:n till D9.
  3. Koppla en 1M ohms resistor mellan digitala pin 3 och 2 via ett separat kopplingsdäck.
  4. 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.
  5. Koppla den lösa labbkabeln till digitala pin 3 via kopplingsdäcket.
  6. Bygg kakmonstret.
  7. Placera webkameran inuti huvudet på kakmonstret och placera TinkerKit-LED:n i munnen.
  8. Placera Arduinon inuti kroppen på monstret. Placera den kapacitiva sensorn framför Kakmonstret. Placera kakburken ovanpå sensorn, var noga med att kakburken och sensorn har bra kontakt.
  9. Koppla Arduinokonstruktionen till din dator och ladda upp exemplet CookieMonster.
  10. Öppna och kör Processing-programmet CookieMonster.

Kod

Hitta koden i File>Examples>EducationShield>Block3-Magic>Projects>CookieMonster

Hitta Processing-koden för att fånga webkamerabilder på kaktjuven i File>Examples>EducationShield>Block3-Magic>Projects>CookieMonster>Processing>CookieMonster

Så här fungerar det

När du rör vid Kakburken aktiveras den kapacitiva sensorn och Arduinon skrikver ett ”p” till Processing genom serieporten. När Processing-programmet tar emot bokstaven tar den en bild med webbkameran.

Arduino

  • EducationShield- och CapacitiveSensor-biblioteken inkluderas.
  • CapacitiveSwitch-objektet, sensor, deklareras.
  • Variabeln led deklareras
  • n setup(), initialiseras seriekommunikationen.
  • Den kapicativa sensorn konfigureras och initialiseras.
  • led-pinen konfigureras som en output.
  • I loop(), kollas det om den kapicativa sensorn trycks ned. Om det händer sätts LED:n på och ’p’ skrivs ut till serieporten.
  • Programmet pausas i 2000 millisekunder.
  • Om sensorn inte trycks ned händer ingenting.

Processing

  • Processingbiblioteken Video och Serial inkluderas.
  • Kamera- och serieport-objekten deklareras, cam och myPort.
  • I setup() sätts programfönstrets storlek till 640 x 480 pixlar, och renderaren P2D väljs.
  • cam och myPort konfigureras och intialiseras.
  • I draw()kollas om kameran är tillgänglig. Om så är fallet läses kamerabilden av.
  • Bilden som läses av från kameran ritas till programfönstret.
  • Stringvariabeln timeStamp deklareras och tilldelas aktuellt datum och tid i text.
  • Texten timeStamp ritas i koordinaterna (10, height-10).
  • Om tangenten ’p’ eller ’P’ trycks ned sparas den aktuella bilden i programmets datamapp
  • Om serieporten är tillgängligt läses inkommande data och lagras i inByte.
  • Om inByte är lika med med ’p’ sparas den aktuella bilden i programmets datamapp.

Problemlösning

  • Hänvisa till illustrationen och dubbelkolla dina kopplingar. Var noga med att skölden och labbkablarna är ordentligt kopplade.
  • If Processing is reporting error and no image is showing up, make sure you have the latest version of Processing, and:
    • Arduinon är kopplad till datorn, och att du verkligen använder serieportnumret på din Arduino i myPort = new Serial(this, Serial.list()[0], 9600). Du hittar det rätta namnet Arduino IDE:t i Tools>Serial Port.
    • initializeCamera() använder korrekt kameranummer från den utskrivna listan i Processing.
  • Om du rör vid kakburken men ingen bild fångas kan du testa med att röra direkt vid den kapicativa sensorn. Om det fungerar behöver du en kakburk som är mer ledande. Om inte kan du se referenssidan för kapacitiva sensorer.

Lär genom att göra

  • Ändra reaktionstiden: gör så att monstret väntar i några sekunder innan bilden tas. på så sätt kan du fånga tjuven med en kaka i handen.
  • Spela in ett monsterljud enligt dessa instruktioner, och använd en 8-ohms högtalare för att spela ljudet när den kapacitiva sensorn triggas.