Taula de continguts:
- Pas 1: materials
- Pas 2: Instal·lació del programari
- Pas 3: connectar l’acceleròmetre
- Pas 4: connectar els sensors flex
- Pas 5: Interfície amb màx
- Pas 6: crear la resta del codi màxim
- Pas 7: ajuntant-ho literalment
Vídeo: Tecnologia usable: guant que canvia la veu: 7 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
Bé, sembla que els guants amb poders increïbles estan de moda aquests dies. Tot i que Infinity Gauntlet de Thanos és un guant força potent, hem volgut fer-ne un que pugui fer alguna cosa encara més notable: canviar la veu del portador en temps real.
Aquest manual instructiu proporciona una explicació detallada de com hem dissenyat un guant que canvia la veu. El nostre disseny va utilitzar diversos sensors i un microcontrolador al guant per detectar moviments, que s’enviaven mitjançant un codi Arduino a un patch Max, on el nostre senyal d’àudio es va alterar i distorsionar de maneres divertides. Els sensors, moviments i alteracions de so específics que hem utilitzat són flexibles per a diferents consideracions; aquesta és només una manera de crear un guant que canvia la veu.
Aquest projecte formava part d’una associació comunitària entre estudiants del Pomona College i la Fremont Academy of Engineering Femineers. És una barreja divertida d’enginyeria electrònica i elements de música electrònica.
Pas 1: materials
Parts:
- Microcontrolador HexWear (ATmega32U4) (https://hexwear.com/)
- Acceleròmetre MMA8451 (https://www.adafruit.com/product/2019)
- Sensors flexibles curts (x4) (https://www.adafruit.com/product/1070)
- Guant de running lleuger
- # 2 cargols i volanderes (x8)
- Connectors de terminals de crimp; Indicador 22-18 (x8) (https://www.elecdirect.com/crimp-wire-terminals/ring-crimp-terminals/pvc-ring-terminals/ring-terminal-pvc-red-22-18-6- 100 pk)
- Resistència de 50kΩ (x4)
- Cable (calibre ~ 20)
- Pas de seguretat autoadhesiu
- Feltre o un altre teixit (~ 10 polzades quadrades)
- Fil de cosir
- Zipties
- Portàtil
- Micròfon USB
Eines
- Kit de soldadura
- Decapadors i talladores de filferro
- Cinta elèctrica
- Pistola d’aire calent
- Tornavís
- Tisores
- Agulla de cosir
Programari:
- Max by Cycling '74 (https://cycling74.com)
- Programari Arduino (https://www.arduino.cc/en/Main/Software)
Pas 2: Instal·lació del programari
Comencem pel que realment és la part més engrescadora de qualsevol projecte: instal·lar biblioteques (i molt més).
Arduino:
Descarregueu i instal·leu el programari Arduino (https://www.arduino.cc/en/Main/Software).
HexWear:
1) (Només Windows, els usuaris de Mac poden ometre aquest pas) Instal·leu el controlador visitant https://www.redgerbera.com/pages/hexwear-driver-installation. Descarregueu i instal·leu el controlador (el fitxer.exe que apareix al pas 2 a la part superior de la pàgina de RedGerbera enllaçada).
2) Instal·leu la biblioteca necessària per a Hexware. Obriu l'IDE Arduino. A "Fitxer", seleccioneu "Preferències". Enganxeu a l'espai proporcionat per als URL addicionals del gestor de taulers
github.com/RedGerbera/Gerbera-Boards/raw/master/package_RedGerbera_index.json.
A continuació, feu clic a "D'acord".
Aneu a Eines -> Tauler: -> Gestor de taules. Al menú de l'extrem superior esquerre, seleccioneu "Contribuïda".
Cerqueu i feu clic a Gerbera Boards i feu clic a Instal·la. Surt i torna a obrir Arduino IDE.
Per assegurar-vos que la biblioteca està instal·lada correctament, aneu a Eines -> Tauler i desplaceu-vos fins a la part inferior del menú. Hauríeu de veure una secció titulada "Gerbera Boards", sota la qual hauria d'aparèixer com a mínim HexWear (si no més taulers com el mini-HexWear).
Acceleròmetre:
Descarregueu i instal·leu la biblioteca de l’acceleròmetre (https://learn.adafruit.com/adafruit-mma8451-accelerometer-breakout/wiring-and-test)
Pas 3: connectar l’acceleròmetre
Per interactuar amb aquest projecte, necessitem dos tipus principals de sensors: un acceleròmetre i uns sensors flex. Els examinarem un per un, començant per l’acceleròmetre. En primer lloc, necessitem que les connexions de maquinari coincideixin.
Per evitar danyar el vostre hexagonal, us recomanem que col·loqueu un cargol i una rentadora núm. 2 pels ports desitjats i, a continuació, connecteu totes les connexions a aquest cargol. Per evitar que res es desprengui quan es juga amb el guant, les connexions s’han de soldar i / o arreglar. Utilitzant uns quants centímetres de cable per a cada connexió, feu les connexions següents des de l’hex a l’acceleròmetre (consulteu els pinouts de més amunt per obtenir una referència):
ENTRADA DE TENSIÓ VINGROUND GNDSCL / D3 SCLSDA / D2 SDA
Amb tot connectat, estem preparats per provar.
Com a prova, executeu el codi de mostra de l’acceleròmetre a Arduino (Fitxer-> Exemples-> Adafruit_MMA8451-> MMA8451demo), assegurant-vos que pugui sortir al monitor sèrie. Hauria de generar l’acceleració a causa de la gravetat (~ 10 m / s) en la direcció z quan es mantingui al nivell. Inclinant l’acceleròmetre, aquesta acceleració es mesurarà en la direcció x o y; ho farem servir per permetre que l'usuari canviï el so girant la mà.
Ara, hem de presentar les dades de l’acceleròmetre de manera que es puguin relacionar amb Max. Per fer-ho, hem d'imprimir els valors de x i y, potser modificats per coincidir amb l'interval desitjat (vegeu la part 6). Al nostre codi adjunt aquí, fem el següent:
// Mesureu la direcció x i la direcció y. Dividim i multipliquem per obtenir els intervals adequats per a MAX (rang de 1000 en x i rang de 40 en y) xdir = event.acceleration.x / 0,02; ydir = abs (event.acceleration.y) * 2; // Imprimeix-ho tot en un format llegible per a Max, amb espais entre cada número Serial.print (xdir); Serial.print ("");
Això hauria de fer que Hex imprimís cada línia els valors modificats de les direccions x i y de l’acceleròmetre. Ara estem preparats per afegir els sensors flex!
Pas 4: connectar els sensors flex
L’usuari pot obtenir molts controls de so potencials si detectem els dits flexionats. Els sensors de flexió ho faran exactament. Cada sensor de flexió és essencialment un potenciòmetre, on el no flexionat té una resistència de ~ 25KΩ, mentre que el totalment flexionat té una resistència de ~ 100KΩ. Posem cada sensor de flexió en un simple divisor de tensió amb una resistència de 50 K, tal com es mostra a la primera imatge.
Un cop més, utilitzeu fils de cable bastant curts (tingueu en compte que tot s’adapta a la part posterior d’un guant), soldeu quatre mòduls divisors de tensió. Els quatre mòduls compartiran el mateix Vin i terra: hem torçat els extrems dels cables pelats, de manera que només tindríem un cable per soldar. Finalment, agafeu els quatre mòduls i feu les connexions que es mostren a la segona imatge (si algú sap fer-ho sense fer un embolic horrible, reveleu els vostres secrets).
Ara, necessitem el codi Arduino per llegir les tensions de cada sensor. Als nostres propòsits, hem tractat els sensors flex com a interruptors; estaven activats o apagats. Com a tal, el nostre codi simplement estableix un llindar de tensió per sobre d’aquest llindar, donem un 1 al port sèrie (és a dir, el sensor està doblegat); en cas contrari, donem un 0:
// Agafeu un nombre de
mostres analògiques i afegiu-les per a cada sensor Flex
while (sample_count <NUM_SAMPLES) {
sum10 + = analogRead (A10);
sum9 + = analogRead (A9);
sum7 + = analogRead (A7);
sum11 + = analogRead (A11);
sample_count ++;
// Retard breu per no agafar-los massa ràpidament
retard (5);
}
// calcular la tensió, fent una mitjana sobre les mostres ràpides
// utilitzeu 5.0 per a un ADC de 5.0V
tensió de referència
// 5.015V és el calibrat
tensió de referència
voltatge10 = ((flotant) suma10 /
(flotant) NUM_SAMPLES * 5.015) / 1024.0;
voltatge9 = ((flotant) suma9 /
(flotant) NUM_SAMPLES * 5.015) / 1024.0;
voltatge7 = ((flotant) suma7 /
(flotant) NUM_SAMPLES * 5.015) / 1024.0;
voltatge11 = ((flotant) suma11 /
(flotant) NUM_SAMPLES * 5.015) / 1024.0;
// Comproveu si cada sensor de flexió
és superior al llindar (batre); si és així, establiu el nombre
// dit Pinkie
si (voltatge10> batre)
{
// - 5 per pujar
to de veu d'una octava
flex10 = -10;
}
altrament flex10 = 0;
//Dit anular
si (voltatge9>
(batre-0,4)) {
// 5 per baixar
to de veu d'una octava
flex9 = 5;
}
else flex9 = 0;
//Dit del cor
si (voltatge7> batre) {
// 1 per definir
efecte reverberació
flex7 = 1;
}
else flex7 = 0;
//Dit índex
si (tensió11> batre)
{
// 50 per establir
cicles a 50
flex11 = 93;
}
else flex11 = 0;
// Restableix tot el recompte
variable a 0 per al següent bucle
recompte_mostra = 0;
suma10 = 0;
suma9 = 0;
suma7 = 0;
suma11 = 0;
En aquest punt, el port sèrie ha de mostrar valors per a l'orientació de l'acceleròmetre i també si cada sensor de flexió està doblegat. Estem preparats per obtenir el nostre codi Arduino parlant amb Max.
Pas 5: Interfície amb màx
Ara que el codi Hex escolta molts números pel port sèrie, necessitem el programari Max per llegir aquests senyals. El bloc de codi que es mostra a la part superior ho fa exactament. Ets molt benvingut.
Nota important: després de penjar el codi a Hex, tanqueu totes les finestres del port sèrie i, a continuació, canvieu la lletra encerclada al codi Max perquè coincideixi amb el port Hex. Si no esteu segur de quina lletra voleu definir, en prémer la part "imprimir" del codi Max es mostraran tots els ports connectats.
La línia impresa del port sèrie de l’Hex es llegeix a través del bloc de codi Max i després es divideix en funció dels delimitadors d’espai. La sortida al final del bloc Max us permet agafar cada número individualment, de manera que connectarem el primer espai de sortida on volem que vagi la direcció x de l’acceleròmetre, el segon espai serà la direcció y, etc. ara només cal connectar-los a blocs numèrics per assegurar-vos que funcionen. Hauríeu de poder moure els acceleròmetres i els sensors de flexió i veure com canvien els números al programari Max.
Pas 6: crear la resta del codi màxim
Donat el poder del llenguatge Max, realment podeu deixar volar la vostra imaginació amb totes les maneres de modificar el senyal sonor entrant amb el vostre guant màgic. Tot i això, si us quedeu sense idees, a continuació es mostra un resum del que fa i com funciona el nostre codi Max.
Per a cada paràmetre que intenteu modificar, probablement voldreu ficar-vos amb l’interval de valors provinents del codi Arduino per obtenir la sensibilitat adequada.
Alguns altres consells de resolució de problemes màxims:
-
Si no sentiu so
- assegureu-vos que Max estigui configurat per rebre àudio del vostre micròfon (Opcions Dispositiu d’entrada d’estat d’àudio)
- assegureu-vos que el control lliscant del volum principal de Max estigui activat i que tingueu qualsevol altre control de volum que tingueu al codi
-
Si sembla que el codi no fa res
- assegureu-vos que el pedaç estigui bloquejat (símbol de bloqueig a l'extrem inferior esquerre)
- assegureu-vos, mitjançant les lectures del pedaç Max, que el vostre pedaç Max continua obtenint dades del port sèrie Arduino. Si no, proveu de restablir el port sèrie (tal com es descriu al pas 5) i / o comproveu les connexions de cablejat físiques.
-
Sorolls de retall estranys quan es canvien els paràmetres
això té a veure amb el funcionament de ~ tapin i ~ tapout; específicament, quan canvieu els seus valors, es restableixen, cosa que provoca el retall. Tenint en compte el nostre coneixement limitat del programa, estem gairebé segurs que hi ha una millor manera de fer-ho a Max i eliminar el problema …
Pas 7: ajuntant-ho literalment
Ara només queda fixar els nostres circuits al guant. Agafeu la tela addicional i retalleu tires lleugerament més grans que els sensors flex. Cosiu el teixit addicional al dit del guant on es doblega el nus, deixant una màniga perquè el sensor de flexió pugui seure (no només podem enganxar els sensors de flexió directament al guant perquè el teixit del guant s’estén mentre es doblen els dits)). Una vegada que la màniga està principalment cosida, feu lliscar el sensor de flexió i cosiu amb cura els cables fins al guant, fixant el sensor de flexió al seu lloc. Repetiu-ho per a cada sensor de flexió.
A continuació, utilitzeu el passador de seguretat autoadhesiu per fixar el hexagonal a la part posterior del guant (és possible que vulgueu posar-hi una mica de cola calenta per assegurar-vos que no es desfaci durant el desgast). Cosir l’acceleròmetre al canell del guant. Finalment, utilitzeu la màgia de les tiroles per netejar els cables desagradables.
Ja esteu a punt per posar a prova el vostre màxim guant de cant! (Us recomanem encaridament Daft Punk "Harder Better Faster Stronger" per mostrar completament les vostres capacitats de canvi de veu)
Recomanat:
Malaltia de Parkinson: tecnologia usable: 4 passos
Tecnologia de la malaltia de Parkinson: més de 10 milions de persones a tot el món viuen amb la malaltia de Parkinson (PD). Un trastorn progressiu del sistema nerviós que causa rigidesa i afecta el moviment del pacient. En termes més senzills, moltes persones patien la malaltia de Parkinson, però
Seient calent: construeix un coixí escalfador que canvia de color: 7 passos (amb imatges)
Seient calent: construeix un coixí calefactiu que canvia el color: vols mantenir-te torrat els dies freds d’hivern? Hot Seat és un projecte que utilitza dues de les possibilitats de tèxtil electrònic més emocionants: el canvi de color i la calor. Construirem un coixí de seient que s’escalfi i, quan estigui llest, revelarà t
Guant de conversió de gest a veu / text: 5 passos
Guant de conversió de text a veu / text: la idea / empenta darrere de la implementació d’aquest projecte era ajudar les persones que tenen dificultats per comunicar-se mitjançant la parla i comunicar-se mitjançant gestos amb les mans o més conegut popularment com a llengua de signes americana (ASL). Aquest projecte pot ser un pas cap a la previsió
Feu clic de text a veu sobre un UChip amb tecnologia ARMbasic i altres SBC amb tecnologia ARMbasic: 3 passos
Feu clic en text a veu sobre una UChip amb tecnologia ARMbasic i altres SBC amb tecnologia ARMbasic: Introducció: Bon dia. Em dic Tod. Sóc un professional de l’aeroespacial i de la defensa que també té una mica de friki. Inspiració: prové de l’era de BBS de marcatge, microcontroladors de 8 bits, ordinadors personals Kaypro / Commodore / Tandy / TI-994A, quan R
Guant assistent: un guant de control controlat per Arduino: 4 passos (amb imatges)
Wizard Glove: un guant de control controlat per Arduino: The Wizard Glove. En el meu projecte he fet un guant que podeu utilitzar per jugar als vostres jocs favorits relacionats amb la màgia d’una manera divertida i immersiva utilitzant només uns quants recursos bàsics d’arduino i arduino. pots jugar a jocs de coses com els desplaçaments més grans, o tu