Taula de continguts:

Neopixel Led Strip que reacciona al sensor muscular Myoware: 6 passos
Neopixel Led Strip que reacciona al sensor muscular Myoware: 6 passos

Vídeo: Neopixel Led Strip que reacciona al sensor muscular Myoware: 6 passos

Vídeo: Neopixel Led Strip que reacciona al sensor muscular Myoware: 6 passos
Vídeo: Умная лампа - Fab Academy Barcelona 2024, Desembre
Anonim
Neopixel Led Strip que reacciona al sensor muscular Myoware
Neopixel Led Strip que reacciona al sensor muscular Myoware

L'objectiu és instal·lar un sensor muscular amb l'ajut d'Arduino i processar les dades entrants amb Adafruit IO i recuperar la sortida amb un disparador perquè la llum es converteixi en blanc a vermell durant un minut.

Què és un sensor muscular El sensor muscular mesura l'activitat elèctrica d'un múscul i produeix un senyal de sortida analògic que pot llegir fàcilment un microcontrolador. L'electromiografia (EMG) mesura la resposta muscular o l'activitat elèctrica en resposta a l'estimulació del múscul per part d'un nervi. La prova s’utilitza per ajudar a detectar anomalies neuromusculars. Durant la prova, una o més agulles petites (també anomenades elèctrodes) s’insereixen a través de la pell al múscul.

Per a aquest projecte necessiteu: -Sensor muscular MyoWare -Elèctrodes EMG -NodeMCU (esp8266) -Fil de coberta de silicona -Micro cable USB -Banda LED de Neopixel

Llibreries que necessitareu: -Adafruit io Arduino (com a mínim versió 2.3.0) -Adafruit Neopixel (versió 1.2.5) -Adafruit MQTT biblioteca (1.0.3) -Arduino HttpClients (0.4.0) Si no teniu biblioteques instal·lades encara. A continuació, aneu a Sketch> inclou Biblioteca> Gestiona biblioteques … escriviu: [el nom de la biblioteca que voleu instal·lar] al camp de cerca.

Pas 1: connectar el sensor muscular Myoware (especialment per a aquells que mai no han treballat abans)

Si mai no heu treballat amb un sensor muscular Myoware, és bo comprendre primer com es connecta i es pot llegir aquest sensor al monitor sèrie d’Arduino. Aquesta operació és un procediment estàndard que ja s'ha descrit en molts manuals. La plataforma Adafruit té una descripció clara del seu funcionament en uns quants passos:

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

Si es fan tots aquests passos, veureu al monitor sèrie que els valors canvien quan tenseu els músculs. Quan feu un puny i estrenyeu el múscul, els valors haurien de pujar i, quan relaxeu el múscul, aquests valors haurien de tornar a baixar.

Important Aquest pas només és configurar el sensor. El codi que heu utilitzat no és necessari per a la resta del manual. Només la manera d’instal·lar el sensor en si continua sent la mateixa en els propers passos.

Pas 2: Configuració d'Adafruit IO

Configuració d'Adafruit IO
Configuració d'Adafruit IO
Configuració d'Adafruit IO
Configuració d'Adafruit IO
Configuració d'Adafruit IO
Configuració d'Adafruit IO

El primer pas és iniciar sessió o crear un compte a Adafruit IO, aneu a Adafruit IO. Adafruit IO és una plataforma al núvol a la qual podeu connectar-vos per Internet. Adafruit IO fa que les dades siguin útils amb les connexions de dades.

Quan estigueu al vostre compte:

Creeu el feed analògic següent, haureu de crear un feed anomenat analògic. Si necessiteu ajuda per començar a crear feeds a Adafruit IO, consulteu la guia bàsica del feed Adafruit IO (com a la foto 1 i 2).

Afegint el bloc de calibre i el gràfic de línies BlockNext, creeu un nou tauler i nomeneu-lo com vulgueu (es mostra a les fotos 3, 4 i 5 per crear un nou tauler). Assegureu-vos que heu seleccionat el feed analògic com a font de dades.

Quan estigueu al tauler, afegiu un nou bloc de calibre, feu clic al signe blau més situat a l'extrem superior dret. Anomeneu el bloc com vulgueu (que es mostra a les fotos 6 i 7) i doneu-li un valor màxim de 1024 i un valor mínim de 0 (valors del sensor muscular).

Repetiu el mateix amb el bloc de gràfics de línies (foto 8) que anteriorment amb el bloc Gauge.

Si heu fet tot això, heu de tenir una pantalla similar a la de la foto anterior.

Pas 3: Entrada Arduino

Entrada Arduino
Entrada Arduino
Entrada Arduino
Entrada Arduino
Entrada Arduino
Entrada Arduino
Entrada Arduino
Entrada Arduino

Al pas 1, heu configurat correctament el cablejat del sensor muscular MyoWare. Aquest pas ens endinsarem en el codi Arduino que es proporciona amb la connexió al pas 2 del quadre de comandament Adafruit IO. Al final d’aquest pas, veureu els valors d’entrada del sensor muscular Myoware als dos blocs que heu configurat.

Configuració d'Arduino

Assegureu-vos que teniu instal·lades totes les biblioteques que s’indiquen més amunt a la introducció.

Anem a treballar amb un esbós d’exemple. Per tant, obriu Fitxer> Exemple> Adafruit IO Arduino> adafruitio_08_analog_in (foto 1). Per què aquest esbós? perquè primer estem configurant la part d’entrada d’aquest manual. El sensor muscular MyoWare fa ús de la sortida analògica. Si voleu aprofundir en el tema de l’analògic.

Arduino Network Config Per configurar la configuració de la xarxa, feu clic a la pestanya config.h de l’esbós. Haureu d’establir el vostre nom d’usuari Adafruit IO a la definició IO_USERNAME i la vostra clau Adafruit IO a la definició IO_KEY. Podeu trobar el vostre nom d’usuari i la vostra clau a la part superior dreta de la pantalla del vostre Arduino IO (exemple a la foto 2)

#define IO_USERNAME "your_username"

#define IO_KEY "your_key"

Configuració WiFi El WiFi està habilitat per defecte a config.h, de manera que si utilitzeu una de les plaques WiFi compatibles, només haureu de modificar les opcions WIFI_SSID i WIFI_PASS a la pestanya config.h.

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

Codi Arduino Si teniu canvis a la configuració anterior, podem anar més enllà al codi real, adafruit_08_analog_in. El pin predeterminat en aquest exemple és statet a AO. Aquest és el pin correcte ja que heu col·locat el sensor muscular a la pissarra al pas 2.

Aquest exemple utilitza un sensor de fotocèl·lules, ja que fem servir un sensor muscular canviarem aquest nom. No importa si feu això, només el farà semànticament més endreçat. Canvieu PHOTOCELL_PIN per MUSCLESENSOR_PIN i feu-ho en dos llocs de l'esbós.

/ ************************ L'exemple comença aquí ********************** ********* /

// pin analògic 0 #define PHOTOCELL_PIN A0

A l'última línia de codis hi ha un retard. Aquest retard és d'1 segon, el configurarem a 2 segons, de manera que el 2000. Ho fem perquè hi ha una llicència a Adafruit IO amb un límit de dades, en menys de dos segons aquest esbós supera aquest límit de dades i donarà una ADVERTÈNCIA DE GLA. Què significa que no hi entrin valors. Si ho establiu en dos segons, ho impedeix.

// espera un segon (1000 mil·lisegons == 1 segon) de retard (2000);

Això va ser el que va haver de canviar a l'esbós perquè funcionés. Si voleu saber exactament com funciona tot el codi. El podeu trobar a aprendre Adafruit, amb una explicació de tots els blocs de codi.

Comproveu Carregueu l’esbós al tauler i obriu l’Arduino Serial Monitor. Ara el vostre tauler hauria de connectar-se a Adafruit IO.

ara podeu apretar el braç i hauríeu de veure com s’envien els canvis de valors a Adafruit IO (com a la foto 3). Si no veieu cap valor al monitor sèrie, comproveu si heu establert la velocitat en bauds al monitor sèrie a 115200.

Tauler de control d'Adafruit IO Comproveu el tauler de control d'Adafruit IO i hauríeu de veure l'indicador i el gràfic de línies que responen als canvis dels valors del sensor muscular MyoWare.

Pas 4: Configuració de l'activador d'Adafruit IO

Configuració del desencadenant d'IO Adafruit
Configuració del desencadenant d'IO Adafruit
Configuració del desencadenant d'IO Adafruit
Configuració del desencadenant d'IO Adafruit

Fins ara hem estat capaços d’entrar des del sensor muscular MyoWare per treballar amb Adafruit IO. Ara començarem a llegir aquesta informació. De manera que després de 5 vegades es detecta un valor per sobre de X del sensor muscular, es realitza una acció mitjançant la tira de led Neopixel.

Aquesta secció va ser per a mi, on vaig haver d’investigar com puc llegir la història d’Adafruit IO. Abans havia treballat amb feeds i taulers, de manera que vaig pensar que el tauler i el tauler que es van crear podien llegir això i crear una acció aquí a Arduino. Fins ara no ho he aconseguit. Després de moltes investigacions i Adafruit IO, vaig descobrir que es pot desencadenar una acció amb la funció Trigger a Adafruit IO. Obteniu més informació sobre Triggers.

Un feed extra Abans de poder crear un Trigger, hem de crear un altre feed perquè el puguem anomenar a Arduino per obtenir la sortida. Creeu un feed amb el nom AlertTriggered.

Al costat de les capçaleres Feed and Dashboard is Trigger, aneu aquí. Creeu un activador nou. Se us preguntarà si voleu crear un activador reactiu o un activador de programació, trieu Reactive Trigger i feu clic a crear. Això es deu al fet que només voleu activar alguna cosa quan passa alguna cosa (foto 1).

Cal definir una sèrie de coses (els passos següents també es mostren a la foto 2).- Seleccioneu la font analògica al primer If, de manera que l'entrada es prendrà des d'aquí.

-Seleccioneu més que això, perquè voleu activar alguna cosa quan el valor supera aquest nombre.

-Valor de compressió podeu introduir el número desitjat per activar el disparador. En vaig fer 600 en aquest cas.

-Amb arduino haurà de rebre comentaris quan superi els 600: per tant, a A continuació, seleccioneu publica un missatge a:.

-A continuació, podeu seleccionar el vostre segon feed creat AlertTriggered.

Per fi, feu clic a crear.

Pas 5: sortida de Neopixel

Sortida de Neopixel
Sortida de Neopixel

El pas final és generar la sortida. Fet a l'esbós d'Arduino que heu editat, trucant al feed AlertTriggered (que heu creat al pas anterior).

Per poder generar sortida, primer heu de connectar la tira de leds de Neopixel al NodeMCU.) - Centreu el cable DIN del LED a D5 (o qualsevol altre port D)

CodeI he inclòs tot l'esbós amb alternances a aquest pas com a fitxer (es pot trobar a la part inferior d'aquest pas). Aquest és el mateix esbós amb el qual heu treballat en els darrers passos, però ara l’esbós final s’inclou amb els passos que heu de fer per tal de generar la sortida. fitxer adafruitio_musclesensor_neopixel. Això funciona amb el config.h que heu definit prèviament amb les vostres dades. Tots els blocs de codis s’inclouen amb comentaris perquè pugueu veure què passa.

Quines dades de sortida s’han codificat En aquest codi he creat un activador quan l’AlertTriggered (el que vam declarar al pas anterior sobre un valor superior a 600) s’activa més de 5 vegades. Això significa que quan s’activa, la tira LED Neopixel es posa de blanc a vermell. Això succeirà durant un minut i l'estat vermell es desapareixerà i es tornarà a connectar a l'estat blanc.

Serial Monitor Per deixar-lo més clar com a programador, l’últim conjunt de codi correspon al Serial Monitor. Quins són els valors i quan els teniu activa el nivell d'alerta. Juntament amb afegir segons quan l'estat d'alerta està activat, fins que després de 60 segons es torna a desactivar l'estat d'alerta. Per tant, aquesta part és opcional.

// per mostrar els segons que passen al monitor de sèrie quan l'alartstate està a Serial.println ("Segons passats:"); Serial.println (secondsPassed); } else {secondsPassed = 0; }

Comproveu Si heu fet els passos o heu obtingut el fitxer sketch adafruitio_musclesensor_neopixel amb el vostre propi config.h, podeu penjar-lo al vostre NodeMCU. Si es fa, haureu de veure una cosa similar a la següent al vostre monitor sèrie:

Connectant-se a Adafruit IO …

Adafruit IO connectat. Enviament -> 23 Enviament -> 78

La foto 1 és el monitor de sèrie quan es troba en mode d'alerta.

No funciona? Comproveu les coses següents: comproveu si el fitxer config.h està inclòs de la manera correcta. Heu introduït el nom d’usuari i la clau d’Adafruit IO adequats. Heu introduït el contrasenya Wifi a l’SSID adequat. Heu col·locat el cablejat de MyoWare Sensor muscular a la dreta i procedent de la tira LED Neopixel

O bé consulteu els passos anteriors.

Pas 6: Resultats

Hurra, heu acabat! Per demostrar i veure el producte final en acció, he inclòs un vídeo.

Recomanat: