Cuprins:
- Pasul 1: Lucrurile computerului
- Pasul 2: Pianul
- Pasul 3: Asamblare
- Pasul 4: Provocări tehnice și considerații viitoare
Video: Sinestezie pian pian: 4 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
Acest pian player redă muzică folosind o roată color și un aparat foto! Imaginile sunt capturate de cameră, procesate și interpretate ca note muzicale. Chiar acum este programat să redea rime de pepinieră care pot fi schimbate încărcând o nouă schiță arduino care specifică ce note ar trebui redate (ce culori ar trebui să fie afișate camerei).
PC-ul Linux de la bord pornește un serviciu la pornire care face o fotografie cu o cameră, calculează o funcție a valorilor RGB din imagine și emite un sunet pe baza valorii returnate a funcției. Înainte de a reda sunetul, acesta trimite un semnal care îi spune unui Arduino să rotească un servo, prezentând culoarea corespunzătoare următoarei note care va fi redată. Apoi bucla începe din nou, se face o poză, roata de culoare este rotită și un sunet este redat la infinit.
Acest proiect este o modalitate distractivă de a integra muzică, programare modernă a sistemelor Linux, programare cu microcontrolere, doodling inkscape, tăiere cu laser și refacerea unor cutii de carton nedorite.
Toate codurile și inkscape SVG-urile sunt disponibile pe github la:
github.com/melvyniandrag/pyMusic
Materiale utilizate:
- Etichete albe goale
- Cutie de carton
- Cameră web
- Creioane
- Arduino
- Beagleboard-xM
- Fire
- Cablu serial
- Cunoștințe de bază despre procesarea imaginilor și muzică
Pasul 1: Lucrurile computerului
La bord veți avea nevoie de un computer mic capabil Linux, cum ar fi un Raspberry Pi. Am folosit un BeagleBoard-xM vechi, deoarece se întâmpla să-l așez și am avut deja un sistem de operare pe cardul SD. Puteți utiliza orice, atâta timp cât poate gestiona o cameră web, poate rula OpenCV (biblioteca de vizualizare computerizată utilizată pentru a prelua și procesa imagini ale roții de culori) și are o mufă de ieșire audio.
Am configurat sistemul de operare pentru a rula codul python care captează imagini la boot după un tutorial systemd. Pentru ca scriptul să ruleze, va trebui să sudo apt-get install python-pyaudio python-opencv pentru a obține bibliotecile indicate. De asemenea, va trebui să instalați pip numys pyserial pentru a obține acele biblioteci. pyaudio este folosit pentru a reda sunete, opencv este utilizat pentru preluarea și prelucrarea imaginilor, numpy este, de asemenea, utilizat pentru prelucrarea imaginilor și pyserial este necesar pentru comunicarea cu Arduino.
Arduino este folosit pentru rotirea servomotorului pe care este montată roata de culoare. Dacă ați avea un Raspberry Pi, ați putea folosi pinii GPIO de acolo și lăsați Arduino, dar ar trebui să modificați codul Python.
În imagini puteți vedea curajul tehnologic al operației și câteva fragmente de cod.
Pasul 2: Pianul
Am făcut pianul din carton din niște cutii vechi pe care le aveam. Am norocul de a trăi în apropierea unui spațiu creator care are un dispozitiv de tăiere cu laser. De un an întreg m-am întrebat la ce naiba ar vrea un tăietor cu laser și se pare că am găsit în cele din urmă o utilizare.
Am măsurat computerul, arduino și servo, așa că am știut cât de mult spațiu aveam nevoie, am desenat părțile pianului în interior și le-am tăiat pe tăietorul laser. (Editare: Am rămas fără carton pentru a face ca carcasa să țină computerul și arduino-ul și așa că nu le-am pus. Sunt în exteriorul carcasei. Nu contează, ar fi putut obține o altă cutie de undeva, dar nu nu contează în cele din urmă.)
Piesele au fost puse împreună cu epoxidic.
Pasul 3: Asamblare
Iată câteva imagini cu pianul asamblat și colorat. Imprimanta nu mai avea cerneală, așa că nu am putut imprima culorile pe etichetele albe așa cum plănuisem. Așa că am folosit creioanele fiicei mele. Și nu am putut găsi un cuțit xacto care să taie eticheta după forma cartonului, așa că am folosit doar un cuțit pentru friptură și am pus ceva de protecție pe blatul din bucătărie. Folosește ceea ce ai!
Pasul 4: Provocări tehnice și considerații viitoare
O parte dificilă a acestui proiect a fost obținerea valorilor RGB adecvate pentru a fi citite de cameră. Camera web pe care o am are câteva LED-uri incredibil de strălucitoare pe care nu știu cum să le opresc în Linux. Cred că există un driver Windows care vă permite să le activați și să le dezactivați. Am experimentat cu înregistrarea LED-urilor cu bandă electrică și lăsarea lor aprinsă. De asemenea, am testat software-ul pentru rezistență, arătând nu numai hârtie colorată, ci și scriind un mic site web care arată culori.
Sunetele produse de computer au uneori pop-up și crackling, iar acest lucru provine din faptul că am foarte puțină experiență în programarea audio Linux. Biblioteca pyaudio scuipă o mulțime de reclamații cu privire la faptul că JACK nu este instalat pe computer, dar în mod implicit JACK nu vrea să ruleze fără cap (fără un desktop gui și un monitor). Aceasta este o sarcină de programare pe care am crezut-o că este un rafinament, dar care nu era necesară pentru a exprima esența pianului pentru jucător pe care îl aveam în minte.
M-am gândit să folosesc o manivelă de mână pentru a schimba culorile și, probabil, pentru a le avea pe un știft, dar asta își introduce propriile complicații. Servo-ul este cam zgomotos, dar funcționează bine pentru moment.
Pianul pentru jucător este în prezent programat doar pentru a reda 4 note. Acest lucru se datorează faptului că servo se mișcă doar la 180 de grade, majoritatea rimelor de pepinieră pot fi redate cu doar 3-4 note și nu am vrut ca roata de culoare să se aglomereze cu regiunile de culoare, confuzând eventual camera. Deci, printr-o combinație de noroc muzical și constrângeri tehnice, 4 note sunt în regulă.
Recomandat:
Pi-aser un pian laser: 9 pași
Pi-aser a Laser Piano: Salut, sunt student Multimedia & Tehnologie creativă la Howest Belgium. Ați dorit întotdeauna să cântați muzică, dar nu așa cum face toată lumea? Atunci ar putea fi ceva pentru tine! Am făcut un pian din Lasere. Trebuie doar să puneți degetele deasupra
Pian Arduino simplu: 8 pași
Pian Arduino simplu: Astăzi vom crea un pian Arduino simplu de o octavă, care poate fi un punct de plecare excelent pentru alte proiecte. Acest proiect va introduce componente de bază Arduino și programare la nivel de liceu. În timp ce codul este pre-făcut persoane fizice c
Pian Arduino cu manual și 7 melodii presetate: 7 pași
Arduino Piano cu cântece manuale și 7 presetări: interfața cu tastatura Arduino Piano cu LCD are un mod 2. Modul manual & Modul presetărilor. Am folosit 7 Butoane pentru un simplu pian cu 7 taste și un buton pentru Setup Mode pentru a comuta la 7 melodii presetate
Pian de apă realizat cu borcan de sticlă: 3 pași
Pian de apă realizat cu borcan de sticlă: Acesta este un proiect uimitor și ușor pentru toată lumea. Nu am folosit un microcontroler sau un IC. Acest pian cu apă folosește borcane mici. Acesta este într-adevăr un proiect de bază. Pentru a face acest proiect, urmați instrucțiunile. CERINȚE - borcane de orice dimensiune, cel puțin 4 până la maxim
Sunete de pian folosind Arduino pe TinkerCad: 4 pași
Sunete de pian Utilizarea Arduino pe TinkerCad: În acest tutorial, veți învăța cum să utilizați un buzzer (sau difuzor piezo) cu Arduino. Buzzerele pot fi găsite în dispozitivele de alarmă, computere, temporizatoare și confirmarea intrării utilizatorului, cum ar fi un clic de mouse sau o apăsare de tastă. De asemenea, veți învăța cum să utilizați tonul () și