Sadržaj:

Neopixel LED traka reagira na Myoware senzor mišića: 6 koraka
Neopixel LED traka reagira na Myoware senzor mišića: 6 koraka

Video: Neopixel LED traka reagira na Myoware senzor mišića: 6 koraka

Video: Neopixel LED traka reagira na Myoware senzor mišića: 6 koraka
Video: WS2812 [Программируемая светодиодная лента] 2024, Srpanj
Anonim
Neopixel LED traka reagira na Myoware senzor mišića
Neopixel LED traka reagira na Myoware senzor mišića

Cilj je instalirati mišićni senzor uz pomoć Arduina i obraditi dolazne podatke s Adafruit IO -om te dohvatiti izlaz pomoću okidača tako da svjetlo iz jedne minute postane bijelo u crveno.

Što je mišićni senzor Senzor mišića mjeri električnu aktivnost mišića i proizvodi analogni izlazni signal koji se lako može očitati mikrokontrolerom. Elektromiografija (EMG) mjeri mišićni odgovor ili električnu aktivnost kao odgovor na živčanu stimulaciju mišića. Test se koristi za otkrivanje neuromišićnih abnormalnosti. Tijekom ispitivanja jedna ili više malih igala (koje se nazivaju i elektrodama) ubacuju se kroz kožu u mišić.

Za ovaj projekt trebate: -MyoWare senzor mišića -EMG elektrode -NodeMCU (esp8266) -Silikonska zaštitna žica -USB mikrokabel -Nopixel LED traka

Knjižnice koje su vam potrebne: -Adafruit io Arduino (najmanje verzija 2.3.0) -Adafruit Neopixel (verzija 1.2.5) -Adafruit MQTT biblioteka (1.0.3) -Arduino HttpClients (0.4.0) Ako nemate te biblioteke još instalirane. Zatim idite na Sketch> include Library> Manage Libraries … upišite: [naziv knjižnice koju želite instalirati] u polje za pretraživanje.

Korak 1: Spajanje Myoware senzora mišića (posebno za one koji s njim nikada prije nisu radili)

Ako nikada niste radili s Myoware senzorom mišića, dobro je prvo razumjeti kako je ovaj senzor spojen i čitljiv u serijskom monitoru u Arduinu. Ova je operacija standardni postupak koji je u mnogim priručnicima već opisan. Platforma Adafruit ima jasan opis kako to funkcionira u nekoliko koraka:

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

ProvjeriteAko su učinjeni svi ovi koraci, vidjet ćete na svom serijskom monitoru da se vrijednosti mijenjaju kad zategnete mišiće. Kad stisnete šaku i zategnete mišić, vrijednosti bi trebale porasti, a kada opustite mišić, te bi se vrijednosti trebale ponovno smanjiti.

VažnoOvaj korak je samo postavljanje senzora. Kôd koji ste koristili nije potreban za ostatak priručnika. Samo način na koji postavljate sam senzor ostaje isti za nadolazeće korake.

Korak 2: Adapruit IO postavljanje

Adapruit IO postavljanje
Adapruit IO postavljanje
Adapruit IO postavljanje
Adapruit IO postavljanje
Adapruit IO postavljanje
Adapruit IO postavljanje

Prvi korak je prijava ili stvaranje računa u Adafruit IO -u, idite na Adafruit IO. Adafruit IO je oblačna platforma na koju se možete povezati putem interneta. Adafruit IO čini podatke korisnim s podatkovnim vezama.

Kada ste na svom računu:

Izradite Analog FeedNext, morat ćete stvoriti feed pod nazivom Analog. Ako vam je potrebna pomoć za početak stvaranja feedova na Adafruit IO -u, pogledajte vodič Osnove Adafruit IO feedova (Kao na slikama 1 i 2).

Dodavanjem mjernog bloka i linijskog grafikona BlockNext, izradite novu nadzornu ploču i dajte joj naziv kako želite da imenuje (prikazano na fotografijama 3, 4 i 5 za izradu nove nadzorne ploče). Provjerite jeste li odabrali Analogni izvor kao izvor podataka.

Kad ste na nadzornoj ploči, dodajte novi blok mjerača, klikom na plavi plus u gornjem desnom kutu. Imenujte blok kako god želite (prikazano na fotografijama 6 i 7) i dajte mu maksimalnu vrijednost od 1024 i minimalnu vrijednost 0 (vrijednosti mišićnog senzora).

Ponovite isto s blokom Line chart (fotografija 8) kao gore s blokom Gauge.

ProvjeriteAko ste to učinili gore, morate imati sličan zaslon kao posljednja fotografija.

Korak 3: Arduino ulaz

Arduino ulaz
Arduino ulaz
Arduino ulaz
Arduino ulaz
Arduino ulaz
Arduino ulaz
Arduino ulaz
Arduino ulaz

U 1. koraku ste pravilno postavili ožičenje MyoWare Muscle senzora. Ovaj korak ćemo zaroniti u Arduino kôd koji dolazi s povezivanjem na korak 2 s nadzornom pločom Adafruit IO. Na kraju ovog koraka vidjet ćete ulazne vrijednosti Myoware Muscle senzora u dva bloka koja ste postavili.

Arduino postavljanje

Provjerite imate li instalirane sve biblioteke koje su gore navedene u uvodu.

Radit ćemo s primjerom skice. Zato otvorite Datoteka> Primjer> Adafruit IO Arduino> adafruitio_08_analog_in (fotografija 1). Čemu ova skica? jer prvo postavljamo ulazni dio ovog priručnika. MyoWare Muscle senzor koristi analogni izlaz. Ako želite više zaroniti u temu o analognom.

Arduino Network Config Za konfiguraciju mrežnih postavki kliknite karticu config.h na skici. Morat ćete postaviti svoje korisničko ime Adafruit IO u definiciji IO_USERNAME, a ključ Adafruit IO u definiciji IO_KEY. Korisničko ime i ključ možete pronaći u gornjem desnom kutu zaslona u svom Arduino IO (primjer na fotografiji 2)

#define IO_USERNAME "vaše_korisničko ime"

#define IO_KEY "vaš_ključ"

WiFi Config WiFi je prema zadanim postavkama omogućen u config.h pa ako koristite jednu od podržanih WiFi ploča, morat ćete samo izmijeniti opcije WIFI_SSID i WIFI_PASS na kartici config.h.

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

Arduino kod Ako imate gore navedene promjene, možemo ići dalje do stvarnog koda, adafruit_08_analog_in. Pogrešni pin u ovom primjeru je status na AO. Ovo je pravi pin jer ste u 2. koraku stavili mišićni senzor na ploču.

Ovaj primjer koristi senzor fotoćelije, jer ćemo pomoću mišićnog senzora promijeniti naziv. Nije važno ako to učinite, samo će to biti semantički urednije. Promijenite PHOTOCELL_PIN u MUSCLESENSOR_PIN. Učinite to na dva mjesta skice.

/************************ Primjer počinje ovdje ********************** *********/

// analogni pin 0 #define PHOTOCELL_PIN A0

U posljednjoj programskoj liniji stoji kašnjenje. Ovo kašnjenje je 1 sekunda, postavit ćemo na 2 sekunde, dakle 2000. To činimo jer postoji licenca za Adafruit IO s ograničenjem podataka, ispod dvije sekunde ova skica premašuje to ograničenje podataka i dat će UPOZORENJE GASILA. Što znači da ne dolaze nikakve vrijednosti. Postavljanje na dvije sekunde sprječava to.

// čekanje jedne sekunde (1000 milisekundi == 1 sekunda) kašnjenje (2000);

To je ono što ste morali promijeniti u skici kako bi uspjela. Ako želite točno znati kako cijeli kôd radi. Možete ga pronaći na Learn Adafruit, s objašnjenjem svih blokova koda.

Potvrdite Učitajte skicu na svoju ploču i otvorite Arduino serijski monitor. Vaša ploča bi se sada trebala spojiti na Adafruit IO.

sada možete stegnuti ruku i trebali biste vidjeti kako se promjenjive vrijednosti šalju Adafruit IO (kao na fotografiji 3). Ako ne vidite nikakve vrijednosti na serijskom monitoru, provjerite jeste li postavili brzinu prijenosa u serijskom monitoru na 115200.

Adafruit IO nadzorna ploča Provjerite svoju nadzornu ploču na Adafruit IO i trebali biste vidjeti da mjerač i linijski grafikon odgovaraju promjenama vrijednosti MyoWare mišića senzora.

Korak 4: Postavljanje okidača Adafruit IO

Adapruit IO Trigger Setup
Adapruit IO Trigger Setup
Adapruit IO Trigger Setup
Adapruit IO Trigger Setup

Do sada smo uspjeli unijeti ulaz s MyoWare mišićnog senzora u rad Adafruit IO -a. Sada ćemo početi čitati ove podatke. Tako da nakon što se 5 puta otkrije vrijednost iznad X mišićnog senzora, radnja se izvodi pomoću Neopixel LED trake.

Ovaj je odjeljak bio za mene gdje sam morao istražiti kako mogu pročitati povijest Adafruit IO -a. Prije sam radio s feedovima i nadzornim pločama pa sam mislio da bi stvoreni feed i nadzorna ploča mogli ovo pročitati i stvoriti radnju ovdje u Arduinu. Do sada nisam uspio. Nakon mnogo istraživanja i Adafruit IO -a, otkrio sam da se radnja može pokrenuti funkcijom Trigger u Adafruit IO -u. Saznajte više o okidačima.

Dodatni feed Prije nego što možemo napraviti Trigger moramo stvoriti drugi feed kako bismo ga mogli nazvati u Arduinu kako bismo dobili izlaz. Izradite feed s imenom AlertTriggered.

Kreirajte okidačSljedeći do zaglavlja Feed i nadzorna ploča je Trigger, idite ovdje. Izradite novi okidač. Bit ćete upitani želite li stvoriti reaktivni okidač ili okidač rasporeda, odaberite reaktivni okidač i kliknite stvoriti. To je zato što želite pokrenuti nešto samo kad se nešto dogodi (fotografija 1).

Nekoliko je stvari potrebno postaviti (Sljedeći koraci su također prikazani na fotografiji 2).-Odaberite analogni unos pri prvom If, pa će se odavde preuzeti ulaz.

-Jeste li odabrali bolje od ovoga, jer želite pokrenuti nešto kada vrijednost prelazi takav broj.

-Comperison vrijednost možete unijeti željeni broj za aktiviranje okidača. U ovom slučaju sam napravio 600.

-S arduinom ćete morati primiti povratnu informaciju kada pređe 600: pa na Zatim odaberite objavi poruku na:.

-Nakon čega možete odabrati svoj drugi feed stvoren AlertTriggered.

Na kraju kliknite Stvori.

Korak 5: Neopixel izlaz

Neopixel izlaz
Neopixel izlaz

Posljednji korak je generiranje rezultata. Učinjeno na Arduino skici koju ste uredili pozivanjem feeda AlertTriggered (koji ste stvorili u prethodnom koraku).

Da biste mogli generirati izlaz, prvo morate spojiti Neopixel LED traku na NodeMCU.- + 5v (lijeva) žica vaše LED trake na 3v vaše NodeMCU-GND (desne) žice na G čvora (G = GND)- Središnja žica DIN LED na D5 (ili bilo kojem drugom D priključku)

CodeI je uključio cijelu skicu s izmjenama u ovom koraku kao datoteku (može se pronaći na dnu ovog koraka). Ovo je ista skica s kojom ste radili u posljednjih nekoliko koraka, ali sada je konačna skica uključena u korake koje morate učiniti kako biste generirali izlaz. adafruitio_musclesensor_neopixel datoteka. Ovo radi s datotekom config.h koju ste prethodno postavili sa svojim podacima. Svi su blokovi kodova uključeni u komentare kako biste mogli vidjeti što se događa.

Koji su izlazni podaci kodirani U ovom sam kodu stvorio okidač kada se AlertTriggered (ono što smo u prethodnom koraku izjavili za vrijednost veću od 600) pokrene više od 5 puta. To znači da kada se aktivira, Neopixel LED traka postavlja se iz bijele u crvenu. To će se dogoditi na minutu, a zatim će crveno stanje izblijediti i ponovno se prebaciti u bijelo stanje.

Serijski monitor Kako bi vam bilo jasnije kao programeru, posljednji skup koda je za serijski monitor. Koje su vrijednosti i kada aktivirate razinu upozorenja. Zajedno s dodavanjem sekundi kada je stanje upozorenja uključeno, sve dok se nakon 60 sekundi ponovno ne isključi u stanje upozorenja. Ovaj dio stoga nije obavezan.

// za prikaz proteklih sekundi u serijskom monitoru kada je stanje alarma na Serial.println ("Sekunde su prošle:"); Serial.println (secondsPassed); } else {secondsPassed = 0; }

ProvjeriteAko ste izvršili korake ili ste dobili skicu adafruitio_musclesensor_neopixel datoteke sa vlastitom konfiguracijom.h, možete je prenijeti na svoj NodeMCU. Ako je to učinjeno, morate vidjeti nešto slično kao dolje na vašem serijskom monitoru:

Povezivanje s Adafruit IO …

Adafruit IO spojen. Slanje -> 23 Slanje -> 78

Fotografija 1 je serijski monitor kada je u načinu upozorenja.

Ne radi? Provjerite sljedeće:- Provjerite je li config.h uključen na pravi način- Jeste li stavili ispravno korisničko ime i ključ za Adafruit IO- Jeste li u pravi SSID unijeli lozinku za WiFi- Jeste li postavili ožičenje MyoWare-a Senzor mišića desno i s Neopixel LED trake

Ili provjerite prethodne korake.

Korak 6: Rezultati

Ura, gotovi ste! Kako bih pokazao i vidio krajnji proizvod na djelu, uključio sam video.

Preporučeni: