Tartalomjegyzék:

Viselhető technika: Hangváltó kesztyű: 7 lépés
Viselhető technika: Hangváltó kesztyű: 7 lépés

Videó: Viselhető technika: Hangváltó kesztyű: 7 lépés

Videó: Viselhető technika: Hangváltó kesztyű: 7 lépés
Videó: 5 LIFEHACK, amit biztos használni fogsz a jövőben! 2024, Július
Anonim
Viselhető technika: Hangváltó kesztyű
Viselhető technika: Hangváltó kesztyű
Viselhető technika: Hangváltó kesztyű
Viselhető technika: Hangváltó kesztyű

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

Anyagok
Anyagok
Anyagok
Anyagok
Anyagok
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

A gyorsulásmérő felszerelése
A gyorsulásmérő felszerelése
A gyorsulásmérő felszerelése
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

A Flex érzékelők felszerelése
A Flex érzékelők felszerelése
A flex érzékelők felszerelése
A flex érzékelők felszerelése
A Flex érzékelők felszerelése
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

Interfész Max
Interfész 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

Szó szerint összerakni az egészet
Szó szerint összerakni az egészet
Szó szerint összerakni az egészet
Szó szerint összerakni az egészet
Szó szerint összerakni az egészet
Szó szerint összerakni az egészet
Szó szerint összerakni az egészet
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: