Inhoudsopgave:

Neopixel Led Strip reageert op Myoware Muscle Sensor - Ajarnpa
Neopixel Led Strip reageert op Myoware Muscle Sensor - Ajarnpa

Video: Neopixel Led Strip reageert op Myoware Muscle Sensor - Ajarnpa

Video: Neopixel Led Strip reageert op Myoware Muscle Sensor - Ajarnpa
Video: Arduino WS2812b - NEOPIXEL LED Sample 2024, December
Anonim
Neopixel ledstrip reageert op Myoware-spiersensor
Neopixel ledstrip reageert op Myoware-spiersensor

Het doel is om met behulp van Arduino een spiersensor te installeren en de binnenkomende data te verwerken met Adafruit IO en output op te halen met een trigger zodat het lampje een minuut lang van wit naar rood verandert.

Wat is een spiersensor De spiersensor meet de elektrische activiteit van een spier en produceert een analoog uitgangssignaal dat gemakkelijk kan worden gelezen door een microcontroller. Elektromyografie (EMG) meet spierrespons of elektrische activiteit als reactie op stimulatie van de spier door een zenuw. De test wordt gebruikt om neuromusculaire afwijkingen op te sporen. Tijdens de test worden een of meer kleine naalden (ook wel elektroden genoemd) door de huid in de spier gestoken.

Voor dit project heb je nodig: -MyoWare-spiersensor -EMG-elektroden -NodeMCU (esp8266) -Siliconen afdekdraad -USB-microkabel -Neopixel ledstrip

Bibliotheken die je nodig hebt: -Adafruit io Arduino (minimaal versie 2.3.0)-Adafruit Neopixel (versie 1.2.5)-Adafruit MQTT-bibliotheek (1.0.3)-Arduino HttpClients (0.4.0)Als je geen bibliotheken nog niet geïnstalleerd. Ga vervolgens naar Sketch> include Library> Manage Libraries … typ: [de bibliotheeknaam die u wilt installeren] in het zoekveld.

Stap 1: Myoware-spiersensor aansluiten (vooral voor degenen die er nog nooit mee hebben gewerkt)

Als je nog nooit met een Myoware Muscle Sensor hebt gewerkt, is het goed om eerst te begrijpen hoe deze sensor is aangesloten en afleesbaar is in de Seriële monitor in Arduino. Deze handeling is een standaardprocedure die in veel handleidingen al is beschreven. Het Adafruit-platform heeft in een paar stappen duidelijk beschreven hoe dit werkt:

learn.adafruit.com/aan de slag-met-mijn…

Controle Als al deze stappen zijn uitgevoerd, ziet u in uw seriële monitor dat de waarden veranderen als u uw spieren aanspant. Als je een vuist maakt en je spier aanspant, zouden de waarden omhoog moeten gaan en als je je spier ontspant, zouden deze waarden weer naar beneden moeten gaan.

BelangrijkDeze stap is alleen bedoeld om de sensor in te stellen. De code die je hebt gebruikt is niet nodig voor de rest van de handleiding. Alleen de manier waarop je de sensor zelf ophangt, blijft hetzelfde voor de komende stappen.

Stap 2: Adafruit IO-installatie

Adafruit IO-configuratie
Adafruit IO-configuratie
Adafruit IO-configuratie
Adafruit IO-configuratie
Adafruit IO-configuratie
Adafruit IO-configuratie

De eerste stap is om in te loggen of een account aan te maken in Adafruit IO, blader naar Adafruit IO. Adafruit IO is een cloudplatform waarmee u verbinding kunt maken via internet. Adafruit IO maakt data bruikbaar met dataverbindingen.

Wanneer u in uw account bent:

Maak de Analog FeedNext, u moet een feed maken met de naam Analog. Als je hulp nodig hebt om aan de slag te gaan met het maken van feeds op Adafruit IO, bekijk dan de Adafruit IO Feed Basics-gids (zoals op foto 1 en 2).

Voeg het meterblok en het lijndiagramblok toe. Maak vervolgens een nieuw dashboard en geef het een naam zoals u het wilt noemen (getoond in foto's 3, 4 en 5 om een nieuw dashboard te maken). Zorg ervoor dat u de analoge feed als gegevensbron hebt geselecteerd.

Wanneer u in het dashboard bent, voegt u een nieuw meterblok toe door op de blauwe plus in de rechterbovenhoek te klikken. Noem het blok wat je maar wilt (getoond in foto's 6 en 7), en geef het een maximale waarde van 1024 en een minimale waarde van 0 (waarden van de spiersensor).

Herhaal hetzelfde met het lijndiagramblok (foto 8) als hierboven met het meterblok.

CheckAls je al het bovenstaande hebt gedaan, moet je een soortgelijk scherm hebben als de laatste foto.

Stap 3: Arduino-invoer

Arduino-ingang
Arduino-ingang
Arduino-ingang
Arduino-ingang
Arduino-ingang
Arduino-ingang
Arduino-ingang
Arduino-ingang

In stap 1 hebt u de installatie van de bedrading van de MyoWare Muscle-sensor correct uitgevoerd. In deze stap duiken we in de Arduino-code die wordt geleverd bij het verbinden met stap 2 van het Adafruit IO-dashboard. Aan het einde van deze stap ziet u de invoerwaarden van de Myoware Muscle-sensor in de twee blokken die u hebt ingesteld.

Arduino-configuratie

Zorg ervoor dat u alle bibliotheken hebt geïnstalleerd die hierboven in de inleiding zijn vermeld.

We gaan aan de slag met een voorbeeldschets. Dus open Bestand> Voorbeeld> Adafruit IO Arduino> adafruitio_08_analog_in (foto 1). Waarom deze schets? omdat we eerst het invoergedeelte van deze handleiding instellen. De MyoWare Muscle sensor maakt gebruik van analoge output. Als je meer in het onderwerp over analoog wilt duiken.

Arduino Network ConfigOm de netwerkinstellingen te configureren, klikt u op het tabblad config.h in de schets. U moet uw Adafruit IO-gebruikersnaam instellen in de IO_USERNAME-definitie en uw Adafruit IO-sleutel in de IO_KEY-definitie. Je gebruikersnaam en sleutel vind je rechtsboven in het scherm in je Arduino IO (voorbeeld op foto 2)

#define IO_USERNAME "uw_gebruikersnaam"

#define IO_KEY "uw_sleutel"

WiFi Config WiFi is standaard ingeschakeld in config.h, dus als u een van de ondersteunde WiFi-kaarten gebruikt, hoeft u alleen de WIFI_SSID- en WIFI_PASS-opties op het tabblad config.h te wijzigen.

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

Arduino CodeAls je bovenstaande instellingen hebt gewijzigd, kunnen we verder gaan met de eigenlijke code, adafruit_08_analog_in. De standaardpin in dit voorbeeld is statet op AO. Dit is de juiste pin zoals je in stap 2 je spiersensor op het bord hebt geplaatst.

In dit voorbeeld wordt een fotocelsensor gebruikt, omdat we een spiersensor gebruiken zullen we deze naam veranderen. Het maakt niet uit of je dit doet, het maakt het alleen semantisch netter. Verander PHOTOCELL_PIN in MUSCLESENSOR_PIN doe dit op twee plaatsen in de schets.

/************************* Voorbeeld begint hier ********************* *******/

// analoge pin 0 #define PHOTOCELL_PIN A0

In de laatste coderegel is een vertraging aangebracht. Deze vertraging is 1 seconde, we gaan instellen op 2 seconden dus 2000. We doen dit omdat er een licentie op Adafruit IO staat met een datalimiet, onder de twee seconden overschrijdt deze sketch die datalimiet en geeft het een THROTTLE WARNING. Wat betekent dat er geen waarden binnenkomen. Als u dit op twee seconden zet, wordt dit voorkomen.

// wacht een seconde (1000 milliseconden == 1 seconde) vertraging (2000);

Dit was wat je in de schets moest veranderen om het te laten werken. Als je precies wilt weten hoe de hele code werkt. Je kunt het vinden op Learn Adafruit, met uitleg bij elk codeblok.

CheckUpload de schets naar je bord en open de Arduino Serial Monitor. Je bord zou nu verbinding moeten maken met Adafruit IO.

je kunt nu je arm aanspannen en je zou moeten zien dat de veranderende waarden naar Adafruit IO worden gestuurd (zoals op foto 3). Zie je geen waarden in de Seriële monitor, controleer dan of je de Baudrate in de Seriële monitor hebt ingesteld op 115200.

Adafruit IO Dashboard Controleer uw dashboard op Adafruit IO en u zou moeten zien dat de meter en het lijndiagram reageren op de veranderingen in de MyoWare Muscle Sensor-waarden.

Stap 4: Adafruit IO-trigger instellen

Adafruit IO-trigger instellen
Adafruit IO-trigger instellen
Adafruit IO-trigger instellen
Adafruit IO-trigger instellen

Tot nu toe hebben we input van de MyoWare Muscle-sensor naar Adafruit IO kunnen laten werken. Nu gaan we aan de slag om deze informatie te lezen. Zodat na 5 keer een waarde boven X van de Spiersensor wordt gedetecteerd, wordt er een actie uitgevoerd door de Neopixel ledstrip.

Dit gedeelte was voor mij waar ik moest onderzoeken hoe ik de geschiedenis van Adafruit IO kan lezen. Ik had eerder met Feeds en Dashboards gewerkt, dus ik dacht dat de feed en het dashboard die werden gemaakt dit konden lezen en hier een actie in Arduino konden maken. Tot nu toe is het me niet gelukt. Na veel onderzoek en Adafruit IO ontdekte ik dat een actie kan worden getriggerd met de Trigger-functie in Adafruit IO. Meer informatie over Triggers.

Een extra feed Voordat we een trigger kunnen maken, moeten we een andere feed maken, zodat we deze een naam kunnen geven in Arduino om de uitvoer te krijgen. Maak een feed met de naam AlertTriggered.

Maak een TriggerVolgende naar de headers Feed en Dashboard is Trigger, ga hierheen. Maak een nieuwe trigger. U wordt gevraagd of u een Reactive Trigger of Schedule Trigger wilt maken, kies Reactive Trigger en klik op maken. Dit komt omdat je pas iets wilt triggeren als er iets gebeurt (foto 1).

Er moeten een aantal dingen ingesteld worden (Volgende stappen staan ook op foto 2).-Selecteer de analoge feed bij de eerste If, zodat de input vanaf hier wordt genomen.

-Kies je groter dan, dit omdat je iets wilt triggeren als de waarde zo'n getal overschrijdt.

-Comperisonwaarde u kunt uw gewenste nummer invoeren om de trigger te activeren. Ik heb er 600 gedaan in dit geval.

-Met arduino moet je een feedback ontvangen wanneer deze de 600 overschrijdt: dus selecteer vervolgens een bericht publiceren naar:.

-Waarna u uw tweede Feed kunt selecteren die AlertTriggered is gemaakt.

Klik ten slotte op maken.

Stap 5: Neopixel-uitvoer

Neopixel-uitgang
Neopixel-uitgang

De laatste stap is het genereren van de output. Gedaan in de Arduino-schets die je hebt bewerkt, door de AlertTriggered-feed aan te roepen (die je in de vorige stap hebt gemaakt).

Om output te kunnen genereren moet je eerst de Neopixel ledstrip aansluiten op de NodeMCU.- + 5v (links) draad van je ledstrip op de 3v van je NodeMCU- GND (rechts) draad op G van de Node (G = GND)- Middendraad DIN van de LED op D5 (of een andere D-poort)

CodeIk heb de hele schets met afwisselingen in deze stap als bestand opgenomen (te vinden onderaan deze stap). Dit is dezelfde schets waarmee u in de laatste paar stappen hebt gewerkt, maar nu is de definitieve schets opgenomen met de stappen die u moet doen om de uitvoer te genereren. adafruitio_musclesensor_neopixel bestand. Dit werkt met de config.h die je eerder hebt ingesteld met je gegevens. Alle codeblokken zijn voorzien van commentaar, zodat je kunt zien wat er gebeurt.

Welke uitvoergegevens zijn gecodeerd In deze code heb ik een trigger gemaakt, wanneer de AlertTriggered (wat we in de vorige stap hebben aangegeven over een waarde groter dan 600) meer dan 5 keer wordt geactiveerd. Dit betekent dat wanneer deze wordt geactiveerd, de Neopixel-ledstrip wordt ingesteld van wit naar rood. Dit zal een minuut duren en dan zal de rode toestand vervagen en weer naar de witte toestand worden doorgelust.

Serial Monitor Om het voor jou als programmeur duidelijker te maken, is de laatste set code voor de Serial Monitor. Wat de waarden zijn en wanneer je het alarmniveau hebt geactiveerd. Samen met het toevoegen van seconden wanneer de waarschuwingsstatus is ingeschakeld, totdat deze na 60 seconden weer overschakelt naar de waarschuwingsstatus uit. Dit onderdeel is daarom optioneel.

// om de voorbijgaande seconden in de seriële monitor te tonen wanneer de alartstate op Serial.println ("Seconden verstreken:"); Serial.println(secondsPassed); } else {secondsPassed = 0; }

Controleer of je de stappen hebt uitgevoerd of het sketch adafruitio_musclesensor_neopixel-bestand met je eigen config.h hebt gekregen, je kunt het uploaden naar je NodeMCU. Als het klaar is, moet je iets soortgelijks zien als hieronder in je seriële monitor:

Verbinding maken met Adafruit IO…

Adafruit IO aangesloten. Verzenden -> 23 Verzenden -> 78

Foto 1 is de seriële monitor wanneer deze in de alertmodus staat.

Het werkt niet? Controleer de volgende zaken- Controleer of de config.h op de juiste manier is opgenomen- Heb je de juiste Adafruit IO gebruikersnaam en sleutel ingevuld- Heb je de juiste SSID en een wifi-wachtwoord ingevuld- Heb je de bedrading van de MyoWare geplaatst Spiersensor rechts en van de Neopixel Led Strip

Of bekijk de vorige stappen.

Stap 6: Resultaten

Hoera je bent klaar! Om het eindproduct te demonstreren en in actie te zien heb ik een video bijgevoegd.

Aanbevolen: