Hvordan lage et instrument med Arduino

April 12  by Eliza

Arduino lar deg gå utover å spille en lyd - du opprette ditt eget instrument, ligner på Theremin. Den Theremin, oppkalt etter sin oppfinner Léon Theremin, var en av de første elektroniske instrumenter, utviklet på 1920-tallet. Det fungerte ved å oppdage det elektromagnetiske feltet av spillerens hender til å endre signaler: en hånd for volum og den andre for banen.

Den PitchFollower skisse

I denne skissen, finner du ut hvordan du kan lage et budsjett Theremin bruker en piezo som en lyssensor for å kontrollere banen.

Du må ha:

  • En Arduino Uno
  • En brødfjel
  • En piezo
  • En lyssensor
  • En 47k ohm motstand
  • Jump ledninger

Denne krets har to separate halvdeler, piezo og lyssensoren kretsen. Den piezo er koblet som i toneMelody skisse, med en ledning til digital tappen 8 og den annen til jord.

Hvordan lage et instrument med Arduino

Lyssensoren er koblet til analog 0 på den ene side og 5V på den andre; den 4.7k motstand kobles mellom analog 0 og bakken.

Hvordan lage et instrument med Arduino

Fullføre krets, og åpne skisse ved å velge Fil → Eksempler → 02.Digital → tonePitchFollower.

/ *
Pitch følger
Spiller en pitch som endres basert på en endring analog inngang
krets:
* 8 ohm høyttaler på digital pin 8
* Photoresistor på analog 0 til 5V
* 4.7k motstand på analog 0 til bakken
opprettet 21 januar 2010
modifisert 9 april 2012
av Tom Igoe
Dette eksempelet kode er i den offentlige sfæren.
http://arduino.cc/en/Tutorial/Tone2
* /
void setup () {
// Initial seriell kommunikasjon (for bare debugging):
Serial.begin (9600);
}
void loop () {
// Lese sensor:
int sensorReading = analogRead (A0);
// Skriver ut sensoren leser slik at du vet sitt utvalg
Serial.println (sensorReading);
// Kartlegge banen til området av den analoge inngangen.
// Endre minimum og maksimum innsatsnumrene nedenfor
// Avhengig av rekkevidde din sensorens gi:
int thisPitch = kart (sensorReading, 400, 1000, 100, 1000);
// Spille på banen:
tone (8, thisPitch, 10);
forsinkelse (1); // Forsinkelse i mellom leser for stabilitet
}

Etter at du har funnet skissen, trykker du på Compile-knappen for å sjekke koden. Syntaksfeil slår meldingsboks rødt når de blir oppdaget, og du ser en feilmelding som sier hva som er galt.

Hvis skissen kompilerer riktig, klikker du Last opp for å laste opp skisse til styret. Når det er gjort laster opp, bør du ha en lyssensor som vil endre tonehøyden for din buzzer. Hvis du ikke hører noen endring, sørg for at du slår en bordlampe på over brødfjel. Dette vil bidra til å øke forskjellen når du dekke til lyssensoren med hånden.

Hvis ingenting skjer, bør du dobbeltsjekke din ledningsnett:

  • Pass på at du bruker riktig PIN-kode for innganger og utganger.
  • Sjekk at piezo er slått den riktige måten. Symboler kan være skjult på undersiden hvis de ikke er synlige.
  • Kontroller tilkoblingene på breadboard. Hvis hopp ledninger eller komponenter som ikke er tilkoblet med de riktige rader i breadboard, vil de ikke fungere.

Den PitchFollower skisse sammenbrudd

Denne skissen konverterer direkte målingene fra lyssensoren til en frekvens snarere enn å kreve en oppslagstabell. Dette betyr at du kan skyve mellom notater samt velge dem individuelt.

I oppsettet, er serieporten åpnet for å tillate deg å overvåke sensoravlesninger som de kommer inn.

void setup () {
// Initial seriell kommunikasjon (for bare debugging):
Serial.begin (9600);
}

I hoved loop, er lyssensoren lese fra analog pin 0. Dette lesing er også videresendt til serie monitor.

void loop () {
// Lese sensor:
int sensorReading = analogRead (A0);
// Skriver ut sensoren leser slik at du vet sitt utvalg
Serial.println (sensorReading);

For å konvertere sensorens rekkevidde til frekvensområdet som buzzer kan dekke bruker du kartfunksjonen.

// Kartlegge banen til området av den analoge inngangen.
// Endre minimum og maksimum innsatsnumrene nedenfor
// Avhengig av rekkevidde din sensorens gi:
int thisPitch = kart (sensorReading, 400, 1000, 100, 1000);

Tonen funksjon deretter utganger notat med kartlagt sensor verdi og en svært kort varighet på 10 millisekunder. Denne perioden tjener til å gjøre lyden hørbar, men den virkelige varighet vil bli bestemt av hvor lenge du holder hånden over sensoren, som beskrevet tidligere.

// Spille på banen:
tone (8, thisPitch, 10);

Endelig forekommer en liten forsinkelse ved slutten av sløyfen for å forbedre stabiliteten for de avlesninger.

forsinkelse (1); // Forsinkelse i mellom leser for stabilitet
}

Med dette oppsettet kan du raskt lage en enkel kontrolleren og kanskje danne en reise Theremin band med vennene dine.