Sommario:
- Passaggio 1: la roba del computer
- Fase 2: il pianoforte
- Passaggio 3: assemblaggio
- Passaggio 4: sfide tecniche e considerazioni future
Video: Sinestesia Player Piano: 4 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:00
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:
- Etichette bianche vuote
- Scatola di cartone
- Webcam
- pastelli
- Arduino
- Beagleboard-xM
- fili
- Cavo seriale
- Conoscenza di base dell'elaborazione delle immagini e della musica
Passaggio 1: 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
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
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
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:
Arduino Piezo Buzzer Piano: 5 passaggi
Arduino Piezo Buzzer Piano: qui realizzeremo un pianoforte Arduino che utilizza un cicalino piezoelettrico come altoparlante. Questo progetto è facilmente scalabile e può funzionare con più o meno note, a seconda di te! Lo costruiremo con solo quattro pulsanti/tasti per semplicità. Questo è un progetto facile e divertente
Arduino Piano con manuale e 7 brani preimpostati: 7 passaggi
Pianoforte Arduino con manuale e 7 brani preimpostati: l'interfaccia della tastiera del pianoforte Arduino con LCD ha 2 modalità. La modalità manuale e amp; La modalità preset. Ho usato il pulsante 7 per un semplice pianoforte a 7 tasti e il pulsante 1 per la modalità di configurazione per passare a 7 brani preimpostati
Air Piano con sensore di prossimità IR, altoparlante e Arduino Uno (aggiornato/parte 2): 6 passaggi
Air Piano con sensore di prossimità IR, altoparlante e Arduino Uno (aggiornato/parte-2): questa è una versione aggiornata del precedente progetto di air piano?. Qui sto usando un altoparlante JBL come uscita. Ho anche incluso un pulsante sensibile al tocco per cambiare modalità in base alle esigenze. Ad esempio: modalità Hard Bass, modalità Normal, High fr
Il piano di Anti-Vervuiling: 3 passaggi
Anti-Vervuiling's Plan: Om vervuiling tegen te gaan in openbare ruimtes, hebben we iets bedacht waardoor mensen hopelijk hun eigen rommel zullen gaan opruimen.Op veel bezochte openbare plekken, bijvoorbeeld treinstations of drukke stads, het
Aumentare la distanza tra il piano in rame e la traccia del segnale: 3 passaggi
Aumentare la distanza tra il piano in rame e la traccia del segnale: sono un hobbista e progetto circuiti stampati (PCB) per i miei blog e video di Youtube. Ho ordinato il mio PCB online da LionCircuits. È un'azienda indiana e hanno una piattaforma automatizzata per la produzione. Esamina automaticamente il tuo Ger