Sisukord:

Ultraheli Pi -klaver žestikontrollidega!: 10 sammu (piltidega)
Ultraheli Pi -klaver žestikontrollidega!: 10 sammu (piltidega)

Video: Ultraheli Pi -klaver žestikontrollidega!: 10 sammu (piltidega)

Video: Ultraheli Pi -klaver žestikontrollidega!: 10 sammu (piltidega)
Video: Java Tech Talk: Telegram бот на java за 1 час 2024, November
Anonim
Image
Image
Ultraheli Pi -klaver žestikontrollidega!
Ultraheli Pi -klaver žestikontrollidega!

See projekt kasutab sisenditena odavaid HC-SR04 ultraheli andureid ja genereerib MIDI-noote, mida saab Raspberry Pi süntesaatori kaudu esitada kvaliteetse heli saamiseks.

Projekt kasutab ka žestide juhtimise põhivormi, kus muusikariista saab vahetada, hoides paar sekundit käed kahe äärepoolseima sensori kohal. Kui olete lõpetanud, saate Raspberry Pi väljalülitamiseks kasutada veel ühte žesti.

Ülaltoodud video näitab valmistoodet lihtsas laserlõigatud korpuses. Selles juhendis on hiljem põhjalikum video, mis selgitab projekti toimimist.

Lõin selle projekti koostöös The Gizmo Dojoga (minu kohalik tegijaruum Broomfieldis, CO), et teha mõned interaktiivsed eksponaadid, mida saaksime viia kohalikele STEM/STEAM üritustele ja Maker Faires'ile.

Tutvuge ka uusimate dokumentide ja õpetustega aadressil https://theotherandygrove.com/octasonic/, mis sisaldab nüüd teavet selle projekti Pythoni versiooni kohta (see juhend on kirjutatud Rust versiooni jaoks).

Samm: koostisosad

Selle juhendi jaoks vajate järgmisi koostisosi:

  • Raspberry Pi (2 või 3) koos SD -kaardiga
  • 8 ultraheli HC-SR04 andurit
  • Octasonic Breakout Board
  • Kahesuunaline loogika taseme muundur
  • 32 x 12 "naissoost naissoost juhtmed ultraheliandurite ühendamiseks
  • 13 x 6-tollised naissoost hüppajajuhtmed Raspberry Pi, Octasonic ja Logic Level Converter ühendamiseks
  • Raspberry Pi jaoks sobiv toiteallikas
  • PC kõlarid vms

Soovitan võimaluse korral kasutada Raspberry Pi 3, kuna sellel on suurem arvutusvõimsus, mille tulemuseks on reageerivam ja meeldivam heli. See võib hästi töötada koos Raspberry Pi 2 -ga, pisut kohandades, kuid ma ei prooviks selle projekti jaoks kasutada originaalset Raspberry Pi -d.

HC -SR04 ultrahelianduritel on 4 ühendust - 5V, GND, Trigger ja Echo. Tavaliselt on Trigger ja Echo ühendatud mikrokontrolleri või Raspberry Pi eraldi tihvtidega, kuid see tähendab, et 8 anduri ühendamiseks peate kasutama 16 kontakti ja see pole otstarbekas. See on koht, kus Octasonicu murdeplaat sisse tuleb. See plaat ühendub kõigi anduritega ja sellel on spetsiaalne mikrokontroller, mis jälgib andureid ja suhtleb seejärel Raspberry Pi -ga üle SPI.

HC-SR04 vajab 5 V ja Raspberry Pi on ainult 3,3 V, seetõttu vajame ka loogika taseme muundurit, mis ühendab Raspberry Pi Octasonicu murdeplaadiga.

Samm: ühendage ultraheliandurid Octasonic -plaadiga

Ühendage ultraheli andurid Octasonic plaadiga
Ühendage ultraheli andurid Octasonic plaadiga
Ühendage ultraheli andurid Octasonic plaadiga
Ühendage ultraheli andurid Octasonic plaadiga

Kasutage iga ultraheli anduri ühendamiseks plaadiga 4 naissoost naissoost hüppajajuhtmeid, olge ettevaatlik, ühendades need õigesti. Plaat on konstrueeritud nii, et tihvtid on samas järjekorras kui ultrahelianduri tihvtid. Laual vasakult paremale on tihvtid GND, Trigger, Echo, 5V.

Samm: ühendage loogikataseme muundur Octasonic Boardiga

Ühendage loogika taseme muundur Octasonic Boardiga
Ühendage loogika taseme muundur Octasonic Boardiga

Raspberry Pi ja Octasonic Board suhtlevad SPI kaudu. SPI kasutab 4 juhtmest:

  • Kapten sisse, ori välja (MISO)
  • Master Out, Slave In (MOSI)
  • Seeriakell (SCK)
  • Alamvalik (SS)

Lisaks peame ühendama toite (5V ja GND).

Loogika taseme muunduril on kaks külge - madalpinge (LV) ja kõrgepinge (HV). Vaarikas ühendub LV küljega, kuna see on 3.3V. Octasonic ühendub HV küljega, kuna see on 5V.

See samm on mõeldud Octasonicu ühendamiseks loogika taseme muunduri HV poolega

Vaadake sellele sammule lisatud fotot, mis näitab, millised tihvtid tuleks loogika taseme muunduriga ühendada.

Ühendused Octasonicu ja Loogika taseme muunduri vahel peaksid olema järgmised:

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

Samm: ühendage loogikataseme muundur Raspberry Pi -ga

Ühendage loogika taseme muundur Raspberry Pi -ga
Ühendage loogika taseme muundur Raspberry Pi -ga

Raspberry Pi ja Octasonic Board suhtlevad SPI kaudu. SPI kasutab 4 juhtmest:

  • Kapten sisse, ori välja (MISO)
  • Master Out, Slave In (MOSI)
  • Seeriakell (SCK)
  • Alamvalik (SS)

Lisaks peame ühendama toite (3.3V ja GND). Loogika taseme muunduril on kaks külge - madalpinge (LV) ja kõrgepinge (HV). Vaarikas ühendub LV küljega, kuna see on 3.3V. Octasonic ühendub HV küljega, kuna see on 5V.

See samm on mõeldud Raspberry Pi ühendamiseks loogika taseme muunduri LV küljega

Ühendused Raspbery Pi ja loogikataseme muunduri vahel peaksid olema järgmised:

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

Kasutage sellele sammule lisatud skeemi Raspberry Pi õigete tihvtide leidmiseks!

Samm: ühendage Raspberry Pi 5V Octasonic 5V -ga

Ühendage Raspberry Pi 5V Octasonic 5V -ga
Ühendage Raspberry Pi 5V Octasonic 5V -ga
Ühendage Raspberry Pi 5V Octasonic 5V -ga
Ühendage Raspberry Pi 5V Octasonic 5V -ga

Lisada tuleb üks viimane traat. Peame Octasonicu plaati tegelikult 5 V toitega varustama, nii et teeme seda, ühendades ühe Raspberry Pi 5V nööpnõelte Octasonic AVR päises oleva 5V pistikuga. See on AVR -päiseploki vasakpoolne alumine tihvt (see on 2 x 3 plokk plaadi paremas ülanurgas). Vaadake lisatud fotot, mis näitab AVR -ploki asukohta.

Vaadake teist lisatud skeemi, et leida Raspberry Pi 5V pin.

Samm: installige tarkvara

Installige Raspian

Alustage Raspbian Jessie puhta installimisega, seejärel värskendage see uusimale versioonile:

sudo apt-get update

sudo apt-get upgrade

Luba SPI

Selle projekti toimimiseks peate Raspberry Pi -s lubama SPI! Selleks kasutage utiliiti Raspberry Pi Configuration.

Samuti on oluline Pi taaskäivitada pärast SPI lubamist, et see jõustuks

Installige FluidSynth

Fluidsynth on hämmastav tasuta tarkvara MIDI süntesaator. Saate selle käsurealt installida selle käsuga:

sudo apt-get install fluidsynth

Installige rooste programmeerimiskeel

Ultraheli Pi klaver on rakendatud Mozilla Rust programmeerimiskeeles (see on nagu C ++, kuid ilma halbade osadeta). Seda kasutavad kõik lahedad lapsed tänapäeval.

Rusti installimiseks järgige juhiseid aadressil https://rustup.rs/. Aja säästmiseks on juhised selle ühe käsu käivitamiseks. Installimise ajal saate aktsepteerida vaikevastuseid kõigile küsimustele.

MÄRKUS. Pärast selle juhendi postitamist on Rusti installimisel Raspberry Pi -le mõningaid probleeme. Halb ajastus:-/ aga olen probleemi lahendamiseks muutnud allolevat käsku. Loodetavasti parandavad nad selle varsti. Töötan pildi loomisel, mille inimesed saavad alla laadida ja SD -kaardile salvestada. Kui soovite, võtke minuga ühendust.

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

Laadige alla ultraheli Pi Piano lähtekood

Ultrasonic Pi Piano lähtekoodi lähtekoodi hostitakse githubis. Koodi hankimiseks on kaks võimalust. Kui olete gitiga ja githubiga tuttav, saate repot kloonida:

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

Teise võimalusena saate alla laadida uusima koodi zip -faili.

Koosta lähtekood

cd UltrasonicPiPiano

lasti ehitamine -vabastamine

Testige koodi

Enne järgmise sammuna muusika tegemise juurde asumist veenduge, et tarkvara töötaks ja et saaksime anduritelt kehtivaid andmeid lugeda.

Rakenduse käivitamiseks kasutage järgmist käsku. See loeb anduritelt andmeid ja teisendab need MIDI -märkmeteks, mis seejärel konsoolile prinditakse. Kui liigutate kätt andurite kohal, peaksite nägema andmete loomist. Kui ei, siis minge selle juhendi lõpus olevasse tõrkeotsingu jaotisse.

lastijooks -vabastamine

Kui olete uudishimulik, käsib lipp "--release" Rustil kood võimalikult tõhusalt kompileerida, mitte vaikeseade "--debug".

Samm: tehke muusikat

Veenduge, et olete endiselt kataloogis, kust allika koodi alla laadisite, ja käivitage järgmine käsk.

See skript "run.sh" tagab, et kood on kompileeritud, ja käivitab seejärel koodi, suunates väljundi fluidsünteesi.

./run.sh

Veenduge, et teil on Raspberry Pi 3,5 mm helipistikuga ühendatud võimendatud kõlarid ja kuulete muusikat, kui liigutate käsi andurite kohal.

Kui te ei kuule muusikat ja teil on HDMI -monitor ühendatud, läheb heliväljund tõenäoliselt sinna. Selle parandamiseks käivitage lihtsalt see käsk ja taaskäivitage Pi Piano:

sudo amixer cset numid = 3 1

Helitugevuse muutmine

Helitugevus (või "võimendus") määratakse parameetriga "-g" voolavussünteesiks. Saate skripti run.sh muuta ja seda väärtust muuta. Pange tähele, et selle parameetri väikesed muudatused põhjustavad suuri helitugevuse muutusi, seega proovige seda väikeste koguste (nt 0,1 või 0,2) võrra suurendada.

8. samm: žestikontroll

Vaadake selle sammu juurde lisatud videost projekti täielikku tutvustamist, sealhulgas seda, kuidas žestikontrollid toimivad.

Kontseptsioon on väga lihtne. Tarkvara jälgib, millised andurid on kaetud (10 cm raadiuses) ja millised mitte. See tähendab 8 binaararvu (1 või 0). See on väga mugav, kuna 8 -st kahendarvust koosnev jada moodustab baidi, mis võib tähistada numbreid vahemikus 0 kuni 255. Kui te veel binaararvudest ei tea, soovitan tungivalt otsida õpetust. Kahendarvud on põhioskus, mida õppida, kui soovite programmeerimise kohta rohkem teada saada.

Tarkvara kaardistab andurite hetkeoleku ühe baidini, mis esindab praegust žesti. Kui see arv jääb mitme tsükli jooksul samaks, siis tarkvara toimib selle žesti järgi.

Kuna ultraheliandurid ei ole eriti usaldusväärsed ja andurite vahel võib esineda häireid, peate žestide kasutamisel olema kannatlik. Proovige varieerida kaugust, mida hoiate kätest anduritest, samuti käe hoidmise nurka. Samuti proovite külma hoida andurite kohal, et heli paremini peegeldada.

9. samm: korpuse valmistamine

Kui soovite sellest teha püsinäituse ja saaksite seda inimestele näidata, soovite tõenäoliselt teha mingisuguse aia. See võib olla valmistatud puidust, papist või paljudest muudest materjalidest. Siin on video, mis näitab korpust, mille kallal me selle projekti jaoks töötame. See on valmistatud puidust, augud on puuritud, et hoida ultraheli andureid paigal.

Samm: tõrkeotsing ja järgmised sammud

Tõrkeotsing

Kui projekt ei tööta, on see tavaliselt seotud juhtmestiku veaga. Võtke aega, et kontrollida kõiki ühendusi.

Teine levinud probleem on SPI lubamata jätmine ja pi taaskäivitamine.

Palun külastage aadressi https://theotherandygrove.com/octasonic/, et saada täielikku dokumentatsiooni, sealhulgas veaotsingu näpunäiteid, Rust ja Pythoni spetsiifilisi artikleid ning teavet toe hankimise kohta.

Järgmised sammud

Kui olete projekti tööle pannud, soovitan koodiga katsetada ja proovida erinevaid muusikariistu. MIDI -instrumentide koodid on vahemikus 1 kuni 127 ja need on siin dokumenteeritud.

Kas soovite ühte muusikariista, kus iga andur mängib erinevat oktaavi? Võib -olla soovite, et iga andur oleks eraldi instrument? Võimalused on peaaegu piiramatud!

Loodan, et teile meeldis see õpetlik. Kui teile meeldis, siis meeldige ja tellige kindlasti mind siin ja minu YouTube'i kanalit, et näha tulevasi projekte.

Soovitan: