Innholdsfortegnelse:

Automatisert piano: 5 trinn
Automatisert piano: 5 trinn

Video: Automatisert piano: 5 trinn

Video: Automatisert piano: 5 trinn
Video: Шопен - Фантазия экспромт до диез минор, опус 66 2024, Juli
Anonim
Automatisert piano
Automatisert piano

Jeg ønsket å lage et piano som kan spille automatisk ved å lytte til musikken min umiddelbart. Så jeg prøvde det med arduino uno jeg hadde liggende. Det kunne vært mye bedre med arduino zero ved å bruke et enkelt frekvensmålerbibliotek ii hadde det ikke for øyeblikket og jeg fortsatte med uno.

Trinn 1: Teori

Pianoet spilles ved å matche frekvensen til sangeren til pianoet. Så vi må prøve frekvensen til sangeren og spille den i sanntid. Jeg bruker en spenningsdeler fra en trimpot siden lyd er ac og arduino ikke kan håndtere negative spenninger brukte derfor spenningen fra spenningsdeleren som referanse og sett den opp til 2,5v. Inngangen er gitt ved A0 -pin på arduinoen. Jeg programmerte deretter arduinoen til å kontrollere når spenningen er på referansenivå som jeg målte og kalte den initial og deretter målt tidsintervallet mellom påfølgende referansespenning og deretter beregnet frekvensen. Del variabel brukes til å lagre den umiddelbare amplituden til lydsignalet for å eliminere støyen som har amplitude mindre enn 15 adc -verdi eller 0,0733 volt. Det settes en grense for frekvensen slik at ekstreme verdier ikke avbryter sangen.

Trinn 2: Nødvendig materiale

Nødvendig materiale
Nødvendig materiale
Nødvendig materiale
Nødvendig materiale
Nødvendig materiale
Nødvendig materiale

1) Arduino Uno eller tilsvarende

2) Passiv piezo elektrisk summer eller en høyttaler med forsterkerkrets

3) Trimpot med høy motstand (sørg for at strømmen som strømmer gjennom den ved 5v skal være liten på få millamp)

4) jumper ledninger

5) brødbrett

6) 3,5 mm lydkontakt eller en mikrofon med forsterkerkrets (jeg brukte mobilen min som forsterker da jeg fant meg for lat til å bygge en)

7) Android -telefon (for å spille lyd)

8) arduino -kabel (for å programmere den)

Trinn 3: Tilkoblinger

Tilkoblinger
Tilkoblinger
Tilkoblinger
Tilkoblinger

1) Monter trimpotten på brødbrettet og tilfør det malt og +5v fra arduino ved hjelp av jumperwires.

2) Koble bakken på 3,5 mm -kontakten til den tredje pinnen på trimpot for å fungere som spenningsdelerkonfigurasjon og kanal til A0 -pinne på arduino.

3) Koble jordet til summeren til arduinos bakken og signal til pin 13 på arduino.

Trinn 4: Arduino -kode

Arduino -koden
Arduino -koden

Her er den komplette koden

Jeg har kommentert noen utsagn om seriell utskrift som ble brukt til testing

uint64_t curtime = 0, ltime = 0; uint32_t freq = 0; uint16_t initial, val, del = 0; bool sist, curr; void setup () {// legg oppsettskoden her, for å kjøre en gang: delay (1000); /*Serial.begin(115200); forsinkelse (1000); Serial.println ("system startet");*/ initial = analogRead (A0); hvis (analogLes (A0)

void loop () {// legg hovedkoden din her for å kjøre gjentatte ganger: val = analogRead (A0); hvis (val> = initial) curr = 1; ellers curr = 0; del = (int) val- (int) initial; if (last == 0 && curr == 1) {curtime = micros (); freq = 1000000/(2*(curtime-ltime)); /*Serial.print(freq, DEC); Serial.print ("ned"); Serial.println (del);*/ if (freq> 50 && freq15) tone (13, freq, 500); forsinkelse (100); ltime = micros (); siste = 1; }

Trinn 5: Slå på !

Koble til telefonen din for å spille litt musikk, og hvis du vil synge, kan du bruke alle verktøy -appene som kan lastes ned på play store. Her er lenken

play.google.com/store/apps/details?id=com.pradhyu.alltoolseveryutility&hl=no

Etter nedlasting åpner du mike -alternativet og synger!

Slik fungerer det!

Anbefalt: