Sommario:
- Forniture
- Passaggio 1: concetto
- Passaggio 2: preparare l'accelerometro
- Passaggio 3: costruisci il guanto
- Passaggio 4: componi in Ableton
- Passaggio 5: iniziare a utilizzare Firmata
- Passaggio 6: test del firmware
- Passaggio 7: influenza la musica con i movimenti delle mani
- Passaggio 8: la classe di pista (bonus!)
- Passaggio 9: lunghezza della traccia, battute e altro (bonus!)
Video: Guanto Danza: 9 Passi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
In questo tutorial, ti guiderò attraverso la progettazione di un guanto che ti permetta di interagire con la musica attraverso la danza. Costruirai un guanto abilitato per l'accelerometro, progetterai una composizione in Ableton e poi collegherai i due nel modo più complesso o semplice che desideri!
Forniture
- Ableton (o prova gratuita)
- Un Arduino
- Cavi jumper
- Saldatore
- Cartone
- Pistola per colla a caldo
- Tanta fantasia
Passaggio 1: concetto
Questo progetto è pensato per essere divertente. Se il modo in cui funziona il progetto di esempio in questo tutorial non è divertente per te, ridisegnalo!
Ti consiglio di mettere su alcune delle tue canzoni preferite, di avvicinarci con le mani e di vedere cosa succede. Muovi le mani su e giù? Fianco a fianco? Lentamente o velocemente? Quali aspetti della musica ti fanno venire voglia di muovere le mani? Se disponi di un elenco di questi elementi, probabilmente sarai in grado di trovare alcuni modi per incorporare i movimenti che ti piacciono nei tuoi eventuali algoritmi.
Ecco i movimenti che ho usato:
- Un rapido movimento su e giù attiva l'inizio della canzone, della batteria o del basso. (Questi si verificano in punti diversi della canzone, non necessariamente contemporaneamente!)
- Un movimento lento e inclinato da un lato all'altro innesca un suono più echeggiante e acuto.
- In una particolare sezione della canzone, inclinando la mano verso l'alto, la musica si calma, quindi l'ho "presa" nel mio pugno chiuso.
Usa questi o creane uno tuo!
(Nota: questo tutorial non spiega come generare musica o melodie dal vivo in Ableton! Se ti attieni a queste istruzioni, sarai solo in grado di aumentare/diminuire il volume delle tracce o l'applicazione di effetti audio.)
Passaggio 2: preparare l'accelerometro
Per prima cosa, scopri che tipo di accelerometro hai. Ho usato questo; andrà bene qualsiasi accelerometro a tre assi. (Oppure prova un altro tipo di sensore se vuoi scatenarti.) Assicurati di sapere come leggere i dati dell'accelerometro da Arduino. Potrebbe essere necessario scaricare una libreria per il tuo accelerometro se utilizza qualcosa di più complesso dell'input analogico.
Dopo averlo testato con una breadboard, saldare i fili con codice colore corto nei pin del tuo accelerometro. Metti un filo rosso nel pin di alimentazione, un filo nero nel pin di terra e qualsiasi altro filo necessario per la comunicazione dell'accelerometro. (Se hai un accelerometro I2C, questi saranno i pin SCL e SDA. Se hai un accelerometro analogico, probabilmente ci sarà un pin per ciascuna delle uscite x, yez.) Assicurati che la saldatura sia solida e che le perline non si sovrappongano tra i perni adiacenti.
Passaggio 3: costruisci il guanto
Taglia un pezzo di cartone sottile o di carta spessa in un rettangolo leggermente più grande del tuo accelerometro. Incolla l'accelerometro sul cartone, assicurandoti di mettere la colla sul fondo. Quindi, incolla l'accelerometro con il retro in cartone sul retro del guanto. Cucire ogni filo senza stringere al polso del guanto per alleviare la tensione sull'accelerometro, quindi il guanto è pronto. Collegalo a cavi più lunghi per avere spazio sufficiente per muovere la mano quando è collegato.
Passaggio 4: componi in Ableton
Ora è il momento di comporre la canzone che alla fine userai il guanto per controllare. Raccomando i loop di Ableton che suonano tutti bene insieme, ma possono essere usati per costruire gradualmente: prova melodia, accordi, basso e percussioni. Sarai in grado di usare il tuo guanto per controllare quando ogni loop viene riprodotto o meno.
Se riesci a pensare a qualche tipo di suono interessante da incorporare occasionalmente in una canzone, come uno strano effetto sonoro o uno strumento non convenzionale, prova ad aggiungerne uno o due! Puoi legarli a movimenti della mano meno comuni per portare qualcosa di interessante di tanto in tanto.
Ecco un link alla mia composizione compatibile con Arduino, nel caso non volessi scriverne una tua:
(Sfortunatamente, insegnarti Ableton non rientra nell'ambito del tutorial. Tuttavia, ci sono molti buoni video di istruzioni là fuori e Ableton ha una prova gratuita di 90 giorni! Consiglio questo video.)
Passaggio 5: iniziare a utilizzare Firmata
Per consentire al tuo Arduino di comunicare con Ableton, dovrai utilizzare una libreria chiamata Firmata. Dovrai anche scaricare il kit di connessione per Ableton.
In Ableton, fai clic su Pacchetti>Kit di connessione>Dispositivi nel menu in alto a sinistra, quindi fai doppio clic sul primo dispositivo (Arduino) per aggiungerlo. Assicurati di ricordare a quale traccia Ableton hai aggiunto il dispositivo!
Passaggio 6: test del firmware
Innanzitutto, testeremo e ci assicureremo che il tuo Arduino stia comunicando con Ableton. Carica questo frammento di codice sul tuo Arduino ed eseguilo:
#include void analogWriteCallback(byte pin, int value){ if (IS_PIN_PWM(pin)) { pinMode(PIN_TO_DIGITAL(pin), OUTPUT); analogWrite(PIN_TO_PWM(pin), valore); }} void setup() { Firmata.setFirmwareVersion(FIRMATA_FIRMWARE_MAJOR_VERSION, FIRMATA_FIRMWARE_MINOR_VERSION); Firmata.attach(ANALOG_MESSAGE, analogWriteCallback); Firmata.begin(57600);}loop vuoto() { Firmata.sendAnalog(0, 800);}
Questo è il minimo indispensabile per comunicare con Firmata. Invia continuamente un output di 800 (su 1024) alla porta 0 del dispositivo Firmata in Ableton. Se carichi questo codice sul tuo Arduino mentre hai un dispositivo Firmata aperto in Ableton, dovrebbe assomigliare all'immagine sopra. (Mappa la porta 0 su qualsiasi cosa in Ableton per poter vedere i valori.)
Puoi fare clic sul pulsante Mappa e quindi su qualsiasi dispositivo compatibile con Firmata in Ableton per aggiungere una mappatura tra l'input ricevuto su quella porta e il valore di quel dispositivo Ableton. Esempi facili includono il volume di qualsiasi traccia o qualsiasi manopola all'interno di un effetto audio. Esplora e vedi cosa puoi trovare su cui mappare!
Passaggio 7: influenza la musica con i movimenti delle mani
A questo punto, dovresti avere della musica in Ableton, uno script Firmata sul tuo Arduino e un guanto per l'accelerometro attaccato. Facciamo un po' di musica!
Mappa le porte del dispositivo Arduino in Ableton su cose diverse (suggerisco di tracciare il volume), quindi aggiungi righe di codice per inviare dati a ciascuna porta da Arduino.
Firmata.sendAnalog(port, volumeLevel);
Usa un codice come questo per ogni porta Firmata.
Se vuoi fare qualcosa di semplice, puoi inviare i valori dell'accelerometro non elaborati alle porte Ableton e mapparli da lì. Per un'esperienza più sofisticata, puoi decidere: quali valori dell'accelerometro dovrebbero attivare i suoni, come e quando?
Quindi riproduci tutti i tuoi loop Ableton, esegui il tuo codice Arduino e balla!
(Disclaimer: se hai intenzione di creare qualsiasi tipo di algoritmo complesso per la tua canzone, potrebbe volerci molto tempo per perfezionare. "Dance away" potrebbe essere meno accurato del previsto.)
Passaggio 8: la classe di pista (bonus!)
Se non ti dispiace aumentare il volume o hai un altro modo per ridurlo, salta questo passaggio. Altrimenti, continua a leggere!
Ho notato che il passaggio del volume da muto a pieno in una volta crea alcuni spiacevoli scoppiettii, ed è bello poter diminuire il volume in modo più graduale. Tuttavia, è difficile farlo nell'ambiente di programmazione sincrono di Arduino. Quindi ecco un codice per far sparire il popping:
class Track{ public: int volume; int volume Obiettivo; int updateSpeed; Traccia() { volume = 0; volumeObiettivo = 0; velocità di aggiornamento = 0; } void setVolumeGoal(int goal) { volumeGoal = goal; } int getVolumeGoal() { return volumeGoal; } void setUpdateSpeed(int solidità) { updateSpeed = solidità; } int getVolume() { restituisce il volume; } void updateVolume() { if((volume > volumeGoal) && ((volume - volumeGoal) >= updateSpeed)) { volume -= updateSpeed; } else if((volume = updateSpeed)) { volume += updateSpeed; } } void mute(int solidità) { volumeGoal = 50; updateSpeed = solidità; } void full(int solidità) { volumeGoal = 950; updateSpeed = solidità; }};
Ogni traccia ha un volume corrente, un volume obiettivo e una velocità con cui si sta muovendo verso quel volume obiettivo. Quando vuoi cambiare il volume di una traccia, chiama setVolumeGoal(). Ogni volta che esegui la funzione loop() nel tuo Arduino, chiama updateVolume() su ogni traccia, quindi invia tali informazioni a Firmata con getVolume(). Modifica la velocità di aggiornamento per dissolvenze più rapide o più graduali! Inoltre, evita di impostare il volume su 0 se puoi; invece, impostalo su un valore molto basso (il valore predefinito in mute() è 100).
Passaggio 9: lunghezza della traccia, battute e altro (bonus!)
Puoi fare molte cose per rendere più facile l'ascolto del suono risultante dal tuo progetto. Ecco alcune opzioni:
Puoi tenere traccia di quanto tempo è in esecuzione la canzone. Per fare ciò, dovrai capire quando è iniziata la canzone; Raccomando un ciclo while nella funzione setup() che ritarda l'esecuzione del codice fino a quando non ha rilevato un movimento della mano. Memorizza l'ora di inizio della canzone in una variabile usando millis() e controlla da quanto tempo è andata avanti ogni volta che esegui il loop(). Puoi usarlo per abilitare o disabilitare determinate funzioni in determinati momenti della canzone.
Se sai quanto sono lunghi i tuoi loop in millisecondi, puoi anche tenere traccia di quanti loop hai attraversato per una comprensione più sfumata della struttura della canzone!
Un altro potenziale problema che potresti incontrare è quando avviare e interrompere la riproduzione di una traccia. Ho risolto questo problema tenendo traccia di quale battuta di una misura si trovava attualmente la canzone. Quindi potevo riprodurre tracce per un numero qualsiasi di battute dopo un gesto, invece di interromperle immediatamente. Questo fa sì che le cose scorrano molto più agevolmente. Ecco un esempio:
if(millis() - lastLoop >= 4000) { loop += 1; lastLoop = millis(); for(int j = 0; j < 8; j++) { beatNow[j] = false; } } beat = (millis() - lastLoop) / 250; if(battuta!= lastBeat) { lastBeat = battuta; beatsinistra -= 1; }
Assicurati di aggiornare i volumi in base ai valori di beatNow[beat] e/o beatsLeft. Il codice di esempio che incorpora quasi tutto in questo tutorial, più alcuni, è allegato nel caso tu voglia vederlo in pratica.
Consigliato:
Guanto d'arte: 10 passaggi (con immagini)
Art Glove: L'Art Glove è un guanto indossabile che contiene diversi tipi di sensori per controllare la grafica artistica tramite un Micro:bit e p5.js Le dita utilizzano sensori di piegatura che controllano i valori r,g,b e l'accelerometro nel Micro: bit controlla coordinata x,y
Guanto Taser: 7 passaggi
Guanto Taser: stanco di guanti elettrici dall'aspetto stupido con una debole tensione della fotocamera usa e getta? Odi le persone su YouTube che ti mostrano solo l'esterno del loro guanto taser e non ti dicono nemmeno come l'hanno fatto? Hai un gusto raffinato e vuoi che il tuo guanto sia al contempo potente
Guanto morbido robotico: 8 passaggi (con immagini)
Soft Robotics Glove: Il mio progetto è un guanto softrobotic. Ha un attuatore posizionato su ogni dito; la parte inferiore del guanto viene rimossa per facilitare l'utilizzatore nell'indossarlo. Gli attuatori sono attivati da un dispositivo posizionato al polso poco più grande di un orologio
Come realizzare un guanto wireless per pianoforte ad aria: 9 passaggi
Come realizzare un guanto wireless per pianoforte ad aria: scopi e funzioni: il nostro progetto tecnologico indossabile consiste nel creare un guanto wireless per pianoforte ad aria con luci sincronizzate utilizzando l'elettronica di base, un microcontrollore come un HexWear e un laptop con software Arduino e Max 8 . Gli usi del nostro prog
Guanto della Luce: 7 Passi
Gauntlet of Light: so che ci sono alcune persone che li hanno realizzati, ma non ne ho visto nessuno che fornisse istruzioni complete (da quello che ho trovato) su come costruirli, quindi ne ho fatto uno io stesso. ho ottenuto questo ible da Glove of Power di lftndbt e volevo espanderlo in due versi