Innholdsfortegnelse:

Neopixel Led Strip reagerer på Myoware muskelsensor: 6 trinn
Neopixel Led Strip reagerer på Myoware muskelsensor: 6 trinn

Video: Neopixel Led Strip reagerer på Myoware muskelsensor: 6 trinn

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

Målet er å installere en muskelsensor ved hjelp av Arduino og behandle innkommende data med Adafruit IO og hente utgang med en trigger slik at lyset blir fra hvitt til rødt i ett minutt.

Hva er en muskelsensor Muskelsensoren måler den elektriske aktiviteten til en muskel og produserer et analogt utgangssignal som enkelt kan leses av en mikrokontroller. Elektromyografi (EMG) måler muskelrespons eller elektrisk aktivitet som respons på en nerves stimulering av muskelen. Testen brukes til å oppdage nevromuskulære abnormiteter. Under testen settes en eller flere små nåler (også kalt elektroder) inn gjennom huden inn i muskelen.

For dette prosjektet trenger du: -MyoWare muskelsensor -EMG -elektroder -NodeMCU (esp8266) -Silikondekselledning -USB mikrokabel -Neopixel led stripe

Biblioteker du trenger: -Adafruit io Arduino (minst versjon 2.3.0) -Adafruit Neopixel (versjon 1.2.5) -Adafruit MQTT bibliotek (1.0.3) -Arduino HttpClients (0.4.0) Hvis du ikke har te biblioteker installert ennå. Gå deretter til Sketch> include Library> Manage Libraries… type: [bibliotekets navn du vil installere] i søkefeltet.

Trinn 1: Koble til Myoware Muscle Sensor (spesielt for de som aldri har jobbet med det før)

Hvis du aldri har jobbet med en Myoware -muskelsensor, er det godt å først forstå hvordan denne sensoren er koblet til og lesbar i den serielle skjermen i Arduino. Denne operasjonen er en standardprosedyre som allerede er beskrevet i mange manualer. Adafruit -plattformen har en klar beskrivelse av hvordan dette fungerer i noen få trinn:

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

Sjekk Hvis alle disse trinnene er utført, vil du se på den serielle skjermen at verdiene endres når du strammer musklene. Når du lager en knyttneve og strammer muskelen, bør verdiene gå opp, og når du slapper av muskelen, bør disse verdiene gå ned igjen.

Viktig Dette trinnet er bare å sette opp sensoren. Koden du har brukt, er ikke nødvendig for resten av håndboken. Bare måten du setter opp selve sensoren på, forblir den samme for de kommende trinnene.

Trinn 2: Adafruit IO -oppsett

Adafruit IO -oppsett
Adafruit IO -oppsett
Adafruit IO -oppsett
Adafruit IO -oppsett
Adafruit IO -oppsett
Adafruit IO -oppsett

Det første trinnet er å logge inn eller opprette et konto i Adafruit IO, bla til Adafruit IO. Adafruit IO er en skyplattform som du kan koble til over internett. Adafruit IO gjør data nyttig med datatilkoblinger.

Når du er på kontoen din:

Opprett den analoge feedNeste må du opprette en feed som heter Analog. Hvis du trenger hjelp til å komme i gang med å lage feeder på Adafruit IO, kan du sjekke grunnleggende guide for Adafruit IO Feed (som på bilde 1 og 2).

Når du legger til måleblokken og linjediagramblokkenNeste, oppretter du et nytt dashbord og gir det et navn som du vil at det skal navngi (vist på bildene 3, 4 og 5 for å lage et nytt dashbord). Sørg for at du har valgt Analog feed som datakilde.

Når du er i dashbordet, legger du til en ny måleblokk gjennom klikk på det blå plusset øverst til høyre. Navngi blokken hva du vil (vist på bildene 6 og 7), og gi den en maksverdi på 1024 og en minverdi på 0 (verdier for muskelsensoren).

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

Sjekk Hvis du har gjort alt ovenfor, må du ha en lignende skjerm som det siste bildet.

Trinn 3: Arduino -inngang

Arduino -inngang
Arduino -inngang
Arduino -inngang
Arduino -inngang
Arduino -inngang
Arduino -inngang
Arduino -inngang
Arduino -inngang

I trinn 1 har du gjort oppsettet for å koble MyoWare Muscle -sensoren riktig. Dette trinnet vil vi dykke ned i Arduino -koden som følger med tilkobling til trinn 2 på Adafruit IO -dashbordet. På slutten av dette trinnet vil du se inngangsverdiene til Myoware Muscle -sensoren i de to blokkene du har konfigurert.

Oppsett av Arduino

Sørg for at du har installert alle bibliotekene som er nevnt ovenfor i innledningen.

Vi skal jobbe med en eksempelskisse. Så åpne Fil> Eksempel> Adafruit IO Arduino> adafruitio_08_analog_in (bilde 1). Hvorfor denne skissen? fordi vi først setter opp inngangsdelen av denne håndboken. MyoWare Muscle -sensoren bruker analog utgang. Hvis du vil dykke mer inn på temaet om analog.

Arduino Network Config For å konfigurere nettverksinnstillingene, klikk på config.h -fanen i skissen. Du må angi Adafruit IO -brukernavnet ditt i IO_USERNAME -definisjonen, og Adafruit IO -nøkkelen i IO_KEY -definisjonen. Du finner brukernavnet og nøkkelen øverst til høyre på skjermen i Arduino IO (eksempel på bilde 2)

#define IO_USERNAME "ditt_brukernavn"

#define IO_KEY "din_nøkkel"

WiFi Config WiFi er aktivert som standard i config.h, så hvis du bruker et av de støttede WiFi -kortene, trenger du bare å endre alternativene WIFI_SSID og WIFI_PASS i kategorien config.h.

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

Arduino -kode Hvis du har endret innstillingene ovenfor, kan vi gå videre til den faktiske koden, adafruit_08_analog_in. Standardpinnen i dette eksemplet er statett på AO. Dette er den riktige tappen da du har plassert muskelsensoren på brettet i trinn 2.

Dette eksemplet bruker en fotocellesensor, fordi vi bruker en muskelsensor, vi vil endre dette navnet. Det spiller ingen rolle om du gjør dette, det vil bare gjøre det semantisk ryddigere. Endre PHOTOCELL_PIN til MUSCLESENSOR_PIN gjør dette på to steder i skissen.

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

// analog pin 0 #define PHOTOCELL_PIN A0

I den siste kodelinjen er det satt opp en forsinkelse. Denne forsinkelsen er 1 sekund, vi skal sette er til 2 sekunder så 2000. Vi gjør dette fordi det er en lisens på Adafruit IO med en datagrense, under to sekunder overstiger denne skissen den datagrensen, og det vil gi en THROTTLE ADVARSEL. Det betyr at det ikke kommer noen verdier inn. Hvis du setter dette til to sekunder, forhindrer du dette.

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

Dette var det du måtte endre på skissen for å få det til å fungere. Hvis du vil vite nøyaktig hvordan hele koden fungerer. Du finner den på Learn Adafruit, med en forklaring på hver kodeblokk.

Sjekk Last opp skissen til brettet ditt, og åpne Arduino Serial Monitor. Brettet ditt skal nå koble til Adafruit IO.

du kan nå stramme armen, og du bør se de endrede verdiene bli sendt til Adafruit IO (som på bilde 3). Hvis du ikke ser noen verdier på den serielle skjermen, må du kontrollere om du har angitt Baud -hastigheten i den serielle skjermen til 115200.

Adafruit IO Dashboard Sjekk dashbordet ditt på Adafruit IO, og du bør se måleren og linjediagrammet som svarer på endringene i MyoWare Muscle Sensor -verdiene.

Trinn 4: Adafruit IO Trigger Setup

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

Hittil har vi vært i stand til å komme med input fra MyoWare Muscle -sensoren til Adafruit IO som fungerer. Nå skal vi begynne å lese denne informasjonen. Slik at etter 5 ganger en verdi over X av muskelsensoren blir detektert, utføres en handling av Neopixel led -stripen.

Denne delen var for meg hvor jeg måtte undersøke hvordan jeg kan lese Adafruit IO -historien. Jeg hadde jobbet med Feeds og Dashboards før, så jeg tenkte at feedet og dashbordet som ble opprettet kunne lese dette og lage en handling her i Arduino. Så langt har jeg ikke lyktes. Etter mye forskning og Adafruit IO, oppdaget jeg at en handling kan utløses med Trigger -funksjonen i Adafruit IO. Lær mer om utløsere.

En ekstra feed Før vi kan lage en trigger må vi lage en annen feed slik at vi kan gi den navnet i Arduino for å få utgangen. Lag en feed med navnet AlertTriggered.

Opprett en utløser Neste til overskriftene Feed og Dashboard er Trigger, gå hit. Lag en ny trigger. Du vil bli spurt om du vil opprette en Reactive Trigger eller Schedule Trigger, velg Reactive Trigger og klikk på create. Dette er fordi du bare vil utløse noe når noe skjer (bilde 1).

En rekke ting må stilles inn (Neste trinn vises også på bilde 2).-Velg den analoge matingen ved første If, så inngangen vil bli hentet herfra.

-Hvis du velger mer enn dette, fordi du vil utløse noe når verdien overstiger et slikt tall.

-Komprimeringsverdi du kan skrive inn ønsket nummer for å aktivere utløseren. Jeg gjorde 600 i dette tilfellet.

-Med arduino må du motta en tilbakemelding når den overstiger 600: så på Velg deretter publiser en melding til:.

-Heretter kan du velge din andre feed opprettet AlertTriggered.

Klikk til slutt på opprett.

Trinn 5: Neopixel -utgang

Neopixel -utgang
Neopixel -utgang

Det siste trinnet er å generere produksjonen. Gjort i Arduino -skissen du har redigert, ved å ringe AlertTriggered -feed (som du opprettet i forrige trinn).

For å kunne generere utgang må du først koble Neopixel led-stripen til NodeMCU.- + 5v (venstre) ledning på LED-stripen på 3v på NodeMCU- GND (høyre) ledningen på G på noden (G = GND)- Sentrertråd DIN på LED på D5 (eller annen D-port)

CodeI har inkludert hele skissen med vekslinger i dette trinnet som en fil (finnes nederst på dette trinnet). Dette er den samme skissen du har jobbet med de siste trinnene, men nå er den siste skissen inkludert i trinnene du må gjøre for å kunne generere utgangen. adafruitio_musclesensor_neopixel -fil. Dette fungerer med config.h du tidligere har angitt med dataene dine. Kodeblokkene er inkludert med kommentarer, slik at du kan se hva som skjer.

Hvilke utdata har blitt kodet I denne koden har jeg opprettet en utløser, når AlertTriggered (det vi erklærte i forrige trinn over en verdi større enn 600) utløses mer enn 5 ganger. Dette betyr at når den utløses, er Neopixel led -stripen satt fra hvit til rød. Dette vil skje i et minutt, og den røde tilstanden vil falme og sløyfes til den hvite tilstanden igjen.

Seriell monitor For å gjøre det tydeligere for deg som programmerer, er det siste settet med kode for Serial Monitor. Hva verdiene er og når du har utløser varslingsnivået. Sammen med å legge til sekunder når varslingstilstanden er på, til den etter 60 sekunder bytter til Varseltilstand igjen. Denne delen er derfor valgfri.

// for å vise sekundene som går i Serial Monitor når alartstate er på Serial.println ("Seconds passed:"); Serial.println (sekunderPassert); } annet {secondsPassed = 0; }

SjekkHvis du har utført trinnene eller har fått skissen adafruitio_musclesensor_neopixel -filen med din egen config.h kan du laste den opp til NodeMCU. Hvis det er gjort, må du se noe lignende som nedenfor i seriell skjerm:

Kobler til Adafruit IO …

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

Foto 1 er seriell skjerm når den er i Alertmode.

Det fungerer ikke? Sjekk følgende ting- Sjekk om config.h er inkludert på riktig måte- Har du lagt inn riktig Adafruit IO brukernavn og nøkkel- Har du satt inn riktig SSID og Wifi-passord- Har du plassert ledningene til MyoWare Muskelsensor til høyre og fra Neopixel Led Strip

Eller sjekk de forrige trinnene.

Trinn 6: Resultater

Hurra du er ferdig! For å demonstrere og se sluttproduktet i aksjon har jeg tatt med en video.

Anbefalt: