Sommario:

Striscia LED Neopixel che reagisce al sensore muscolare Myoware: 6 passaggi
Striscia LED Neopixel che reagisce al sensore muscolare Myoware: 6 passaggi

Video: Striscia LED Neopixel che reagisce al sensore muscolare Myoware: 6 passaggi

Video: Striscia LED Neopixel che reagisce al sensore muscolare Myoware: 6 passaggi
Video: Le Luci RGB Sono Fuori Moda | Proviamo Quelle Indirizzabili WS2811 By BTF-LIGHTING 2024, Novembre
Anonim
Striscia LED Neopixel che reagisce al sensore muscolare Myoware
Striscia LED Neopixel che reagisce al sensore muscolare Myoware

L'obiettivo è installare un sensore muscolare con l'aiuto di Arduino ed elaborare i dati in ingresso con Adafruit IO e recuperare l'output con un trigger in modo che la luce passi dal bianco al rosso per un minuto.

Che cos'è un sensore muscolare Il sensore muscolare misura l'attività elettrica di un muscolo e produce un segnale di uscita analogico che può essere facilmente letto da un microcontrollore. L'elettromiografia (EMG) misura la risposta muscolare o l'attività elettrica in risposta alla stimolazione di un nervo del muscolo. Il test viene utilizzato per aiutare a rilevare anomalie neuromuscolari. Durante il test, uno o più piccoli aghi (detti anche elettrodi) vengono inseriti attraverso la pelle nel muscolo.

Per questo progetto sono necessari: -Sensore muscolare MyoWare -Elettrodi EMG -NodeMCU (esp8266) -Cavo di copertura in silicone -Cavo micro USB -Striscia led Neopixel

Librerie di cui avrai bisogno: -Adafruit io Arduino (almeno versione 2.3.0) -Adafruit Neopixel (versione 1.2.5) -Libreria Adafruit MQTT (1.0.3)-Arduino HttpClients (0.4.0) Se non hai te librerie ancora installate. Quindi vai su Schizzo> includi libreria> Gestisci librerie … digita: [il nome della libreria che desideri installare] nel campo di ricerca.

Passaggio 1: collegamento del sensore muscolare Myoware (soprattutto per coloro che non hanno mai lavorato con esso prima)

Se non hai mai lavorato con un sensore muscolare Myoware, è bene prima capire come questo sensore è collegato e leggibile nel monitor seriale in Arduino. Questa operazione è una procedura standard già descritta in molti manuali. La piattaforma Adafruit ha una chiara descrizione di come funziona in pochi passaggi:

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

VerificaSe vengono eseguiti tutti questi passaggi, vedrai nel tuo monitor seriale che i valori cambiano quando stringi i muscoli. Quando fai un pugno e stringi i muscoli, i valori dovrebbero salire e quando rilassi i muscoli questi valori dovrebbero scendere di nuovo.

ImportanteQuesto passaggio serve solo per impostare il sensore. Il codice che hai usato non è necessario per il resto del manuale. Solo il modo in cui installi il sensore rimane lo stesso per i passaggi successivi.

Passaggio 2: configurazione IO di Adafruit

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

Il primo passo è accedere o creare un account in Adafruit IO, passare ad Adafruit IO. Adafruit IO è una piattaforma cloud a cui puoi connetterti tramite Internet. Adafruit IO rende i dati utili con le connessioni dati.

Quando sei nel tuo account:

Crea l'Analog FeedNext, dovrai creare un feed chiamato Analog. Se hai bisogno di aiuto per iniziare a creare feed su Adafruit IO, consulta la guida Nozioni di base sui feed di Adafruit IO (come nella foto 1 e 2).

Aggiungendo il Gauge Block e il grafico a linee BlockNext, crea un nuovo dashboard e chiamalo come desideri che venga chiamato (mostrato nelle foto 3, 4 e 5 per creare un nuovo dashboard). Assicurati di aver selezionato il feed analogico come origine dati.

Quando sei nella dashboard, aggiungi un nuovo Blocco indicatore facendo clic sul segno più blu nell'angolo in alto a destra. Dai un nome al blocco come preferisci (mostrato nelle foto 6 e 7) e assegnagli un valore massimo di 1024 e un valore minimo di 0 (valori del sensore muscolare).

Ripeti lo stesso con il blocco Grafico a linee (foto 8) come sopra con il blocco Gauge.

VerificaSe hai fatto tutto quanto sopra, devi avere una schermata simile a quella dell'ultima foto.

Passaggio 3: ingresso Arduino

Ingresso Arduino
Ingresso Arduino
Ingresso Arduino
Ingresso Arduino
Ingresso Arduino
Ingresso Arduino
Ingresso Arduino
Ingresso Arduino

Nel passaggio 1 hai eseguito la configurazione del cablaggio corretto del sensore MyoWare Muscle. In questo passaggio ci addentreremo nel codice Arduino che viene fornito con la connessione al passaggio 2 del dashboard di Adafruit IO. Alla fine di questo passaggio, vedrai i valori di input del sensore Myoware Muscle nei due blocchi che hai impostato.

Configurazione Arduino

Assicurati di aver installato tutte le librerie indicate sopra nell'introduzione.

Lavoreremo con uno schizzo di esempio. Quindi apri File> Esempio> Adafruit IO Arduino> adafruitio_08_analog_in (foto 1). Perché questo schizzo? perché per prima cosa stiamo impostando la parte di input di questo manuale. Il sensore MyoWare Muscle utilizza l'uscita analogica. Se vuoi approfondire l'argomento sull'analogico.

Arduino Network ConfigPer configurare le impostazioni di rete, fare clic sulla scheda config.h nello schizzo. Dovrai impostare il tuo nome utente Adafruit IO nella definizione IO_USERNAME e la tua chiave Adafruit IO nella definizione IO_KEY. Puoi trovare il tuo nome utente e la chiave nella parte in alto a destra dello schermo nel tuo Arduino IO (esempio nella foto 2)

#define IO_USERNAME "tuo_nomeutente"

#define IO_KEY "tua_chiave"

WiFi Config Il WiFi è abilitato per impostazione predefinita in config.h, quindi se stai utilizzando una delle schede WiFi supportate, dovrai solo modificare le opzioni WIFI_SSID e WIFI_PASS nella scheda config.h.

#define WIFI_SSID "tuo_ssid"#define WIFI_PASS "tuo_pass"

Codice Arduino Se hai modifiche alle impostazioni sopra, possiamo andare oltre al codice effettivo, adafruit_08_analog_in. Il pin predefinito in questo esempio è indicato su AO. Questo è il pin giusto poiché hai posizionato il tuo sensore muscolare sulla tavola nel passaggio 2.

Questo esempio utilizza un sensore a fotocellula, poiché utilizziamo un sensore muscolare cambieremo questo nome. Non importa se lo fai, lo renderà solo semanticamente più ordinato. Cambia PHOTOCELL_PIN in MUSCLESENSOR_PIN fallo in due punti dello schizzo.

/************************* L'esempio inizia qui ******************** ********/

// pin analogico 0 #define PHOTOCELL_PIN A0

Nell'ultima codeline c'è un ritardo. Questo ritardo è di 1 secondo, lo imposteremo a 2 secondi, quindi 2000. Lo facciamo perché c'è una licenza su Adafruit IO con un limite di dati, in meno di due secondi questo schizzo supera quel limite di dati e darà un AVVISO DI GARANZIA. Ciò significa che non ci sono valori in arrivo. Impostandolo su due secondi lo impedisce.

// aspetta un secondo (1000 millisecondi == 1 secondo) delay(2000);

Questo era ciò che dovevi cambiare nello schizzo per farlo funzionare. Se vuoi sapere esattamente come funziona l'intero codice. Puoi trovarlo su Learn Adafruit, con una spiegazione di ogni blocco di codice.

ControllaCarica lo schizzo sulla tua scheda e apri il monitor seriale Arduino. La tua scheda dovrebbe ora connettersi ad Adafruit IO.

ora puoi stringere il braccio e dovresti vedere i valori che cambiano vengono inviati ad Adafruit IO (come nella foto 3). Se non vedi alcun valore nel monitor seriale, controlla se hai impostato il baud rate nel monitor seriale su 115200.

Adafruit IO DashboardControlla la tua dashboard su Adafruit IO e dovresti vedere l'indicatore e il grafico a linee rispondere alle modifiche dei valori del sensore muscolare MyoWare.

Passaggio 4: configurazione del trigger IO di Adafruit

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

Fino ad ora siamo stati in grado di inviare input dal sensore MyoWare Muscle ad Adafruit IO funzionante. Ora inizieremo a leggere queste informazioni. In modo che dopo 5 volte viene rilevato un valore superiore a X del sensore Muscolare, viene eseguita un'azione dalla striscia led Neopixel.

Questa sezione era per me dove dovevo indagare su come posso leggere la cronologia di Adafruit IO. Avevo già lavorato con Feed e Dashboard in precedenza, quindi ho pensato che il feed e il dashboard creati potessero leggerlo e creare un'azione qui in Arduino. Finora non ci sono riuscito. Dopo molte ricerche e Adafruit IO, ho scoperto che un'azione può essere attivata con la funzione Trigger in Adafruit IO. Ulteriori informazioni sui trigger.

Un feed extra Prima di poter creare un trigger, dobbiamo creare un altro feed in modo da poterlo nominare in Arduino per ottenere l'output. Crea un feed con il nome AlertTriggered.

Crea un trigger Accanto alle intestazioni Feed e Dashboard è Trigger, vai qui. Crea un nuovo attivatore. Ti verrà chiesto se desideri creare un trigger reattivo o un trigger pianificato, scegli Trigger reattivo e fai clic su Crea. Questo perché vuoi attivare qualcosa solo quando succede qualcosa (foto 1).

È necessario impostare una serie di cose (i passaggi successivi sono mostrati anche nella foto 2).-Selezionare il feed analogico al primo If, quindi l'input verrà preso da qui.

-Selezioni maggiore di, questo perché si desidera attivare qualcosa quando il valore supera tale numero.

-Valore di confronto è possibile inserire il numero desiderato per attivare il trigger. Ne ho fatti 600 in questo caso.

-Con arduino dovrai ricevere un feedback quando supera 600: quindi su Quindi seleziona pubblica un messaggio su:.

-Dopo di che è possibile selezionare il secondo Feed creato AlertTriggered.

Alla fine clicca su crea.

Passaggio 5: uscita Neopixel

Uscita Neopixel
Uscita Neopixel

Il passaggio finale consiste nel generare l'output. Fatto nello sketch Arduino che hai modificato, chiamando il feed AlertTriggered (che hai creato nel passaggio precedente).

Per poter generare output devi prima collegare la striscia led Neopixel al NodeMCU.- + filo 5v (sinistra) della tua striscia led sui 3v del tuo NodeMCU- Filo GND (destra) su G del Nodo (G = GND)- Filo centrale DIN del LED su D5 (o qualsiasi altra porta D)

CodiceHo incluso l'intero schizzo con le alternanze in questo passaggio come file (può essere trovato in fondo a questo passaggio). Questo è lo stesso schizzo con cui hai lavorato negli ultimi passaggi, ma ora lo schizzo finale è incluso con i passaggi che devi eseguire per generare l'output. adafruitio_musclesensor_neopixel file. Funziona con il config.h che hai precedentemente impostato con i tuoi dati. Tutti i blocchi di codice sono inclusi con commenti in modo da poter vedere cosa sta succedendo.

Quali dati di output sono stati codificatiIn questo codice ho creato un trigger, quando AlertTriggered (quello che abbiamo dichiarato nel passaggio precedente su un valore maggiore di 600) viene attivato più di 5 volte. Ciò significa che quando viene attivato, la striscia led Neopixel viene impostata dal bianco al rosso. Questo accadrà per un minuto e poi lo stato rosso svanirà e tornerà di nuovo allo stato bianco.

Serial Monitor Per renderlo più chiaro per te come programmatore, l'ultimo set di codice è per Serial Monitor. Quali sono i valori e quando si attiva il livello di allerta. Insieme all'aggiunta di secondi quando lo stato di avviso è attivo, fino a quando dopo 60 secondi non si passa nuovamente allo stato di avviso disattivo. Questa parte è quindi facoltativa.

//per mostrare i secondi che passano nel monitor seriale quando alartstate è su Serial.println("Secondi passati:"); Serial.println(secondsPassed); } else { secondi passati = 0; }

VerificaSe hai eseguito i passaggi o hai ottenuto il file sketch adafruitio_musclesensor_neopixel con il tuo config.h puoi caricarlo sul tuo NodeMCU. Se è fatto, devi vedere qualcosa di simile come in basso nel tuo monitor seriale:

Connessione ad Adafruit IO…

Adafruit IO connesso. Invio -> 23 Invio -> 78

La foto 1 è il monitor seriale quando è in modalità di avviso.

Non funziona? Controlla le seguenti cose- Controlla se il config.h è incluso nel modo giusto- Hai inserito il nome utente e la chiave Adafruit IO corretti- Hai inserito l'SSID corretto una password Wifi- Hai posizionato il cablaggio del MyoWare Sensore muscolare destro e dalla striscia Led Neopixel

Oppure controlla i passaggi precedenti.

Passaggio 6: risultati

Evviva hai finito! Per dimostrare e vedere il prodotto finale in azione ho incluso un video.

Consigliato: