Neopixelový LED pásik reagujúci na svalový senzor Myoware: 6 krokov
Neopixelový LED pásik reagujúci na svalový senzor Myoware: 6 krokov
Anonim
Neopixelový LED pásik reaguje na svalový senzor Myoware
Neopixelový LED pásik reaguje na svalový senzor Myoware

Cieľom je nainštalovať svalový senzor pomocou Arduina a spracovať prichádzajúce údaje pomocou Adafruit IO a načítať výstup pomocou spúšte, aby sa svetlo na jednu minútu zmenilo z bieleho na červené.

Čo je svalový senzor Svalový senzor meria elektrickú aktivitu svalu a vytvára analógový výstupný signál, ktorý je ľahko čitateľný mikrokontrolérom. Elektromyografia (EMG) meria svalovú odpoveď alebo elektrickú aktivitu v reakcii na nervovú stimuláciu svalu. Test slúži na detekciu neuromuskulárnych abnormalít. Počas testu sa cez kožu do svalu zavedie jedna alebo viac malých ihiel (tiež nazývaných elektródy).

Na tento projekt potrebujete: -Svalový senzor MyoWare -Elektródy EMG -UzelMCU (esp8266) -Silikónový krycí drôt -USB mikro kábel -Neopixelový LED pásik

Budete potrebovať knižnice: -Adafruit io Arduino (aspoň verzia 2.3.0) -Adafruit Neopixel (verzia 1.2.5) -Adafruit MQTT knižnica (1.0.3) -Arduino HttpClients (0.4.0) Ak nemáte te ešte sú nainštalované knižnice. Potom choďte na Skica> zahrnúť Knižnicu> Spravovať knižnice … do vyhľadávacieho poľa zadajte: [názov knižnice, ktorú chcete nainštalovať].

Krok 1: Pripojenie svalového senzora Myoware (obzvlášť pre tých, ktorí s ním nikdy predtým nepracovali)

Ak ste nikdy nepracovali so svalovým senzorom Myoware, je dobré najskôr porozumieť tomu, ako je tento senzor pripojený a čitateľný na sériovom monitore v Arduine. Táto operácia je štandardným postupom, ktorý je už popísaný v mnohých príručkách. Platforma Adafruit má v niekoľkých krokoch jasný opis toho, ako to funguje:

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

Kontrola Ak sú vykonané všetky tieto kroky, uvidíte na svojom sériovom monitore, že hodnoty sa zmenia, keď stiahnete svaly. Keď urobíte päsť a stiahnete sval, hodnoty by mali ísť hore a keď svaly uvoľníte, tieto hodnoty by mali opäť klesnúť.

Dôležité Tento krok slúži iba na nastavenie senzora. Kód, ktorý ste použili, nie je pre zvyšok príručky potrebný. V nasledujúcich krokoch zostane rovnaký iba spôsob, akým samotný snímač umiestnite.

Krok 2: Nastavenie IO Adafruit

Nastavenie vstupu / výstupu Adafruit
Nastavenie vstupu / výstupu Adafruit
Nastavenie vstupu / výstupu Adafruit
Nastavenie vstupu / výstupu Adafruit
Nastavenie vstupu / výstupu Adafruit
Nastavenie vstupu / výstupu Adafruit

Prvým krokom je prihlásenie sa alebo vytvorenie účtu v Adafruit IO, prejdite na Adafruit IO. Adafruit IO je cloudová platforma, ku ktorej sa môžete pripojiť prostredníctvom internetu. Adafruit IO robí dáta užitočnými s dátovými pripojeniami.

Keď ste vo svojom účte:

Vytvorte analógový kanál Ďalej budete musieť vytvoriť kanál s názvom Analógový. Ak potrebujete pomoc s vytváraním kanálov na serveri Adafruit IO, pozrite sa na sprievodcu základmi krmiva Adafruit IO (ako na fotografii 1 a 2).

Pridaním bloku meradla a čiarového grafu BlockNext vytvorte nový informačný panel a pomenujte ho tak, ako chcete (ako je znázornené na fotografiách 3, 4 a 5 a vytvorte nový dashboard). Uistite sa, že ste ako zdroj údajov vybrali analógový kanál.

Keď ste na palubnej doske, pridajte nový blok meradla kliknutím na modré plus v pravom hornom rohu. Blok pomenujte, čo chcete (zobrazené na fotografiách 6 a 7), a dajte mu maximálnu hodnotu 1024 a minimálnu hodnotu 0 (hodnoty svalového senzora).

To isté zopakujte s blokom čiarovej mapy (foto 8) ako vyššie s blokom Gauge.

Ak ste urobili vyššie uvedené kroky, musíte mať podobnú obrazovku ako posledná fotografia.

Krok 3: Vstup Arduino

Vstup Arduino
Vstup Arduino
Vstup Arduino
Vstup Arduino
Vstup Arduino
Vstup Arduino
Vstup Arduino
Vstup Arduino

V kroku 1 ste urobili správne zapojenie senzora svalov MyoWare. V tomto kroku sa ponoríme do kódu Arduino, ktorý sa dodáva s pripojením ku kroku 2 na palubnú dosku Adafruit IO. Na konci tohto kroku uvidíte vstupné hodnoty svalového senzora Myoware v dvoch blokoch, ktoré ste nastavili.

Nastavenie Arduina

Uistite sa, že máte nainštalované všetky knižnice, ktoré sú uvedené vyššie v úvode.

Budeme pracovať s príkladom náčrtu. Otvorte teda Súbor> Príklad> Adafruit IO Arduino> adafruitio_08_analog_in (foto 1). Prečo tento náčrt? pretože najskôr nastavujeme vstupnú časť tejto príručky. Senzor MyoWare Muscle využíva analógový výstup. Ak sa chcete ponoriť do témy o analógoch.

Konfigurácia siete Arduino Ak chcete konfigurovať nastavenia siete, kliknite na náčrtok na kartu config.h. V definícii IO_USERNAME budete musieť nastaviť svoje používateľské meno Adafruit IO a kľúč IO Adafruit v definícii IO_KEY. Svoje používateľské meno a kľúč nájdete v pravom hornom rohu obrazovky vo svojom Arduino IO (príklad na fotografii 2)

#define IO_USERNAME "your_username"

#define IO_KEY „your_key“

WiFi Config WiFi je predvolene povolené v súbore config.h, takže ak používate jednu z podporovaných dosiek WiFi, budete musieť iba upraviť možnosti WIFI_SSID a WIFI_PASS na karte config.h.

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

Ak máte vyššie uvedené nastavenia, môžeme prejsť na skutočný kód adafruit_08_analog_in. Výchozí pin v tomto prípade je statet na AO. Toto je pravý kolík, pretože ste v kroku 2 položili svalový senzor na dosku.

Tento príklad používa snímač fotobuniek, pretože používame svalový senzor a zmeníme tento názov. Nezáleží na tom, či to urobíte, iba to urobí sémanticky upratanejší. Zmeňte PHOTOCELL_PIN na MUSCLESENSOR_PIN a urobte to na dvoch miestach skice.

/************************* Príklad začína tu ********************* *********/

// analógový pin 0 #define PHOTOCELL_PIN A0

Na poslednej kódovej línii je uvedené oneskorenie. Toto oneskorenie je 1 sekunda, nastavíme na 2 sekundy, takže 2 000. Robíme to preto, že na Adafruit IO existuje licencia s dátovým limitom. Do dvoch sekúnd tento náčrt prekračuje tento dátový limit a poskytne VÝSTRAŽNÉ UPOZORNENIE. Čo znamená, že v ňom neprichádzajú žiadne hodnoty. Nastavenie na dve sekundy tomu zabráni.

// čakanie jednu sekundu (1000 milisekúnd == 1 sekunda) oneskorenie (2000);

Práve to ste museli na náčrte zmeniť, aby to fungovalo. Ak chcete presne vedieť, ako celý kód funguje. Nájdete ho na serveri learn Adafruit s vysvetlením všetkých blokov kódu.

Skontrolujte Načrtnite náčrt na svoju dosku a otvorte sériový monitor Arduino. Vaša doska by sa teraz mala pripojiť k Adafruit IO.

teraz môžete utiahnuť ruku a mali by ste vidieť meniace sa hodnoty odosielané do Adafruit IO (ako na fotografii 3). Ak na sériovom monitore nevidíte žiadne hodnoty, skontrolujte, či ste v sériovom monitore nastavili prenosovú rýchlosť.

Hlavný panel Adafruit IO Skontrolujte svoj hlavný panel na serveri Adafruit IO a mali by ste vidieť rozchod a čiarový graf, ako reagujú na zmeny hodnôt myoWare svalového senzora.

Krok 4: Nastavenie spúšťača IO Adafruit

Nastavenie spúšťača I / O Adafruit
Nastavenie spúšťača I / O Adafruit
Nastavenie spúšťača I / O Adafruit
Nastavenie spúšťača I / O Adafruit

Doteraz sme boli schopní zaistiť vstup zo senzora svalov MyoWare do Adafruit IO. Teraz začneme čítať tieto informácie. Aby sa po 5 -násobnom zistení hodnoty nad X svalového senzora vykonala akcia pomocou LED diódy Neopixel.

Táto časť bola pre mňa, kde som musel preskúmať, ako môžem čítať históriu AdOruit IO. Predtým som pracoval s kanálmi Feeds a Dashboards, takže som si myslel, že vytvorený kanál a informačný panel to dokážu prečítať a vytvoriť akciu tu v Arduine. Zatiaľ sa mi to nepodarilo. Po mnohých výskumoch a Adafruit IO som zistil, že akciu je možné spustiť pomocou funkcie Trigger v Adafruit IO. Získajte viac informácií o spúšťačoch.

Extra krmivo Predtým, ako budeme môcť spustiť spúšťač, musíme vytvoriť iný kanál, aby sme ho mohli pomenovať v Arduine a získať tak výstup. Vytvorte informačný kanál s názvom AlertTriggered.

Vytvoriť spúšťač Vytvorte nový spúšťač. Zobrazí sa otázka, či chcete vytvoriť reaktívny spúšťač alebo rozvrhový spúšťač, zvoľte reaktívny spúšťač a kliknite na vytvoriť. Dôvodom je, že chcete niečo spustiť iba vtedy, keď sa niečo stane (foto 1).

Je potrebné nastaviť niekoľko vecí (Ďalšie kroky sú uvedené aj na fotografii 2).-V prvom prípade zvoľte analógový kanál, takže vstup bude prevzatý odtiaľto.

-Vyberiete viac ako toto, pretože chcete niečo spustiť, keď hodnota prekročí také číslo.

-Spoločná hodnota, pre aktiváciu spúšťača môžete zadať požadované číslo. V tomto prípade som urobil 600.

-Pri arduine budete musieť dostať spätnú väzbu, keď prekročí 600: tak na Potom vyberte položku Publikovať správu na:.

-Potom si môžete vybrať svoj druhý kanál vytvorený AlertTriggered.

Nakoniec kliknite na vytvoriť.

Krok 5: Neopixelový výstup

Neopixelový výstup
Neopixelový výstup

Posledným krokom je generovanie výstupu. Hotovo v skici Arduino, ktorú ste upravili, zavolaním informačného kanála AlertTriggered (ktorý ste vytvorili v predchádzajúcom kroku).

Aby ste mohli generovať výstup, musíte najskôr pripojiť LED pásik Neopixel k vodiču NodeMCU.- + 5v (ľavý) vodič vášho LED pásu na 3v vodiča NodeMCU- GND (pravý) na G uzla (G = GND)- Stredový drôt DIN LED na D5 (alebo inom D porte)

CodeI som zahrnul celý náčrt s alternáciami do tohto kroku ako súbor (nájdete ho v spodnej časti tohto kroku). Je to ten istý náčrt, s ktorým ste pracovali v posledných niekoľkých krokoch, ale teraz je konečný náčrt zahrnutý v krokoch, ktoré musíte urobiť, aby ste mohli vygenerovať výstup. súbor adafruitio_musclesensor_neopixel. Funguje to s súborom config.h, ktorý ste predtým nastavili pre svoje údaje. Bloky kódu sú tiež súčasťou komentárov, takže môžete vidieť, čo sa deje.

V tomto kóde som vytvoril spúšťač, keď sa AlertTriggered (čo sme deklarovali v predchádzajúcom kroku nad hodnotou vyššou ako 600) spustí viac ako 5 -krát. To znamená, že keď je spustený, LED pás Neopixel je nastavený z bielej na červenú. Stane sa to minútu a potom červený stav vybledne a znova sa prepne do bieleho stavu.

Aby to bolo pre vás ako programátora jasnejšie, posledná sada kódu je pre sériový monitor. Aké sú hodnoty a kedy máte, spustí úroveň výstrahy. Spolu s pridávaním sekúnd, keď je výstražný stav zapnutý, až kým sa po 60 sekundách opäť nevypne. Táto časť je preto voliteľná.

// aby sa v sériovom monitore zobrazovali plynulé sekundy, keď je alarmový stav na Serial.println ("Uplynuli sekundy:"); Serial.println (secondsPassed); } else {secondsPassed = 0; }

Ak máte vykonané všetky kroky alebo si stiahnete súbor náčrtu adafruitio_musclesensor_neopixel s vlastnou konfiguráciou. H, môžete ho nahrať na svoj NodeMCU. Ak je to hotové, musíte na sériovom monitore vidieť niečo podobné, ako je uvedené nižšie:

Pripojenie k Adafruit IO…

Adafruit IO pripojený. Odosielanie -> 23 Odosielanie -> 78

Fotografia 1 je sériový monitor, keď je v výstražnom režime.

Nefunguje to? Skontrolujte nasledujúce veci- Skontrolujte, či je súbor config.h zahrnutý správnym spôsobom- Zadali ste správne používateľské meno a kľúč Adafruit IO- Zadali ste správny SSID a heslo Wifi- Umiestnili ste zapojenie MyoWare Senzor svalov vpravo a z Neopixelového LED pásu

Alebo skontrolujte predchádzajúce kroky.

Krok 6: Výsledky

Hurá, máte hotovo! Aby som predviedol a videl konečný produkt v prevádzke, pridal som video.

Odporúča: