Cuprins:

Interfață digitală muzicală: 6 pași (cu imagini)
Interfață digitală muzicală: 6 pași (cu imagini)

Video: Interfață digitală muzicală: 6 pași (cu imagini)

Video: Interfață digitală muzicală: 6 pași (cu imagini)
Video: Educație tehnologică, Clasa a III-a, Operații cu fișiere și dosare 2024, Iulie
Anonim
Interfață digitală muzicală
Interfață digitală muzicală

Bun venit tuturor, Aș dori să vă arăt propria mea interfață digitală muzicală. Am realizat-o în timpul diplomei de sunet tehnic, aceasta este lucrările mele de cercetare. Pentru început, m-am întrebat cum pot compune muzică fără DAW, cu consumabile reciclate și posibilitatea de a juca în mod independent.

În această instrucțiune, vă voi învăța cum să utilizați comunicațiile seriale pentru a trimite / primi informații despre senzori (analogici și digitali) de la Arduino la Raspberry pi către software puredat pentru declanșarea unui sunet.

Materialele necesare sunt:

x1 Raspberry PI3

x1 Boîter de protection PI3

x1 Micro SD (32G)

x1 Arduino UNO

x1 Senzor IR Sharp GP2Y0E02B

x1 Breadbord

x1 Ecartament de testare a plăcii (0,2)

x28 Rezistență 10MΩ

x2 Rezistență 1,8kΩ

x1 Rezistență 10kΩ

x20 Borne terminale masculin / feminin

x1 Transportor de lipit

x1 bobină de tablă (1 metru)

x1 Fier de lipit

x25 Curele flexibile masculin / masculin

Pasul 1: senzori

Senzori
Senzori
Senzori
Senzori
Senzori
Senzori

Am folosit 4 piezoelectrice care provin de la telecomanda Harmonix XBOX 360 „Guitar Hero”. Am folosit un buton de pornire / oprire deoarece comutatorul reed magnetic al pedalei de blocare a pedalei de telecomandă a eroului chitară era afară.

Am folosit un senzor IR Sharp GP2Y0E02B. Pentru toți acești senzori, am făcut un ansamblu de tracțiune pentru o funcționare eficientă …

Deci, empiric, am găsit o valoare a rezistenței la senzorul butonului și senzorul IR. Cu toate acestea, am testat piezoelectric pentru a cunoaște scara completă a acestuia și am stabilit valoarea necesară a rezistenței și aplicată pentru cei 4 senzori analogici.

Pasul 2: Montaj pull-up

Montaj pull-up
Montaj pull-up
Montaj pull-up
Montaj pull-up
Montaj pull-up
Montaj pull-up
Montaj pull-up
Montaj pull-up

După testarea piezoelectricului cu generator de tensiune, am stabilit valoarea rezistenței la 7MΩ.

Tragerea ansamblului de rezistență al butonului a fost de 10 kΩ.

Pentru senzorul IR, am folosit două rezistențe de 1, 8kΩ, respectiv între tensiunea de alimentare și SDA (date) și SCL (ceas).

Aveți grijă, deoarece valorile acelor rezistențe sunt pentru RTX Arduino UNO; ceva de știut despre intrarea de impedanță Arduino: 10MΩ.

Puteți vedea montajul pull-up pe ultima imagine a acestui pas; Am fixat curele piezoelectrice în 0 1 2 3 pini pe UNO, curea de buton în 2 pini digitale, dar comunic valoarea pe 6 pini pe UNO și cureaua senzorului IR în 4 5 pini pe UNO, toate intrările analogice ale Arduino Uno.

Pasul 3: Cod Arduino

Pentru a mă asigura că operațiunea a fost eficientă, am testat trimiterea / primirea informațiilor despre senzori către Arduino.

Am pus fișiere în descriere, dar le puteți găsi în secțiunea de exemple de programare Arduino Genuino, cu excepția senzorului IR deoarece nu este completă, am modificat puține informații în secțiunea „definiți” precum „schimbare” și am schimbat calculul măsurării pentru a fi regulat în variații de distanță. Probabil ați văzut „Sârmă” în codul senzorului IR. Într-adevăr, am folosit protocolul I2C pentru a comunica. Vă invit să vedeți protocolul I2C, foarte interesant, îl puteți utiliza pentru a transmite în timp real toți senzorii digitali pe care îi doriți.

Pasul 4: Ambele comunicări seriale Arduino Raspberry

Ambele comunicări seriale Arduino Raspberry
Ambele comunicări seriale Arduino Raspberry
Atât Arduino Raspberry Serial Communication
Atât Arduino Raspberry Serial Communication

Da: D

După cum puteți vedea în prima imagine, link-ul Arduino-Raspberry este mufa USB.

Am găsit o modalitate de a primi informațiile senzorilor direct de către PureData Extented, care este instalat în Raspberry PI. De ce PureData Extended? Deoarece versiunea Vanilla nu folosește aceeași bibliotecă decât o aplicație din mediul Raspbian.

Așa că lansați StandardFirmata în Arduino Genuino pentru a remedia variațiile I / O și a valorii în mod corect!

Pentru a obține informații de valoare înapoi în Raspberry PI, există 2 protocoale: Firmata și Msg.

Aleg Firmata dintr-un motiv, a fost mai simplu să obțin informații în PureData prin patch-ul Pduino, un singur mediu.

Vă invit să descoperiți Msg dacă utilizați protocolul OSC.

Pasul 5: Patch primit PureData primit

Patch primit PureData primit
Patch primit PureData primit

Într-adevăr, după săptămâni de codare pe Genuino, am reușit să primesc toate informațiile senzorului meu într-o singură pagină, ceea ce a permis să văd variații în timp real datorită Pduino, un patch din Puredata, secțiune librairies extra.

Din acest pas, nu mai atingem codul Arduino. Informațiile despre valoare sunt lizibile.

După cum am observat la pasul 3, am primit informații de la butonul digital în analog cu 6 pini, a fost simplu să văd funcționarea eficientă a comunicării. Toate într-o singură linie.

Pasul 6: Dezvoltarea PureData

Dezvoltare PureData
Dezvoltare PureData
Dezvoltare PureData
Dezvoltare PureData
Dezvoltare PureData
Dezvoltare PureData
Dezvoltare PureData
Dezvoltare PureData

PureData este un limbaj specific și trebuie să vă petreceți timpul liber pentru a reuși să faceți patch-uri frumoase.

Unele dintre patch-urile PureData vor fi disponibile în GitHub.

Sper că ceea ce am scris aici te-a ajutat să îți începi propriul proiect aproape de al meu.

Recomandat: