Оглавление:
- Шаг 1. Подключение мышечного сенсора Myoware (особенно для тех, кто раньше с ним не работал)
- Шаг 2: Настройка Adafruit IO
- Шаг 3: ввод Arduino
- Шаг 4: Настройка триггера ввода-вывода Adafruit
- Шаг 5: Вывод в неопиксельном режиме
- Шаг 6: результаты
Видео: Светодиодная полоска Neopixel, реагирующая на мышечный датчик Myoware: 6 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
Цель состоит в том, чтобы установить мышечный сенсор с помощью Arduino и обработать входящие данные с помощью Adafruit IO и получить выходной сигнал с помощью триггера, чтобы светильник менял цвет с белого на красный в течение одной минуты.
Что такое мышечный сенсор Мышечный сенсор измеряет электрическую активность мышцы и выдает аналоговый выходной сигнал, который может легко считываться микроконтроллером. Электромиография (ЭМГ) измеряет мышечный ответ или электрическую активность в ответ на нервную стимуляцию мышцы. Тест используется для выявления нервно-мышечных нарушений. Во время теста через кожу в мышцу вводят одну или несколько маленьких игл (также называемых электродами).
Для этого проекта вам понадобятся: -Мышечный сенсор MyoWare -ЭМГ-электроды -NodeMCU (esp8266) -Силиконовый чехол-провод -USB-микрокабель -Неопиксельная светодиодная лента.
Библиотеки, которые вам понадобятся: -Adafruit io Arduino (как минимум версия 2.3.0) -Adafruit Neopixel (версия 1.2.5) -Adafruit MQTT library (1.0.3) -Arduino HttpClients (0.4.0) Если у вас нет te библиотеки еще не установлены. Затем перейдите в Sketch> включить библиотеку> Управление библиотеками … введите: [имя библиотеки, которую вы хотите установить] в поле поиска.
Шаг 1. Подключение мышечного сенсора Myoware (особенно для тех, кто раньше с ним не работал)
Если вы никогда не работали с сенсором Myoware Muscle Sensor, хорошо бы сначала понять, как этот сенсор подключен и читается на последовательном мониторе в Arduino. Эта операция является стандартной процедурой, которая уже описана во многих руководствах. Платформа Adafruit имеет четкое описание того, как это работает, в несколько шагов:
learn.adafruit.com/getting-started-with-my…
Отметьте: Если все эти шаги выполнены, вы увидите на своем последовательном мониторе, что значения меняются, когда вы напрягаете мышцы. Когда вы сжимаете кулак и напрягаете мышцы, значения должны возрасти, а когда вы расслабляете мышцы, эти значения должны снова снижаться.
Важно Этот шаг предназначен только для настройки датчика. Код, который вы использовали, не нужен для остальной части руководства. Только способ установки датчика остается неизменным для следующих шагов.
Шаг 2: Настройка Adafruit IO
Первый шаг - войти или создать учетную запись в Adafruit IO, перейти к Adafruit IO. Adafruit IO - это облачная платформа, к которой вы можете подключиться через Интернет. Adafruit IO делает данные полезными с помощью подключений к данным.
Когда вы находитесь в своей учетной записи:
Создайте аналоговый канал FeedNext, вам нужно будет создать канал под названием Analog. Если вам нужна помощь в создании фидов на Adafruit IO, ознакомьтесь с руководством по основам работы с фидами Adafruit IO (как на фото 1 и 2).
Добавление блока датчика и блока линейной диаграммы. Затем создайте новую панель мониторинга и назовите ее так, как хотите (показано на фотографиях 3, 4 и 5, чтобы создать новую панель мониторинга). Убедитесь, что вы выбрали аналоговый канал в качестве источника данных.
Когда вы находитесь на панели инструментов, добавьте новый желоб для измерительного блока, щелкните синий плюс в правом верхнем углу. Назовите блок как хотите (показано на фотографиях 6 и 7) и дайте ему максимальное значение 1024 и минимальное значение 0 (значения мышечного сенсора).
Повторите то же самое с блоком линейной диаграммы (фото 8), как указано выше с блоком Gauge.
Отметьте: Если вы сделали все, что описано выше, у вас должен быть экран, похожий на предыдущий снимок.
Шаг 3: ввод Arduino
На шаге 1 вы правильно настроили проводку датчика MyoWare Muscle. На этом шаге мы погрузимся в код Arduino, который связан с подключением к шагу 2 панели управления Adafruit IO. В конце этого шага вы увидите входные значения датчика Myoware Muscle в двух настроенных вами блоках.
Настройка Arduino
Убедитесь, что у вас установлены все библиотеки, указанные выше во введении.
Мы собираемся работать с примером скетча. Итак, откройте Файл> Пример> Adafruit IO Arduino> adafruitio_08_analog_in (фото 1). Почему этот скетч? потому что мы сначала настраиваем вводную часть этого руководства. Датчик MyoWare Muscle использует аналоговый выход. Если вы хотите больше погрузиться в тему об аналоге.
Конфигурация сети Arduino Чтобы настроить параметры сети, щелкните вкладку config.h в скетче. Вам нужно будет указать свое имя пользователя Adafruit IO в определении IO_USERNAME, а ваш ключ ввода-вывода Adafruit в определении IO_KEY. Вы можете найти свое имя пользователя и ключ в правом верхнем углу экрана в вашем Arduino IO (пример на фото 2).
#define IO_USERNAME "your_username"
#define IO_KEY "your_key"
Конфигурация WiFi WiFi включен по умолчанию в config.h, поэтому, если вы используете одну из поддерживаемых плат WiFi, вам нужно будет только изменить параметры WIFI_SSID и WIFI_PASS на вкладке config.h.
#define WIFI_SSID "your_ssid" #define WIFI_PASS "your_pass"
Код Arduino Если у вас есть изменения настроек выше, мы можем перейти к собственному коду, adafruit_08_analog_in. Вывод неисправности в этом примере установлен на AO. Это правильный контакт, поскольку на шаге 2 вы разместили датчик мышц на доске.
В этом примере используется датчик фотоэлемента, поскольку мы используем датчик мышц, мы изменим это имя. Неважно, сделаете ли вы это, это только сделает его семантически более аккуратным. Измените PHOTOCELL_PIN на MUSCLESENSOR_PIN, сделайте это в двух местах эскиза.
/ *********************** Пример начинается здесь ********************** ********* /
// аналоговый вывод 0 # определить PHOTOCELL_PIN A0
В последней строке кода добавлена задержка. Эта задержка составляет 1 секунду, мы собираемся установить ее на 2 секунды, то есть 2000. Мы делаем это, потому что есть лицензия на Adafruit IO с ограничением данных, менее двух секунд этот эскиз превышает этот предел данных, и он выдаст ПРЕДУПРЕЖДЕНИЕ ДРОССЕЛЬНОЙ ЗАСЛОНКИ. Это означает, что не поступают никакие значения. Установка этого значения на две секунды предотвращает это.
// ждем одну секунду (1000 миллисекунд == 1 секунда) delay (2000);
Это было то, что вам нужно было изменить в эскизе, чтобы он заработал. Если вы хотите точно знать, как работает весь код. Вы можете найти его на сайте Learn Adafruit с объяснением каждого блока кода.
Установите флажок Загрузите скетч на плату и откройте последовательный монитор Arduino. Теперь ваша плата должна подключиться к Adafruit IO.
Теперь вы можете сжать руку, и вы должны увидеть, что изменяющиеся значения отправляются в Adafruit IO (как на фото 3). Если вы не видите никаких значений в последовательном мониторе, проверьте, установлена ли скорость передачи в последовательном мониторе на 115200.
Панель управления Adafruit IO Проверьте свою панель управления на Adafruit IO, и вы должны увидеть, как датчик и линейная диаграмма реагируют на изменения значений MyoWare Muscle Sensor.
Шаг 4: Настройка триггера ввода-вывода Adafruit
До сих пор мы могли передавать данные с сенсора MyoWare Muscle на работу Adafruit IO. Теперь приступим к чтению этой информации. Таким образом, после того, как в 5 раз будет обнаружено значение выше X датчика мышц, светодиодная полоса Neopixel выполнит действие.
Этот раздел был для меня, где мне нужно было исследовать, как я могу читать историю Adafruit IO. Раньше я работал с фидами и информационными панелями, поэтому я подумал, что созданные каналы и информационная панель могут прочитать это и создать действие здесь, в Arduino. Пока мне это не удалось. После большого количества исследований и Adafruit IO я обнаружил, что действие может быть запущено с помощью функции Trigger в Adafruit IO. Узнайте больше о триггерах.
Дополнительный канал Перед тем, как мы сможем создать триггер, мы должны создать другой канал, чтобы мы могли назвать его в Arduino, чтобы получить вывод te. Создайте канал с именем AlertTriggered.
Создайте триггер Рядом с заголовками Feed и Dashboard is Trigger перейдите сюда. Создайте новый триггер. Вас спросят, хотите ли вы создать реактивный триггер или триггер по расписанию, выберите «Реактивный триггер» и нажмите «Создать». Это потому, что вы хотите запускать что-то только тогда, когда что-то происходит (фото 1).
Необходимо настроить ряд параметров (следующие шаги также показаны на фото 2). - Выберите аналоговый канал в первом значении «Если», чтобы вход был взят отсюда.
-Вы выбираете больше, чем это, потому что вы хотите запускать что-то, когда значение превышает такое число.
-Comperison значение, вы можете ввести желаемое число, чтобы активировать триггер. Я сделал 600 в этом случае.
-С arduino вы должны будете получить обратную связь, когда она превысит 600: поэтому в Затем выберите опубликовать сообщение в:.
-После чего вы можете выбрать свой второй канал, созданный AlertTriggered.
Наконец, нажмите "Создать".
Шаг 5: Вывод в неопиксельном режиме
Последний шаг - сгенерировать результат. Выполнено в скетче Arduino, который вы отредактировали, путем вызова фида AlertTriggered (который вы создали на предыдущем шаге).
Чтобы иметь возможность генерировать выходной сигнал, вы должны сначала подключить светодиодную ленту Neopixel к NodeMCU. - + 5V (левый) провод светодиодной ленты на 3V вашего NodeMCU - GND (правый) провод на G узла (G = GND) - центральный провод DIN светодиода на D5 (или любом другом порте D)
Код Я включил весь набросок с изменениями в этот шаг в виде файла (его можно найти внизу этого шага). Это тот же эскиз, с которым вы работали на последних нескольких шагах, но теперь окончательный эскиз включен в шаги, которые вы должны выполнить, чтобы сгенерировать вывод. adafruitio_musclesensor_neopixel файл. Это работает с config.h, который вы ранее установили со своими данными. Все блоки кода снабжены комментариями, чтобы вы могли видеть, что происходит.
Какие выходные данные были закодированы В этом коде я создал триггер, когда AlertTriggered (то, что мы объявили на предыдущем шаге со значением больше 600) срабатывает более 5 раз. Это означает, что при его срабатывании светодиодная полоса Neopixel меняет цвет с белого на красный. Это произойдет в течение минуты, а затем красное состояние исчезнет и снова перейдет в белое состояние.
Последовательный монитор Чтобы сделать его более понятным для вас, как программиста, последний набор кода предназначен для последовательного монитора. Каковы значения и когда у вас есть триггеры уровня предупреждения. Вместе с добавлением секунд, когда состояние предупреждения включено, до тех пор, пока через 60 секунд оно снова не выключится в состояние предупреждения. Поэтому эта часть не является обязательной.
// чтобы показать прошедшие секунды в Serial Monitor, когда alartstate находится на Serial.println ("Прошло секунд:"); Serial.println (пройдено секунд); } еще {secondsPassed = 0; }
Проверьте: если вы выполнили все шаги или получили файл скетча adafruitio_musclesensor_neopixel с вашим собственным config.h, вы можете загрузить его в свой NodeMCU. Если это будет сделано, вы должны увидеть что-то похожее на показанное ниже в вашем последовательном мониторе:
Подключение к Adafruit IO…
Adafruit IO подключен. Отправка -> 23 Отправка -> 78
Фото 1 - это монитор последовательного порта, когда он находится в режиме оповещения.
Не работает? Проверьте следующее: - Проверьте, правильно ли включен config.h - Ввели ли вы правильное имя пользователя и ключ Adafruit IO - Ввели ли вы правильный SSID и пароль Wi-Fi - Разместили ли вы проводку MyoWare Мышечный датчик справа и от светодиодной полосы Neopixel
Или проверьте предыдущие шаги.
Шаг 6: результаты
Ура, готово! Чтобы продемонстрировать и увидеть конечный продукт в действии, я включил видео.
Рекомендуемые:
Сделай сам датчик дыхания с Arduino (проводящий вязаный датчик растяжения): 7 шагов (с изображениями)
Сделай сам датчик дыхания с Arduino (проводящий вязаный датчик растяжения): этот самодельный сенсор примет форму проводящего вязанного сенсора растяжения. Он будет обволакивать вашу грудь / живот, и когда ваша грудь / живот расширяется и сжимается, то вместе с датчиком и, следовательно, входными данными, которые передаются на Arduino. Так
Музыкальные реактивные многоцветные светодиодные фонари - Датчик обнаружения звука Arduino - Светодиодная лента RGB: 4 ступени
Музыкальные реактивные многоцветные светодиодные фонари | Датчик обнаружения звука Arduino | Светодиодная лента RGB: проект многоцветных светодиодных фонарей, реагирующих на музыку. В этом проекте использовалась простая светодиодная лента 5050 RGB (не Addressable LED WS2812), датчик обнаружения звука Arduino и адаптер на 12 В
Датчик / датчик температуры двигателя с беспроводным датчиком для классических автомобилей: 7 шагов
Датчик / датчик температуры двигателя с беспроводным датчиком для классических автомобилей: я сделал этот датчик для своего любимого Çipitak. Автомобиль fiat 126 с 2-цилиндровым двигателем с воздушным охлаждением под задним капотом. У ipitak нет датчика температуры, показывающего, насколько горячий двигатель, поэтому я подумал, что датчик будет полезен. Также хотел, чтобы датчик был проводным
Светодиодная лента WiFi + датчик температуры с ESP8266: 6 шагов
Светодиодная лента WiFi + датчик температуры с ESP8266: в этом руководстве описаны шаги по настройке ESP8266 и его взаимодействие с датчиком температуры и светодиодной лентой, а также возможность принимать входные и выходные данные с помощью MQTT через Wi-Fi. Проект был разработан для курса, пройденного в Калифорнийском Политехническом университете Сан
Куртка для светового шоу, реагирующая на музыку: 7 шагов (с изображениями)
Куртка для светового шоу, которая реагирует на музыку: это руководство было создано в рамках моего последнего года работы над моей степенью в области музыкальных технологий и прикладной электроники в Йоркском университете. Он предназначен для музыкантов, интересующихся электроникой. Готовым продуктом будет светодиодная матрица