Bande LED Neopixel réagissant au capteur musculaire Myoware : 6 étapes
Bande LED Neopixel réagissant au capteur musculaire Myoware : 6 étapes
Anonim
Bande LED Neopixel réagissant au capteur musculaire Myoware
Bande LED Neopixel réagissant au capteur musculaire Myoware

L'objectif est d'installer un capteur musculaire à l'aide d'Arduino et de traiter les données entrantes avec Adafruit IO et de récupérer la sortie avec un déclencheur afin que la lumière passe du blanc au rouge pendant une minute.

Qu'est-ce qu'un capteur musculaire Le capteur musculaire mesure l'activité électrique d'un muscle et produit un signal de sortie analogique qui peut être facilement lu par un microcontrôleur. L'électromyographie (EMG) mesure la réponse musculaire ou l'activité électrique en réponse à la stimulation d'un nerf du muscle. Le test est utilisé pour aider à détecter les anomalies neuromusculaires. Pendant le test, une ou plusieurs petites aiguilles (également appelées électrodes) sont insérées à travers la peau dans le muscle.

Pour ce projet, vous avez besoin de: -Capteur musculaire MyoWare -Électrodes EMG -NodeMCU (esp8266)-Câble de couverture en silicone -Câble micro USB -Bande led néopixel

Bibliothèques dont vous aurez besoin: -Adafruit io Arduino (au moins version 2.3.0)-Adafruit Neopixel (version 1.2.5)-Bibliothèque Adafruit MQTT (1.0.3)-Arduino HttpClients (0.4.0)Si vous n'avez pas de te bibliothèques installées encore. Ensuite, allez dans Sketch> include Library> Manage Libraries … tapez: [le nom de la bibliothèque que vous souhaitez installer] dans le champ de recherche.

Étape 1: connexion du capteur musculaire Myoware (en particulier pour ceux qui n'ont jamais travaillé avec)

Si vous n'avez jamais travaillé avec un capteur musculaire Myoware, il est bon de comprendre d'abord comment ce capteur est connecté et lisible dans le moniteur série d'Arduino. Cette opération est une procédure standard qui a déjà été décrite dans de nombreux manuels. La plate-forme Adafruit a une description claire de son fonctionnement en quelques étapes:

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

Vérifiez si toutes ces étapes sont effectuées, vous verrez sur votre moniteur série que les valeurs changent lorsque vous contractez vos muscles. Lorsque vous serrez le poing et serrez votre muscle, les valeurs devraient augmenter et lorsque vous détendez votre muscle, ces valeurs devraient redescendre.

ImportantCette étape sert uniquement à configurer le capteur. Le code que vous avez utilisé n'est pas nécessaire pour le reste du manuel. Seule la façon dont vous installez le capteur lui-même reste la même pour les étapes à venir.

Étape 2: Configuration d'Adafruit IO

Configuration des E/S d'Adafruit
Configuration des E/S d'Adafruit
Configuration des E/S d'Adafruit
Configuration des E/S d'Adafruit
Configuration des E/S d'Adafruit
Configuration des E/S d'Adafruit

La première étape consiste à vous connecter ou à créer un compte dans Adafruit IO, accédez à Adafruit IO. Adafruit IO est une plate-forme cloud à laquelle vous pouvez vous connecter via Internet. Adafruit IO rend les données utiles avec les connexions de données.

Lorsque vous êtes dans votre compte:

Créez l'Analog FeedNext, vous devrez créer un flux appelé Analog. Si vous avez besoin d'aide pour commencer à créer des flux sur Adafruit IO, consultez le guide Adafruit IO Feed Basics (Comme sur les photos 1 et 2).

En ajoutant le bloc de jauge et le graphique en courbes BlockNext, créez un nouveau tableau de bord et nommez-le comme vous le souhaitez (illustré sur les photos 3, 4 et 5 pour créer un nouveau tableau de bord). Assurez-vous d'avoir sélectionné le flux analogique comme source de données.

Lorsque vous êtes dans le tableau de bord, ajoutez un nouveau bloc de jauge en cliquant sur le plus bleu dans le coin supérieur droit. Nommez le bloc comme vous le souhaitez (illustré sur les photos 6 et 7), et donnez-lui une valeur max de 1024 et une valeur min de 0 (valeurs du capteur musculaire).

Répétez la même chose avec le bloc Line chart (photo 8) comme ci-dessus avec le bloc Gauge.

Vérifiez si vous avez fait tout ci-dessus, vous devez avoir un écran similaire à celui de la dernière photo.

Étape 3: entrée Arduino

Entrée Arduino
Entrée Arduino
Entrée Arduino
Entrée Arduino
Entrée Arduino
Entrée Arduino
Entrée Arduino
Entrée Arduino

À l'étape 1, vous avez correctement configuré le câblage du capteur MyoWare Muscle. Cette étape, nous allons plonger dans le code Arduino fourni avec la connexion à l'étape 2 du tableau de bord Adafruit IO. À la fin de cette étape, vous verrez les valeurs d'entrée du capteur Myoware Muscle dans les deux blocs que vous avez configurés.

Configuration Arduino

Assurez-vous d'avoir installé toutes les bibliothèques indiquées ci-dessus dans l'introduction.

Nous allons travailler avec un exemple de croquis. Ouvrez donc Fichier> Exemple> Adafruit IO Arduino> adafruitio_08_analog_in (photo 1). Pourquoi ce croquis ? car nous mettons d'abord en place la partie saisie de ce manuel. Le capteur MyoWare Muscle utilise une sortie analogique. Si vous souhaitez approfondir le sujet de l'analogique.

Arduino Network ConfigPour configurer les paramètres réseau, cliquez sur l'onglet config.h dans le croquis. Vous devrez définir votre nom d'utilisateur Adafruit IO dans la définition IO_USERNAME et votre clé Adafruit IO dans la définition IO_KEY. Vous pouvez retrouver votre identifiant et votre clé en haut à droite de l'écran dans votre Arduino IO (exemple sur la photo 2)

#define IO_USERNAME "votre_nom d'utilisateur"

#define IO_KEY "votre_clé"

WiFi Config WiFi est activé par défaut dans config.h donc si vous utilisez l'une des cartes WiFi prises en charge, vous n'aurez qu'à modifier les options WIFI_SSID et WIFI_PASS dans l'onglet config.h.

#define WIFI_SSID "votre_ssid"#define WIFI_PASS "votre_pass"

Code ArduinoSi vous avez modifié les paramètres ci-dessus, nous pouvons aller plus loin dans le code réel, adafruit_08_analog_in. La broche par défaut dans cet exemple est statet sur AO. C'est la bonne broche car vous avez placé votre capteur musculaire sur la planche à l'étape 2.

Cet exemple utilise un capteur photocellule, car nous utilisons un capteur musculaire, nous allons changer ce nom. Cela n'a pas d'importance si vous faites cela, cela ne fera que le rendre sémantiquement plus ordonné. Remplacez PHOTOCELL_PIN par MUSCLESENSOR_PIN, faites-le à deux endroits de l'esquisse.

/************************ L'exemple commence ici ************************ *********/

// broche analogique 0 #define PHOTOCELL_PIN A0

Dans la dernière ligne de code, il y a un délai. Ce délai est de 1 seconde, nous allons le fixer à 2 secondes donc 2000. Nous faisons cela car il existe une licence sur Adafruit IO avec une limite de données, en moins de deux secondes ce sketch dépasse cette limite de données et il donnera un AVERTISSEUR DE PAPILLON. Ce qui signifie qu'il n'y a pas de valeurs entrantes. Le réglage à deux secondes empêche cela.

// attend une seconde (1000 millisecondes == 1 seconde) delay(2000);

C'est ce que vous avez dû changer dans le croquis pour que cela fonctionne. Si vous voulez savoir exactement comment fonctionne l'ensemble du code. Vous pouvez le trouver sur learn Adafruit, avec une explication de chaque bloc de code.

CheckTéléchargez le croquis sur votre carte et ouvrez le moniteur série Arduino. Votre carte devrait maintenant se connecter à Adafruit IO.

vous pouvez maintenant serrer votre bras et vous devriez voir les valeurs changeantes envoyées à Adafruit IO (comme sur la photo 3). Si vous ne voyez aucune valeur dans le moniteur série, vérifiez si vous avez réglé le débit en bauds dans le moniteur série sur 115200.

Tableau de bord Adafruit IO Vérifiez votre tableau de bord sur Adafruit IO, et vous devriez voir la jauge et le graphique en courbes répondre aux changements des valeurs du capteur musculaire MyoWare.

Étape 4: Configuration du déclencheur IO Adafruit

Configuration du déclencheur IO Adafruit
Configuration du déclencheur IO Adafruit
Configuration du déclencheur IO Adafruit
Configuration du déclencheur IO Adafruit

Jusqu'à présent, nous avons pu utiliser le capteur MyoWare Muscle pour le fonctionnement d'Adafruit IO. Nous allons maintenant commencer à lire ces informations. De sorte qu'après 5 fois une valeur supérieure à X du capteur Muscle est détectée, une action est effectuée par la bande led Neopixel.

Cette section était pour moi où j'ai dû étudier comment je peux lire l'histoire d'Adafruit IO. J'avais déjà travaillé avec des flux et des tableaux de bord, alors j'ai pensé que le flux et le tableau de bord qui ont été créés pouvaient lire ceci et créer une action ici dans Arduino. Jusqu'à présent, je n'ai pas réussi. Après de nombreuses recherches et Adafruit IO, j'ai découvert qu'une action peut être déclenchée avec la fonction Trigger dans Adafruit IO. En savoir plus sur les déclencheurs.

Un flux supplémentaire Avant de pouvoir créer un déclencheur, nous devons créer un autre flux afin de pouvoir le nommer dans Arduino pour obtenir la sortie. Créez un flux avec le nom AlertTriggered.

Créez un déclencheurÀ côté des en-têtes Feed et Dashboard is Trigger, allez ici. Créez un nouveau déclencheur. Il vous sera demandé si vous souhaitez créer un déclencheur réactif ou un déclencheur planifié, choisissez Déclencheur réactif et cliquez sur Créer. C'est parce que vous ne voulez déclencher quelque chose que lorsque quelque chose se passe (photo 1).

Un certain nombre de choses doivent être définies (les étapes suivantes sont également montrées sur la photo 2).-Sélectionnez le flux analogique au premier Si, donc l'entrée sera prise à partir d'ici.

-Est-ce que vous sélectionnez supérieur à, ceci parce que vous voulez déclencher quelque chose lorsque la valeur dépasse un tel nombre.

-Valeur de comparaison, vous pouvez entrer le numéro de votre choix pour activer le déclencheur. J'en ai fait 600 dans ce cas.

-Avec arduino vous devrez recevoir un retour lorsqu'il dépasse 600: donc à Puis sélectionnez publier un message à:.

-Après quoi, vous pouvez sélectionner votre deuxième flux créé AlertTriggered.

Cliquez enfin sur créer.

Étape 5: sortie néopixels

Sortie Néopixel
Sortie Néopixel

La dernière étape consiste à générer la sortie. Fait dans le sketch Arduino que vous avez édité, en appelant le flux AlertTriggered (que vous avez créé à l'étape précédente).

Pour pouvoir générer une sortie vous devez d'abord connecter la bande led Neopixel au NodeMCU.- + fil 5v (gauche) de votre bande led sur le 3v de votre NodeMCU- GND (droit) fil sur G du Node (G = GND)- Fil central DIN de la LED sur D5 (ou tout autre port D)

CodeJ'ai inclus l'ensemble du croquis avec des alternances dans cette étape sous forme de fichier (vous pouvez le trouver au bas de cette étape). Il s'agit du même croquis avec lequel vous avez travaillé au cours des dernières étapes, mais le croquis final est maintenant inclus avec les étapes que vous devez effectuer pour générer la sortie. fichier adafruitio_musclesensor_neopixel. Cela fonctionne avec le config.h que vous avez précédemment défini avec vos données. Tous les blocs de code sont inclus avec des commentaires afin que vous puissiez voir ce qui se passe.

Quelles données de sortie ont été codées Dans ce code, j'ai créé un déclencheur, lorsque AlertTriggered (ce que nous avons déclaré à l'étape précédente sur une valeur supérieure à 600) est déclenché plus de 5 fois. Cela signifie que lorsqu'il est déclenché, la bande LED Neopixel passe du blanc au rouge. Cela se produira pendant une minute et ensuite l'état rouge va s'estomper et redeviendra l'état blanc.

Serial MonitorPour que ce soit plus clair pour vous en tant que programmeur, le dernier ensemble de codes est pour le Serial Monitor. Quelles sont les valeurs et quand vous avez déclenché le niveau d'alerte. Avec l'ajout de secondes lorsque l'état d'alerte est activé, jusqu'à ce qu'après 60 secondes, il passe à nouveau à l'état d'alerte. Cette partie est donc facultative.

//pour afficher les secondes qui passent dans le moniteur série lorsque l'état d'alarme est sur Serial.println("Secondes passées:"); Serial.println(secondsPassed); } else { secondesPassées = 0; }

Vérifiez si vous avez terminé les étapes ou si vous avez obtenu le fichier sketch adafruitio_musclesensor_neopixel avec votre propre config.h, vous pouvez le télécharger sur votre NodeMCU. Si c'est fait, vous devez voir quelque chose de similaire à celui ci-dessous dans votre moniteur série:

Connexion à Adafruit IO…

Adafruit IO connecté. Envoi -> 23 Envoi -> 78

La photo 1 est le moniteur série lorsqu'il est en mode alerte.

ça ne marche pas ? Vérifiez les choses suivantes- Vérifiez si le config.h est inclus de la bonne manière- Avez-vous mis le bon nom d'utilisateur et la bonne clé Adafruit IO- Avez-vous mis le bon SSID un mot de passe Wifi- Avez-vous placé le câblage du MyoWare Capteur musculaire à droite et à partir de la bande LED Neopixel

Ou vérifiez les étapes précédentes.

Étape 6: Résultats

Hourra, vous avez terminé ! Pour démontrer et voir le produit final en action, j'ai inclus une vidéo.

Conseillé: