Tässä projektissa aiomme rakentaa viihdettä Arduinolla. Meillä kaikilla on tapana napauttaa pöytää tai kynää minkä tahansa satunnaisen musiikin luomiseksi. Tietenkään sitä ei ehkä pidetä hyvänä manierina, mutta me kaikki nautimme siitä ainakin kerran. Siksi ajattelin viedä sen seuraavalle tasolle käyttämällä Arduinon kykyä soittaa ääniä. Kun olet rakentanut tämän projektin, voit luoda ääniä napauttamalla sormillasi mitä tahansa johtavaa ja luoda omia rytmejäsi, se on kuin pianon soittaminen kämmenelläsi. Kuulostaa hyvältä, joten rakentakaamme se.
Vaaditut komponentit:
Tämän projektin edellyttämät materiaalit on lueteltu alla, samasta kiinni pitäminen ei ole pakollista. Kun olet tarttunut käsitteeseen, voit käyttää omaa tapaa rakentaa se.
- Arduini Pro Mini
- Peizo-kaiutin
- Joustava anturi
- Sormikäsineet
- 10K vastukset
- BC547-transistorit
- 9 V: n akku
Piirikaavio ja selitys:
Tämän Arduino Palm Pianon piirikaavio on esitetty alla.
Projektissa käytetään kaikkiaan neljää anturia, toisin sanoen kahta joustavaa anturia ja kahta Darlington-paria, jotka toimivat kosketusanturina. Olemme käyttäneet myös kahta alasvetovastusta R1 ja R2, joiden arvo on 10k, jotka toimivat Flex-anturin alasvetovastuksena. Tässä Flex-anturia käytetään tuottamaan kolme erilaista ääntä yhdellä sormella sen mukaan, kuinka paljon se on taipunut. Joten voimme tuottaa 6 ääntä kahdella sormella. Opi täältä Flex-anturista.
Darlington-pari:
Ennen kuin jatkat, on tärkeää tietää, mikä on Darlington ja miten se tarkalleen toimii projektissamme. Darlington-pari voidaan määritellä kahdeksi bipolaariseksi transistoriksi, jotka on kytketty toisiinsa siten, että ensimmäisen transistori vahvistaa edelleen ensimmäisen vahvistamaa virtaa. Darlington-pari näkyy alla olevassa kuvassa:
Kuten yllä on esitetty, olemme käyttäneet kahta BC547-transistoria, joiden kollektorit on sidottu kerääntymään ja ensimmäisen transistorin emitteri on kytketty toisen transistorin kantaan. Tämä piiri toimii vahvistimena, jolla on vahvistus, eli mikä tahansa ensimmäisen transistorin alustalle annettu pieni signaali riittää toisen transistorin alustan esijännittämiseen. Kehomme toimii maapallona täällä, joten aina kun kosketamme transistorin kantaa, toinen transistori on puolueellinen. Tämän avulla olemme rakentaneet kosketusanturin tälle projektille.
Tapit 2 ja 3 ovat Arduinon keskeytystapit, jotka vedetään korkealle sisäisillä vetovastuksilla ja sitten nämä tapit pidetään maadoitettuina, kun Darlington-kytkin sulkeutuu. Tällä tavoin joka kerta, kun kosketa viiraa (alustasta 1 st transistori) keskeyttää voidaan laukaista Arduino.
Kahden sormen käyttäminen voi tuottaa vain kahden tyyppisiä ääniä, joten olen lisännyt myös joustavan anturin, joka muuttaa sävyä sen mukaan, kuinka paljon se on taipunut. Olen ohjelmoinut tuottamaan kolme erilaista sävyä sormea kohti sen mukaan, kuinka paljon sormi (taipumistunnistin) on taipunut. Voit lisätä määrää, jos haluat, että sormenpäissäsi on enemmän ääniä.
Tein koko laudan perf-levylle niin, että se mahtuu helposti kämmenteni, mutta voit käyttää myös leipälautaa. Varmista vain, että kehosi koskettaa piirin maata jossain vaiheessa. Kun juotat kaiken, sen pitäisi näyttää tältä
Olen käyttänyt kahta sormikäsinä kiinnittääkseen Darlington-parin johdot ja joustavan anturin paikalleen, kuten yllä on esitetty. Voit keksiä oman (parempi mahdollisuuksien mukaan) ideasi kiinnittääksesi ne paikoilleen, kun soitat ääniäsi.
Arduino-ohjelmointi:
Tämän Arduino Tap Tone Generator -ohjelman ohjelma on melko suoraviivainen. Meidän on vain kiinnitettävä huomiota Darlingtonin johtimien keskeytyksiin, ja jos sellainen löytyy, meidän on soitettava ääni, joka riippuu siitä, kuinka paljon taipumisanturia on taipunut. Täydellinen koodi annetaan tämän viestin lopussa, mutta olen selittänyt muutaman tärkeän palan alla.
Huomaa: Tämä ohjelma toimii kirjaston ”pitches.h” avulla. Joten varmista, että olet lisännyt otsikkotiedoston ohjelmaasi ennen kuin käännät sen. Voit ladata pitches.h-otsikkotiedoston täältä.
Että asennus toiminto, me alustaa pin 2 ja 3 Input pull-up-vastuksia. Olemme myös ilmoittaa ne keskeyttää nastat ja suorittaa tone1 (), kun on olemassa keskeyttää pin 2 ja tone2 () funktio, kun on keskeytys 3 rd tappi. Nämä keskeytykset laukaistaan aina, kun nämä nastat ovat matalalla vedetystä tilastaan.
void setup () {pinMode (2, INPUT_PULLUP); pinMode (3, INPUT_PULLUP); attachInterrupt (digitalPinToInterrupt (2), tone1, LOW); attachInterrupt (digitalPinToInterrupt (3), tone2, LOW); Sarjan alku (9600); }
Silmukkatoiminnon sisällä tarkistamme jatkuvasti, kuinka paljon joustotunnistin on taipunut. Esimerkiksi FlexSensor 1 antoi arvot noin 200, kun se jätettiin tasaiseksi, ja laski aina 130: een, kun taivutin sen maksimin, joten olen kartoittanut arvon 200-130 arvoksi 1-3, koska minun on soitettava 3 erilaista tyyppiä ääniä. Sinun täytyy säätää näitä kahta viivaa Flex-anturin arvojen ja sävyjen määrän perusteella.
void loop () {flexSensor1 = kartta (analogRead (A0), 200,130,1,3); // Karttaa omilla arvoillasi joustavan anturin perusteella flexSensor2 = kartta (analogRead (A1), 170,185,1,3); // Karttaa omilla arvoillasi joustavan anturin perusteella}
Kuten aiemmin näimme, toimintoääni1 () suoritetaan, kun nasta 2 havaitsee keskeytyksen. Mitä ääni1 () -toiminnon sisällä tapahtuu, näkyy yllä. Tarkastelemme FlexSensor1 -arvoja ja soitamme FlexSesnor-arvoon perustuvan äänen. Ääniä toistetaan Arduinon Tone-toiminnolla. Olemme selittäneet tone () -funktion edellisessä projektissamme.
void tone1 () {if (flexSensor1 == 1) tone (8, NOTE_D4,50); else if (flexSensor1 == 2) -ääni (8, NOTE_A3,50); else if (flexSensor1 == 3) -ääni (8, NOTE_G4,50); muu ääni (8, NOTE_D4,50); }
Alla olevaa riviä käytetään äänen toistamiseen. Voit soittaa mitä tahansa ääntä, joka on käytettävissä ”pitches.h” -otsikkotiedostossa. Yllä oleva rivi toistaa esimerkiksi NOTE_A3: n pinillä 50 miljoonan sekunnin ajan.
ääni (8, NOTE_A3,50); // ääni (PinNum, muistiinpanon nimi, kesto);
Työskentely:
Kun laitteisto on valmis, lataa koodi ja kiinnitä se sormillesi. Varmista, että kehosi koskettaa piirin maata jossain vaiheessa. Kosketa nyt vain mitä tahansa johtavaa materiaalia tai kehoa ja sinun pitäisi pystyä kuulemaan vastaava sävy. Voit soittaa omaa melodiaasi tai musiikkiasi napauttamalla eri välein ja eri paikoissa.
Alla oleva video osoittaa kolmannen projektin valmistumisen. Toivottavasti pidit projektin rakentamisesta, ehdotukset tai kysymykset voidaan lähettää alla olevaan kommenttiosioon. Tarkista myös Arduino Audio Player ja Arduino Tone Generator Project.