Tartalomjegyzék:

A Neopixel LED csík reagál a Myoware izomérzékelőre: 6 lépés
A Neopixel LED csík reagál a Myoware izomérzékelőre: 6 lépés

Videó: A Neopixel LED csík reagál a Myoware izomérzékelőre: 6 lépés

Videó: A Neopixel LED csík reagál a Myoware izomérzékelőre: 6 lépés
Videó: WS2812 [Programmable LED Strip] 2024, November
Anonim
Neopixel led szalag reagál a Myoware izomérzékelőre
Neopixel led szalag reagál a Myoware izomérzékelőre

A cél az izomérzékelő telepítése az Arduino segítségével, és a beérkező adatok feldolgozása az Adafruit IO -val, és a kimenet lehívása egy triggerrel, hogy a fény fehérről vörösre változzon egy percig.

Mi az izomérzékelő? Az elektromiográfia (EMG) méri az izomválaszt vagy az elektromos aktivitást, válaszul az ideg izomstimulációjára. A vizsgálat a neuromuszkuláris rendellenességek kimutatására szolgál. A vizsgálat során egy vagy több kis tűt (más néven elektródát) helyeznek a bőrön keresztül az izomba.

Ehhez a projekthez a következőkre van szüksége: -MyoWare izomérzékelő

Könyvtárak, amelyekre szüksége lesz: -Adafruit io Arduino (legalább 2.3.0 verzió) -Adafruit Neopixel (1.2.5 verzió) -Adafruit MQTT könyvtár (1.0.3) -Arduino HttpClients (0.4.0) Ha nincs könyvtárak még telepítve vannak. Ezután lépjen a Vázlat> könyvtár> Könyvtárak kezelése… menüpontba: írja be: [a telepíteni kívánt könyvtár nevét] a keresőmezőbe.

1. lépés: A Myoware izomérzékelő csatlakoztatása (különösen azok számára, akik még soha nem dolgoztak vele)

Ha még soha nem dolgozott Myoware izomérzékelővel, akkor jó, ha először megérti, hogy ez az érzékelő hogyan van csatlakoztatva és olvasható az arduino -i soros monitoron. Ez a művelet egy szabványos eljárás, amelyet számos, már leírt kézikönyv tartalmaz. Az Adafruit platform néhány lépésben egyértelműen leírja ennek működését:

learn.adafruit.com/getting-started-with-my…

Ha mindezeket a lépéseket megtette, a soros monitoron látni fogja, hogy az izmok megfeszítésekor az értékek megváltoznak. Amikor ökölbe szorítod és megfeszíted az izmaidat, az értékeknek felfelé kell emelkedniük, és amikor ellazítod az izmaidat, ezeknek az értékeknek újra le kell esniük.

Fontos Ez a lépés csak az érzékelő beállítása. Az Ön által használt kód nem szükséges a kézikönyv többi részéhez. Csak az érzékelő elhelyezésének módja ugyanaz marad a következő lépésekben.

2. lépés: Az Adafruit IO beállítása

Adafruit IO beállítás
Adafruit IO beállítás
Adafruit IO beállítás
Adafruit IO beállítás
Adafruit IO beállítás
Adafruit IO beállítás

Első lépésként jelentkezzen be vagy hozzon létre fiókot az Adafruit IO -ban, keresse meg az Adafruit IO -t. Az Adafruit IO egy felhőplatform, amelyhez interneten keresztül csatlakozhat. Az Adafruit IO az adatokat adatkapcsolatokkal teszi hasznossá.

Amikor fiókjában van:

Ezután hozza létre az analóg hírcsatornát, majd létre kell hoznia egy analóg hírcsatornát. Ha segítségre van szüksége az Adafruit IO hírcsatornák létrehozásához, nézze meg az Adafruit IO Feed Basics útmutatót (mint az 1. és 2. képen).

A Gauge Block és a Line chart Block hozzáadásával hozzon létre egy új irányítópultot, és adja meg a kívánt nevet (a 3., 4. és 5. képen látható, hogy új irányítópultot készítsen). Győződjön meg arról, hogy az analóg hírcsatornát választotta adatforrásként.

Amikor a műszerfalban van, adjon hozzá egy új mérőblokkot a jobb felső sarokban lévő kék plusz gombra kattintva. Nevezze el a blokkot, amit szeretne (a 6. és 7. képen látható), és adja meg a maximális értékét 1024 és a minimális értéket 0 (az izomérzékelő értékei).

Ismételje meg ugyanezt a vonaldiagram -blokkkal (8. kép), mint fent a Gauge blokkkal.

Ha a fentieket elvégezte, hasonló képernyőnek kell lennie, mint az utolsó fényképnek.

3. lépés: Arduino bemenet

Arduino bemenet
Arduino bemenet
Arduino bemenet
Arduino bemenet
Arduino bemenet
Arduino bemenet
Arduino bemenet
Arduino bemenet

Az 1. lépésben helyesen végezte el a MyoWare Muscle érzékelő bekötését. Ebben a lépésben belemerülünk az Arduino kódba, amely az Adafruit IO műszerfal 2. lépéséhez való csatlakozáshoz tartozik. E lépés végén látni fogja a Myoware Muscle érzékelő bemeneti értékeit a két blokkban, amelyeket beállított.

Arduino beállítás

Győződjön meg arról, hogy minden olyan könyvtár telepítve van, amelyet fent ismertettek a bevezetőben.

Egy példavázlattal fogunk dolgozni. Tehát nyissa meg a Fájl> Példa> Adafruit IO Arduino> adafruitio_08_analog_in (1. fotó) lehetőséget. Miért ez a vázlat? mert először a kézikönyv beviteli részét állítjuk be. A MyoWare Muscle érzékelő analóg kimenetet használ. Ha többet szeretne elmélyíteni az analóg témában.

Arduino hálózati konfiguráció A hálózati beállítások konfigurálásához kattintson a config.h fülre a vázlatban. Be kell állítania az Adafruit IO felhasználónevét az IO_USERNAME definícióban, az Adafruit IO kulcsot pedig az IO_KEY definícióban. Felhasználónevét és kulcsát megtalálja az Arduino IO képernyőjének jobb felső sarkában (példa a 2. képen)

#define IO_USERNAME "your_username"

#define IO_KEY "a te kulcsod"

WiFi Config A WiFi alapértelmezés szerint engedélyezve van a config.h -ban, így ha a támogatott WiFi táblák egyikét használja, akkor csak a config.h lapon módosítania kell a WIFI_SSID és WIFI_PASS beállításokat.

#define WIFI_SSID "your_ssid" #define WIFI_PASS "your_pass"

Arduino kód Ha módosítja a fenti beállításokat, továbbmehetünk a tényleges kódhoz, az adafruit_08_analog_in. Ebben a példában a vereségcsap statet az AO -n. Ez a megfelelő csap, mivel az izomérzékelőt a táblán helyezte el a 2. lépésben.

Ez a példa fotocellás érzékelőt használ, mivel izomérzékelőt használunk, ezért megváltoztatjuk ezt a nevet. Nem számít, ha ezt megteszi, csak szemantikailag rendezettebb lesz. Módosítsa a PHOTOCELL_PIN értéket MUSCLESENSOR_PIN értékre, ezt a vázlat két helyén végezze el.

/************************ Példa itt kezdődik ********************** *********/

// analóg pin 0 #define PHOTOCELL_PIN A0

Az utolsó kódsorban késleltetés van beállítva. Ez a késleltetés 1 másodperc, mi 2 másodpercre fogjuk állítani, tehát 2000. Ezt azért tesszük, mert az Adafruit IO rendelkezik adatkorlátos licenccel, két másodperc alatt ez a vázlat túllépi ezt az adatkorlátot, és FÁJT FIGYELMEZTETÉS. Ez azt jelenti, hogy nincsenek értékek. Ha ezt két másodpercre állítja, ez megakadályozza.

// várj egy másodpercet (1000 ezredmásodperc == 1 másodperc) késleltetés (2000);

Ezen kellett változtatni a vázlaton, hogy működjön. Ha pontosan szeretné tudni, hogyan működik az egész kód. Megtalálható a Learn Adafruit oldalon, minden kódblokk magyarázatával.

Töltse fel a vázlatot a táblára, és nyissa meg az Arduino soros monitort. A táblának most csatlakoznia kell az Adafruit IO -hoz.

most meghúzhatja a karját, és látnia kell, hogy a változó értékek elküldésre kerülnek az Adafruit IO -hoz (mint a 3. képen). Ha nem lát értékeket a soros monitoron, ellenőrizze, hogy a soros monitoron az átviteli sebességet 115200 értékre állította -e be.

Ellenőrizze műszerfalát az Adafruit IO -n, és látnia kell, hogy a mérőeszköz és a vonaldiagram reagál a MyoWare izomérzékelő értékeinek változásaira.

4. lépés: Az Adafruit IO Trigger beállítása

Adafruit IO Trigger Setup
Adafruit IO Trigger Setup
Adafruit IO Trigger Setup
Adafruit IO Trigger Setup

Eddig a MyoWare Muscle szenzorból tudtunk bemenetet adni az Adafruit IO működéséhez. Most elkezdjük olvasni ezeket az információkat. Annak érdekében, hogy az izomérzékelő X feletti értékének ötszörösének észlelése után a Neopixel led csík elvégezzen egy műveletet.

Ez a rész nekem szólt, ahol meg kellett vizsgálnom, hogyan olvashatom az Adafruit IO történetét. Korábban már dolgoztam a hírcsatornákkal és az irányítópultokkal, ezért úgy gondoltam, hogy a létrehozott hírcsatorna és műszerfal ezt el tudja olvasni, és létrehozhat egy akciót itt, Arduino -ban. Eddig nem sikerült. Sok kutatás és Adafruit IO után felfedeztem, hogy az Adafruit IO Trigger funkciójával egy művelet kiváltható. További információ a Triggerekről.

Mielőtt triggert készíthetnénk, létre kell hoznunk egy másik hírcsatornát, hogy el tudjuk nevezni azt Arduino -ban, hogy megkapjuk a kimenetet. Hozzon létre egy hírcsatornát AlertTriggered néven.

A fejlécekhez tartozó hírcsatorna és az irányítópult Trigger mellett lépjen ide. Hozzon létre egy új triggert. A rendszer megkérdezi, hogy szeretne -e létrehozni egy reaktív aktiválót vagy ütemezési aktiválót, válassza a reaktív aktiválót, és kattintson a létrehozásra. Ez azért van, mert csak akkor akar valamit kiváltani, ha valami történik (1. fotó).

Számos dolgot be kell állítani (A következő lépések a 2. képen is láthatók.)-Válassza ki az analóg előtolást az első If, így a bemenet innen lesz átvéve.

-Nagyobbat választ, mint ez, mert valamit kiváltani szeretne, ha az érték meghaladja az ilyen számot.

-Összehasonlítási érték megadhatja a kívánt számot a trigger aktiválásához. 600 -at csináltam ebben az esetben.

-Arduino esetén visszajelzést kell kapnia, ha meghaladja a 600 -at: tehát a Akkor válassza az üzenet közzététele lehetőséget:.

-Azt követően kiválaszthatja a második feed létrehozott AlertTriggered.

Végül kattintson a Létrehozás gombra.

5. lépés: Neopixel kimenet

Neopixel kimenet
Neopixel kimenet

Az utolsó lépés a kimenet létrehozása. Kész a szerkesztett Arduino -vázlatban az AlertTriggered hírcsatorna meghívásával (amelyet az előző lépésben hozott létre).

Ahhoz, hogy kimenetet tudjon generálni, először a Neopixel led szalagot kell csatlakoztatnia a NodeMCU-hoz.- + 5v (bal) vezeték a led szalagról a NodeMCU-GND (jobb oldali) vezetékén a csomópont G-jén (G = GND))- A LED középső vezetéke DIN a D5-en (vagy bármely más D-porton)

A CodeI a teljes vázlatot a változásokkal fájlba foglalta ebben a lépésben (ez a lépés alján található). Ugyanaz a vázlat, amellyel az elmúlt néhány lépésben dolgozott, de most az utolsó vázlat tartalmazza azokat a lépéseket, amelyeket meg kell tennie a kimenet létrehozásához. adafruitio_musclesensor_neopixel fájl. Ez a konfigurációval működik, amelyet korábban beállított az adataival. A kódblokkokat megjegyzések is tartalmazzák, így láthatja, mi történik.

Ebben a kódban aktiválási szabályt hoztam létre, amikor az AlertTriggered (amit az előző lépésben 600 -nál nagyobb értéken deklaráltunk) több mint ötször aktiválódik. Ez azt jelenti, hogy a Neopixel led csík aktiválódásakor fehérről vörösre áll. Ez egy percig fog történni, majd a vörös állapot elhalványul, és ismét fehér állapotba kerül.

Annak érdekében, hogy programozó számára világosabb legyen, az utolsó kódkészlet a Soros monitorhoz tartozik. Melyek az értékek és mikor váltja ki a riasztási szintet. A másodpercek hozzáadásával együtt, amikor a riasztási állapot be van kapcsolva, amíg 60 másodperc múlva ismét riasztási állapotba kapcsol. Ez a rész tehát nem kötelező.

// az eltelt másodpercek megjelenítése a soros monitoron, amikor az alartstate a Serial.println ("Seconds eltelt:"); Serial.println (secondsPassed); } else {secondsPassed = 0; }

Ha elvégezte a lépéseket, vagy megkapta az adafruitio_musclesensor_neopixel vázlatot a saját konfigurációjával. Akkor feltöltheti azt a NodeMCU -ra. Ha ez megtörtént, akkor hasonlót kell látnia, mint alább a soros monitoron:

Csatlakozás az Adafruit IO -hoz…

Az Adafruit IO csatlakoztatva. Küldés -> 23 Küldés -> 78

Az 1. fénykép a soros monitor, amikor riasztási módban van.

Nem működik? Ellenőrizze a következő dolgokat- Ellenőrizze, hogy a config.h megfelelő módon szerepel-e- Helyesen adta meg az Adafruit IO felhasználónevet és kulcsot- Helyes SSID-t és Wifi jelszót adott- Elhelyezte a MyoWare vezetékeit Izomérzékelő jobbról és a Neopixel LED szalagból

Vagy ellenőrizze az előző lépéseket.

6. lépés: Eredmények

Hurrá, kész! A végtermék működésének bemutatására és bemutatására videót mellékeltem.

Ajánlott: