Материал: Аппаратура для электроэнцефалографических исследований. Журавлев Д.В

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

разных разработчиков. Для того чтобы внести код в основную библиотеку для использования другими людьми, теперь достаточно просто сделать запрос. Например, код датчика пульса к новой прошивке был адаптирован примерно за 20 минут. Теперь при загрузке новой прошивки на плате код датчика пульса будет там присутствовать. Это избавит от рутинного поиска по всем “OpenBCI” репозиториям.

2.11. Особенности программирования радиомодулей

Совместно с платами OpenBCI Cyton используются USB-ключи, которые обеспечивают связь между платой и вашим компьютером. На плате “OpenBCI Dongle” (USB-ключ) и плате Cyton есть радиомодули BLE (на самом деле радиомодули RFduino 22301), которые обеспечивают связь. Далее приведем некоторые термины:

Радиомодуль на плате “OpenBCI Dongle” называется “Host” (хост).

Радиомодуль на плате Cyton называется “Device” (устройство).

Пары хост-устройств могут быть запрограммированы на передачу до 25 дискретных каналов.

Существуют важные различия в прошивках для 8-битных и 32-битных систем.

Далее будет описано, как работает радиосвязь, как загрузить новую прошивку на радиомодуль платы “OpenBCI Dongle” и радиомодуль платы

Cyton.

2.11.1. Настройка системы для программирования радиомодулей

Для программирования радиомодулей понадобится:

Компьютер с ОС Windows или ОС Mac.

Программа Arduino IDE версии 1.5.8 (бета версия).

Пользовательские библиотеки RFduino для OpenBCI.

Конденсатор 0,1 мкФ.

Для программирования радиомодулей необходимо выполнить следующие

шаги:

1.Загрузить и установить программу Arduino IDE версии 1.5.8 (https://www.arduino.cc/en/Main/OldSoftwareReleases#1.5.x). Для ОС Windows

обязательно надо загрузить файл с пометкой “Windows Installer”. На ОС Mac надо загрузить “MAC OS X” версию, разархивировать приложение и переместить его в папку «Приложения», а затем установить “Java 6”, если будет предложено.

2.Загрузить репозиторий “OpenBCI_RFduino” с сайта github (https://github.com/OpenBCI/OpenBCI_RFduino/archive/master.zip).

70

3.Разархивировать папку.

4.Переместить папку с именем “RFduino” и все, что в ней содержится, на ОС Mac в директорию

“/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino”; на ОС Windows в директорию “C:\Program Files (x86)\Arduino-

1.5.8\hardware\arduino”;

на

ОС

Linux

в

директорию “arduino-

1.5.8/hardware/arduino”.

 

 

 

 

 

Для

 

продолжения

 

работы

пользователям

ОС

Linux

необходимо

 

установить

программу “wine”

(https://www.winehq.org/) . Существует зависимость для продолжения работы кода Arduino, который требует использования “RFDLoader.exe”. Чтобы запустить этот “.exe” файл, необходимо сделать следующее:

Перейти в папку “/hardware/arduino/RFduino”.

Переименовать “RFDLoader” в “RFDLoader.old” (на всякий случай).

Заменить “RFDLoader” на скрипт, который использует “wine” для вызова “RFDLoader.exe”, перенаправляя последовательный порт.

Возможный сценарий находится по адресу https://github.com/OpenBCI/Docs/issues/73#issuecomment-288889646.

Перетащить “RFDLoader” в папку “RFduino”.

Пока программа “wine” установлена нормально, скрипт должен заботиться о любых проблемах, которые могут возникнуть при загрузке.

2.11.2. Использование прошивки радиомодулей версии 2.xx

Для прошивки радиомодулей по радиоканалу необходимо выполнить следующие действия:

1.Загрузить репозиторий прошивки “OpenBCI_Radios” с проекта github. Также можно клонировать репозиторий в свою папку библиотек, указанную после шага 6.

2.Разархивировать папку и, если она называется “OpenBCI_Radios-master”,

переименовать ее в “OpenBCI_Radios”.

3.Переместить папку “OpenBCI_Radios” из папки загрузок в директорию: на ОС Mac “/Linux: Документы/Arduino/библиотеки”; на ОС Windows “C:\Users\имя пользователя\Documents\Arduino\библиотеки”; если в вышеуказанной папке нет папки «библиотеки», то её надо создать.

4.Открыть “Arduino IDE 1.5.8”, перезапустить “Arduino IDE”, если он уже был открыт.

Для того чтобы изменить прошивку на свою, вместо той, которая пришла

с “OpenBCI Dongle”, надо убедиться, что RFduino установлено как “Device” и канал выбран правильно.

71

2.11.3. Загрузка прошивки на плату Cyton

Чтобы загрузить код в модуль RFduino на плате Cyton, необходимо иметь последовательное соединение с компьютером. Традиционно это делается с помощью кабеля и FTDI устройства. Если кабель с устройством FTDI уже имеются, необходимо убедиться, что устройство FTDI питается от напряжения 3 В. Использование FTDI устройства, работающего от напряжения питания 5В, может повредить модуль RFduino на платформе OpenBCI. Также возможна загрузка кода в модуль “RFduino”, смонтированный на плате, используя “ключ OpenBCI” (“OpenBCI Dongle”). Далее рассмотрим способы загрузки прошивки на радиомодуль (Device) платы OpenBCI.

2.11.4. Загрузка прошивки версии 2.xx в радиомодуль платы

Cyton

Для загрузки прошивки в радиомодуль платы Cyton необходимо выполнить следующие шаги:

1.В программе “Arduino IDE 1.5.8” выполнить команду “File-->Examples-- >OpenBCI_Radios-->RadioDevice32bit”, которая запустит прошивку устройства.

2.Перейти к меню “Tools-->Board “ и выбрать “RFduino”.

3.Выполнить один из способов, перечисленных в следующем разделе, чтобы подключить устройство к компьютеру.

4.Перейти в меню “Tools-->Port” и выбрать “COM” порт (в ОС Windows) или

“/dev/tty.usbserial-*” порт (в ОС “Mac/Linux”) для устройства.

5.Нажать «Подтвердить» на панели инструментов (значок в виде галочки) и убедиться, что все готово; Если появилось сообщение “Done Compiling”, то все готово к работе.

6.Выбрать номер канала для прошиваемого устройства. Номер канала может быть установлен в коде “radio.begin(OPENBCI_MODE_DEVICE,20)”.

7.Нажать «Загрузить» на панели инструментов (значок справа от галочки). После этого код загрузится на устройство OpenBCI.

Начиная с версии “2” прошивки, необходимо сначала прошить плату со

строкой “radio.flashNonVolatileMemory();” в функции “setup()” без комментариев, затем закомментировать строку и снова прошить программу. Очень важно перепрограммировать плату с закомментированной строкой. Это делается потому, что во второй версии прошивки номер канала сохраняется в энергонезависимой памяти, поэтому нельзя изменить номер канала системы с ПК/драйвера. И при выключении системы она не запомнит вновь установленный канал.

72

2.11.5. Программирование радиомодуля DEVICE с ключом

OpenBCI

Идея заключается в том, чтобы использовать микросхему FTDI на плате ключа “OpenBCI Dongle” (рис. 2.40), чтобы соединить интерфейсы USB и Serial в процессе загрузки. Для начала необходима специальная подготовка.

Рис. 2.40. Кнопка загрузки

Сначала необходимо припаять разъемы к плате “OpenBCI Dongle”. Затем переместить переключатель в положение RESET и загрузить некоторый фиктивный код на радиомодуль платы “OpenBCI Dongle”, чтобы он не мешал процессу последовательной загрузки.

2.11.6. Загрузка версии прошивки Pass Thru Radio 2.xx

Необходимо открыть программу Arduino IDE 1.5.8 и пройти по кнопкам меню “File-->Examples-->OpenBCI_Radios-->RadioPassThru32bit”. Обязательно надо выбрать “RFDuino” из вкладки “Tools --> Board --> RFDuino”.

Далее необходимо сделать макет с 8-ю перемычками и конденсатор 0,1 мкФ. Конденсатор 0,1 мкФ должен быть последовательно соединен между выводом Dongle GPIO6 и выводом RESET платы OpenBCI (рис. 2.41).

Рис. 2.41. Макет с 8-ю перемычками

73

Далее надо подать питание на плату OpenBCI с помощью прилагаемого батарейного блока, поэтому для загрузки понадобятся только четыре соединения. Также можно запитать плату OpenBCI от 3В с платы Dongle, но это делает следующий шаг немного сложнее. В любом случае ниже приведен перечень основных соединений, которые необходимо выполнить при питании платы от батарейного блока:

FTDI RX -> RF TX

FTDI TX -> RF RX

GPIO6 -> 0.1uF Cap -> RF RST

GND -> GND

На 8-битной плате контакты, к которым нужно подключиться, доступны на верхней стороне платы. Надо вставить перемычки в отверстия в правильном положении и плотно прижать их к боковым сторонам отверстий, чтобы создать прочное соединение. Теперь можно загрузить код устройства в RFduino на 8- битной плате OpenBCI.

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

Рис. 2.42. Соединение контактов на плате

74

Источник: https://studfile.net/preview/16566241/