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, Novembar
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.

Šta 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 pomoću mikrokontrolera. Elektromiografija (EMG) mjeri mišićni odgovor ili električnu aktivnost kao odgovor na nervnu stimulaciju mišića. Test se koristi za otkrivanje neuromišićnih abnormalnosti. Tijekom testa jedna ili više malih igala (koje se nazivaju i elektrodama) ubacuju se kroz kožu u mišić.

Za ovaj projekt potrebno vam je: -MyoWare senzor za mišiće -EMG elektrode -NodeMCU (esp8266) -silikonska zaštitna žica -USB mikrokabel -Nopixel LED traka

Biblioteke će vam trebati: -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 biblioteke koju želite instalirati] u polje za pretraživanje.

Korak 1: Povezivanje 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 povezan i čitljiv u serijskom monitoru u Arduinu. Ova operacija je 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 svi ovi koraci izvedeni, vidjet ćete na svom serijskom monitoru da se vrijednosti mijenjaju kada stegnete mišiće. Kad napravite šaku i stegnete mišić, vrijednosti bi trebale rasti, 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 naredne korake.

Korak 2: Adafruit IO podešavanje

Adafruit IO Setup
Adafruit IO Setup
Adafruit IO Setup
Adafruit IO Setup
Adafruit IO Setup
Adafruit IO Setup

Prvi korak je da se prijavite ili otvorite nalog u Adafruit IO, 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:

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

Dodavanjem mjernog bloka i linijskog grafikona BlockNext, stvorite 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 sa blokom Line chart (fotografija 8) kao gore sa blokom Gauge.

Proverite Ako ste uradili sve gore navedeno, morate imati sličan ekran kao poslednja 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 Adafruit IO nadzornu ploču. Na kraju ovog koraka vidjet ćete ulazne vrijednosti Myoware Muscle senzora u dva bloka koja ste postavili.

Arduino podešavanje

Pobrinite se da imate instalirane sve biblioteke koje su gore navedene u uvodu.

Radit ćemo sa primjerom skice. Zato otvorite Datoteka> Primjer> Adafruit IO Arduino> adafruitio_08_analog_in (fotografija 1). Zašto 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 Da biste konfigurirali mrežne postavke, kliknite na karticu config.h na skici. Morat ćete postaviti svoje Adafruit IO korisničko ime u definiciji IO_USERNAME, a svoj Adafruit IO ključ u definiciji IO_KEY. Korisničko ime i ključ možete pronaći u gornjem desnom kutu ekrana u vašem Arduino IO (primjer na fotografiji 2)

#define IO_USERNAME "vaše_korisničko ime"

#define IO_KEY "your_key"

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. Oštećeni pin u ovom primjeru je statet na AO. Ovo je pravi pin jer ste u koraku 2 stavili senzor mišića 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 nema ulaznih vrijednosti. Postavljanje na dvije sekunde sprječava ovo.

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

To je ono što ste morali promijeniti u skici da bi funkcioniralo. Ako želite točno znati kako cijeli kod funkcionira. 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 da 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 kontrolna 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: Podešavanje Adapruit IO Trigger -a

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

Do sada smo uspjeli unijeti ulaz sa senzora MyoWare mišića 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 odjeljak je bio za mene gdje sam morao istražiti kako mogu pročitati istoriju Adafruit IO. 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 da bismo dobili izlaz. Kreirajte feed s imenom AlertTriggered.

Kreirajte TriggerNext do zaglavlja Feed i Dashboard je Trigger, idite ovdje. Kreirajte 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 stvari mora biti postavljeno (Sljedeći koraci su također prikazani na fotografiji 2).-Odaberite analogni unos pri prvom If, pa će se odavde preuzeti ulaz.

-Da li ste odabrali bolje od ovoga, to je zato što želite pokrenuti nešto kada vrijednost prelazi takav broj.

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

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

-Nakon toga možete odabrati svoj drugi Feed stvoren AlertTriggered.

Na kraju kliknite na Create.

Korak 5: Neopixel izlaz

Neopixel izlaz
Neopixel izlaz

Posljednji korak je generiranje rezultata. Urađeno na Arduino skici koju ste uredili pozivanjem AlertTriggered feeda (koji ste kreirali 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 sa izmjenama u ovaj korak 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 da biste generirali izlaz. adafruitio_musclesensor_neopixel datoteka. Ovo funkcionira 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 kodu sam stvorio okidač, kada se AlertTriggered (ono što smo deklarisali u prethodnom koraku preko vrijednosti veće od 600) pokrene više od 5 puta. To znači da kada se aktivira, Neopixel LED traka je postavljena sa bijele na crvenu. To će se dogoditi na minutu, a zatim će crveno stanje izblijediti i ponovo se prebaciti u bijelo.

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

// za prikazivanje 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 skicirali datoteku adafruitio_musclesensor_neopixel 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 na Adafruit IO…

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

Fotografija 1 je serijski monitor kada je u režimu upozorenja.

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

Ili provjerite prethodne korake.

Korak 6: Rezultati

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

Preporučuje se: