Obsah:

Neopixelový LED pás reagující na svalový senzor Myoware: 6 kroků
Neopixelový LED pás reagující na svalový senzor Myoware: 6 kroků

Video: Neopixelový LED pás reagující na svalový senzor Myoware: 6 kroků

Video: Neopixelový LED pás reagující na svalový senzor Myoware: 6 kroků
Video: How to Make an app controlled Neopixel LED strip | WS2812FX 2024, Listopad
Anonim
Neopixel Led Strip reagující na svalový senzor Myoware
Neopixel Led Strip reagující na svalový senzor Myoware

Cílem je nainstalovat svalový senzor pomocí Arduina a zpracovat příchozí data pomocí Adafruit IO a načíst výstup pomocí spouště tak, aby se vaše světlo po dobu jedné minuty změnilo z bílé na červenou.

Co je svalový senzor Svalový senzor měří elektrickou aktivitu svalu a vytváří analogový výstupní signál, který lze snadno přečíst pomocí mikrokontroléru. Elektromyografie (EMG) měří svalovou reakci nebo elektrickou aktivitu v reakci na nervovou stimulaci svalu. Test slouží k detekci neuromuskulárních abnormalit. Během testu se přes kůži do svalu zavede jedna nebo více malých jehel (nazývaných také elektrody).

K tomuto projektu potřebujete: -Svalový senzor MyoWare -Elektrody EMG -UzelMCU (esp8266) -Silikonový krycí drát -USB mikro kabel -Neopixelový LED pásek

Potřebné knihovny: -Adafruit io Arduino (alespoň verze 2.3.0) -Adafruit Neopixel (verze 1.2.5) -Adafruit MQTT knihovna (1.0.3) -Arduino HttpClients (0.4.0) Pokud nemáte te dosud nainstalované knihovny. Poté přejděte na Skica> zahrnout knihovnu> Spravovat knihovny … do vyhledávacího pole zadejte: [název knihovny, kterou chcete nainstalovat].

Krok 1: Připojení svalového senzoru Myoware (zejména pro ty, kteří s ním nikdy předtím nepracovali)

Pokud jste nikdy nepracovali s Myoware Muscle Sensor, je dobré nejprve pochopit, jak je tento senzor připojen a čitelný na sériovém monitoru v Arduinu. Tato operace je standardní postup, který je již popsán v mnoha příručkách. Platforma Adafruit má v několika krocích jasný popis, jak to funguje:

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

Kontrola Pokud jsou provedeny všechny tyto kroky, uvidíte na svém sériovém monitoru, že se hodnoty mění, když napnete svaly. Když uděláte pěst a zatnete sval, hodnoty by měly jít nahoru a když sval uvolníte, tyto hodnoty by měly jít zase dolů.

Důležité Tento krok slouží pouze k nastavení senzoru. Kód, který jste použili, není pro zbytek příručky nezbytný. Pouze způsob, jakým umístíte samotný senzor, zůstane pro následující kroky stejný.

Krok 2: Nastavení IO Adafruit

Nastavení IO Adafruit
Nastavení IO Adafruit
Nastavení IO Adafruit
Nastavení IO Adafruit
Nastavení IO Adafruit
Nastavení IO Adafruit

Prvním krokem je přihlášení nebo vytvoření účtu v Adafruit IO, přejděte na Adafruit IO. Adafruit IO je cloudová platforma, ke které se můžete připojit přes internet. Adafruit IO dělá data užitečná s datovými připojeními.

Když jste ve svém účtu:

Vytvořte Analog FeedNext, budete muset vytvořit kanál s názvem Analog. Pokud potřebujete pomoc s začátkem vytváření kanálů na Adafruit IO, podívejte se na příručku Adafruit IO Feed Basics (Jako na fotografii 1 a 2).

Přidáním bloku měřidla a čárového grafu BlockNext vytvořte nový řídicí panel a pojmenujte jej, jak chcete, aby byl pojmenován (na fotografiích 3, 4 a 5 vytvořte nový řídicí panel). Ujistěte se, že jste jako zdroj dat vybrali analogový kanál.

Když jste na palubní desce, přidejte nový blok měřidla kliknutím na modré plus v pravém horním rohu. Pojmenujte blok, jak chcete (viz fotografie 6 a 7), a dejte mu maximální hodnotu 1024 a minimální hodnotu 0 (hodnoty svalového senzoru).

Opakujte to samé s blokem čárového grafu (foto 8) jako výše s blokem měřidla.

Kontrola Pokud jste to udělali výše, musíte mít podobnou obrazovku jako poslední fotografie.

Krok 3: Vstup Arduino

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

V kroku 1 jste správně nastavili zapojení snímače MyoWare Muscle. V tomto kroku se ponoříme do kódu Arduino, který je dodáván s připojením ke kroku 2 řídicího panelu Adafruit IO. Na konci tohoto kroku uvidíte vstupní hodnoty snímače Myoware Muscle ve dvou blocích, které jste nastavili.

Nastavení Arduina

Ujistěte se, že máte nainstalované všechny knihovny, které jsou uvedeny výše v úvodu.

Budeme pracovat s příkladem skici. Otevřete tedy Soubor> Příklad> Adafruit IO Arduino> adafruitio_08_analog_in (foto 1). Proč tento náčrt? protože nejprve nastavujeme vstupní část této příručky. Senzor MyoWare Muscle využívá analogový výstup. Pokud se chcete více ponořit do tématu o analogu.

Konfigurace sítě Arduino Chcete -li konfigurovat nastavení sítě, klikněte na náčrtu na kartu config.h. V definici IO_USERNAME budete muset nastavit své uživatelské jméno Adafruit IO a klíč IO Adafruit v definici IO_KEY. Své uživatelské jméno a klíč najdete v pravém horním rohu obrazovky ve svém Arduino IO (příklad na fotografii 2)

#define IO_USERNAME "your_username"

#define IO_KEY "your_key"

WiFi Config WiFi je ve výchozím nastavení povoleno v config.h, takže pokud používáte některou z podporovaných WiFi desek, budete muset pouze upravit možnosti WIFI_SSID a WIFI_PASS na kartě config.h.

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

Arduino Code Pokud máte výše uvedená nastavení, můžeme přejít dále ke skutečnému kódu adafruit_08_analog_in. Výchozí pin v tomto případě je statet na AO. Toto je správný kolík, protože jste v kroku 2 umístili svůj svalový senzor na desku.

Tento příklad používá snímač fotobuňky, protože používáme svalový senzor, změníme toto jméno. Nezáleží na tom, jestli to uděláte, bude to jen sémanticky uklizenější. Změňte PHOTOCELL_PIN na MUSCLESENSOR_PIN a proveďte to na dvou místech skici.

/************************* Příklad začíná zde ********************* *********/

// analogový pin 0 #define PHOTOCELL_PIN A0

Na posledním kodexu je uvedeno zpoždění. Toto zpoždění je 1 sekunda, nastavíme na 2 sekundy, takže 2 000. Děláme to proto, že na Adafruit IO existuje licence s datovým limitem, pod dvěma sekundami tento náčrt překračuje tento datový limit a bude dávat VAROVÁNÍ. To znamená, že nepřicházejí žádné hodnoty. Nastavení na dvě sekundy tomu zabrání.

// počkejte jednu sekundu (1000 milisekund == 1 sekunda) zpoždění (2000);

Právě to jste museli v náčrtu změnit, aby to fungovalo. Pokud chcete přesně vědět, jak celý kód funguje. Najdete ho na learn Adafruit s vysvětlením všech bloků kódu.

Načíst skicu na desku a otevřít sériový monitor Arduino. Vaše deska by se nyní měla připojit k Adafruit IO.

nyní můžete utáhnout paži a měli byste vidět měnící se hodnoty odesílané do Adafruit IO (jako na fotografii 3). Pokud na sériovém monitoru nevidíte žádné hodnoty, zkontrolujte, zda jste v sériovém monitoru nenastavili přenosovou rychlost na 115200.

Adafruit IO Dashboard Zkontrolujte svůj řídicí panel na Adafruit IO a měli byste vidět měřidlo a spojnicový graf reagovat na změny hodnot MyoWare Muscle Sensor.

Krok 4: Nastavení spouštěče Adafruit IO

Nastavení spouštěče Adafruit IO
Nastavení spouštěče Adafruit IO
Nastavení spouštěče Adafruit IO
Nastavení spouštěče Adafruit IO

Až dosud jsme byli schopni zajistit vstup ze senzoru MyoWare Muscle do Adafruit IO. Nyní začneme číst tyto informace. Aby byla po 5násobku detekována hodnota nad X svalového senzoru, je akce provedena páskem s ledem Neopixel.

Tato část byla pro mě, kde jsem musel prozkoumat, jak mohu číst historii Adafruit IO. Předtím jsem pracoval s Feeds a Dashboards, takže jsem si myslel, že vytvořený feed a dashboard to dokážou přečíst a vytvořit akci tady v Arduinu. Zatím se mi to nepodařilo. Po mnoha výzkumech a Adafruit IO jsem zjistil, že akci lze spustit pomocí funkce Trigger v Adafruit IO. Další informace o spouštěch.

Extra Feed Než budeme moci spustit Trigger, musíme vytvořit jiný feed, abychom jej mohli pojmenovat v Arduinu a získat tak výstup. Vytvořte kanál s názvem AlertTriggered.

Vytvořit Trigger Vedle záhlaví Feed and Dashboard is Trigger, go here. Vytvořte nový spouštěč. Budete dotázáni, zda chcete vytvořit Reaktivní spoušť nebo Naplánovat spoušť, zvolit Reaktivní spoušť a kliknout na vytvořit. Je to proto, že chcete něco spustit pouze tehdy, když se něco stane (foto 1).

Je třeba nastavit řadu věcí (Další kroky jsou také uvedeny na fotografii 2).-Vyberte analogový kanál na prvním If, takže vstup bude převzat odtud.

-Vyberete více než to, protože chcete něco spustit, když hodnota překročí takové číslo.

-Comperison value, můžete zadat požadované číslo pro aktivaci spouště. V tomto případě jsem udělal 600.

-Při arduinu budete muset obdržet zpětnou vazbu, když překročí 600: tak na Potom vyberte publikovat zprávu na:.

-Poté můžete vybrat svůj druhý kanál vytvořený AlertTriggered.

Nakonec klikněte na vytvořit.

Krok 5: Neopixelový výstup

Neopixelový výstup
Neopixelový výstup

Posledním krokem je vygenerování výstupu. Hotovo v náčrtu Arduino, který jste upravili, voláním zdroje AlertTriggered (který jste vytvořili v předchozím kroku).

Abyste mohli generovat výstup, musíte nejprve připojit LED pásek Neopixel k vodiči NodeMCU.- + 5v (levý) vodič vašeho LED pásku na 3v kabelu vašeho NodeMCU- GND (pravý) na G uzlu (G = GND)- Středový vodič LED diody na D5 (nebo jiném D portu)

CodeI zahrnul celý náčrt se střídáním do tohoto kroku jako soubor (najdete jej v dolní části tohoto kroku). Toto je stejný náčrt, se kterým jste pracovali v posledních několika krocích, ale nyní je konečný náčrt součástí kroků, které musíte udělat, abyste mohli vygenerovat výstup. soubor adafruitio_musclesensor_neopixel. Funguje to s konfigurací config.h, kterou jste dříve nastavili pro svá data. Bloky kódu jsou také součástí komentářů, takže můžete vidět, co se děje.

Jaká výstupní data byla kódována V tomto kódu jsem vytvořil spoušť, když se AlertTriggered (to, co jsme deklarovali v předchozím kroku nad hodnotou větší než 600) spustí více než 5krát. To znamená, že když je spuštěn, pruh LED diody Neopixel je nastaven z bílé na červenou. To se stane na minutu a poté červený stav zmizí a znovu se přepne do bílého stavu.

Sériový monitor Aby vám to jako programátoru bylo jasnější, poslední sada kódu je pro Serial Monitor. Jaké jsou hodnoty a kdy máte, spustí úroveň výstrahy. Spolu s přidáváním sekund, když je stav upozornění zapnutý, dokud se po 60 sekundách znovu nepřepne do stavu upozornění. Tato část je tedy volitelná.

// pro zobrazení uplynulých sekund v Serial Monitoru, když je alarmový stav na Serial.println ("Sekundy uběhly:"); Serial.println (secondsPassed); } else {secondsPassed = 0; }

Kontrola Pokud máte hotové kroky nebo si necháte načíst soubor adafruitio_musclesensor_neopixel s vlastní konfigurací. H, můžete jej nahrát do svého NodeMCU. Pokud je to hotové, musíte vidět něco podobného jako níže v sériovém monitoru:

Připojování k Adafruit IO…

Adafruit IO připojen. Odesílání -> 23 Odesílání -> 78

Foto 1 je sériový monitor, když je v Alertmode.

Nefunguje to? Zkontrolujte následující věci- Zkontrolujte, zda je soubor config.h zahrnut správným způsobem- Zadali jste správné uživatelské jméno a klíč Adafruit IO- Zadali jste správný SSID a heslo Wifi- Umístili jste zapojení MyoWare Svalový senzor vpravo a z Neopixel Led Strip

Nebo zkontrolujte předchozí kroky.

Krok 6: Výsledky

Hurá, máte hotovo! Abych předvedl a viděl konečný produkt v akci, přidal jsem video.

Doporučuje: