Innehållsförteckning:

Neopixel Led Strip Reagerar på Myoware Muskelsensor: 6 steg
Neopixel Led Strip Reagerar på Myoware Muskelsensor: 6 steg

Video: Neopixel Led Strip Reagerar på Myoware Muskelsensor: 6 steg

Video: Neopixel Led Strip Reagerar på Myoware Muskelsensor: 6 steg
Video: Collin cohosts Wearable Electronics with Becky Stern 2/3/2016 - LIVE 2024, Juli
Anonim
Neopixel Led Strip reagerar på Myoware muskelsensor
Neopixel Led Strip reagerar på Myoware muskelsensor

Målet är att installera en muskelsensor med hjälp av Arduino och bearbeta inkommande data med Adafruit IO och hämta utmatning med en trigger så att ljuset blir från vitt till rött i en minut.

Vad är en muskelsensor Muskelsensorn mäter muskelns elektriska aktivitet och producerar en analog utsignal som enkelt kan läsas av en mikrokontroller. Elektromyografi (EMG) mäter muskelsvar eller elektrisk aktivitet som svar på en nervs stimulering av muskeln. Testet används för att upptäcka neuromuskulära abnormiteter. Under testet sätts en eller flera små nålar (även kallade elektroder) genom huden in i muskeln.

För detta projekt behöver du: -MyoWare muskelsensor -EMG -elektroder -NodeMCU (esp8266) -Silikonhöljetråd -USB mikrokabel -Neopixel ledremsa

Bibliotek du behöver: -Adafruit io Arduino (minst version 2.3.0) -Adafruit Neopixel (version 1.2.5) -Adafruit MQTT-bibliotek (1.0.3) -Arduino HttpClients (0.4.0) Om du inte har te bibliotek installerade ännu. Gå sedan till Sketch> include Library> Manage Libraries … typ: [biblioteksnamnet du vill installera] i sökfältet.

Steg 1: Anslutning av Myoware -muskelsensor (speciellt för dem som aldrig arbetat med det tidigare)

Om du aldrig har arbetat med en Myoware -muskelsensor är det bra att först förstå hur den här sensorn är ansluten och läsbar i seriemonitorn i Arduino. Denna operation är ett standardförfarande som finns i många manualer som redan beskrivits. Adafruit -plattformen har en tydlig beskrivning av hur detta fungerar i några steg:

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

Kontrollera om alla dessa steg har gjorts ser du på din seriella bildskärm att värdena ändras när du spänner musklerna. När du gör en knytnäve och spänner dina muskler bör värdena gå upp och när du slappnar av din muskel bör dessa värden gå ner igen.

Viktigt! Detta steg är bara att ställa in sensorn. Koden du har använt är inte nödvändig för resten av manualen. Bara sättet att sätta upp själva sensorn förblir densamma för de kommande stegen.

Steg 2: Adafruit IO -installation

Adafruit IO -installation
Adafruit IO -installation
Adafruit IO -installation
Adafruit IO -installation
Adafruit IO -installation
Adafruit IO -installation

Det första steget är att logga in eller skapa ett konto i Adafruit IO, bläddra till Adafruit IO. Adafruit IO är en molnplattform som du kan ansluta till via internet. Adafruit IO gör data användbar med dataanslutningar.

När du är på ditt konto:

Skapa det analoga flödet Nästa måste du skapa ett flöde som heter Analog. Om du behöver hjälp med att komma igång med att skapa flöden på Adafruit IO, kolla in Adafruit IO Feed Basics guide (Som på foto 1 och 2).

Lägga till mätarblocket och linjediagrammet BlockNext, skapa en ny instrumentpanel och namnge den som du vill att den ska namnge (visas på bilderna 3, 4 och 5 för att skapa en ny instrumentpanel). Se till att du har valt det analoga flödet som datakälla.

När du är i instrumentpanelen lägger du till ett nytt Gauge -block genom att klicka på det blå pluset i det övre högra hörnet. Namnge blocket vad du vill (visas på bilderna 6 och 7) och ge det ett maxvärde på 1024 och ett minvärde på 0 (värden på muskelsensorn).

Upprepa samma sak med linjediagramblocket (foto 8) som ovan med mätarblocket.

Kontrollera Om du har gjort allt ovan måste du ha en liknande skärm som det senaste fotot.

Steg 3: Arduino -ingång

Arduino -ingång
Arduino -ingång
Arduino -ingång
Arduino -ingång
Arduino -ingång
Arduino -ingång
Arduino -ingång
Arduino -ingång

I steg 1 har du gjort installationen av att ansluta MyoWare Muscle -sensorn korrekt. Detta steg kommer vi att dyka in i Arduino -koden som följer med anslutning till steg 2 Adafruit IO -instrumentpanelen. I slutet av detta steg ser du ingångsvärdena för Myoware Muscle -sensorn i de två block som du har konfigurerat.

Arduino installation

Se till att du har installerat alla bibliotek som anges ovan i inledningen.

Vi ska arbeta med en exempelskiss. Så öppna Arkiv> Exempel> Adafruit IO Arduino> adafruitio_08_analog_in (foto 1). Varför denna skiss? eftersom vi först konfigurerar inmatningsdelen av den här handboken. MyoWare Muscle -sensorn använder analog utgång. Om du vill dyka mer in på ämnet om analog.

Arduino Network Config För att konfigurera nätverksinställningarna, klicka på fliken config.h i skissen. Du måste ange ditt Adafruit IO -användarnamn i IO_USERNAME -definieringen och din Adafruit IO -nyckel i IO_KEY -definieringen. Du hittar ditt användarnamn och nyckel längst upp till höger på skärmen i din Arduino IO (exempel på foto 2)

#define IO_USERNAME "ditt_användarnamn"

#define IO_KEY "din_nyckel"

WiFi Config WiFi är aktiverat som standard i config.h så om du använder ett av de WiFi -kort som stöds behöver du bara ändra alternativen WIFI_SSID och WIFI_PASS på fliken config.h.

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

Arduino -kod Om du har ändrat inställningarna ovan kan vi gå vidare till den faktiska koden, adafruit_08_analog_in. Standardpinnen i det här exemplet är statett på AO. Detta är rätt stift eftersom du har placerat din muskelsensor på brädet i steg 2.

Detta exempel använder en fotocellssensor, eftersom vi använder en muskelsensor kommer vi att ändra detta namn. Det spelar ingen roll om du gör detta, det kommer bara att göra det semantiskt snyggare. Ändra PHOTOCELL_PIN till MUSCLESENSOR_PIN gör detta på två ställen i skissen.

/************************ Exempel börjar här *********************** *********/

// analog pin 0 #define PHOTOCELL_PIN A0

I den sista kodlinjen läggs det upp en fördröjning. Denna fördröjning är 1 sekund, vi ska ställa in är på 2 sekunder så 2000. Vi gör detta för att det finns en licens på Adafruit IO med en datagräns, under två sekunder överskrider denna skiss den datagränsen och det kommer att ge en THROTTLE -VARNING. Vad betyder att det inte kommer några värden i. Om du anger detta till två sekunder förhindrar du detta.

// vänta en sekund (1000 millisekunder == 1 sekund) fördröjning (2000);

Detta var vad du var tvungen att ändra i skissen för att få det att fungera. Om du vill veta exakt hur hela koden fungerar. Du hittar den på lära Adafruit, med en förklaring av varje kodblock.

Kontrollera Ladda upp skissen till ditt kort och öppna Arduino Serial Monitor. Din styrelse bör nu ansluta till Adafruit IO.

du kan nu spänna armen och du bör se de förändrade värdena skickas till Adafruit IO (som på foto 3). Om du inte ser några värden i den seriella bildskärmen, kontrollera om du har ställt in Baud -hastigheten i den seriella bildskärmen till 115200.

Adafruit IO Dashboard Kontrollera din instrumentpanel på Adafruit IO, så ska du se mätaren och linjediagrammet svara på ändringarna i MyoWare Muscle Sensor -värden.

Steg 4: Adafruit IO Trigger Setup

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

Hittills har vi kunnat göra input från MyoWare Muscle -sensorn till Adafruit IO som fungerar. Nu ska vi börja läsa denna information. Så att efter 5 gånger ett värde över X av muskelsensorn detekteras, utförs en åtgärd av Neopixel ledremsan.

Det här avsnittet var för mig där jag var tvungen att undersöka hur jag kan läsa Adafruit IO -historien. Jag hade arbetat med Feeds och Dashboards tidigare, så jag trodde att flödet och instrumentpanelen som skapades kunde läsa detta och skapa en handling här i Arduino. Hittills har jag inte lyckats. Efter mycket forskning och Adafruit IO upptäckte jag att en åtgärd kan utlösas med Trigger -funktionen i Adafruit IO. Läs mer om Triggers.

Ett extra feed Innan vi kan göra en Trigger måste vi skapa ett annat feed så att vi kan namnge det i Arduino för att få utgången. Skapa ett flöde med namnet AlertTriggered.

Skapa en Trigger Nästa till rubrikerna Feed and Dashboard is Trigger, go here. Skapa en ny trigger. Du kommer att bli tillfrågad om du vill skapa en Reactive Trigger eller Schedule Trigger, välj Reactive Trigger och klicka på skapa. Detta beror på att du bara vill utlösa något när något händer (foto 1).

Ett antal saker måste ställas in (nästa steg visas också på foto 2).-Välj det analoga flödet vid första If, så kommer ingången att hämtas härifrån.

-Om du väljer mer än detta för att du vill utlösa något när värdet överstiger ett sådant tal.

-Komprimeringsvärde du kan ange önskat nummer för att aktivera utlösaren. Jag gjorde 600 i det här fallet.

-Med arduino måste du få en feedback när den överstiger 600: så på Välj sedan publicera ett meddelande till:.

-Därefter kan du välja ditt andra flöde skapat AlertTriggered.

Klicka till sist på skapa.

Steg 5: Neopixel -utmatning

Neopixel -utgång
Neopixel -utgång

Det sista steget är att generera utdata. Gjort i Arduino -skissen som du har redigerat genom att ringa AlertTriggered -flödet (som du skapade i föregående steg).

För att kunna generera utdata måste du först ansluta Neopixel ledremsan till NodeMCU.- + 5v (vänster) ledning på din ledremsa på 3v på din NodeMCU- GND (höger) kabel på G på noden (G = GND)- Centrertråd DIN på lysdioden på D5 (eller någon annan D-port)

CodeI har inkluderat hela skissen med alternationer i detta steg som en fil (finns längst ner i detta steg). Detta är samma skiss som du har arbetat med under de senaste stegen men nu ingår den sista skissen med stegen du måste göra för att kunna generera utdata. adafruitio_musclesensor_neopixel -fil. Detta fungerar med config.h du tidigare har ställt in med dina data. Alla kodblock ingår i kommentarer så att du kan se vad som händer.

Vilka utdata har kodats I den här koden har jag skapat en utlösare när AlertTriggered (vad vi deklarerade i föregående steg över ett värde större än 600) utlöses mer än 5 gånger. Detta betyder att när den utlöses är Neopixel ledremsan inställd från vitt till rött. Detta kommer att hända i en minut och det röda tillståndet kommer att blekna och slingas till det vita tillståndet igen.

Seriell bildskärm För att göra det tydligare för dig som programmerare är den sista uppsättningen kod för serieövervakaren. Vilka värden är och när du har utlöser varningsnivån. Tillsammans med att lägga till sekunder när varningsläget är på, tills det efter 60 sekunder växlar till varningsläget av igen. Denna del är därför valfri.

// för att visa de passerade sekunderna i Serial Monitor när alartstate är på Serial.println ("Sekunder passerade:"); Serial.println (secondPassed); } annat {secondsPassed = 0; }

Kontrollera om du har gjort stegen eller har skissadafruitio_musclesensor_neopixel -filen med din egen config.h kan du ladda upp den till din NodeMCU. Om det är gjort måste du se något liknande som nedan i din seriella bildskärm:

Ansluter till Adafruit IO …

Adafruit IO ansluten. Skickar -> 23 Skickar -> 78

Foto 1 är Serial Monitor när den är i Alertmode.

Det fungerar inte? Kontrollera följande saker- Kontrollera om config.h ingår på rätt sätt- Har du lagt in rätt Adafruit IO-användarnamn och nyckel- Har du lagt in rätt SSID och ett Wifi-lösenord- Har du placerat ledningarna för MyoWare Muskelsensor höger och från Neopixel Led Strip

Eller kontrollera de föregående stegen.

Steg 6: Resultat

Hurra du är klar! För att demonstrera och se slutprodukten i aktion har jag inkluderat en video.

Rekommenderad: