Sisällysluettelo:

Ultraääni Pi -piano eleohjaimilla!: 10 vaihetta (kuvilla)
Ultraääni Pi -piano eleohjaimilla!: 10 vaihetta (kuvilla)

Video: Ultraääni Pi -piano eleohjaimilla!: 10 vaihetta (kuvilla)

Video: Ultraääni Pi -piano eleohjaimilla!: 10 vaihetta (kuvilla)
Video: Мощная ультразвуковая ванна своими руками. DIY ultrasonic bath. 2024, Heinäkuu
Anonim
Image
Image
Ultraääni Pi -piano eleohjaimilla!
Ultraääni Pi -piano eleohjaimilla!

Tämä projekti käyttää sisääntuloina edullisia HC-SR04-ultraääni-antureita ja tuottaa MIDI-muistiinpanoja, joita voidaan toistaa Raspberry Pi -laitteen syntetisaattorin avulla korkealaatuisen äänen saamiseksi.

Projekti käyttää myös eleiden hallinnan perusmuotoa, jossa soitinta voidaan vaihtaa pitämällä käsiäsi kahden uloimman anturin päällä muutaman sekunnin ajan. Toisella eleellä voidaan sammuttaa Raspberry Pi, kun olet valmis.

Yllä oleva video näyttää valmiin tuotteen yksinkertaisessa laserleikatussa kotelossa. Tässä ohjeessa on myöhemmin perusteellisempi video, joka selittää kuinka projekti toimii.

Luin tämän projektin yhdessä The Gizmo Dojon kanssa (paikallinen tekijätilamani Broomfieldissä, CO) tehdäkseni interaktiivisia näyttelyitä, joita voimme viedä paikallisiin STEM/STEAM -tapahtumiin ja Maker Fairesiin.

Tutustu myös uusimpiin asiakirjoihin ja opetusohjelmiin osoitteessa https://theotherandygrove.com/octasonic/, joka sisältää nyt tietoja tämän projektin Python -versiosta (tämä ohje on kirjoitettu Rust -versiolle).

Vaihe 1: Ainekset

Tätä ohjeistusta varten tarvitset seuraavat ainesosat:

  • Raspberry Pi (2 tai 3) SD -kortilla
  • 8 HC-SR04-ultraäänianturia
  • Octasonic Breakout Board
  • Kaksisuuntainen logiikan tasomuunnin
  • 32 x 12 "naaras-naarasliitinjohdot ultraäänianturien liittämiseen
  • 13 x 6 "naaras-naarasliitinjohdot Raspberry Pi-, Octasonic- ja logiikkatasomuuntimen liittämiseen
  • Sopiva virtalähde Raspberry Pi: lle
  • PC -kaiuttimet tai vastaavat

Suosittelen käyttämään Raspberry Pi 3: ta, jos se on mahdollista, koska sillä on enemmän laskentatehoa, mikä saa aikaan reagoivamman ja miellyttävämmän äänen. Se voi toimia hyvin Raspberry Pi 2: n kanssa hieman säätämällä, mutta en yrittäisi käyttää alkuperäistä Raspberry Pi: tä tähän projektiin.

HC -SR04 -ultraääni -antureissa on 4 liitäntää - 5V, GND, Trigger ja Echo. Tyypillisesti Trigger ja Echo on kytketty erillisiin nastoihin mikrokontrollerissa tai Raspberry Pi: ssä, mutta tämä tarkoittaa, että sinun on käytettävä 16 nastaa 8 anturin liittämiseen, eikä tämä ole käytännöllistä. Tässä kohtaa tulee Octasonic -murtokortti. Tämä kortti yhdistää kaikkiin antureihin ja siinä on oma mikro -ohjain, joka valvoo antureita ja kommunikoi sitten Raspberry Pi: n kanssa SPI: n kautta.

HC-SR04 vaatii 5 V: n ja Raspberry Pi on vain 3,3 V, joten siksi tarvitsemme myös logiikan tasomuuntimen, joka yhdistää Raspberry Pi: n Octasonic-murtokorttiin.

Vaihe 2: Liitä ultraäänianturit Octasonic -korttiin

Liitä ultraäänianturit Octasonic -korttiin
Liitä ultraäänianturit Octasonic -korttiin
Liitä ultraäänianturit Octasonic -korttiin
Liitä ultraäänianturit Octasonic -korttiin

Käytä 4 naaras-naarashyppyjohdinta jokaisen ultraäänianturin liittämiseen levyyn ja varmista, että liität ne oikein päin. Levy on suunniteltu siten, että nastat ovat samassa järjestyksessä kuin ultraäänianturin nastat. Taululta vasemmalta oikealle nastat ovat GND, Trigger, Echo, 5V.

Vaihe 3: Liitä looginen tasomuunnin Octasonic -korttiin

Liitä logiikan tasomuunnin Octasonic -korttiin
Liitä logiikan tasomuunnin Octasonic -korttiin

Raspberry Pi ja Octasonic Board kommunikoivat SPI: n kautta. SPI käyttää 4 johtoa:

  • Päällikkö sisään, orja ulos (MISO)
  • Master Out, Slave In (MOSI)
  • Sarjakello (SCK)
  • Orjavalinta (SS)

Lisäksi meidän on kytkettävä virta (5V ja GND).

Loogisella tasomuuntimella on kaksi puolta - pienjännite (LV) ja korkeajännite (HV). Vadelma muodostaa yhteyden LV -puolelle, koska se on 3,3 V. Octasonic muodostaa yhteyden HV -puolelle, koska se on 5V.

Tämä vaihe on tarkoitettu Octasonicin liittämiseen logiikkatasomuuntimen HV -puolelle

Katso tähän vaiheeseen liitetty kuva, joka osoittaa, mitkä nastat tulisi liittää logiikkatasomuuntimeen.

Yhteydet Octasonicista Logic Level -muuntimeen tulee olla seuraavat:

  • 5V - HV
  • SCK - HV4
  • MISO - HV3
  • MOSI - HV2
  • SS - HV1
  • GND - GND

Vaihe 4: Liitä looginen tasomuunnin Raspberry Pi -laitteeseen

Liitä logiikan tasomuunnin Raspberry Pi -laitteeseen
Liitä logiikan tasomuunnin Raspberry Pi -laitteeseen

Raspberry Pi ja Octasonic Board kommunikoivat SPI: n kautta. SPI käyttää 4 johtoa:

  • Päällikkö sisään, orja ulos (MISO)
  • Master Out, Slave In (MOSI)
  • Sarjakello (SCK)
  • Orjavalinta (SS)

Lisäksi meidän on kytkettävä virta (3.3V ja GND). Loogisella tasomuuntimella on kaksi puolta - pienjännite (LV) ja korkeajännite (HV). Vadelma muodostaa yhteyden LV -puolelle, koska se on 3,3 V. Octasonic muodostaa yhteyden HV -puolelle, koska se on 5V.

Tämä vaihe on tarkoitettu Raspberry Pi: n liittämiseen loogisen tasomuuntimen LV -puolelle

Raspbery Pi: n ja logiikkatason muuntimen välisten yhteyksien tulee olla seuraavat:

  • 3.3V LV: lle
  • GPIO11 (SPI_SCLK) - LV4
  • GPIO09 (SPI_MISO) - LV3
  • GPIO10 (SPI_MOSI) - LV2
  • GPIO08 (SPI_CE0_N) SS - LV1
  • GND - GND

Käytä tähän vaiheeseen liitettyä kaaviota löytääksesi oikeat nastat Raspberry Pi!

Vaihe 5: Liitä Raspberry Pi 5V Octasonic 5V: een

Liitä Raspberry Pi 5V Octasonic 5V: een
Liitä Raspberry Pi 5V Octasonic 5V: een
Liitä Raspberry Pi 5V Octasonic 5V: een
Liitä Raspberry Pi 5V Octasonic 5V: een

Yksi viimeinen lanka on lisättävä. Meidän on tosiasiallisesti syötettävä virtaa Octasonic -levylle 5 V: lla, joten teemme sen yhdistämällä yhden Raspberry Pi 5 V: n nastoista Octasonic AVR -otsikon 5 V: n nastaan. Tämä on AVR -otsikkolohkon vasen alakulma (tämä on 2 x 3 lohko levyn oikeassa yläkulmassa). Katso liitteenä oleva kuva, jossa näkyy AVR -lohkon sijainti.

Katso toisesta oheisesta kaaviosta Raspberry Pi: n 5V -nasta.

Vaihe 6: Asenna ohjelmisto

Asenna Raspian

Aloita puhtaalla Raspbian Jessien asennuksella ja päivitä se sitten uusimpaan versioon:

sudo apt-get päivitys

sudo apt-get päivitys

Ota SPI käyttöön

Sinun on otettava SPI käyttöön Raspberry Pi: ssä, jotta tämä projekti toimii! Käytä tätä Raspberry Pi Configuration -apuohjelmalla.

On myös tärkeää käynnistää Pi uudelleen, kun SPI on otettu käyttöön, jotta se tulee voimaan

Asenna FluidSynth

Fluidsynth on hämmästyttävä ilmainen ohjelmisto MIDI -syntetisaattori. Voit asentaa sen komentoriviltä tällä komennolla:

sudo apt-get install fluidsynth

Asenna Rust -ohjelmointikieli

Ultrasonic Pi -piano on toteutettu Mozillan Rust -ohjelmointikielellä (se on kuin C ++, mutta ilman huonoja bittejä). Sitä kaikki viileät lapset käyttävät nykyään.

Asenna Rust noudattamalla ohjeita osoitteessa https://rustup.rs/. Ajan säästämiseksi ohjeet on suoritettava tämä yksi komento. Voit hyväksyä oletusvastaukset kaikkiin kysymyksiin asennuksen aikana.

HUOMAUTUS: Tämän ohjeen julkaisemisen jälkeen on joitain ongelmia Rustin asentamisessa Raspberry Pi -laitteeseen. Huono ajoitus:-/ mutta olen muokannut alla olevaa komentoa ongelman kiertämiseksi. Toivottavasti he korjaavat tämän pian. Pyrin luomaan kuvan, jonka ihmiset voivat ladata ja polttaa SD -kortille. Jos haluat sen, ota minuun yhteyttä.

vienti RUSTUP_USE_HYPER = 1curl https://sh.rustup.rs -sSf | sh

Lataa Ultrasonic Pi Piano -lähdekoodi

Ultrasonic Pi Piano -lähdekoodin lähdekoodia ylläpidetään githubissa. Koodin saamiseksi on kaksi vaihtoehtoa. Jos tunnet gitin ja githubin, voit kloonata repon:

git klooni [email protected]: TheGizmoDojo/UltrasonicPiPiano.git

Vaihtoehtoisesti voit ladata uusimman koodin zip -tiedoston.

Kokoa lähdekoodi

cd UltrasonicPiPiano

lastin rakentaminen -vapautus

Testaa koodi

Ennen kuin siirrymme musiikin tekemiseen seuraavassa vaiheessa, varmista, että ohjelmisto toimii ja että voimme lukea kelvollisia tietoja antureista.

Käytä sovellusta seuraavan komennon avulla. Tämä lukee tiedot antureista ja muuntaa ne MIDI -muistiinpanoiksi, jotka tulostetaan sitten konsoliin. Kun siirrät kättäsi antureiden yli, sinun pitäisi nähdä dataa. Jos ei, siirry tämän ohjeen lopussa olevaan vianetsintäosioon.

kuorma -ajo -vapautus

Jos olet utelias, "--release" -lippu kehottaa Rustia kääntämään koodin mahdollisimman tehokkaasti, toisin kuin oletus "--debug" -asetus.

Vaihe 7: Tee musiikkia

Varmista, että olet edelleen hakemistossa, josta latasit lähdekoodin, ja suorita seuraava komento.

Tämä "run.sh" -komentosarja varmistaa, että koodi on koottu, ja suorittaa sitten koodin, joka ohjaa lähdön juoksevaksi.

./run.sh

Varmista, että Raspberry Pi -laitteen 3,5 mm: n ääniliitäntään on liitetty vahvistetut kaiuttimet ja että kuulet musiikkia, kun siirrät käsiäsi antureiden päälle.

Jos et kuuntele musiikkia ja sinulla on HDMI -näyttö, äänilähtö menee todennäköisesti sinne. Korjaa tämä yksinkertaisesti suorittamalla tämä komento ja käynnistämällä Pi Piano uudelleen:

sudo amixer cset numid = 3 1

Äänenvoimakkuuden muuttaminen

Tilavuus (tai "vahvistus") määritetään parametrilla "-g" fluidsynth. Voit muokata run.sh -komentosarjaa ja muuttaa tätä arvoa. Huomaa, että pienet muutokset tähän parametriin johtavat suureen äänenvoimakkuuden muutokseen, joten yritä lisätä sitä pienillä määrillä (kuten 0,1 tai 0,2).

Vaihe 8: Eleohjaus

Katso tämän vaiheen liitteenä olevalta videolta täydellinen esittely projektista, mukaan lukien eleohjainten toiminta.

Konsepti on hyvin yksinkertainen. Ohjelmisto seuraa, mitkä anturit on peitetty (10 cm: n sisällä) ja mitkä eivät. Tämä tarkoittaa 8 binäärilukua (1 tai 0). Tämä on erittäin kätevää, koska 8 binaariluvun sarja muodostaa "tavun", joka voi edustaa numeroita välillä 0 ja 255. Jos et vielä tiedä binäärilukuista, suosittelen etsimään opetusohjelman. Binääriluvut ovat perustaito oppia, jos haluat oppia lisää ohjelmoinnista.

Ohjelmisto kuvaa antureiden nykyisen tilan yhteen tavuun, joka edustaa nykyistä eletä. Jos tämä luku pysyy samana useiden jaksojen ajan, ohjelmisto vaikuttaa eleeseen.

Koska ultraäänianturit eivät ole erittäin luotettavia ja anturien välillä voi olla häiriöitä, sinun on oltava kärsivällinen eleitä käytettäessä. Kokeile muuttaa etäisyyttä, jolla pidät kättäsi antureista, sekä kätesi kulmaa. Yritä myös pitää jotain tasaista ja kiinteää anturien päällä äänen heijastamiseksi paremmin.

Vaihe 9: Kotelon tekeminen

Jos haluat tehdä tästä pysyvän näyttelyn ja pystyä näyttämään sen ihmisille, haluat todennäköisesti tehdä jonkinlaisen kotelon. Tämä voi olla valmistettu puusta, pahvista tai monista muista materiaaleista. Tässä on video, joka näyttää kotelon, jota työskentelemme tässä projektissa. Tämä on valmistettu puusta, ja reikiä on porattu pitämään ultraäänianturit paikallaan.

Vaihe 10: Vianmääritys ja seuraavat vaiheet

Ongelmien karttoittaminen

Jos projekti ei toimi, se johtuu yleensä johdotusvirheestä. Käytä aikaa tarkistaaksesi kaikki liitännät.

Toinen yleinen ongelma on SPI: n käyttöönoton epäonnistuminen ja pi: n uudelleenkäynnistys.

Käy osoitteessa https://theotherandygrove.com/octasonic/ saadaksesi täydelliset asiakirjat, mukaan lukien vianetsintävinkit, Rust- ja Python -artikkeleita sekä tietoja tuen saamisesta.

Seuraavat vaiheet

Kun projekti on valmis, suosittelen kokeilemaan koodia ja kokeilemaan erilaisia soittimia. MIDI -instrumenttien koodit ovat välillä 1 ja 127, ja ne on dokumentoitu täällä.

Haluatko yhden soittimen, jossa jokainen anturi soittaa eri oktaavia? Ehkä haluat, että jokainen anturi on erillinen instrumentti? Mahdollisuudet ovat lähes rajattomat!

Toivottavasti pidit tästä opettavaisesta. Tykkää siitä, jos teit, ja muista tilata minut täältä ja YouTube -kanavastani nähdäksesi tulevia projekteja.

Suositeltava: