Оглавление:

Набор текста с помощью EMG с помощью MyoWare: 8 шагов
Набор текста с помощью EMG с помощью MyoWare: 8 шагов

Видео: Набор текста с помощью EMG с помощью MyoWare: 8 шагов

Видео: Набор текста с помощью EMG с помощью MyoWare: 8 шагов
Видео: Нейроинтерфейс своими руками 2024, Ноябрь
Anonim
Набор текста с помощью EMG с помощью MyoWare
Набор текста с помощью EMG с помощью MyoWare

Авторы:

Л. Элизабет Кроуфорд и Дилан Т. Вавра

Вступление:

В этом уроке мы покажем вам, как создать простую домашнюю систему электромиографии (ЭМГ) стоимостью около 100 долларов, которая будет определять активацию мышц с поверхности кожи и использовать ее для отправки нажатия клавиш на компьютер, минуя клавиатуру. Для этого мы использовали классический MaKey MaKey и датчик MyoWare, а также немного кода. Этот проект также требует пайки. Здесь можно найти полезные советы по технике пайки и безопасности.

Во-первых, мы покажем вам, как этого добиться с помощью одного датчика MyoWare. Затем мы покажем вам, как добавить в систему второй (для наших целей мы использовали два).

Мы надеемся, что другие смогут имитировать эту технологию DIY EMG, адаптировать ее к своим конкретным потребностям и использовать для любого количества интересных приложений. Мы использовали его в нашей лаборатории экспериментальной психологии в Университете Ричмонда, чтобы воспроизвести исследование, показывающее, что люди имитируют выражения лиц других людей.

Шаг 1: Соберите свои материалы

Соберите свои материалы
Соберите свои материалы

Материалы:

  • Компьютер
  • MaKey MaKey с прилагаемым USB-кабелем (вы также сможете сделать это с Arduino Leonardo, но мы это не пробовали)
  • Изолятор питания USB (если он не работает от ноутбука с батарейным питанием), такой как изолятор USB Adafruit - 100 мА, изолированный низко / полноскоростной USB (не показан)
  • Датчик (и) MyoWare
  • Электроды (x3 на датчик MyoWare) - мы использовали одноразовые поверхностные электроды Covidien Kendall для ЭМГ / ЭКГ / ЭКГ 1 дюйм (24 мм)
  • Отрывные заголовки (мы использовали L-образные заголовки)
  • Провода с вилкой на одном конце и розеткой на другом
  • Припой
  • Электроизоляционная лента

Инструменты:

  • Паяльник
  • Кусачки
  • Разветвитель проводов

Программное обеспечение:

Arduino IDE с дополнением MaKey MaKey

Шаг 2: Подготовьте датчик MyoWare

Подготовьте датчик MyoWare
Подготовьте датчик MyoWare

1. Отломите комплект из трех разъемов для пайки MyoWare.

2. Расположив датчик MyoWare бицепсом вверх, вставьте более короткий конец трех коллекторов снизу в отверстия, отмеченные знаком «+» (знак «плюс», «-» (знак «минус») и «SIG»). рядом с ними (см. рисунок выше).

3. Припаяйте разъемы на место.

Шаг 3. Подключите датчик MyoWare к MaKey MaKey

1. Выберите три провода (в идеале разных цветов), вилку на одном конце и розетку на другом. Длина необходимых вам проводов зависит от того, насколько далеко вы хотите, чтобы MyoWare находился от MaKey MaKey. Чтобы MyoWare был на лицевой стороне, а MaKey MaKey лежал на столе, вам понадобится около 18 дюймов.

2. Решите, какую функцию будет выполнять проволока каждого цвета. Один будет использоваться для питания (подключение к разъему + на датчике MyoWare), один будет использоваться для заземления (подключение к разъему - на датчике MyoWare), а третий будет использоваться в качестве сигнального провода (подключение к Разъем SIG на MyoWare). На изображениях, показанных в этом руководстве, мы используем зеленый для питания, коричневый для земли и серый для сигнала.

Шаг 4. Загрузите эскиз в MaKey MaKey

Загрузите эскиз в MaKey MaKey
Загрузите эскиз в MaKey MaKey
Загрузите эскиз в MaKey MaKey
Загрузите эскиз в MaKey MaKey
Загрузите эскиз в MaKey MaKey
Загрузите эскиз в MaKey MaKey

1. Установите Arduino IDE на свой компьютер (Учебник здесь).

2. Установите надстройку MaKey MaKey для Arduino (Учебник здесь), открыв настройки Arduino (Файл> Настройки), перейдя в текстовое поле Дополнительные URL-адреса диспетчера досок и вставив:

raw.githubusercontent.com/sparkfun/Arduino_Boards/master/IDE_Board_Manager/package_sparkfun_index.json

3. В среде Arduino IDE щелкните файл, потяните вниз, чтобы создать новый эскиз. Скопируйте и вставьте этот код в текстовое окно:

/ * пороги для регистрации нажатия клавиши * / const int thresh1 = 1000; / * назначение входов на MaKey MaKey * / const int sensor1Pin = A3; #include "Keyboard.h" int LED (9); void setup () { pinMode (LED, OUTPUT); Serial.begin (9600);} / * Приведенный ниже код производит выборку MyoWare каждые 50 мс, отправляет его значение в последовательный порт и, если значение превышает пороговое значение, отправляет нажатие клавиши. Вы можете сэмплировать чаще, уменьшив задержку. Это затруднит чтение значений в последовательном окне. * / Void loop () {int sensor1Val = analogRead (sensor1Pin); Serial.println (sensor1Val); if (sensor1Val> = thresh1) {Keyboard.begin (); / / Посылает нажатие клавиши с буквой "c" Keyboard.write ('c'); // ждем 50 мс перед повторной выборкойdelay (50);} else // ждем 50 мс перед повторной выборкойdelay (50);}

4. Подключите MaKey MaKey к вашему компьютеру. Откройте меню инструментов и убедитесь, что выбрана плата Arduino Leonardo или MaKey MaKey. Откройте меню инструментов до «Порт» и убедитесь, что выбранный порт имеет имя выбранной платы. Загрузите свой эскиз на плату, щелкнув стрелку вправо в верхней части Arduino IDE.

Шаг 5: Соедините все ваши компоненты вместе

1. Подключите провода от датчика MyoWare к MaKey MaKey следующим образом:

  • Знак «+» на MyoWare соответствует слоту 5V на MaKey MaKey.
  • Знак «-» на MyoWare переходит в «землю» на MaKey MaKey.
  • «SIG» на MyoWare переходит в слот A3 на MaKey MaKey.

2. Присоедините три электрода к MyoWare.

3. Подключите MaKey MaKey. Если вы используете компьютер, подключенный к розетке, подключите MaKey MaKey к разъему питания USB, а затем подключите его к USB-порту компьютера. (Это мера предосторожности, так что если что-то пойдет не так с источником питания в вашем компьютере, пользователь не будет напрямую подключен к электросети. Маловероятно, что такая проблема может возникнуть, но мы бы предпочли, чтобы вы были в безопасности.) Если вы используете ноутбук, работающий от батареи (т.е. НЕ ПОДКЛЮЧЕННЫЙ К СТЕНЕ), вы в безопасности без изолятора.

4. Убедитесь, что все включено. Красный светодиод MaKey MaKey и зеленый светодиод MyoWare должны гореть.

5. Очистите кожу, на которой вы хотите прикрепить MyoWare, с помощью медицинского спирта, чтобы удалить грязь и масла.

6. Снимите клейкую подложку с электродов и прикрепите MyoWare к коже. Вы хотите, чтобы два электрода MyoWare находились над мышцами, с которых вы хотите производить запись. Электрод, прикрепленный к проволоке, служит для сравнения и должен располагаться вне мышцы в области, которая не будет активна при сокращении целевой мышцы.

7. Проверьте клей на электродах, чтобы убедиться, что у вас хорошее прилегание к коже. Возможно, вам придется прижать края клейких колец к коже, чтобы получить хорошее прилегание.

Шаг 6: Установка пороговых значений в Arduino IDE

Установка пороговых значений в Arduino IDE
Установка пороговых значений в Arduino IDE

1. Когда все подключено и включено, откройте последовательный монитор в среде Arduino IDE, щелкнув значок увеличительного стекла в правом верхнем углу.

2. Монитор последовательного порта должен теперь отображать значения сигнала от MyoWare. По мере того, как вы сгибаете и расслабляете мышцу, вы должны видеть, что значения изменяются соответствующим образом. Вы также должны увидеть, как красный светодиод на MyoWare загорается, когда вы сокращаете мышцу достаточно сильно.

3. Наблюдая за последовательным монитором, сокращайте мышцы с разной интенсивностью, обязательно расслабляясь между сокращениями, чтобы вернуться к исходному уровню. Определите пороговое значение, выше которого вы хотите, чтобы сокращение производило нажатие клавиши. Более высокие значения потребуют более сильного сжатия для регистрации нажатия клавиши; более низкие значения сделают его более чувствительным к небольшим сокращениям, но также более склонным к ложным срабатываниям.

4. В скетче Arduino измените пороговое значение (const int thresh1) с 1000 на выбранный вами порог.

5. Закройте монитор последовательного порта, повторно загрузите скетч и начните печатать с помощью EMG. Вы можете обнаружить, что вам нужно изменить порог, чтобы получить желаемую чувствительность. Вы также можете поэкспериментировать с задержкой, чтобы она воспроизводилась более или менее часто.

Шаг 7. Наслаждайтесь использованием вашей новой самодельной системы ЭМГ

Наслаждайтесь использованием вашей новой самодельной системы ЭМГ!
Наслаждайтесь использованием вашей новой самодельной системы ЭМГ!

Вы можете разместить электроды во множестве мест на теле (например, на лице, как наш лабораторный киборг Кайл Ли изображает выше).

Поэкспериментируйте с местами для установки электродов и с множеством возможностей того, что вы могли бы делать с помощью нажатия клавиш.

Кроме того, продолжайте читать, чтобы узнать, как добавить еще один датчик MyoWare в эту систему.

Шаг 8: Добавьте второй датчик в вашу систему ЭМГ

Добавьте второй датчик в вашу систему ЭМГ
Добавьте второй датчик в вашу систему ЭМГ

1. Повторите шаг 2 для второго датчика MyoWare.

2. Чтобы подключить несколько датчиков к одному MaKey MaKey, вам понадобится способ подачи питания на каждый из них. Мы немного зачистили провода, припаяли и заклеили лентой, чтобы создать Y-образный соединитель (см. Рисунок выше), разделив единственный выход источника питания MaKey MaKey на два провода, которые подключаются к входу питания «+» на каждом. двух MyoWares.

3. Подключите разъемы «SIG» на датчиках MyoWare к разным разъемам A на правой стороне MaKey MaKey (приведенный ниже код предполагает, что вы используете A3 и A4).

4. Загрузите скетч для двух датчиков:

/ * этот скетч считывает сигналы двух датчиков MyoWare и отправляет нажатие клавиши 'b', когда один превышает пороговое значение, и 'c', когда другой превышает пороговое значение. * // * установка пороговых значений * / const int thresh1 = 1000; const int thresh2 = 1000; / * назначение входов на MaKey MaKey * / const int sensor1Pin = A3; const int sensor2Pin = A4; #include "Keyboard.h" int LED (9); void setup () {pinMode (LED, OUTPUT); Serial.begin (9600);} void loop () {int sensor1Val = analogRead (sensor1Pin); int sensor2Val = analogRead (sensor2Pin); Serial.print (sensor1Val); Serial.print (","); Serial.println (sensor2Val); if (sensor1Val> = thresh1) {Keyboard.begin (); // Отправить нажатие клавиши cKeyboard.write ('c'); delay (50);} if (sensor2Val> = thresh2) {Keyboard.begin (); // Отправить keypress bKeyboard.write ('b'); delay (50);} else // ждать 50 мс перед повторной выборкойdelay (50);}

5. Теперь оба показания мышц должны быть видны на серийном мониторе. Установите каждый порог отдельно в скетче Arduino, как на шаге 6, а затем перезагрузите скетч.

Теперь ваша система EMG будет иметь два отдельных входа

Если вы почувствуете себя немного безумным, вы можете выполнить аналогичные процедуры, чтобы добавить в систему больше датчиков MyoWare. Если вы почувствуете себя ДЕЙСТВИТЕЛЬНО диким, вы даже можете добавить еще один MaKey MaKey в систему. Мы рекомендуем вам поэкспериментировать с этим дизайном.

Рекомендуемые: