Inhaltsverzeichnis:

Neopixel-LED-Streifen, der auf Myoware-Muskelsensor reagiert - Gunook
Neopixel-LED-Streifen, der auf Myoware-Muskelsensor reagiert - Gunook

Video: Neopixel-LED-Streifen, der auf Myoware-Muskelsensor reagiert - Gunook

Video: Neopixel-LED-Streifen, der auf Myoware-Muskelsensor reagiert - Gunook
Video: Homemade Iron Man Inspired Blaster Glove with LED board, Neopixel Ring, Flex Sensor, and Arduino 2024, November
Anonim
Neopixel-LED-Streifen, der auf den Myoware-Muskelsensor reagiert
Neopixel-LED-Streifen, der auf den Myoware-Muskelsensor reagiert

Ziel ist es, mit Hilfe von Arduino einen Muskelsensor zu installieren und die eingehenden Daten mit Adafruit IO zu verarbeiten und die Ausgabe mit einem Trigger so abzurufen, dass das Licht für eine Minute von weiß auf rot wechselt.

Was ist ein Muskelsensor? Der Muskelsensor misst die elektrische Aktivität eines Muskels und erzeugt ein analoges Ausgangssignal, das leicht von einem Mikrocontroller gelesen werden kann. Die Elektromyographie (EMG) misst die Muskelreaktion oder die elektrische Aktivität als Reaktion auf die Stimulation des Muskels durch einen Nerv. Der Test wird verwendet, um neuromuskuläre Anomalien zu erkennen. Während des Tests werden eine oder mehrere kleine Nadeln (auch Elektroden genannt) durch die Haut in den Muskel eingeführt.

Für dieses Projekt benötigen Sie: -MyoWare-Muskelsensor -EMG-Elektroden -NodeMCU (esp8266) -Silikon-Abdeckungsdraht -USB-Mikrokabel -Neopixel-LED-Streifen

Bibliotheken, die Sie benötigen: - Adafruit io Arduino (mindestens Version 2.3.0) - Adafruit Neopixel (Version 1.2.5) - Adafruit MQTT-Bibliothek (1.0.3) - Arduino HttpClients (0.4.0) Wenn Sie kein te. haben Bibliotheken noch installiert. Gehen Sie dann zu Sketch> Bibliothek einschließen> Bibliotheken verwalten … geben Sie: [den Bibliotheksnamen, den Sie installieren möchten] in das Suchfeld ein.

Schritt 1: Anschließen des Myoware-Muskelsensors (insbesondere für diejenigen, die noch nie damit gearbeitet haben)

Wenn Sie noch nie mit einem Myoware-Muskelsensor gearbeitet haben, ist es gut, zuerst zu verstehen, wie dieser Sensor im seriellen Monitor in Arduino angeschlossen und lesbar ist. Dieser Vorgang ist ein Standardverfahren, das in vielen Handbüchern bereits beschrieben wurde. Die Adafruit-Plattform hat eine klare Beschreibung, wie dies in wenigen Schritten funktioniert:

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

CheckWenn alle diese Schritte durchgeführt wurden, sehen Sie in Ihrem seriellen Monitor, dass sich die Werte ändern, wenn Sie Ihre Muskeln anspannen. Wenn Sie eine Faust machen und Ihren Muskel anspannen, sollten die Werte steigen und wenn Sie Ihren Muskel entspannen, sollten diese Werte wieder sinken.

WichtigDieser Schritt dient nur zum Einrichten des Sensors. Der von Ihnen verwendete Code ist für den Rest des Handbuchs nicht erforderlich. Nur die Art und Weise, wie Sie den Sensor selbst aufstellen, bleibt für die nächsten Schritte gleich.

Schritt 2: Adafruit IO-Setup

Adafruit IO-Setup
Adafruit IO-Setup
Adafruit IO-Setup
Adafruit IO-Setup
Adafruit IO-Setup
Adafruit IO-Setup

Der erste Schritt besteht darin, sich bei Adafruit IO anzumelden oder ein Konto zu erstellen. Navigieren Sie zu Adafruit IO. Adafruit IO ist eine Cloud-Plattform, mit der Sie sich über das Internet verbinden können. Adafruit IO macht Daten mit Datenverbindungen nützlich.

Wenn Sie in Ihrem Konto sind:

Erstellen Sie den analogen Feed Als nächstes müssen Sie einen Feed namens Analog erstellen. Wenn Sie Hilfe bei der Erstellung von Feeds in Adafruit IO benötigen, lesen Sie die Anleitung zu den Feed-Grundlagen von Adafruit IO (wie auf Foto 1 und 2).

Fügen Sie den Messblock und den Liniendiagramm-Block hinzu. Erstellen Sie als nächstes ein neues Dashboard und benennen Sie es wie Sie es benennen möchten (in den Fotos 3, 4 und 5 gezeigt, um ein neues Dashboard zu erstellen). Stellen Sie sicher, dass Sie als Datenquelle den analogen Feed ausgewählt haben.

Wenn Sie sich im Dashboard befinden, fügen Sie ein neues Endmaß hinzu, indem Sie auf das blaue Plus in der oberen rechten Ecke klicken. Benennen Sie den Block wie Sie möchten (siehe Fotos 6 und 7), und geben Sie ihm einen Höchstwert von 1024 und einen Mindestwert von 0 (Werte des Muskelsensors).

Wiederholen Sie dasselbe mit dem Liniendiagrammblock (Foto 8) wie oben mit dem Messblock.

CheckWenn Sie alle oben genannten Schritte ausgeführt haben, müssen Sie einen ähnlichen Bildschirm wie das letzte Foto haben.

Schritt 3: Arduino-Eingang

Arduino-Eingang
Arduino-Eingang
Arduino-Eingang
Arduino-Eingang
Arduino-Eingang
Arduino-Eingang
Arduino-Eingang
Arduino-Eingang

In Schritt 1 haben Sie die Einrichtung der Verkabelung des MyoWare Muskelsensors korrekt durchgeführt. In diesem Schritt werden wir in den Arduino-Code eintauchen, der mit der Verbindung zu Schritt 2 des Adafruit IO-Dashboards verbunden ist. Am Ende dieses Schrittes sehen Sie die Eingabewerte des Myoware Muskelsensors in den beiden von Ihnen eingerichteten Blöcken.

Arduino-Setup

Stellen Sie sicher, dass Sie alle Bibliotheken installiert haben, die oben in der Einführung erwähnt wurden.

Wir werden mit einer Beispielskizze arbeiten. Öffnen Sie also Datei> Beispiel> Adafruit IO Arduino> adafruitio_08_analog_in (Foto 1). Warum diese Skizze? weil wir zuerst den Eingabeteil dieses Handbuchs einrichten. Der MyoWare Muskelsensor verwendet einen analogen Ausgang. Wenn Sie mehr in das Thema Analog eintauchen möchten.

Arduino Network ConfigUm die Netzwerkeinstellungen zu konfigurieren, klicken Sie auf die Registerkarte config.h in der Skizze. Sie müssen Ihren Adafruit IO-Benutzernamen in der IO_USERNAME-Definition und Ihren Adafruit IO-Schlüssel in der IO_KEY-Definition festlegen. Sie finden Ihren Benutzernamen und Schlüssel oben rechts auf dem Bildschirm in Ihrem Arduino IO (Beispiel auf Foto 2)

#define IO_USERNAME "Ihr_Benutzername"

#define IO_KEY "Ihr_Schlüssel"

WiFi Config WiFi ist standardmäßig in config.h aktiviert. Wenn Sie also eine der unterstützten WiFi-Karten verwenden, müssen Sie nur die Optionen WIFI_SSID und WIFI_PASS auf der Registerkarte config.h ändern.

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

Arduino CodeWenn Sie die obigen Einstellungen geändert haben, können wir weiter zum eigentlichen Code gehen, adafruit_08_analog_in. Der Standard-Pin in diesem Beispiel ist auf AO angegeben. Dies ist der richtige Pin, da Sie Ihren Muskelsensor in Schritt 2 auf dem Board platziert haben.

In diesem Beispiel wird ein Fotozellensensor verwendet, da wir einen Muskelsensor verwenden, ändern wir diesen Namen. Es spielt keine Rolle, wenn Sie dies tun, es wird es nur semantisch aufgeräumter machen. Ändern Sie PHOTOCELL_PIN in MUSCLESENSOR_PIN, tun Sie dies an zwei Stellen der Skizze.

/************************ Beispiel beginnt hier ********************* *********/

// analoger Pin 0 #define PHOTOCELL_PIN A0

In der letzten Codezeile wird eine Verzögerung eingefügt. Diese Verzögerung beträgt 1 Sekunde, wir werden auf 2 Sekunden eingestellt, also 2000. Wir tun dies, weil es eine Lizenz für Adafruit IO mit einem Datenlimit gibt. Unter zwei Sekunden überschreitet diese Skizze dieses Datenlimit und es wird eine GASWARNUNG ausgegeben. Was bedeutet, dass keine Werte eingehen. Wenn Sie dies auf zwei Sekunden setzen, wird dies verhindert.

// eine Sekunde warten (1000 Millisekunden == 1 Sekunde) Verzögerung (2000);

Dies war, was Sie in der Skizze ändern mussten, damit es funktioniert. Wenn Sie genau wissen möchten, wie der gesamte Code funktioniert. Sie finden es auf Learn Adafruit, mit einer Erklärung aller Codeblöcke.

CheckLaden Sie die Skizze auf Ihr Board hoch und öffnen Sie den Arduino Serial Monitor. Ihr Board sollte sich jetzt mit Adafruit IO verbinden.

Sie können jetzt Ihren Arm festziehen und Sie sollten sehen, dass die sich ändernden Werte an Adafruit IO gesendet werden (wie in Foto 3). Wenn Sie im Serial Monitor keine Werte sehen, prüfen Sie, ob Sie die Baudrate im Serial Monitor auf 115200 eingestellt haben.

Adafruit IO DashboardÜberprüfen Sie Ihr Dashboard auf Adafruit IO, und Sie sollten sehen, dass die Anzeige und das Liniendiagramm auf die Änderungen der MyoWare-Muskelsensor-Werte reagieren.

Schritt 4: Adafruit IO-Trigger-Setup

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

Bisher konnten wir Eingaben vom MyoWare-Muskelsensor an Adafruit IO zum Funktionieren bringen. Jetzt werden wir anfangen, diese Informationen zu lesen. Damit nach 5-mal ein Wert über X des Muskelsensors erkannt wird, wird eine Aktion vom Neopixel-LED-Streifen ausgeführt.

Dieser Abschnitt war für mich, wo ich untersuchen musste, wie ich die Geschichte von Adafruit IO lesen kann. Ich hatte zuvor mit Feeds und Dashboards gearbeitet, also dachte ich, dass der erstellte Feed und das Dashboard dies lesen und hier in Arduino eine Aktion erstellen können. Bisher ist es mir nicht gelungen. Nach viel Recherche und Adafruit IO habe ich entdeckt, dass mit der Trigger-Funktion in Adafruit IO eine Aktion ausgelöst werden kann. Erfahren Sie mehr über Auslöser.

Ein zusätzlicher FeedBevor wir einen Trigger erstellen können, müssen wir einen anderen Feed erstellen, damit wir ihn in Arduino benennen können, um die Ausgabe zu erhalten. Erstellen Sie einen Feed mit dem Namen AlertTriggered.

Erstellen Sie einen TriggerNeben den Überschriften Feed und Dashboard ist Trigger, gehen Sie hier. Erstellen Sie einen neuen Auslöser. Sie werden gefragt, ob Sie einen reaktiven Trigger oder einen Zeitplan-Trigger erstellen möchten, wählen Sie Reaktiver Trigger und klicken Sie auf Erstellen. Dies liegt daran, dass Sie nur dann etwas auslösen möchten, wenn etwas passiert (Foto 1).

Es müssen einige Dinge eingestellt werden (Weitere Schritte sind auch in Foto 2 dargestellt).-Wählen Sie beim ersten Wenn den analogen Feed aus, damit die Eingabe von hier aus übernommen wird.

-Wählen Sie größer als, dies, weil Sie etwas auslösen möchten, wenn der Wert eine solche Zahl überschreitet.

- Vergleichswert Sie können Ihre gewünschte Zahl eingeben, um den Auslöser zu aktivieren. In diesem Fall habe ich 600 gemacht.

-Mit arduino müssen Sie ein Feedback erhalten, wenn es 600 überschreitet: also bei Wählen Sie dann eine Nachricht veröffentlichen an:.

- Danach können Sie Ihren zweiten erstellten Feed AlertTriggered auswählen.

Klicken Sie zuletzt auf Erstellen.

Schritt 5: Neopixel-Ausgabe

Neopixel-Ausgabe
Neopixel-Ausgabe

Der letzte Schritt besteht darin, die Ausgabe zu generieren. Dies erfolgt in der von Ihnen bearbeiteten Arduino-Skizze durch Aufrufen des AlertTriggered-Feeds (den Sie im vorherigen Schritt erstellt haben).

Um eine Ausgabe erzeugen zu können, müssen Sie zuerst den Neopixel-LED-Streifen an den NodeMCU anschließen. - + 5V (links) Draht Ihres LED-Streifens an den 3V Ihres NodeMCU-GND (rechts) Draht an G des Node (G = GND.))- Mitteldraht DIN der LED an D5 (oder einem anderen D-Port)

CodeIch habe die gesamte Skizze mit Änderungen als Datei in diesen Schritt eingefügt (siehe unten in diesem Schritt). Dies ist die gleiche Skizze, mit der Sie in den letzten Schritten gearbeitet haben, aber jetzt ist die endgültige Skizze in den Schritten enthalten, die Sie ausführen müssen, um die Ausgabe zu generieren. adafruitio_musclesensor_neopixel-Datei. Dies funktioniert mit der config.h, die Sie zuvor mit Ihren Daten eingestellt haben. Alle Codeblöcke sind mit Kommentaren versehen, damit Sie sehen können, was passiert.

Welche Ausgabedaten wurden codiert? Dies bedeutet, dass der Neopixel-LED-Streifen beim Auslösen von Weiß auf Rot eingestellt wird. Dies geschieht für eine Minute und dann wird der rote Zustand verblassen und wieder in den weißen Zustand geschleift.

Serial MonitorUm es Ihnen als Programmierer klarer zu machen, ist der letzte Codesatz für den Serial Monitor. Was die Werte sind und wann Sie die Warnstufe ausgelöst haben. Zusammen mit dem Hinzufügen von Sekunden, wenn der Alarmstatus eingeschaltet ist, bis er nach 60 Sekunden wieder in den Alarmstatus aus wechselt. Dieser Teil ist daher optional.

// um die verstreichenden Sekunden im Serial Monitor anzuzeigen, wenn der alartstate auf Serial.println ("Seconds pass:"); Serial.println (secondsPassed); aufrechtzuerhalten. Sonst { SekundenPassed = 0; }

CheckWenn Sie die Schritte ausgeführt haben oder die Sketch-Datei adafruitio_musclesensor_neopixel mit Ihrer eigenen config.h erhalten haben, können Sie sie auf Ihre NodeMCU hochladen. Wenn dies erledigt ist, müssen Sie in Ihrem seriellen Monitor etwas Ähnliches wie unten sehen:

Verbindung zu Adafruit IO…

Adafruit IO verbunden. Senden -> 23 Senden -> 78

Foto 1 ist der serielle Monitor, wenn er sich im Alarmmodus befindet.

Es funktioniert nicht? Überprüfen Sie die folgenden Dinge - Überprüfen Sie, ob die config.h richtig enthalten ist - Haben Sie den richtigen Adafruit IO-Benutzernamen und -Schlüssel eingegeben - Haben Sie die richtige SSID und ein Wifi-Passwort eingegeben - Haben Sie die Verkabelung der MyoWare platziert? Muskelsensor rechts und vom Neopixel Led Strip

Oder überprüfen Sie die vorherigen Schritte.

Schritt 6: Ergebnisse

Hurra, du bist fertig! Um das Endprodukt in Aktion zu demonstrieren und zu sehen, habe ich ein Video eingefügt.

Empfohlen: