Cuprins:
- Pasul 1: Materiale
- Pasul 2: Instalarea software-ului
- Pasul 3: Atașarea accelerometrului
- Pasul 4: Atașarea senzorilor flexibili
- Pasul 5: interfațarea cu max
- Pasul 6: Construirea Restului Codului Max
- Pasul 7: Puneți totul laolaltă
Video: Tehnologie portabilă: Mănușă care schimbă vocea: 7 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Ei bine, se pare că mănușile cu puteri incredibile sunt la moda în zilele noastre. În timp ce Infinity Gauntlet al lui Thanos este o mănușă destul de puternică, am vrut să realizăm o mănușă care ar putea face ceva și mai remarcabil: schimbarea vocii purtătorului în timp real.
Acest instructabil oferă o prezentare generală a modului în care am proiectat o mănușă care schimbă vocea. Proiectarea noastră a folosit diverși senzori și un microcontroler în mănușă pentru a detecta mișcările, care au fost trimise printr-un cod Arduino către un patch Max, unde semnalul nostru audio a fost apoi modificat și distorsionat în moduri distractive. Senzorii, mișcările și modificările de sunet specifice pe care le-am folosit sunt flexibili pentru diferite considerații; aceasta este doar o modalitate de a crea o mănușă care schimbă vocea!
Acest proiect a făcut parte dintr-un parteneriat comunitar între studenții Pomona College și Academia Fremont de Ingineri Feminini. Este un amestec distractiv de elemente de inginerie electronică și muzică electronică!
Pasul 1: Materiale
Părți:
- Microcontroler HexWear (ATmega32U4) (https://hexwear.com/)
- Accelerometru MMA8451 (https://www.adafruit.com/product/2019)
- Senzori flexori scurți (x4) (https://www.adafruit.com/product/1070)
- Mănușă de alergare ușoară
- # 2 șuruburi și șaibe (x8)
- Conectori terminali cu sertizare; 22-18 calibru (x8) (https://www.elecdirect.com/crimp-wire-terminals/ring-crimp-terminals/pvc-ring-terminals/ring-terminal-pvc-red-22-18-6- 100 buc)
- Rezistor 50kΩ (x4)
- Sârmă (~ 20 gabarit)
- Știft de siguranță autoadeziv
- Pâslă sau altă țesătură (~ 10 inci)
- Ață de cusut
- Zipties
- Laptop
- Microfon USB
Instrumente
- Set de lipit
- Dispozitive de decupare și tăiere de sârmă
- Bandă electrică
- Arma cu aer cald
- Şurubelniţă
- Foarfece
- Ac de cusut
Software:
- Max by Cycling '74 (https://cycling74.com)
- Software Arduino (https://www.arduino.cc/en/Main/Software)
Pasul 2: Instalarea software-ului
Începem cu ceea ce este cu adevărat cea mai entuziasmantă parte a oricărui proiect: instalarea bibliotecilor (și multe altele).
Arduino:
Descărcați și instalați software-ul Arduino (https://www.arduino.cc/en/Main/Software).
HexWear:
1) (numai Windows, utilizatorii Mac pot sări peste acest pas) Instalați driverul accesând https://www.redgerbera.com/pages/hexwear-driver-installation. Descărcați și instalați driverul (fișierul.exe listat la Pasul 2 în partea de sus a paginii RedGerbera conectate).
2) Instalați biblioteca necesară pentru Hexware. Deschideți ID-ul Arduino. Sub „Fișier”, selectați „Preferințe”. În spațiul prevăzut pentru adresele URL suplimentare ale managerului de panouri, lipiți
github.com/RedGerbera/Gerbera-Boards/raw/master/package_RedGerbera_index.json.
Apoi faceți clic pe „OK”.
Accesați Instrumente -> Consiliu: -> Administrator consiliu. Din meniul din colțul din stânga sus, selectați „Contribuit”.
Căutați, apoi faceți clic pe Plăcile Gerbera și faceți clic pe Instalare. Renunțați și redeschideți Arduino IDE.
Pentru a vă asigura că biblioteca este instalată corect, accesați Instrumente -> Tablă și derulați până în partea de jos a meniului. Ar trebui să vedeți o secțiune intitulată „Plăci Gerbera”, sub care ar trebui să apară cel puțin HexWear (dacă nu mai multe plăci precum mini-HexWear).
Accelerometru:
Descărcați și instalați biblioteca accelerometrului (https://learn.adafruit.com/adafruit-mma8451-accelerometer-breakout/wiring-and-test)
Pasul 3: Atașarea accelerometrului
Avem nevoie de două tipuri principale de senzori pentru a interacționa cu acest proiect: un accelerometru și senzori flex. Le vom examina pe rând, începând cu accelerometrul. În primul rând, avem nevoie de conexiuni hardware pentru a se potrivi.
Pentru a evita deteriorarea Hex-ului, vă recomandăm să puneți un șurub și o șaibă # 2 prin orificiile dorite, apoi atașați toate conexiunile la acel șurub. Pentru a preveni pierderea oricărui lucru atunci când vă jucați cu mănușa, conexiunile trebuie lipite și / sau sertizate. Folosind câțiva centimetri de sârmă pentru fiecare conexiune, efectuați următoarele conexiuni de la Hex la accelerometru (a se vedea pinouturile de mai sus pentru referință):
TENSIUNE DE INTRARE VINGROUND GNDSCL / D3 SCLSDA / D2 SDA
Cu totul conectat, suntem gata să testăm!
Ca test, rulați codul eșantionului accelerometrului în Arduino (Fișier-> Exemple-> Adafruit_MMA8451-> MMA8451demo), asigurându-vă că poate ieși pe monitorul Serial. Ar trebui să producă accelerația datorată gravitației (~ 10m / s) în direcția z atunci când este menținută la nivel. Prin înclinarea accelerometrului, această accelerație va fi măsurată în direcția x sau y; vom folosi acest lucru pentru a permite utilizatorului să schimbe sunetul prin rotirea mâinii!
Acum, trebuie să prezentăm datele accelerometrului în așa fel încât să poată fi interfațate cu Max. Pentru a face acest lucru, trebuie să tipărim valorile lui x și y, poate modificate pentru a se potrivi cu intervalul dorit (vezi partea 6). În codul nostru atașat aici, facem următoarele:
// Măsurați direcția x și direcția y. Împărțim și înmulțim pentru a ajunge în intervalele potrivite pentru MAX (interval de 1000 în x și interval de 40 în y) xdir = event.acceleration.x / 0.02; ydir = abs (event.acceleration.y) * 2; // Imprimați totul într-un format lizibil pentru Max - cu spații între fiecare număr Serial.print (xdir); Serial.print ("");
Acest lucru ar trebui ca Hex să imprime valorile modificate ale direcțiilor x și y ale accelerometrului pe fiecare linie. Acum suntem gata să adăugăm senzorii flex!
Pasul 4: Atașarea senzorilor flexibili
Purtătorul poate obține o mulțime de controale sonore potențiale dacă putem detecta degetele îndoite. Senzorii flex vor face exact asta. Fiecare senzor de flexie este în esență un potențiometru, unde neflexat are o rezistență de ~ 25KΩ, în timp ce complet flexat are o rezistență de ~ 100KΩ. Am pus fiecare senzor flex într-un simplu divizor de tensiune cu un rezistor de 50K, așa cum se arată în prima imagine.
Din nou, folosind lungimi destul de scurte de sârmă (rețineți că toate acestea se vor potrivi pe spatele unei mănuși), lipiți patru module divizoare de tensiune. Cele patru module vor împărți același Vin și sol - am răsucit capetele dezbrăcate ale firelor, astfel încât să avem un singur cablu de lipit. În cele din urmă, luați cele patru module și faceți conexiunile afișate în a doua imagine (dacă cineva știe cum să facă acest lucru fără a face o mizerie îngrozitor de încurcată, vă rugăm să ne dezvăluiți secretele).
Acum, avem nevoie de codul Arduino pentru a citi tensiunile de la fiecare senzor. În scopul nostru, am tratat senzorii flex ca niște comutatoare; erau fie pornite, fie oprite. Ca atare, codul nostru stabilește pur și simplu un prag de tensiune-peste acest prag, vom emite un 1 la portul serial (adică senzorul este îndoit), altfel vom emite un 0:
// Ia un număr de
probe analogice și adăugați-le pentru fiecare senzor Flex
while (sample_count <NUM_SAMPLES) {
sum10 + = analogRead (A10);
sum9 + = analogRead (A9);
sum7 + = analogRead (A7);
sum11 + = analogRead (A11);
sample_count ++;
// Întârziere scurtă pentru a nu le lua prea repede
întârziere (5);
}
// calculați tensiunea, media peste eșantioanele rapide
// utilizați 5.0 pentru un ADC 5.0V
tensiunea de referință
// 5.015V este calibrat
tensiunea de referință
tensiune10 = ((float) sum10 /
(float) NUM_SAMPLES * 5.015) / 1024.0;
tensiune9 = ((float) sum9 /
(float) NUM_SAMPLES * 5.015) / 1024.0;
tensiune7 = ((float) sum7 /
(float) NUM_SAMPLES * 5.015) / 1024.0;
tensiune11 = ((float) sum11 /
(float) NUM_SAMPLES * 5.015) / 1024.0;
// Verificați dacă fiecare senzor flex
este mai mare decât pragul (treierat) - dacă da, setați numărul
// Degetul Pinkie
dacă (tensiune10> treieră)
{
// - 5 pentru a ridica
ton de voce cu o octavă
flex10 = -10;
}
altfel flex10 = 0;
//Degetul inelar
dacă (tensiunea9>
(treierat-0,4)) {
// 5 pentru a coborî
ton de voce cu o octavă
flex9 = 5;
}
altfel flex9 = 0;
//Degetul mijlociu
dacă (tensiunea7> treieră) {
// 1 pentru a seta
efect de reverb
flex7 = 1;
}
altfel flex7 = 0;
//Degetul aratator
dacă (tensiune11> treieră)
{
// 50 pentru a seta
cicluri la 50
flex11 = 93;
}
altfel flex11 = 0;
// Resetați toate numărările
variabilă la 0 pentru următoarea buclă
sample_count = 0;
sum10 = 0;
suma9 = 0;
sum7 = 0;
sum11 = 0;
În acest moment, portul serial ar trebui să afișeze valori pentru orientarea accelerometrului și, de asemenea, dacă fiecare senzor flex este îndoit. Suntem gata să obținem codul Arduino vorbind cu Max!
Pasul 5: interfațarea cu max
Acum că codul Hex scuipă numeroase numere prin portul serial, avem nevoie de software-ul Max pentru a citi aceste semnale. Blocul de cod din imaginea de mai sus face exact asta! Cu multa placere.
Notă importantă: după încărcarea codului în Hex, închideți toate ferestrele portului serial, apoi schimbați litera încercuită din codul Max pentru a se potrivi cu portul Hex. Dacă nu sunteți sigur ce literă să setați, apăsând partea „print” a codului Max se vor afișa toate porturile conectate.
Linia tipărită de la portul serial al Hex-ului este citită prin blocul de cod Max și apoi împărțită pe baza delimitatorilor de spațiu. Ieșirea la sfârșitul blocului Max vă permite să apucați fiecare număr individual, așa că vom conecta primul spațiu de ieșire la locul în care dorim să meargă direcția x a accelerometrului, al doilea spațiu va fi direcția y etc. acum, conectați-le doar la blocuri numerice pentru a vă asigura că funcționează. Ar trebui să puteți muta accelerometrul și senzorii flex și să vedeți cum se schimbă numerele în software-ul Max.
Pasul 6: Construirea Restului Codului Max
Având în vedere puterea limbajului Max, îți poți lăsa cu adevărat imaginația să se elibereze aici cu toate modalitățile prin care poți modifica semnalul sonor de intrare cu mănușa ta de putere magică. Totuși, dacă rămâneți fără idei, mai sus este o descriere a ceea ce face codul nostru Max și cum funcționează.
Pentru fiecare parametru pe care încercați să îl modificați, probabil că veți dori să vă deranjați cu gama de valori provenind din codul Arduino pentru a obține sensibilitatea potrivită.
Alte câteva sfaturi Max de depanare:
-
Dacă nu auzi sunet
- asigurați-vă că Max este setat să primească sunet de la microfonul dvs. (Opțiuni Dispozitiv de intrare stare audio)
- asigurați-vă că glisorul Master Volume din Max este activat și orice alte controale de volum pe care le aveți în cod
-
Dacă codul nu pare să facă nimic
- asigurați-vă că patch-ul este blocat (simbolul de blocare în colțul din stânga jos)
- asigurați-vă, prin citiri în patch-ul Max, că patch-ul dvs. Max primește în continuare date de la portul serial Arduino. Dacă nu, încercați să resetați portul serial (așa cum este subliniat la pasul 5) și / sau să verificați conexiunile fizice de cablare.
-
Zgomote ciudate de tăiere la schimbarea parametrilor
acest lucru are legătură cu modul în care funcționează ~ tapin și ~ tapout; mai exact că atunci când le schimbați valorile, acestea se resetează, ceea ce cauzează tăierea. Având în vedere cunoștințele noastre limitate despre program, suntem aproape siguri că există o modalitate mai bună de a face acest lucru în Max și de a elimina problema …
Pasul 7: Puneți totul laolaltă
Tot ce a mai rămas acum este să ne atașăm circuitele la mănușă. Luați materialul suplimentar și decupați benzi puțin mai mari decât senzorii flex. Coaseți țesătura suplimentară la degetul mănușii unde se îndoaie articulația, lăsând un fel de mânecă pentru ca senzorul flexibil să poată sta (nu putem lipi senzorii flexori direct pe mănușă, deoarece țesătura mănușii se întinde pe măsură ce degetele se îndoaie). Odată ce manșonul este în mare parte cusut, glisați senzorul flex în interior și coaseți cu grijă cablurile la mănușă, fixând senzorul flex în loc. Repetați acest lucru pentru fiecare senzor flex.
Apoi, utilizați știftul de siguranță autoadeziv pentru a atașa Hex-ul la partea din spate a mănușii (poate doriți să puneți un lipici fierbinte pe știft pentru a vă asigura că nu se desface în timpul uzurii). Coaseți accelerometrul la încheietura mănușii. În cele din urmă, utilizați magia fermoarelor pentru a curăța frumos orice fir inestetic.
Ești gata să-ți pui la încercare mănușa de putere supremă! (Vă recomandăm cu tărie „Harder Better Faster Stronger” de la Daft Punk pentru a vă arăta complet capacitățile de schimbare a vocii)
Recomandat:
Boala Parkinson Tehnologie portabilă: 4 pași
Tehnologia portabilă a bolii Parkinson: peste 10 milioane de oameni din întreaga lume trăiesc cu boala Parkinson (PD). O tulburare progresivă a sistemului nervos care provoacă rigiditate și afectează mișcarea pacientului. În termeni mai simpli, mulți oameni au suferit de boala Parkinson, dar
Tehnologie portabilă pentru copii: Hero Bandă: 4 pași
Tehnică portabilă pentru copii: banderolă de erou: Acest instructiv va acoperi cum să faci o „banderolă de erou” care să se aprindă atunci când este purtată. Folosind bandă conductivă de țesătură, fir conductiv și LED-uri cusute, aceasta este o activitate excelentă pentru elevii de școală pentru a învăța elementele de bază ale circuitelor și tehnologiei purtabile. Te
Tehnologie portabilă: Tobe cu aer: 5 pași
Wearable Tech: Air Drums: Scopul nostru pentru acest proiect a fost de a realiza un kit de baterie portabil din câteva accelerometre și discuri piezo. Ideea a fost că, având o lovitură de mână, se va auzi un zgomot de capcană; sau, având o apăsare de picior, se va auzi un sunet de tip hi-hat sau bass bass. A controla
Retropie portabilă portabilă: 7 pași
Portable Handheld Retropie: Acesta este videoclipul din care am ieșit. Am folosit aproape aceleași materiale pe care le-a folosit persoana din acest ghid. Dacă videoclipul vă ajută să înțelegeți mai bine cum să faceți o retropie portabilă, atunci nu ezitați să o urmăriți. În cele din urmă ar trebui să ai ceva
Mănușa vrăjitorului: o mănușă controlată Arduino: 4 pași (cu imagini)
Wizard Glove: o mănușă controlată Arduino: The Wizard Glove. În proiectul meu am realizat o mănușă pe care o puteți folosi pentru a juca jocurile preferate legate de magie într-un mod răcoros și captivant folosind doar câteva active de bază arduino și arduino. poți juca jocuri cu lucruri precum sulurile mai în vârstă sau tu