Sommario:
- Passaggio 1: materiali
- Passaggio 2: installazione del software
- Passaggio 3: collegamento dell'accelerometro
- Passaggio 4: collegamento dei sensori Flex
- Passaggio 5: interfacciamento con Max
- Passaggio 6: costruire il resto del codice massimo
- Passaggio 7: mettere letteralmente tutto insieme
Video: Tecnologia indossabile: Guanto che cambia la voce: 7 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
Bene, sembra che i guanti con poteri incredibili siano di gran moda in questi giorni. Sebbene il Guanto dell'Infinito di Thanos sia un guanto piuttosto potente, volevamo creare un guanto che potesse fare qualcosa di ancora più straordinario: cambiare la voce di chi lo indossa in tempo reale.
Questo Instructable fornisce una guida dettagliata su come abbiamo progettato un guanto che cambia la voce. Il nostro progetto ha utilizzato vari sensori e un microcontrollore nel guanto per rilevare i movimenti, che sono stati inviati tramite un codice Arduino a una patch Max, dove il nostro segnale audio è stato poi alterato e distorto in modi divertenti. I sensori specifici, i movimenti e le alterazioni del suono che abbiamo usato sono tutti flessibili per diverse considerazioni; questo è solo un modo per creare un guanto che cambia la voce!
Questo progetto faceva parte di una partnership comunitaria tra gli studenti del Pomona College e la Fremont Academy of Engineering Femineers. È un mix davvero divertente di ingegneria elettronica ed elementi di musica elettronica!
Passaggio 1: materiali
Parti:
- Microcontrollore HexWear (ATmega32U4) (https://hexwear.com/)
- Accelerometro MMA8451 (https://www.adafruit.com/product/2019)
- Sensori a flessione corta (x4) (https://www.adafruit.com/product/1070)
- Guanto da corsa leggero
- #2 viti e rondelle (x8)
- Connettori terminali a crimpare; calibro 22-18 (x8) (https://www.elecdirect.com/crimp-wire-terminals/ring-crimp-terminals/pvc-ring-terminals/ring-terminal-pvc-red-22-18-6- 100 pezzi)
- Resistenza da 50kΩ (x4)
- Filo (~20 calibro)
- Spilla da balia autoadesiva
- Feltro o altro tessuto (~10 pollici quadrati)
- Filo per cucire
- Zipties
- Il computer portatile
- Microfono USB
Utensili
- Kit di saldatura
- Spelafili e tronchesi
- Nastro elettrico
- Pistola ad aria calda
- Cacciavite
- Forbici
- Ago da cucito
Software:
- Max di Cycling '74 (https://cycling74.com)
- Software Arduino (https://www.arduino.cc/en/Main/Software)
Passaggio 2: installazione del software
Iniziamo con quella che è veramente la parte più esilarante di qualsiasi progetto: l'installazione di librerie (e altro ancora).
Arduino:
Scarica e installa il software Arduino (https://www.arduino.cc/en/Main/Software).
HexWear:
1) (Solo Windows, gli utenti Mac possono saltare questo passaggio) Installare il driver visitando https://www.redgerbera.com/pages/hexwear-driver-installation. Scarica e installa il driver (il file.exe elencato al passaggio 2 nella parte superiore della pagina RedGerbera collegata).
2) Installa la libreria richiesta per Hexware. Apri l'IDE di Arduino. In "File" seleziona "Preferenze". Nello spazio fornito per gli URL di Gestione schede aggiuntive, incolla
github.com/RedGerbera/Gerbera-Boards/raw/master/package_RedGerbera_index.json.
Quindi fare clic su "OK".
Vai su Strumenti -> Bacheca: -> Gestore bacheca. Dal menu nell'angolo in alto a sinistra, seleziona "Contribuito".
Cerca, quindi fai clic su Gerbera Boards e fai clic su Installa. Esci e riapri Arduino IDE.
Per assicurarti che la libreria sia installata correttamente, vai su Strumenti -> Lavagna e scorri fino alla fine del menu. Dovresti vedere una sezione intitolata "Schede Gerbera", sotto la quale dovrebbe apparire almeno HexWear (se non più schede come mini-HexWear).
Accelerometro:
Scarica e installa la libreria dell'accelerometro (https://learn.adafruit.com/adafruit-mma8451-accelerometer-breakout/wiring-and-test)
Passaggio 3: collegamento dell'accelerometro
Abbiamo bisogno di due tipi principali di sensori per interagire con questo progetto: un accelerometro e sensori flessibili. Li esamineremo uno alla volta, iniziando dall'accelerometro. Innanzitutto, abbiamo bisogno che le connessioni hardware corrispondano.
Per evitare di danneggiare il tuo Hex, ti consigliamo di inserire una vite n. 2 e una rondella attraverso le porte desiderate, quindi collegare tutte le connessioni a quella vite. Per evitare che qualcosa si allenti quando si gioca con il guanto, le connessioni devono essere saldate e/o crimpate. Utilizzando pochi pollici di cavo per ogni connessione, effettuare le seguenti connessioni dall'esagono all'accelerometro (vedere i pinout sopra come riferimento):
TENSIONE DI INGRESSO VINGROUND GNDSCL/D3 SCLSDA/D2 SDA
Con tutto collegato, siamo pronti per il test!
Come test, esegui il codice di esempio dell'accelerometro in Arduino (File->Esempi->Adafruit_MMA8451->MMA8451demo), assicurandoti che possa essere inviato al monitor seriale. Dovrebbe emettere l'accelerazione dovuta alla gravità (~10 m/s) nella direzione z quando tenuta a livello. Inclinando l'accelerometro, questa accelerazione verrà misurata nella direzione x o y; lo useremo per consentire a chi lo indossa di cambiare il suono ruotando la mano!
Ora, dobbiamo presentare i dati dell'accelerometro in modo tale che possano essere interfacciati con Max. Per fare ciò, dobbiamo stampare i valori di x e y, magari modificati per corrispondere all'intervallo desiderato (vedi Parte 6). Nel nostro codice allegato qui, facciamo quanto segue:
//Misura la direzione x e la direzione y. Dividiamo e moltiplichiamo per ottenere gli intervalli giusti per MAX (intervallo di 1000 in x e intervallo di 40 in y) xdir = event.acceleration.x/0.02; ydir = abs(event.accelerazione.y)*2; //Stampa tutto in un formato leggibile per Max - con spazi tra ogni numero Serial.print(xdir); Serial.print(" ");
Questo dovrebbe avere l'esadecimale che stampa i valori modificati delle direzioni x e y dell'accelerometro ogni riga. Ora siamo pronti per aggiungere i sensori flessibili!
Passaggio 4: collegamento dei sensori Flex
Chi lo indossa può ottenere molti potenziali controlli del suono se siamo in grado di rilevare le dita piegate. I sensori di flessione faranno proprio questo. Ogni sensore flessibile è essenzialmente un potenziometro, dove non flesso ha una resistenza di ~25KΩ, mentre completamente flesso ha una resistenza di ~100KΩ. Mettiamo ogni sensore flessibile in un semplice partitore di tensione con un resistore da 50K, come mostrato nella prima immagine.
Usando di nuovo lunghezze di filo piuttosto corte (tieni presente che tutto ciò si adatterà sul retro di un guanto), saldare quattro moduli divisori di tensione. I quattro moduli condivideranno lo stesso Vin e massa: abbiamo intrecciato insieme le estremità spellate dei fili in modo da avere un solo cavo da saldare. Infine, prendi i quattro moduli e fai i collegamenti mostrati nella seconda immagine (se qualcuno sa come farlo senza fare un pasticcio orribilmente aggrovigliato, per favore rivela i tuoi segreti).
Ora, abbiamo bisogno del codice Arduino per leggere le tensioni da ciascun sensore. Per i nostri scopi, abbiamo trattato i sensori flessibili come interruttori; erano accesi o spenti. Pertanto, il nostro codice imposta semplicemente una soglia di tensione, al di sopra di questa soglia, emettiamo un 1 sulla porta seriale (il che significa che il sensore è piegato), altrimenti emettiamo uno 0:
// Prendi un numero di
campioni analogici e sommarli per ogni sensore Flex
mentre (conteggio_campioni < NUM_SAMPLES) {
sum10 += analogRead(A10);
sum9 += analogRead(A9);
sum7 += analogRead(A7);
sum11 += analogRead(A11);
sample_count++;
//Breve ritardo per non prenderli troppo in fretta
ritardo(5);
}
// calcola la tensione, media sui campioni rapidi
// usa 5.0 per un ADC da 5.0V
tensione di riferimento
// 5.015V è il calibrato
tensione di riferimento
tensione10 = ((float)somma10 /
(flottante)NUM_SAMPLES * 5.015) / 1024.0;
tensione9 = ((float)somma9/
(flottante)NUM_SAMPLES * 5.015) / 1024.0;
tensione7 = ((float)somma7 /
(flottante)NUM_SAMPLES * 5.015) / 1024.0;
tensione11 = ((float)somma11 /
(flottante)NUM_SAMPLES * 5.015) / 1024.0;
//Controlla se ogni sensore di flessione
è maggiore della soglia (soglia) - in tal caso, impostare il numero
//Mignolo
if (tensione10 > soglia)
{
//-5 per aumentare
altezza della voce di un'ottava
flex10 = -10;
}
altrimenti flex10 = 0;
//Anulare
se (tensione9 >
(soglia-0,4)) {
///5 per abbassare
altezza della voce di un'ottava
flessibile9 = 5;
}
altrimenti flex9 = 0;
//Dito medio
if (tensione7 > soglia) {
//1 per impostare
effetto riverbero
flex7 = 1;
}
altrimenti flex7 = 0;
//Indice
if (tensione11 > soglia)
{
//50 per impostare
cicli a 50
flessione11 = 93;
}
altrimenti flex11 = 0;
//Reimposta tutto il conteggio
variabile a 0 per il ciclo successivo
sample_count = 0;
somma10 = 0;
somma9 = 0;
somma7 = 0;
somma11 = 0;
A questo punto, la porta seriale dovrebbe mostrare i valori per l'orientamento dell'accelerometro e anche se ciascun sensore flessibile è piegato. Siamo pronti per far parlare il nostro codice Arduino con Max!
Passaggio 5: interfacciamento con Max
Ora che il codice esadecimale sta sputando molti numeri attraverso la porta seriale, abbiamo bisogno del software Max per leggere questi segnali. Il blocco di codice nella foto sopra fa proprio questo! Sei il benvenuto.
Nota importante: dopo aver caricato il codice su Hex, chiudere tutte le finestre della porta seriale, quindi modificare la lettera cerchiata nel codice Max in modo che corrisponda alla porta Hex. Se non sei sicuro di quale lettera impostare, premendo la parte "stampa" del codice Max verranno elencate tutte le porte collegate.
La riga stampata dalla porta seriale di Hex viene letta attraverso il blocco di codice Max e quindi divisa in base ai delimitatori di spazio. L'output alla fine del blocco Max ti consente di prendere ogni numero individualmente, quindi collegheremo il primo spazio di output a dove vogliamo che vada la direzione x dell'accelerometro, il secondo spazio sarà la direzione y, ecc. Per ora, collegali ai blocchi numerici per assicurarti che funzionino. Dovresti essere in grado di spostare l'accelerometro e i sensori di flessione e vedere i numeri cambiare nel software Max.
Passaggio 6: costruire il resto del codice massimo
Data la potenza del linguaggio Max, puoi davvero scatenare la tua immaginazione qui con tutti i modi in cui puoi alterare il segnale sonoro in arrivo con il tuo magico guanto del potere. Tuttavia, se sei a corto di idee, sopra c'è una carrellata di cosa fa il nostro codice Max e come funziona.
Per ogni parametro che stai cercando di modificare, probabilmente vorrai scherzare con l'intervallo di valori proveniente dal codice Arduino per ottenere la giusta sensibilità.
Alcuni altri suggerimenti per la risoluzione dei problemi di Max:
-
Se non senti il suono
- assicurati che Max sia impostato per ricevere l'audio dal tuo microfono (Opzioni Audio Status Input Device)
- assicurati che il cursore del volume principale in Max sia alzato e qualsiasi altro controllo del volume che potresti avere nel tuo codice
- Se il codice sembra non fare nulla
- assicurati che la tua patch sia bloccata (simbolo del lucchetto nell'angolo in basso a sinistra)
- assicurati tramite le letture nella patch Max che la tua patch Max stia ancora ricevendo dati dalla porta seriale Arduino. In caso contrario, prova a reimpostare la porta seriale (come descritto nel passaggio 5) e/o controlla i collegamenti fisici del cablaggio.
-
Strani rumori di clipping quando si modificano i parametri
questo ha a che fare con il funzionamento di ~tapin e ~tapout; in particolare che quando si modificano i loro valori, si ripristinano, causando il ritaglio. Data la nostra conoscenza limitata del programma, siamo quasi certi che ci sia un modo migliore per farlo in Max ed eliminare il problema…
Passaggio 7: mettere letteralmente tutto insieme
Tutto ciò che resta ora è collegare i nostri circuiti al nostro guanto. Prendi il tessuto aggiuntivo e ritaglia delle strisce leggermente più grandi dei sensori di flessione. Cucire il tessuto aggiuntivo al dito del guanto dove si piega la nocca, lasciando una sorta di manica per il sensore di flessione (non possiamo semplicemente incollare i sensori di flessione direttamente sul guanto perché il tessuto del guanto si allunga quando le dita si piegano). Una volta che la manica è per lo più cucita, fai scorrere il sensore di flessione e cuci con cura i cavi al guanto, fissando il sensore di flessione in posizione. Ripetere questa operazione per ogni sensore flessibile.
Quindi, usa la spilla da balia autoadesiva per attaccare l'esagono al retro del guanto (potresti voler mettere della colla a caldo sul perno per assicurarti che non si stacchi durante l'uso). Cucire l'accelerometro al polso del guanto. Infine, usa la magia delle fascette per ripulire magnificamente eventuali fili antiestetici.
Sei pronto per mettere alla prova la tua potenza canora definitiva! (Consigliamo vivamente "Harder Better Faster Stronger" dei Daft Punk per mostrare appieno le tue capacità di cambiare voce)
Consigliato:
Tecnologia indossabile per la malattia di Parkinson: 4 passaggi
Tecnologia indossabile per la malattia di Parkinson: più di 10 milioni di persone in tutto il mondo convivono con la malattia di Parkinson (MdP). Disturbo progressivo del sistema nervoso che provoca rigidità e influenza il movimento del paziente. In termini più semplici, molte persone soffrivano del morbo di Parkinson ma
[Mouse indossabile] Controller per mouse indossabile basato su Bluetooth per Windows 10 e Linux: 5 passaggi
[Wearable Mouse] Controller per mouse indossabile basato su Bluetooth per Windows 10 e Linux: ho realizzato un controller per mouse basato su Bluetooth che può essere utilizzato per controllare il puntatore del mouse ed eseguire operazioni relative al mouse del PC al volo, senza toccare alcuna superficie. Il circuito elettronico, incorporato in un guanto, può essere utilizzato per tracciare h
Progetto finale di tecnologia indossabile - Casco DJ: 6 passaggi
Progetto finale di tecnologia indossabile - Casco DJ: l'obiettivo di questo progetto è realizzare un casco DJ con LED reattivi alla musica per lo spettacolo e il fattore wow. Stiamo utilizzando una striscia LED indirizzabile da Amazon.com, nonché un casco da motociclista, un Arduino uno e un cavo
Tecnologia indossabile per bambini: fascia da braccio dell'eroe: 4 passaggi
Tecnologia indossabile per bambini: fascia da braccio dell'eroe: questo tutorial spiegherà come realizzare una "fascia da braccio dell'eroe" che si illumina quando viene indossata. Utilizzando nastro in tessuto conduttivo, filo conduttivo e LED cucibili, questa è una grande attività per gli studenti delle scuole per apprendere le basi dei circuiti e della tecnologia indossabile. Te
Infigo - (un guanto indossabile alimentato dall'intelligenza artificiale): 9 passaggi
Infigo - (un guanto indossabile alimentato dall'intelligenza artificiale): Infigo è un guanto indossabile alimentato dall'intelligenza artificiale (AI) basato sui principi della tecnologia assistiva (AT) che migliorerà la produttività della società compromessa. L'intelligenza artificiale e l'apprendimento automatico non possono sostituire un inte umano