Spisu treści:

Pasek LED Neopixel reagujący na czujnik mięśni Myware: 6 kroków
Pasek LED Neopixel reagujący na czujnik mięśni Myware: 6 kroków

Wideo: Pasek LED Neopixel reagujący na czujnik mięśni Myware: 6 kroków

Wideo: Pasek LED Neopixel reagujący na czujnik mięśni Myware: 6 kroków
Wideo: Muzyczny equalizer LED reagujący na dźwięk! Oświetlenie RGB na biurko 2024, Listopad
Anonim
Pasek LED Neopixel reagujący na czujnik mięśni Myware
Pasek LED Neopixel reagujący na czujnik mięśni Myware

Celem jest zainstalowanie czujnika mięśniowego za pomocą Arduino i przetwarzanie przychodzących danych za pomocą Adafruit IO i pobieranie danych wyjściowych za pomocą wyzwalacza, aby światło zmieniło się z białego na czerwony na jedną minutę.

Co to jest czujnik mięśniowy Czujnik mięśniowy mierzy aktywność elektryczną mięśnia i wytwarza analogowy sygnał wyjściowy, który może być łatwo odczytany przez mikrokontroler. Elektromiografia (EMG) mierzy odpowiedź mięśni lub aktywność elektryczną w odpowiedzi na stymulację mięśnia przez nerw. Test służy do wykrywania nieprawidłowości nerwowo-mięśniowych. Podczas testu jedna lub więcej małych igieł (zwanych również elektrodami) jest wprowadzanych przez skórę do mięśnia.

Do tego projektu potrzebujesz: -Czujnik mięśni MyoWare -Elektrody EMG -NodeMCU (esp8266) -Silikonowy przewód osłonowy -Mikrokabel USB -Neopikselowy pasek led

Biblioteki, których będziesz potrzebować: -Adafruit io Arduino (przynajmniej wersja 2.3.0) -Adafruit Neopixel (wersja 1.2.5) -Biblioteka Adafruit MQTT (1.0.3) -Arduino HttpClients (0.4.0)Jeśli nie masz biblioteki już zainstalowane. Następnie przejdź do Sketch> include Library> Manage Libraries … wpisz: [nazwa biblioteki, którą chcesz zainstalować] w polu wyszukiwania.

Krok 1: Podłączanie czujnika mięśni Myware (szczególnie dla tych, którzy nigdy wcześniej z nim nie pracowali)

Jeśli nigdy nie pracowałeś z czujnikiem mięśni Myoware, dobrze jest najpierw zrozumieć, jak ten czujnik jest podłączony i czytelny na monitorze szeregowym w Arduino. Ta operacja jest standardową procedurą, która została już opisana w wielu podręcznikach. Platforma Adafruit zawiera jasny opis tego, jak to działa w kilku krokach:

learn.adafruit.com/rozpoczęcie-z-moim…

SprawdźJeśli wykonasz wszystkie te kroki, zobaczysz na monitorze szeregowym, że wartości zmieniają się, gdy napinasz mięśnie. Kiedy zaciśniesz pięść i zaciśniesz mięśnie, wartości powinny wzrosnąć, a kiedy rozluźnisz mięśnie, wartości te powinny znowu spaść.

WażneTen krok służy tylko do skonfigurowania czujnika. Użyty kod nie jest potrzebny w dalszej części instrukcji. Tylko sposób, w jaki umieścisz sam czujnik, pozostaje taki sam dla kolejnych kroków.

Krok 2: Konfiguracja IO Adafruit

Konfiguracja IO Adafruit
Konfiguracja IO Adafruit
Konfiguracja IO Adafruit
Konfiguracja IO Adafruit
Konfiguracja IO Adafruit
Konfiguracja IO Adafruit

Pierwszym krokiem jest zalogowanie się lub utworzenie konta w Adafruit IO, przejście do Adafruit IO. Adafruit IO to platforma w chmurze, z którą możesz połączyć się przez Internet. Adafruit IO sprawia, że dane są przydatne przy połączeniach danych.

Kiedy jesteś na swoim koncie:

Utwórz kanał analogowy Następnie musisz utworzyć kanał o nazwie Analog. Jeśli potrzebujesz pomocy w rozpoczęciu tworzenia kanałów na Adafruit IO, zapoznaj się z przewodnikiem Adafruit IO Feed Basics (jak na zdjęciach 1 i 2).

Dodając Gauge Block i Line chart BlockNext, utwórz nowy pulpit nawigacyjny i nazwij go, jak chcesz (pokazane na zdjęciach 3, 4 i 5, aby utworzyć nowy pulpit nawigacyjny). Upewnij się, że jako źródło danych wybrałeś kanał analogowy.

Gdy jesteś w desce rozdzielczej, dodaj nowy blok Gauge poprzez kliknięcie niebieskiego plusa w prawym górnym rogu. Nazwij blok, jak chcesz (pokazane na zdjęciach 6 i 7) i nadaj mu maksymalną wartość 1024 i minimalną wartość 0 (wartości czujnika mięśniowego).

Powtórz to samo z blokiem wykresu liniowego (zdjęcie 8) jak powyżej z blokiem Gauge.

SprawdźJeżeli zrobiłeś wszystko powyżej, musisz mieć podobny ekran jak na ostatnim zdjęciu.

Krok 3: Wejście Arduino

Wejście Arduino
Wejście Arduino
Wejście Arduino
Wejście Arduino
Wejście Arduino
Wejście Arduino
Wejście Arduino
Wejście Arduino

W kroku 1 prawidłowo wykonałeś konfigurację okablowania czujnika MyoWare Muscle. W tym kroku zagłębimy się w kod Arduino, który jest dostarczany po podłączeniu do kroku 2 pulpitu nawigacyjnego Adafruit IO. Na końcu tego kroku zobaczysz wartości wejściowe czujnika Myware Muscle w dwóch skonfigurowanych blokach.

Konfiguracja Arduino

Upewnij się, że masz zainstalowane wszystkie biblioteki wymienione powyżej we wstępie.

Będziemy pracować z przykładowym szkicem. Więc otwórz Plik> Przykład> Adafruit IO Arduino> adafruitio_08_analog_in (zdjęcie 1). Dlaczego ten szkic? ponieważ najpierw konfigurujemy część wejściową tego podręcznika. Czujnik MyoWare Muscle wykorzystuje wyjście analogowe. Jeśli chcesz bardziej zagłębić się w temat analogowy.

Arduino Network ConfigAby skonfigurować ustawienia sieciowe, kliknij kartę config.h w szkicu. Będziesz musiał ustawić swoją nazwę użytkownika Adafruit IO w definicji IO_USERNAME, a klucz Adafruit IO w definicji IO_KEY. Możesz znaleźć swoją nazwę użytkownika i klucz w prawym górnym rogu ekranu w swoim Arduino IO (przykład na zdjęciu 2)

#define IO_USERNAME "twoja_nazwa użytkownika"

#define IO_KEY "twój_klucz"

WiFi Config WiFi jest domyślnie włączone w config.h, więc jeśli używasz jednej z obsługiwanych kart WiFi, wystarczy zmodyfikować opcje WIFI_SSID i WIFI_PASS w zakładce config.h.

#define WIFI_SSID "twoje_ssid"#define WIFI_PASS "twoje_hasło"

Kod ArduinoJeżeli masz zmiany tych ustawień powyżej, możemy przejść dalej do aktualnego kodu, adafruit_08_analog_in. Domyślny pin w tym przykładzie jest ustawiony na AO. To jest właściwa szpilka, ponieważ w kroku 2 umieściłeś czujnik mięśni na tablicy.

Ten przykład wykorzystuje czujnik fotokomórki, ponieważ używamy czujnika mięśniowego zmienimy tę nazwę. Nie ma znaczenia, czy to zrobisz, tylko uczyni to semantycznie uporządkowanym. Zmień PHOTOCELL_PIN na MUSCLESENSOR_PIN zrób to w dwóch miejscach szkicu.

/************************* Przykład zaczyna się tutaj ********************** **********/

// pin analogowy 0 #define PHOTOCELL_PIN A0

W ostatniej linii kodu umieszczane jest opóźnienie. To opóźnienie wynosi 1 sekundę, ustawimy na 2 sekundy, więc 2000. Robimy to, ponieważ jest licencja na Adafruit IO z limitem danych, poniżej dwóch sekund ten szkic przekracza ten limit danych i da ostrzeżenie PRZEPUSTNICY. Co oznacza, że nie przychodzą żadne wartości. Ustawienie tego na dwie sekundy zapobiega temu.

// czekaj sekundę (1000 milisekund == 1 sekunda) delay(2000);

To właśnie trzeba było zmienić w szkicu, aby to zadziałało. Jeśli chcesz dokładnie wiedzieć, jak działa cały kod. Możesz go znaleźć na Learn Adafruit, wraz z wyjaśnieniem wszystkich bloków kodu.

CheckPrześlij szkic na swoją tablicę i otwórz Arduino Serial Monitor. Twoja płyta powinna teraz połączyć się z Adafruit IO.

możesz teraz zacisnąć ramię i powinieneś zobaczyć zmieniające się wartości wysyłane do Adafruit IO (jak na zdjęciu 3). Jeśli nie widzisz żadnych wartości na monitorze szeregowym, sprawdź, czy ustawiono szybkość transmisji w monitorze szeregowym na 115200.

Adafruit IO Dashboard Sprawdź swój pulpit nawigacyjny w Adafruit IO, a powinieneś zobaczyć, jak wskaźnik i wykres liniowy reagują na zmiany wartości MyoWare Muscle Sensor.

Krok 4: Konfiguracja wyzwalacza Adafruit IO

Konfiguracja wyzwalacza Adafruit IO
Konfiguracja wyzwalacza Adafruit IO
Konfiguracja wyzwalacza Adafruit IO
Konfiguracja wyzwalacza Adafruit IO

Do tej pory byliśmy w stanie wprowadzić dane z czujnika MyoWare Muscle do działania Adafruit IO. Teraz zaczniemy czytać te informacje. Tak, że po 5-krotnym wykryciu wartości powyżej X czujnika mięśniowego, akcja jest wykonywana przez pasek led Neopixel.

Ta sekcja była dla mnie, w której musiałem zbadać, jak mogę odczytać historię Adafruit IO. Pracowałem wcześniej z kanałami i pulpitami nawigacyjnymi, więc pomyślałem, że utworzony kanał i pulpit nawigacyjny mogą to odczytać i utworzyć akcję tutaj w Arduino. Do tej pory mi się nie udało. Po wielu badaniach i Adafruit IO odkryłem, że akcję można wyzwolić funkcją Trigger w Adafruit IO. Dowiedz się więcej o wyzwalaczach.

Dodatkowy kanał Zanim będziemy mogli utworzyć wyzwalacz, musimy utworzyć inny kanał, abyśmy mogli go nazwać w Arduino, aby uzyskać dane wyjściowe. Utwórz kanał o nazwie AlertTriggered.

Utwórz wyzwalacz Obok nagłówków Kanał i pulpit nawigacyjny to wyzwalacz, przejdź tutaj. Utwórz nowy wyzwalacz. Zostaniesz zapytany, czy chcesz utworzyć wyzwalacz reaktywny, czy wyzwalacz harmonogramu, wybierz wyzwalacz reaktywny i kliknij Utwórz. Dzieje się tak, ponieważ chcesz wyzwolić coś tylko wtedy, gdy coś się stanie (zdjęcie 1).

Wiele rzeczy musi być ustawionych (kolejne kroki są również pokazane na zdjęciu 2). -Wybierz analogowe zasilanie przy pierwszym Jeżeli, więc wejście będzie pobierane z tego miejsca.

- Czy wybierasz większe niż, ponieważ chcesz wyzwolić coś, gdy wartość przekroczy taką liczbę.

-Wartość porównania można wpisać żądany numer, aby aktywować wyzwalacz. W tym przypadku zrobiłem 600.

-Z arduino będziesz musiał otrzymać informację zwrotną, gdy przekroczy 600: więc w Następnie wybierz opublikuj wiadomość do:.

-Po którym możesz wybrać swój drugi kanał utworzony AlertTriggered.

Na koniec kliknij Utwórz.

Krok 5: Wyjście Neopiksela

Wyjście neopikselowe
Wyjście neopikselowe

Ostatnim krokiem jest wygenerowanie danych wyjściowych. Zrobione w szkicu Arduino, który edytowałeś, wywołując kanał AlertTriggered (utworzony w poprzednim kroku).

Aby móc generować dane wyjściowe, musisz najpierw podłączyć pasek LED Neopixel do NodeMCU.- + przewód 5v (lewy) paska LED na 3v przewodu NodeMCU-GND (prawy) na G węzła (G = GND)- Środkowy przewód DIN diody LED na D5 (lub dowolny inny port D)

CodeZałączyłem cały szkic z alternatywami w tym kroku jako plik (można go znaleźć na dole tego kroku). Jest to ten sam szkic, z którym pracowałeś w ostatnich kilku krokach, ale teraz ostateczny szkic jest dołączony do kroków, które musisz wykonać, aby wygenerować wynik. plik adafruitio_musclesensor_neopixel. Działa to z plikiem config.h, który wcześniej ustawiłeś w swoich danych. Wszystkie bloki kodu są dołączone do komentarzy, dzięki czemu możesz zobaczyć, co się dzieje.

Jakie dane wyjściowe zostały zakodowaneW tym kodzie stworzyłem wyzwalacz, gdy AlertTriggered (co zadeklarowaliśmy w poprzednim kroku nad wartością większą niż 600) jest wyzwalany więcej niż 5 razy. Oznacza to, że po uruchomieniu pasek LED Neopixel zmienia kolor z białego na czerwony. Stanie się to przez minutę, po czym czerwony stan zniknie i zostanie ponownie zapętlony do stanu białego.

Serial Monitor Aby ułatwić programiście, ostatni zestaw kodu dotyczy monitora szeregowego. Jakie są wartości i kiedy masz wyzwala poziom alertu. Wraz z dodawaniem sekund, gdy stan Alert jest włączony, aż po 60 sekundach ponownie przełączy się w stan Alert wyłączony. Ta część jest zatem opcjonalna.

//aby pokazać upływające sekundy w Monitorze szeregowym, gdy alartstate jest włączony Serial.println("Sekundy minęły:"); Serial.println(sekundy minęły); } else { sekundyPrzekazane = 0; }

SprawdźJeśli wykonałeś wszystkie kroki lub masz plik szkicu adafruitio_musclesensor_neopixel z własnym plikiem config.h, możesz go przesłać do swojego NodeMCU. Jeśli to zrobisz, musisz zobaczyć coś podobnego do poniższego w monitorze szeregowym:

Podłączanie do Adafruit IO…

Adafruit IO podłączony. Wysyłanie -> 23 Wysyłanie -> 78

Zdjęcie 1 to monitor szeregowy w trybie alertu.

To nie działa? Sprawdź następujące rzeczy - Sprawdź, czy plik config.h jest dołączony we właściwy sposób - Czy umieściłeś właściwą nazwę użytkownika i klucz Adafruit IO - Czy umieściłeś poprawny identyfikator SSID i hasło Wifi - Czy umieściłeś okablowanie MyoWare Czujnik mięśni z prawej strony i z paska Led Neopixel

Lub sprawdź poprzednie kroki.

Krok 6: Wyniki

Hurra, skończyłeś! Aby zademonstrować i zobaczyć produkt końcowy w akcji, zamieściłem film.

Zalecana: