Indholdsfortegnelse:

Neopixel Led Strip Reagerer på Myoware Muskelsensor: 6 trin
Neopixel Led Strip Reagerer på Myoware Muskelsensor: 6 trin

Video: Neopixel Led Strip Reagerer på Myoware Muskelsensor: 6 trin

Video: Neopixel Led Strip Reagerer på Myoware Muskelsensor: 6 trin
Video: Спроектируйте блок винтовых клемм для игровой площадки Adafruit Circuit 2024, November
Anonim
Neopixel Led Strip reagerer på Myoware muskelsensor
Neopixel Led Strip reagerer på Myoware muskelsensor

Målet er at installere en muskelsensor ved hjælp af Arduino og behandle de indgående data med Adafruit IO og hente output med en trigger, så lyset skifter fra hvidt til rødt i et minut.

Hvad er en muskelsensor Muskelsensoren måler en muskels elektriske aktivitet og producerer et analogt udgangssignal, der let kan aflæses af en mikrokontroller. Elektromyografi (EMG) måler muskelrespons eller elektrisk aktivitet som reaktion på en nerves stimulering af musklen. Testen bruges til at hjælpe med at opdage neuromuskulære abnormiteter. Under testen indsættes en eller flere små nåle (også kaldet elektroder) gennem huden ind i musklen.

Til dette projekt har du brug for: -MyoWare muskelsensor -EMG -elektroder -NodeMCU (esp8266) -Silikondæksel -USB mikrokabel -Neopixel led strip

Biblioteker skal du bruge: -Adafruit io Arduino (mindst version 2.3.0) -Adafruit Neopixel (version 1.2.5) -Adafruit MQTT bibliotek (1.0.3) -Arduino HttpClients (0.4.0) Hvis du ikke har te biblioteker installeret endnu. Gå derefter til Skitse> inkluder bibliotek> Administrer biblioteker … skriv: [biblioteksnavnet, du vil installere] i søgefeltet.

Trin 1: Tilslutning af Myoware Muscle Sensor (især for dem, der aldrig har arbejdet med det før)

Hvis du aldrig har arbejdet med en Myoware -muskelsensor, er det godt at først forstå, hvordan denne sensor er forbundet og læsbar i den serielle skærm i Arduino. Denne operation er en standardprocedure, der allerede er beskrevet i mange manualer. Adafruit -platformen har en klar beskrivelse af, hvordan dette fungerer i et par trin:

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

Check Hvis alle disse trin er udført, vil du se på din serielle monitor, at værdierne ændres, når du strammer dine muskler. Når du laver en knytnæve og strammer din muskel, skal værdierne stige, og når du slapper af din muskel, skal disse værdier falde igen.

Vigtigt Dette trin er kun at opsætte sensoren. Den kode, du har brugt, er ikke nødvendig for resten af manualen. Kun den måde, du sætter selve sensoren på, er den samme for de kommende trin.

Trin 2: Adafruit IO -opsætning

Adafruit IO -opsætning
Adafruit IO -opsætning
Adafruit IO -opsætning
Adafruit IO -opsætning
Adafruit IO -opsætning
Adafruit IO -opsætning

Det første trin er at logge ind eller oprette en konto i Adafruit IO, gennemse Adafruit IO. Adafruit IO er en cloud -platform, som du kan oprette forbindelse til over internettet. Adafruit IO gør data nyttigt med dataforbindelser.

Når du er på din konto:

Opret det analoge feed Næste skal du oprette et feed kaldet Analog. Hvis du har brug for hjælp til at komme i gang med at oprette feeds på Adafruit IO, kan du tjekke Adafruit IO Feed Basics guide (Som på foto 1 og 2).

Tilføjelse af måleblokken og stregdiagramblokken Næste, opret et nyt instrumentbræt og navngiv det, som du vil have det til at navngive (vist på fotos 3, 4 og 5 for at lave et nyt instrumentbræt). Sørg for, at du har valgt det analoge feed som datakilde.

Når du er i instrumentbrættet, skal du tilføje en ny måleblok gennem et klik på det blå plus i øverste højre hjørne. Navngiv blokken, hvad du vil (vist på fotos 6 og 7), og giv den en maksimalværdi på 1024 og en minværdi på 0 (værdier af muskelsensoren).

Gentag det samme med linjediagramblokken (foto 8) som ovenfor med måleblokken.

CheckHvis du har gjort alt ovenfor, skal du have en lignende skærm som det sidste foto.

Trin 3: Arduino -input

Arduino input
Arduino input
Arduino input
Arduino input
Arduino input
Arduino input
Arduino input
Arduino input

I trin 1 har du udført opsætningen af ledninger til MyoWare Muscle -sensoren korrekt. Dette trin vil vi dykke ned i Arduino -koden, der følger med forbindelse til trin 2 Adafruit IO dashboard. I slutningen af dette trin ser du inputværdierne for Myoware Muscle -sensoren i de to blokke, du har konfigureret.

Opsætning af Arduino

Sørg for, at du har installeret alle de biblioteker, der er angivet ovenfor i indledningen.

Vi skal arbejde med et eksempel på en skitse. Så åbn Fil> Eksempel> Adafruit IO Arduino> adafruitio_08_analog_in (foto 1). Hvorfor denne skitse? fordi vi først konfigurerer inputdelen af denne manual. MyoWare Muscle -sensoren gør brug af analog udgang. Hvis du vil dykke mere ind i emnet om analog.

Arduino netværkskonfiguration For at konfigurere netværksindstillingerne skal du klikke på fanen config.h i skitsen. Du bliver nødt til at angive dit Adafruit IO -brugernavn i IO_USERNAME -definitionen, og din Adafruit IO -nøgle i IO_KEY -definitionen. Du kan finde dit brugernavn og din nøgle øverst til højre på skærmen i din Arduino IO (eksempel på foto 2)

#define IO_USERNAME "dit_brugernavn"

#define IO_KEY "din_nøgle"

WiFi Config WiFi er som standard aktiveret i config.h, så hvis du bruger et af de understøttede WiFi -kort, skal du kun ændre indstillingerne WIFI_SSID og WIFI_PASS i fanen config.h.

#define WIFI_SSID "dit_ssid" #define WIFI_PASS "dit_pass"

Arduino -kode Hvis du har ændret indstillingerne ovenfor, kan vi gå videre til den faktiske kode, adafruit_08_analog_in. Default pin i dette eksempel er statet på AO. Dette er den rigtige pin, da du har placeret din muskelsensor på brættet i trin 2.

Dette eksempel bruger en fotocellesensor, fordi vi bruger en muskelsensor, vi vil ændre dette navn. Det er ligegyldigt, om du gør dette, det vil kun gøre det semantisk mere ryddeligt. Skift PHOTOCELL_PIN til MUSCLESENSOR_PIN gør dette to steder i skitsen.

/************************ Eksempel starter her *********************** *********/

// analog pin 0 #define PHOTOCELL_PIN A0

I den sidste kodelinje er der lagt en forsinkelse. Denne forsinkelse er 1 sekund, vi skal indstille er til 2 sekunder, så 2000. Vi gør dette, fordi der er en licens på Adafruit IO med en datagrænse, under to sekunder overstiger denne skitse denne datagrænse, og det vil give en THROTTLE ADVARSEL. Det betyder, at der ikke kommer nogen værdier ind. Hvis du indstiller dette til to sekunder, forhindres dette.

// vent et sekund (1000 millisekunder == 1 sekund) forsinkelse (2000);

Dette var hvad du skulle ændre på skitsen for at få det til at fungere. Hvis du vil vide præcis, hvordan hele koden fungerer. Du kan finde det på learn Adafruit med en forklaring på hver kodeblok.

Check Upload skitsen til dit bord, og åbn Arduino Serial Monitor. Dit bord skal nu oprette forbindelse til Adafruit IO.

du kan nu stramme din arm, og du skal se de ændrede værdier blive sendt til Adafruit IO (som på foto 3). Hvis du ikke kan se nogen værdier på den serielle skærm, skal du kontrollere, om du har indstillet Baud -hastigheden i den serielle skærm til 115200.

Adafruit IO Dashboard Kontroller dit dashboard på Adafruit IO, og du skal se måleren og linjediagrammet reagere på de ændringer, MyoWare Muscle Sensor værdierne har.

Trin 4: Adafruit IO Trigger Setup

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

Indtil nu har vi været i stand til at komme med input fra MyoWare Muscle -sensoren til Adafruit IO. Nu skal vi i gang med at læse disse oplysninger. Så efter at 5 gange en værdi over X af muskelsensoren er registreret, udføres en handling af Neopixel led -strimlen.

Dette afsnit var for mig, hvor jeg skulle undersøge, hvordan jeg kan læse Adafruit IO -historien. Jeg havde tidligere arbejdet med Feeds og Dashboards, så jeg tænkte, at det feed og dashboard, der blev oprettet, kunne læse dette og skabe en handling her i Arduino. Indtil videre er det ikke lykkedes mig. Efter meget research og Adafruit IO opdagede jeg, at en handling kan udløses med Trigger -funktionen i Adafruit IO. Lær mere om udløsere.

Et ekstra feed Inden vi kan lave en trigger, skal vi oprette et andet feed, så vi kan navngive det i Arduino for at få te output. Opret et feed med navnet AlertTriggered.

Opret en Trigger Næste til overskrifterne Feed og Dashboard er Trigger, gå her. Opret en ny trigger. Du bliver spurgt, om du vil oprette en Reactive Trigger eller Planlæg trigger, vælg Reactive Trigger og klik på create. Dette skyldes, at du kun vil udløse noget, når der sker noget (foto 1).

Der skal indstilles en række ting (Næste trin vises også på foto 2).-Vælg det analoge feed ved det første If, så input vil blive taget herfra.

-Hvis du vælger mere end dette, fordi du vil udløse noget, når værdien overstiger et sådant tal.

-Komponeringsværdi, du kan indtaste dit ønskede nummer for at aktivere udløseren. Jeg gjorde 600 i dette tilfælde.

-Med arduino bliver du nødt til at modtage en feedback, når den overstiger 600: så på Vælg derefter Publicer en besked til:.

-Hvorefter du kan vælge dit andet feed oprettet AlertTriggered.

Klik til sidst på Opret.

Trin 5: Neopixel -output

Neopixel -output
Neopixel -output

Det sidste trin er at generere output. Udført i Arduino -skitsen, som du har redigeret, ved at kalde AlertTriggered -feedet (som du oprettede i det foregående trin).

For at kunne generere output skal du først tilslutte Neopixel LED-båndet til NodeMCU.- + 5v (venstre) ledning på din LED-strip på 3v på din NodeMCU- GND (højre) ledning på G i Node (G = GND)- Centertråd DIN på LED'en på D5 (eller enhver anden D-port)

CodeI har inkluderet hele skitsen med vekslinger i dette trin som en fil (kan findes nederst i dette trin). Dette er den samme skitse, du har arbejdet med i de sidste par trin, men nu er den sidste skitse inkluderet i de trin, du skal gøre for at kunne generere output. adafruitio_musclesensor_neopixel fil. Dette fungerer med den config.h, du tidligere har angivet med dine data. Al kodeblokkene er inkluderet i kommentarer, så du kan se, hvad der sker.

Hvilke outputdata er blevet kodet I denne kode har jeg oprettet en trigger, når AlertTriggered (hvad vi erklærede i det foregående trin over en værdi større end 600) udløses mere end 5 gange. Dette betyder, at når den udløses, er Neopixel LED -strimlen indstillet fra hvid til rød. Dette vil ske i et minut, og end den røde tilstand vil falme og sløjfes til den hvide tilstand igen.

Serial Monitor For at gøre det tydeligere for dig som programmør, er det sidste sæt kode til Serial Monitor. Hvad værdierne er, og hvornår du har, udløser advarselsniveauet. Sammen med tilføjelse af sekunder, når alarmtilstanden er tændt, indtil den efter 60 sekunder skifter til alarmtilstand igen. Denne del er derfor valgfri.

// for at vise de forbigående sekunder i Serial Monitor, når alartstate er på Serial.println ("Seconds passed:"); Serial.println (sekunderPassed); } ellers {secondsPassed = 0; }

CheckHvis du har udført trinene eller har hentet sketch adafruitio_musclesensor_neopixel -filen med din egen config.h, kan du uploade den til din NodeMCU. Hvis det er gjort, skal du se noget lignende som nedenunder i din serielle skærm:

Opretter forbindelse til Adafruit IO …

Adafruit IO tilsluttet. Sender -> 23 Sender -> 78

Foto 1 er den serielle skærm, når den er i Alertmode.

Virker det ikke? Kontroller følgende ting- Kontroller, om config.h er inkluderet på den rigtige måde- Har du indsat det rigtige Adafruit IO-brugernavn og -nøgle- Har du indsat det rigtige SSID og et Wifi-kodeord- Har du placeret ledningerne til MyoWare Muskelsensor højre og fra Neopixel Led Strip

Eller tjek de foregående trin.

Trin 6: Resultater

Hurra du er færdig! For at demonstrere og se slutproduktet i aktion har jeg inkluderet en video.

Anbefalede: