Sommario:

Sinestesia Player Piano: 4 passaggi
Sinestesia Player Piano: 4 passaggi

Video: Sinestesia Player Piano: 4 passaggi

Video: Sinestesia Player Piano: 4 passaggi
Video: Ludovico Einaudi - Experience EASY Piano Tutorial 2024, Novembre
Anonim
Image
Image
Sinestesia Player Piano
Sinestesia Player Piano
Sinestesia Player Piano
Sinestesia Player Piano

Questo pianista suona la musica usando una ruota dei colori e una fotocamera! Le immagini vengono catturate dalla fotocamera, elaborate e interpretate come note musicali. In questo momento è programmato per suonare filastrocche che possono essere cambiate caricando un nuovo sketch arduino che specifica quali note devono essere suonate (quali colori devono essere mostrati alla telecamera).

Il PC Linux integrato avvia un servizio all'avvio che scatta una foto con una fotocamera, calcola una funzione dei valori RGB nell'immagine ed emette un suono in base al valore di ritorno della funzione. Prima di riprodurre il suono invia un segnale che dice ad un Arduino di ruotare un servo, presentando il colore corrispondente alla nota successiva da suonare. Quindi il ciclo ricomincia, viene scattata una foto, la ruota dei colori viene ruotata e viene riprodotto un suono all'infinito.

Questo progetto è un modo divertente per integrare musica, programmazione di sistemi Linux moderni, programmazione di microcontrollori, scarabocchiare inkscape, taglio laser e riproporre alcune scatole di cartone spazzatura.

Tutto il codice e gli SVG di inkscape sono disponibili su github all'indirizzo:

github.com/melvyniandrag/pyMusic

Materiali usati:

  1. Etichette bianche vuote
  2. Scatola di cartone
  3. Webcam
  4. pastelli
  5. Arduino
  6. Beagleboard-xM
  7. fili
  8. Cavo seriale
  9. Conoscenza di base dell'elaborazione delle immagini e della musica

Passaggio 1: la roba del computer

La roba del computer
La roba del computer
La roba del computer
La roba del computer
La roba del computer
La roba del computer

A bordo avrai bisogno di un piccolo computer compatibile con Linux come un Raspberry Pi. Ho usato un vecchio BeagleBoard-xM perché mi è capitato di averlo in giro e avevo già un sistema operativo sulla scheda SD. Puoi usare qualunque cosa, purché sia in grado di gestire una webcam, possa eseguire OpenCV (la libreria di visione artificiale utilizzata per acquisire ed elaborare le immagini della ruota dei colori) e abbia un jack di uscita audio.

Ho configurato il sistema operativo per eseguire il codice Python che acquisisce le immagini all'avvio seguendo un tutorial di systemd. Per eseguire lo script dovrai sudo apt-get install python-pyaudio python-opencv per ottenere le librerie indicate. Avrai anche bisogno di pip install numpy pyserial per ottenere quelle librerie. pyaudio viene utilizzato per riprodurre suoni, opencv viene utilizzato per acquisire ed elaborare le immagini, numpy viene utilizzato anche per l'elaborazione delle immagini e pyserial è necessario per comunicare con Arduino.

L'Arduino serve per far ruotare il servomotore su cui è montata la ruota dei colori. Se avessi un Raspberry Pi potresti utilizzare i pin GPIO e lasciare fuori Arduino, ma avresti bisogno di modificare il codice Python.

Nelle immagini puoi vedere le viscere tecnologiche dell'operazione e un paio di frammenti di codice.

Fase 2: il pianoforte

Il piano
Il piano
Il piano
Il piano
Il piano
Il piano

Ho fatto il pianoforte di cartone da alcune vecchie scatole che avevo. Ho la fortuna di vivere vicino a un makerspace che ha un laser cutter. Per un anno intero mi sono chiesto per cosa diamine si vorrebbe un laser cutter, e si scopre che finalmente ho trovato un uso per questo.

Ho misurato il computer, l'arduino e il servo in modo da sapere quanto spazio avrei avuto bisogno, ho disegnato le parti del pianoforte in Inkscape e le ho ritagliate con il laser cutter. (Modifica: ho finito il cartone per fare in modo che la custodia reggesse il computer e l'arduino e quindi non li ho inseriti. Sono all'esterno della custodia. Non importa, avrei potuto prendere un'altra scatola da qualche parte, ma non ha funzionato non importa alla fine.)

I pezzi sono stati assemblati con resina epossidica.

Passaggio 3: assemblaggio

Assemblea
Assemblea
Assemblea
Assemblea
Assemblea
Assemblea

Ecco alcune immagini del pianoforte in fase di assemblaggio e colorazione. La stampante aveva esaurito l'inchiostro, quindi non ho potuto stampare i colori sulle etichette bianche come avevo pianificato. Quindi ho usato i pastelli di mia figlia. E non sono riuscito a trovare un coltello xacto per tagliare l'etichetta alla forma del cartone, quindi ho usato un coltello da bistecca e ho messo qualcosa di protettivo sul bancone della cucina. Usa quello che hai!

Passaggio 4: sfide tecniche e considerazioni future

Sfide tecniche e considerazioni future
Sfide tecniche e considerazioni future
Sfide tecniche e considerazioni future
Sfide tecniche e considerazioni future

Una parte impegnativa di questo progetto è stata ottenere i valori RGB corretti da leggere dalla fotocamera. La webcam che ho ha dei LED incredibilmente luminosi che non so come spegnere in Linux. Penso che ci sia un driver di Windows che ti consente di attivarli e disattivarli. Ho provato a fissare i LED con del nastro isolante e a lasciarli accesi. Ho anche testato la robustezza del software non solo mostrandogli carta colorata, ma anche scrivendo un piccolo sito web che mostra i colori.

I suoni prodotti dal computer a volte hanno scoppiettii e crepitii, e questo deriva dal fatto che ho pochissima esperienza nella programmazione audio di Linux. La libreria pyaudio sputa un sacco di lamentele sul fatto che JACK non sia installato sul PC, ma per impostazione predefinita JACK non vuole funzionare senza testa (senza un desktop gui e un monitor). Questo è un compito di programmazione che ho pensato fosse un perfezionamento, ma non era necessario per esprimere l'essenza del pianista che avevo in mente.

Avevo pensato di usare una manovella per cambiare i colori, e forse per averli su un mattarello, ma questo introduce le sue complicazioni. Il servo è un po' rumoroso, ma per ora funziona bene.

Il pianista è attualmente programmato solo per suonare 4 note. Questo perché il servo si sposta solo di 180 gradi, la maggior parte delle filastrocche può essere suonata con solo 3-4 note e non volevo che la ruota dei colori si ingombrasse di regioni di colore, confondendo forse la fotocamera. Quindi, attraverso una combinazione di fortuna musicale e vincoli tecnici, 4 note va bene.

Consigliato: