Binär LP

Den här fungerar ungefär som en LP-spelare. Skillnaden är att istället för att använda en nål på en plastskiva, så använder du tre IR (infraröda) sensorer i en rad, som läser ett mönster från en pappersskiva. Om du har böjelse för både det musikaliska och det digitala, kommer du ha kul med att skapa melodier med den här.

Material

  • 1 Arduino Uno
  • 1 Education-sköld
  • 1 IR-Array
  • 1 piezohögtalare
  • 2 svarta labbkablar
  • 5 färgade labbkablar
  • Binär LP-kit
  • Binär LP pappersskiva

Instruktioner

  1. Fäst skölden på Arduinons ovansida.
  2. Koppla en piezohögtalare över kopplingsdäckets mittengap och koppla ett ben till digitala pin 8 och det andra till GND.
  3. Koppla 5 labbkablar till Arduinon, 1 svart kabel till GND, 1 röd till 5V och 3 i olika färger till A1, A2 och A3. Kom ihpg vilken färg som är kopplad till vilken pin, för dessa kommer senare att kopplas till IR-Arrayn.
  4. Bygg den Binära LP.n. ( Sätt dock inte på locket än.)
  5. Placera Arduinon i lådan, koppla den till datorn och ladda upp exemplet ’BinaryLP’.
  6. Placera de lösa labbkablarna genom lådans lock.
  7. Placera locket på lådan och kugghjulen på locket.
  8. Placera IR-Arrayn i hållaren.
  9. Koppla de lösa labbkablarna till IR-Arrayn. 5V till 5V, GND till GND, A1 till IR1, A2 till IR2 och A3 till IR3.
  10. Använd Processing-programmet i programmappen för att skapa din egna skiva. Hitta programmet genom att i Arduino IDE:t gå till Sketch>Show Sketch Folder. Navigera till mappen ’Processing sketch’ och öppna Processing-programmet. Skriv ut PDF-filen som skapas – var noga med att skriva ut den som ‘Actual Size’ (inte Fit to Page). Du kan även skriva ut en tom skiva och använda en svart markör för att skapa mönster.
  11. Tejpa skivan till det stura kugghjulet. Var noga med att justera markeringarna så att skivan är centrerad.

Kod

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

Så här fungerar det

  • EducationShield-biblioteket inkluderas
  • pitches.h inkluderas, filen som innehåller tonernas definitioner.
  • IRArray-object ir deklareras.
  • Variablerna piezo och lastReading deklareras.
  • I setup() konfigureras pinen som piezon är kopplad till som en output.
  • I loop(), avläses det binära värdet från IR-Arrayn och lagras i variabeln reading. Detta värde varierar från 0 till 7 och är den binära kombinationen av svarta och vita områden. 0 betyder att alla rutor ärvita, 7 betyder att alla rutor är svarta.
  • reading skickas till funktionen playNote().
  • I playNote(), kontrollerar en if-sats om lastReading är like med r. r är det avlästa binära värdet som skickades till funktionen och lastReading är det föregående avlästa värdet.
  • Om if-satsen är true betyder det att samma ton som den senaste tonen ska spelas. För att kunna urskilja de två tonerna anropas noTone() vilket gör att piezon tystnar.
  • Programmet pausas i 20 millisekunder.
  • En switch-sats används för att bestämma vilken ton som spelas beroende på värdet som r håller.
  • Om r är lika med 0 händer ingenting (piezon är redan tyst), om r är lika med 1 spelas tonen NOTE_C4 etc.
  • Om r är större än 0 tilldelas lastReading värdet r.
  • Programmet hoppar tillbaka till loop().

Problemlösning

  • Hänvisa till illustrationen och dubbelkolla dina kopplingar. Var noga med att skölden och labbkablarna är ordentligt kopplade.
  • Se referenssidan för IR Array reference.

Lär genom att göra

  • Komponera dina egna melodier. Byt ut tonerna i switch-satsen om det behövs.
  • Kom på ett nytt sätt att använda den binära avläsningen.