Tartalomjegyzék:
- 1. lépés: Anyagok
- 2. lépés: A szoftver telepítése
- 3. lépés: A gyorsulásmérő felszerelése
- 4. lépés: A flex érzékelők felszerelése
- 5. lépés: Interfész a max
- 6. lépés: A Max kód többi részének felépítése
- 7. lépés: Szó szerint összerakni az egészet
Videó: Viselhető technika: Hangváltó kesztyű: 7 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
Nos, úgy tűnik, manapság hihetetlen erővel bíró kesztyű a divat. Bár Thanos Infinity Gauntlet elég erős kesztyű, mi olyan kesztyűt szerettünk volna készíteni, amely még figyelemre méltóbbá teheti: megváltoztathatja viselőjének hangját valós időben.
Ez az Instructable bemutatja, hogyan terveztük meg a hangváltó kesztyűt. Tervezésünk különféle érzékelőket és a kesztyűben lévő mikrokontrollert használt a mozgások észlelésére, amelyeket Arduino -kódon keresztül elküldött egy Max -patch -hez, ahol az audiojelünket szórakoztató módon megváltoztatták és torzították. Az általunk használt egyedi érzékelők, mozgások és hangváltozások mind rugalmasak különböző szempontokból; ez csak az egyik módja a hangváltó kesztyű létrehozásának!
Ez a projekt a Pomona College hallgatói és a Fremont Academy of Engineering Femineers közötti közösségi partnerség része volt. Ez egy igazi szórakoztató keveréke az elektronikai mérnöki és az elektronikus zenei elemeknek!
1. lépés: Anyagok
Alkatrészek:
- HexWear mikrokontroller (ATmega32U4) (https://hexwear.com/)
- MMA8451 gyorsulásmérő (https://www.adafruit.com/product/2019)
- Rövid flex érzékelők (x4) (https://www.adafruit.com/product/1070)
- Könnyű futókesztyű
- #2 csavar és alátét (x8)
- Préselt csatlakozók; 22-18-as (x8) 100db)
- 50 kΩ ellenállás (x4)
- Huzal (~ 20 mérő)
- Öntapadós biztonsági csap
- Filc vagy más szövet (~ 10 négyzetméter)
- Varró cérna
- Cipzárak
- Laptop
- USB mikrofon
Eszközök
- Forrasztó készlet
- Huzalcsupaszítók és drótvágók
- Elektromos szalag
- Forrólevegős pisztoly
- Csavarhúzó
- Olló
- Varrótű
Szoftver:
- Max by Cycling '74 (https://cycling74.com)
- Arduino szoftver (https://www.arduino.cc/en/Main/Software)
2. lépés: A szoftver telepítése
Kezdjük azzal, ami valóban a legizgalmasabb része minden projektnek: a könyvtárak (és még sok más) telepítése.
Arduino:
Töltse le és telepítse az Arduino szoftvert (https://www.arduino.cc/en/Main/Software).
HexWear:
1) (csak Windows, Mac felhasználók kihagyhatják ezt a lépést) Telepítse az illesztőprogramot a https://www.redgerbera.com/pages/hexwear-driver-installation webhelyen. Töltse le és telepítse az illesztőprogramot (az.exe fájl, amely a 2. lépésben található a linkelt RedGerbera oldal tetején).
2) Telepítse a szükséges könyvtárat a Hexware számára. Nyissa meg az Arduino IDE -t. A „Fájl” alatt válassza a „Beállítások” lehetőséget. Illessze be a További táblák kezelője URL -ek számára biztosított helyre
github.com/RedGerbera/Gerbera-Boards/raw/master/package_RedGerbera_index.json.
Ezután kattintson az „OK” gombra.
Lépjen az Eszközök -> Tábla: -> Testületkezelő menüpontra. A bal felső sarokban található menüben válassza a „Hozzájárult” lehetőséget.
Keresse meg, majd kattintson a Gerbera Boards elemre, majd a Telepítés gombra. Lépjen ki és nyissa meg újra az Arduino IDE -t.
A könyvtár megfelelő telepítésének biztosításához lépjen az Eszközök -> Tábla menüpontra, és görgessen a menü aljára. Látnia kell a „Gerbera táblák” című részt, amely alatt legalább a HexWear feliratnak kell megjelennie (ha nem több táblához, például a mini-HexWearhoz).
Gyorsulásmérő:
Töltse le és telepítse a gyorsulásmérő könyvtárat (https://learn.adafruit.com/adafruit-mma8451-accelerometer-breakout/wiring-and-test)
3. lépés: A gyorsulásmérő felszerelése
Két fő típusú érzékelőre van szükségünk, hogy kölcsönhatásba léphessünk ezzel a projekttel: egy gyorsulásmérővel és flex érzékelőkkel. Ezeket egyenként megvizsgáljuk, kezdve a gyorsulásmérővel. Először is szükségünk van a hardver kapcsolatokra.
Annak érdekében, hogy elkerülje a Hex károsodását, javasoljuk, hogy helyezzen át egy #2 csavart és alátétet a kívánt portokon, majd csatlakoztassa az összes csatlakozást ehhez a csavarhoz. Annak elkerülése érdekében, hogy a kesztyűvel való játék során bármi elszabaduljon, a csatlakozásokat forrasztani és/vagy krimpelni kell. Néhány hüvelyk vezetéket használva minden csatlakozáshoz, végezze el a következő csatlakozásokat a hexadecimális és a gyorsulásmérő között (lásd a fenti érintkezőket referenciaként):
BEMENETI FESZÜLTSÉG VINGROUND GNDSCL/D3 SCLSDA/D2 SDA
Ha minden be van kötve, készen állunk a tesztelésre!
Tesztként futtassa a gyorsulásmérő mintakódját az Arduino alkalmazásban (Fájl-> Példák-> Adafruit_MMA8451-> MMA8451demo), és győződjön meg arról, hogy képes kimenni a soros monitorra. A gravitáció miatti gyorsulást (~ 10 m/s) kell kiadnia z irányban, ha vízszintesen tartja. A gyorsulásmérő megdöntésével ezt a gyorsulást x vagy y irányban mérik; ezt használjuk, hogy a viselője a kezét forgatva megváltoztassa a hangot!
Most úgy kell bemutatnunk a gyorsulásmérő adatait, hogy azok összekapcsolhatók legyenek a Max. Ehhez ki kell nyomtatnunk az x és y értékeket, esetleg módosítva a kívánt tartományhoz (lásd 6. rész). Az itt csatolt kódunkban a következőket tesszük:
// Mérje meg a x irányt és az y irányt. Osztva és szorozva jutunk a MAX megfelelő tartományaiba (1000 -es tartomány x -ben és 40 -es tartomány y -ban) xdir = esemény.gyorsulás.x/0,02; ydir = has (esemény.gyorsulás.y)*2; // Mindent nyomtatható olvasható formátumban a Max számára - szóközökkel minden szám között Serial.print (xdir); Serial.print ("");
Ennek a Hexának minden sorban ki kell nyomtatnia a gyorsulásmérő x és y irányának módosított értékeit. Most készen állunk a flex érzékelők hozzáadására!
4. lépés: A flex érzékelők felszerelése
Viselője sok lehetséges hangvezérlést kaphat, ha észlelni tudjuk a hajló ujjakat. A flex érzékelők ezt teszik. Minden hajlítóérzékelő lényegében potenciométer, ahol a hajlítatlan ellenállása ~ 25KΩ, míg teljesen hajlítva ~ 100KΩ. Mindegyik flex érzékelőt egy egyszerű feszültségosztóba helyezzük, 50K ellenállással, amint az az első képen látható.
Ismét meglehetősen rövid huzalok használatával (ne feledje, hogy mindez a kesztyű hátuljára fog illeszkedni), forrasztjon négy feszültségosztó modult. A négy modul ugyanazt a Vin-t és földelést fogja használni-összecsavartuk a vezetékek lecsupaszított végeit, így csak egy vezetékünk lesz a forrasztáshoz. Végül vegye a négy modult, és kösse össze a második képen látható kapcsolatokat (ha valaki tudja, hogyan kell ezt megtenni anélkül, hogy borzasztóan kusza rendetlenséget csinálna, kérjük, tárja fel titkait).
Most szükségünk van az Arduino kódra, hogy beolvassuk az egyes érzékelők feszültségeit. Céljaink szerint a flex érzékelőket kapcsolóként kezeltük; be vagy ki voltak kapcsolva. Mint ilyen, a kódunk egyszerűen beállít egy feszültségküszöböt e küszöb fölé, 1-et adunk ki a soros portra (vagyis az érzékelő meg van hajlítva), ellenkező esetben 0-t adunk ki:
// Vegyünk egy számot
analóg mintákat, és összeadja azokat minden egyes Flex érzékelőhöz
while (sample_count <NUM_SAMPLES) {
sum10 += analógRead (A10);
sum9 += analógRead (A9);
sum7 += analógOlvasás (A7);
összeg11 += analógOlvasás (A11);
minta_szám ++;
// Rövid késés, hogy ne vegye túl gyorsan őket
késleltetés (5);
}
// számítsuk ki a feszültséget, átlagolás a gyors mintákhoz képest
// használjon 5.0 -t 5.0V -os ADC -hez
referencia feszültség
// Az 5.015V a kalibrált
referencia feszültség
feszültség10 = ((úszó) összeg10 /
(úszó) NUM_SAMPLES * 5,015) / 1024,0;
feszültség9 = ((úszó) összeg9/
(úszó) NUM_SAMPLES * 5,015) / 1024,0;
feszültség7 = ((úszó) összeg7 /
(úszó) NUM_SAMPLES * 5,015) / 1024,0;
feszültség11 = ((úszó) összeg11 /
(úszó) NUM_SAMPLES * 5,015) / 1024,0;
// Ellenőrizze, hogy minden flex érzékelő
nagyobb a küszöbnél (cséplés) - ha igen, állítsa be a számot
Pinkie ujja
ha (feszültség10> küszöb)
{
//-5 emelni
hangmagasság egy oktávval
flex10 = -10;
}
egyébként flex10 = 0;
//Gyűrűsujj
ha (feszültség9>
(cséplés-0,4)) {
// 5 lejjebb
hangmagasság egy oktávval
flex9 = 5;
}
else flex9 = 0;
//Középső ujj
if (feszültség7> küszöb) {
// 1 beállítani
reverb effektus
flex7 = 1;
}
else flex7 = 0;
//Mutatóujj
ha (feszültség11> küszöb)
{
// 50 beállítani
ciklus 50 -ig
flex11 = 93;
}
else flex11 = 0;
// Az összes számlálás visszaállítása
0 -ra változó a következő ciklushoz
minta_szám = 0;
összeg10 = 0;
összeg9 = 0;
összeg7 = 0;
összeg11 = 0;
Ezen a ponton a soros portnak meg kell jelenítenie a gyorsulásmérő tájolásának értékeit, és azt is, hogy az egyes flex érzékelők hajlottak -e. Készen állunk arra, hogy az Arduino kódunk beszéljen Max -el!
5. lépés: Interfész a max
Most, hogy a Hex kód sok számot köp a soros porton keresztül, szükségünk van a Max szoftverre, hogy leolvassuk ezeket a jeleket. A fenti képblokk ezt teszi! Nagyon szívesen.
Fontos megjegyzés: a kód Hex -hez való feltöltése után zárjon be minden soros port ablakot, majd módosítsa a Max kódban a bekarikázott betűt, hogy megfeleljen a Hex portnak. Ha nem biztos abban, hogy melyik betűt kell beállítani, a Max kód „nyomtatás” részének megnyomása megjeleníti az összes csatlakoztatott portot.
A Hex soros portjából kinyomtatott sort a Max kódblokkban olvassák le, majd a szóközök alapján osztják fel. A Max blokk végén lévő kimenet lehetővé teszi, hogy minden számot külön -külön megragadjon, ezért az első kimeneti teret oda kapcsoljuk, ahová a gyorsulásmérő x irányát szeretnénk elérni, a második szóköz az y irány lesz, stb. Most csak csatlakoztassa ezeket a számblokkokhoz, hogy megbizonyosodjon arról, hogy működnek. Képesnek kell lennie a gyorsulásmérő és a flex érzékelők mozgatására, és látni kell a számok változását a Max szoftverben.
6. lépés: A Max kód többi részének felépítése
Tekintettel a Max nyelv erejére, itt tényleg szabadon engedheti fantáziáját, mindenféle módon megváltoztathatja a bejövő hangjelet varázslatos erőkesztyűjével. Ennek ellenére, ha kifogy az ötletekből, a fentiekben összefoglaljuk, mit tesz a Max kódunk és hogyan működik.
Minden paraméter esetében, amelyet módosítani szeretne, valószínűleg az Arduino kódból származó értéktartományt akarja megzavarni, hogy a megfelelő érzékenységet kapja.
Néhány további Max hibaelhárítási tipp:
-
Ha nem hall hangot
- győződjön meg arról, hogy a Max be van állítva a mikrofonról érkező hang fogadására (Opciók Audioállapot -beviteli eszköz)
- győződjön meg arról, hogy a Max hangerő csúszka a Max fel van kapcsolva, és minden egyéb hangerőszabályzó van a kódban
-
Ha úgy tűnik, hogy a kód nem tesz semmit
- győződjön meg arról, hogy a tapasz le van zárva (zár szimbólum a bal alsó sarokban)
- győződjön meg arról, hogy a Max patch leolvasása révén a Max patch továbbra is adatokat kap az Arduino soros portról. Ha nem, próbálja meg alaphelyzetbe állítani a soros portot (az 5. lépésben leírtak szerint), és/vagy ellenőrizze a fizikai vezetékek csatlakozásait.
-
Furcsa vágási zajok a paraméterek megváltoztatásakor
ez valami köze a ~ tapin és a ~ tapout működéséhez; konkrétan, hogy amikor megváltoztatja az értékeiket, akkor azok visszaállnak, ami a vágást okozza. Tekintettel a program korlátozott ismereteire, szinte biztosak vagyunk abban, hogy van egy jobb módszer erre a Max -ban, és megszüntetjük a problémát…
7. lépés: Szó szerint összerakni az egészet
Most már nincs más hátra, mint rögzíteni az áramkörünket a kesztyűnkhöz. Vegye ki a kiegészítő szövetet, és vágja ki a flexibilis érzékelőknél valamivel nagyobb csíkokat. Varrja a kiegészítő anyagot a kesztyű ujjához, ahol a csukló meghajlik, és hagyjon egyfajta hüvelyet a flex érzékelő számára, hogy üljön be (nem csak a flex érzékelőket ragaszthatjuk közvetlenül a kesztyűre, mert a kesztyűanyag az ujjak hajlításakor nyúlik)). Miután a hüvely nagyrészt meg van varrva, csúsztassa be a flex érzékelőt, és óvatosan varrja a vezetékeket a kesztyűhöz, rögzítve a flex érzékelőt. Ismételje meg ezt minden flex érzékelőnél.
Ezután az öntapadó biztonsági csap segítségével rögzítse a hatszögletű kesztyűt a kesztyű hátoldalához (érdemes felhelyezni néhány forró ragasztót a csapra, hogy megbizonyosodjon arról, hogy nem kopik le a kopás során). Varrja a gyorsulásmérőt a kesztyű csuklójához. Végezetül használja a cipzáras nyakkendők varázsát, hogy szépen tisztítsa meg a csúnya vezetékeket.
Készen áll arra, hogy próbára tegye a végső énekelő kesztyűt! (Nagyon ajánljuk a Daft Punk „Harder Better Faster Stronger” című művét, hogy teljes mértékben megmutassa hangváltó képességeit)
Ajánlott:
Parkinson -kór viselhető technika: 4 lépés
Parkinson -kór viselhető technikája: Világszerte több mint 10 millió ember él Parkinson -kórban (PD). Progresszív idegrendszeri betegség, amely merevséget okoz és befolyásolja a beteg mozgását. Egyszerűbben fogalmazva, sokan Parkinson -kórban szenvedtek, de
Hangváltó (Arduino): 5 lépés
Hangváltó (Arduino): Ez a projekt azért kezdődött, mert az iskolai projektcsoportommal több hangforrást kellett egy hangerősítőre váltanunk. Amikor az interneten kerestünk valamilyen audio kapcsoló modult az Arduino számára, nem találtunk hasonlót
Viselhető technika: légdobok: 5 lépés
Viselhető technika: légdobok: A projekt célja az volt, hogy viseljen dobkészletet készítsen néhány gyorsulásmérőből és piezo lemezből. Az ötlet az volt, hogy egy kézütés hatására csapdahang hallatszik; vagy egy lábnyomásra hi-hat vagy basszusdobos hang szólal meg. Ellenőrzés alatt tartani
Hangváltó: 5 lépés (képekkel)
Hangváltó: Üdv! Mindig olyan akvizíciós/helyreállítási hangrendszert akartál létrehozni, amely képes megváltoztatni a hangodat olyan hatásokkal, mint a szűrés vagy a moduláció! A hangváltó az Ön számára készült! Ez a projekt körülbelül 10 órát és 173,78 USD költségkeretet igényel DE0 nano Tehát
Hangváltó doboz (1/8 "sztereó csatlakozó): 3 lépés
Hangváltó doboz (1/8 "sztereó csatlakozó): Hosszú órákat töltöttem az interneten keresgélve, és valamiféle 1/8 " jack audio kapcsoló doboz, de hiába. Tehát úgy döntöttem, hogy elkészítem a sajátomat, és ez meglepően egyszerű volt. Ehhez a projekthez a következőket használtam: 1 - 4x4x2 pvc csatlakozódoboz (Lowes -tól)