Cuprins:

Banda cu led Neopixel care reacționează la senzorul muscular Myoware: 6 pași
Banda cu led Neopixel care reacționează la senzorul muscular Myoware: 6 pași

Video: Banda cu led Neopixel care reacționează la senzorul muscular Myoware: 6 pași

Video: Banda cu led Neopixel care reacționează la senzorul muscular Myoware: 6 pași
Video: Banda LED Digitala ws2812b ledbox neo pixel Sibiu Romania 2024, Iulie
Anonim
Banda cu led Neopixel care reacționează la senzorul muscular Myoware
Banda cu led Neopixel care reacționează la senzorul muscular Myoware

Scopul este instalarea unui senzor muscular cu ajutorul Arduino și prelucrarea datelor primite cu Adafruit IO și preluarea ieșirii cu un declanșator, astfel încât lumina să se transforme de la alb la roșu timp de un minut.

Ce este un senzor muscular Sensorul muscular măsoară activitatea electrică a unui mușchi și produce un semnal analogic de ieșire care poate fi citit cu ușurință de un microcontroler. Electromiografia (EMG) măsoară răspunsul muscular sau activitatea electrică ca răspuns la stimularea musculară a unui nerv. Testul este utilizat pentru a ajuta la detectarea anomaliilor neuromusculare. În timpul testului, unul sau mai multe ace mici (numite și electrozi) sunt introduse prin piele în mușchi.

Pentru acest proiect aveți nevoie de: -Senzor muscular MyoWare -Electrozi EMG -NodeMCU (esp8266) -Sârmă capac silicon -Cablu micro USB -Bandă led Neopixel

Biblioteci veți avea nevoie de: -Adafruit io Arduino (cel puțin versiunea 2.3.0) -Adafruit Neopixel (versiunea 1.2.5) -Adafruit biblioteca MQTT (1.0.3) -Arduino HttpClients (0.4.0) Dacă nu aveți biblioteci instalate încă. Apoi accesați Schiță> includeți Biblioteca> Gestionați bibliotecile … tastați: [numele bibliotecii pe care doriți să o instalați] în câmpul de căutare.

Pasul 1: Conectarea senzorului muscular Myoware (în special pentru cei care nu au mai lucrat cu el până acum)

Dacă nu ați lucrat niciodată cu un senzor muscular Myoware, este bine să înțelegeți mai întâi cum este conectat și citit acest senzor pe monitorul serial din Arduino. Această operație este o procedură standard care este descrisă în multe manuale deja. Platforma Adafruit are o descriere clară a modului în care funcționează în câțiva pași:

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

Verificați Dacă se efectuează toți acești pași, veți vedea în monitorul dvs. serial că valorile se schimbă atunci când vă strângeți mușchii. Când faceți un pumn și vă strângeți mușchii, valorile ar trebui să crească, iar când vă relaxați mușchii, aceste valori ar trebui să scadă din nou.

Important Acest pas este doar pentru a configura senzorul. Codul pe care l-ați folosit nu este necesar pentru restul manualului. Doar modul în care puneți senzorul în sine rămâne același pentru pașii următori.

Pasul 2: Configurarea Adafruit IO

Configurare Adafruit IO
Configurare Adafruit IO
Configurare Adafruit IO
Configurare Adafruit IO
Configurare Adafruit IO
Configurare Adafruit IO

Primul pas este să vă conectați sau să creați un cont în Adafruit IO, navigați la Adafruit IO. Adafruit IO este o platformă cloud, la care vă puteți conecta prin internet. Adafruit IO face datele utile cu conexiunile de date.

Când vă aflați în contul dvs.:

Creați feedul analogic În continuare, va trebui să creați un flux numit Analog. Dacă aveți nevoie de ajutor pentru a începe să creați fluxuri pe Adafruit IO, consultați ghidul Adafruit IO Feed Basics (Ca în fotografiile 1 și 2).

Adăugând blocul Gauge și diagrama liniară BlockNext, creați un nou tablou de bord și denumiți-l așa cum doriți să fie denumit (prezentat în fotografiile 3, 4 și 5 pentru a crea un nou tablou de bord). Asigurați-vă că ați selectat fluxul analog ca sursă de date.

Când sunteți în tabloul de bord, adăugați un nou bloc de calibru, faceți clic pe plusul albastru din colțul din dreapta sus. Denumiți blocul oricum doriți (prezentat în fotografiile 6 și 7) și dați-i o valoare maximă de 1024 și o valoare minimă de 0 (valorile senzorului muscular).

Repetați același lucru cu blocul Diagramă liniară (foto 8) ca mai sus cu blocul Calibru.

Verificați Dacă ați făcut toate cele de mai sus, trebuie să aveți un ecran similar cu ultima fotografie.

Pasul 3: Intrare Arduino

Intrare Arduino
Intrare Arduino
Intrare Arduino
Intrare Arduino
Intrare Arduino
Intrare Arduino
Intrare Arduino
Intrare Arduino

La pasul 1 ați făcut setarea corectă a cablării senzorului muscular MyoWare. Acest pas ne vom scufunda în codul Arduino care vine odată cu conectarea la pasul 2 a tabloului de bord Adafruit IO. La sfârșitul acestui pas, veți vedea valorile de intrare ale senzorului muscular Myoware în cele două blocuri pe care le-ați configurat.

Configurare Arduino

Asigurați-vă că aveți instalate toate bibliotecile menționate mai sus în introducere.

Vom lucra cu un exemplu de schiță. Deci, deschideți Fișier> Exemplu> Adafruit IO Arduino> adafruitio_08_analog_in (foto 1). De ce această schiță? deoarece configurăm mai întâi partea de intrare a acestui manual. Senzorul MyoWare Muscle folosește ieșirea analogică. Dacă doriți să vă scufundați mai mult în subiectul despre analog.

Arduino Network Config Pentru a configura setările de rețea, faceți clic pe fila config.h din schiță. Va trebui să setați numele de utilizator Adafruit IO în definirea IO_USERNAME și cheia Adafruit IO în definirea IO_KEY. Puteți găsi numele de utilizator și cheia în partea dreaptă sus a ecranului în Arduino IO (exemplu în fotografia 2)

#define IO_USERNAME "numele_de_utilizator"

#define IO_KEY "your_key"

WiFi Config WiFi este activat implicit în config.h, deci dacă utilizați una dintre plăcile WiFi acceptate, va trebui să modificați doar opțiunile WIFI_SSID și WIFI_PASS din fila config.h.

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

Arduino Code Dacă aveți modificări ale setărilor de mai sus, putem merge mai departe la codul real, adafruit_08_analog_in. PIN-ul implicit din acest exemplu este statet pe AO. Acesta este pinul corect, deoarece ați plasat senzorul muscular pe tablă la pasul 2.

Acest exemplu folosește un senzor cu fotocelule, deoarece folosim un senzor muscular, vom schimba acest nume. Nu contează dacă faceți acest lucru, ci îl va face doar semantic mai ordonat. Schimbați PHOTOCELL_PIN în MUSCLESENSOR_PIN faceți acest lucru în două locuri ale schiței.

/ ************************ Exemplu începe aici ********************** ********* /

// pin analogic 0 #define PHOTOCELL_PIN A0

În ultima linie de cod există o întârziere. Această întârziere este de 1 secundă, pe care o vom seta este de 2 secunde deci 2000. Facem acest lucru deoarece există o licență pe Adafruit IO cu o limită de date, sub două secunde această schiță depășește limita de date și va da un AVERTISMENT PENTRU ACEL. Ce înseamnă că nu apar valori. Setarea la două secunde împiedică acest lucru.

// așteptați o secundă (1000 milisecunde == 1 secundă) întârziere (2000);

Aceasta a fost ceea ce a trebuit să schimbați în schiță pentru a o face să funcționeze. Dacă doriți să știți exact cum funcționează întregul cod. O puteți găsi pe Learn Adafruit, cu o explicație a fiecărui bloc de cod.

Verifică Încarcă schița pe placa ta și deschide Arduino Serial Monitor. Consiliul dvs. ar trebui să se conecteze acum la Adafruit IO.

acum puteți strânge brațul și ar trebui să vedeți schimbarea valorilor trimise către Adafruit IO (ca în fotografia 3). Dacă nu vedeți nicio valoare în monitorul serial, verificați dacă ați setat rata Baud în monitorul serial la 115200.

Adafruit IO Dashboard Verificați tabloul de bord pe Adafruit IO și ar trebui să vedeți indicatorul și diagrama liniară care răspund modificărilor valorilor senzorului muscular MyoWare.

Pasul 4: Configurarea Adafruit IO Trigger

Configurare Adafruit IO Trigger
Configurare Adafruit IO Trigger
Configurare Adafruit IO Trigger
Configurare Adafruit IO Trigger

Până acum am reușit să facem input de la senzorul MyoWare Muscle la Adafruit IO funcționând. Acum vom începe să citim aceste informații. Pentru ca după 5 ori să fie detectată o valoare peste X a senzorului muscular, o acțiune este efectuată de banda led Neopixel.

Această secțiune a fost pentru mine, unde a trebuit să investighez cum pot citi istoria Adafruit IO. Am mai lucrat cu fluxuri și tablouri de bord înainte, așa că m-am gândit că feedul și tabloul de bord care au fost create ar putea citi acest lucru și ar putea crea o acțiune aici în Arduino. Până acum nu am reușit. După multe cercetări și Adafruit IO, am descoperit că o acțiune poate fi declanșată cu funcția Trigger în Adafruit IO. Aflați mai multe despre declanșatoare.

Un feed suplimentar Înainte de a putea crea un Trigger, trebuie să creăm un alt feed, astfel încât să-l putem numi în Arduino pentru a obține rezultatul. Creați un flux cu numele AlertTriggered.

Alături de antetele Feed and Dashboard este Trigger, accesați aici. Creați un nou declanșator. Veți fi întrebat dacă doriți să creați un declanșator reactiv sau un program de declanșare, alegeți declanșatorul reactiv și faceți clic pe creați. Acest lucru se datorează faptului că doriți să declanșați ceva doar atunci când se întâmplă ceva (foto 1).

Trebuie setate o serie de lucruri (pașii următori sunt de asemenea indicați în fotografia 2).- Selectați alimentarea analogică la primul If, astfel încât intrarea va fi luată de aici.

-Selectați mai mult decât asta, deoarece doriți să declanșați ceva atunci când valoarea depășește un astfel de număr.

-Valoarea de comparare puteți introduce numărul dorit pentru a activa declanșatorul. Am făcut 600 în acest caz.

-Cu arduino va trebui să primiți un feedback atunci când depășește 600: deci la Apoi selectați publicați un mesaj la:.

-După care puteți selecta al doilea feed creat AlertTriggered.

În cele din urmă faceți clic pe creați.

Pasul 5: ieșire Neopixel

Ieșire Neopixel
Ieșire Neopixel

Pasul final este de a genera ieșirea. Terminat în schița Arduino pe care ați editat-o, apelând fluxul AlertTriggered (pe care l-ați creat în pasul anterior).

Pentru a putea genera ieșire, trebuie mai întâi să conectați banda led Neopixel la NodeMCU.- + 5v (stânga) firului ledului dvs. pe 3v al firului NodeMCU- GND (dreapta) pe G nodului (G = GND) - Sârmă centrală DIN a LED-ului de pe D5 (sau orice alt port D)

CodeI am inclus întreaga schiță cu alternanțe în acest pas ca fișier (poate fi găsit în partea de jos a acestui pas). Aceasta este aceeași schiță cu care ați lucrat în ultimii pași, dar acum schița finală este inclusă cu pașii pe care trebuie să îi faceți pentru a genera rezultatul. fișier adafruitio_musclesensor_neopixel. Acest lucru funcționează cu config.h pe care l-ați setat anterior cu datele dvs. Toate blocurile de coduri sunt incluse cu comentarii, astfel încât să puteți vedea ce se întâmplă.

Ce date de ieșire au fost codificate În acest cod am creat un declanșator, când AlertTriggered (ceea ce am declarat în pasul anterior peste o valoare mai mare de 600) este declanșat de mai mult de 5 ori. Acest lucru înseamnă că atunci când este declanșat, banda led Neopixel este setată de la alb la roșu. Acest lucru se va întâmpla timp de un minut, iar starea roșie va dispărea și va fi din nou conectată la starea albă.

Serial Monitor Pentru a fi mai clar pentru dvs. ca programator, ultimul set de cod este pentru Serial Monitor. Care sunt valorile și când aveți declanșează nivelul de alertă. Împreună cu adăugarea de secunde când starea Alertă este activată, până când după 60 de secunde trece din nou la starea Alertă. Prin urmare, această parte este opțională.

// pentru a afișa secundele care trec în Serial Monitor când statul alartst este pe Serial.println ("Secunde trecute:"); Serial.println (secondsPassed); } else {secondsPassed = 0; }

Verificați Dacă ați făcut pașii sau ați obținut schița adafruitio_musclesensor_neopixel cu propria config.h, o puteți încărca pe NodeMCU. Dacă ați terminat, trebuie să vedeți ceva asemănător cu cel de mai jos în Serial Monitor:

Conectarea la Adafruit IO …

Adafruit IO conectat. Expediere -> 23 Expediere -> 78

Fotografia 1 este monitorul serial când se află în modul de alertă.

Nu merge? Verificați următoarele lucruri - Verificați dacă config.h este inclus în mod corect - Ați introdus numele de utilizator și cheia Adafruit IO potrivite - Ați introdus SSID-ul corect o parolă Wifi - Ați plasat cablajul MyoWare Senzor muscular drept și din banda Neopixel Led

Sau verificați pașii anteriori.

Pasul 6: Rezultate

Ura, ai terminat! Pentru a demonstra și a vedea produsul final în acțiune, am inclus un videoclip.

Recomandat: