Недавно я очень заинтересовался разработкой приложений Bluetooth и даже хотел начать писать свои собственные встроенные приложения. После довольно обширного исследования, в котором участвовали:
- Чтение больших разделов Спецификации Bluetooth.
- Просматривая всю линейку микрочипов Bluetooth (и решив, что они слишком ограничены по набору и функционалу).
- Смотрел на Блюфрут от Адафрута и решал, что он слишком дорогой (хотя и приличный модуль).
В конце концов я нашел серию nRF5 от Nordic Semiconductor. Они производят модуль, который:
- Поставляется со встроенной поддержкой Bluetooth
(не говоря уже о других беспроводных протоколах) - Очень дешево купить
(~ 5 австралийских долларов за модуль) - Имеет очень и очень низкое энергопотребление
Это означает, что он может работать от батареи долгое время. - Чрезвычайно универсален
Может действовать как центральный или периферийный. Он может реализовать любой протокол Bluetooth SIG (включая HID, который меня особенно интересует). И список функций можно продолжить. - Отличная экосистема
Имеет хорошо поддерживаемую экосистему с множеством примеров проектов, предоставляемых по умолчанию из SDK, активным форумом и простыми для понимания учебными пособиями и руководствами.
Это, в свою очередь, побудило меня купить один из этих модулей и начать разработку на нем.
Однако покупки модуля недостаточно, чтобы действительно начать. Вы действительно хотите купить программатора / отладчика и (в идеале) также плату для разработки. По этой причине Я выбрал эту выигрышную комбинацию, BLE400 и сопровождающий ARM Debugger / Programmer с AliExpress. Все это можно приобрести (и доставить) примерно за 40 австралийских долларов; очень дешево для всего комплекта разработчика. Я был впечатлен.
Вот так выглядит BLE400 с подключенным модулем nRF51822:
В этом руководстве я хочу задокументировать, как вы переходите от: «Я только что получил этот пакет и понятия не имею, что делаю» к «Я успешно подключил модуль nRF51822 к своему мобильному телефону и отправляю сообщения со своего телефона на свой компьютер ».
Когда устройство только появилось, я не понимал, как с ним что-то делать, особенно на OSX. У меня было так много вопросов. Есть некоторая существующая легкая документация от Waveshare, описывающая, как подключить это устройство к компьютерам с Windows. Никакого упоминания о том, как подключить MAC.
В этом руководстве я объясню:
- Как подключить модуль BLE400 к компьютеру.
- Какие программы вам нужно будет установить для связи с прошивкой по умолчанию на nRF51822.
- Как использовать nRF Toolbox для отправки сообщений с телефона на компьютер. (Чтобы доказать, что ваш модуль работает)
- Как запрограммировать ваше первое программное обеспечение на nRF51822.
- Как настроить BLE400 на заказную плату в конфигурации проекта шаблона SDK.
- Как настроить NRF_LOG через UART на BLE400.
Поехали!
Подключение BLE400 к компьютеру
Все, что вам нужно сделать, чтобы подключить устройство BLE400 к компьютеру, - это приобрести кабель USB Type-A - Mini-B, подключить конец Type-B к BLE400 и подключить конец Type-A к компьютеру. Это обеспечит питание устройства через USB-соединение и позволит нам использовать USB-устройство для отправки и получения сообщений от nRF51822 через UART (изображение).
Установите последовательную библиотеку USB в UART через Homebrew
Примечание. У вас должна быть установлена Homebrew для выполнения инструкций в этом разделе.
Чтобы передавать данные между BLE400 и Mac, вам необходимо установить драйвер, обеспечивающий последовательную связь UART через USB. Чтобы установить такой драйвер, используйте следующую команду homebrew:
brew tap caskroom/drivers brew cask install silicon-labs-vcp-driver
Это установит драйвер VCP из Silicon Labs, который обеспечит связь USB с UART. После успешной установки вы должны подключить BLE400 к компьютеру с помощью кабеля USB. Как только это будет сделано, вы сможете увидеть новую запись в /dev
:
$ ls -1 /dev/tty.* <snip> /dev/tty.SLAB_USBtoUART <snip> $
Это последовательное отображение, которое вы будете использовать для подключения к BLE400.
Установить и настроить minicom
Существует целый ряд программ, которые вы можете использовать для последовательной (UART) связи в OSX, но программа, которую мы собираемся использовать для наших примеров, называется minicom. Вы можете установить minicom через homebrew:
$ brew install minicom
После того, как minicom был установлен, мы хотим настроить его в первый раз:
minicom -s BLE400
-s
запустит minicom в «режиме настройки», «BLE400» указывает, что мы хотим, чтобы наша конфигурация настройки minicom, которую мы собираемся выполнить, была сохранена под этим именем. Вам должен быть представлен экран, который выглядит следующим образом:
Первое меню, в которое вы хотите перейти, - это «Настройка последовательного порта», в нем мы собираемся настроить /dev
отображение последовательного порта USB в UART. Вы должны установить Serial Device
равным /dev/tty.SLAB_USBtoUART
, а Bps/Par/Bits
равным 38400 8N1
. Ваша конфигурация должна выглядеть так:
Затем нажмите Escape, чтобы выйти из этих настроек. Оттуда вы должны выбрать меню Screen and keyboard
. В этом меню убедитесь, что для Local echo
и Add carriage return
установлено значение Yes
, например:
После этого просто щелкните Save setup as BLE400
и, если это удастся, выберите Exit
. Теперь у вас должен быть последовательный терминал, подключенный к вашему BLE400.
Теперь, когда вы подключились к BLE400 через USB к UART, вы можете отправить команду, которая активирует модуль Bluetooth. В окне последовательного терминала minicom нажмите y
. Этот символ будет отправлен в слушающий модуль nRF51822 и запустит объявление Bluetooth. Вы должны увидеть это:
Ответ Start...
возвращается микропрограммой по умолчанию на модуле Core51822, который поставляется с платой. Это сообщение сообщает, что началась реклама Bluetooth. Если вы запустите сканирование Bluetooth со своего мобильного телефона (или компьютера), вы должны обнаружить Nordic_UART
Bluetooth поблизости; это ваш модуль nRF5188.
Отправка сообщений с телефона по Bluetooth
Теперь, когда сообщение Start...
было успешно возвращено прошивкой по умолчанию на Core51822, мы хотим подключиться к нашему новому модулю Bluetooth с помощью наших мобильных телефонов, а затем отправить сообщения с телефона на nRF51822, которые затем будут отправлены на ваш компьютер с помощью Мост USB-UART.
Примечание: это означает, что вы должны оставить minicom открытым из предыдущего примера. Если вы его закрыли, вы сможете запустить следующее, чтобы снова открыть соединение:
minicom BLE400
Чтобы отправлять сообщения со своего мобильного телефона на nRF51822, мы собираемся использовать приложение nRF5 toolbox от Nordic Semiconductor.
Как только это будет сделано, вы сможете открыть приложение и увидеть следующий экран:
Самая последняя синяя кнопка - это инструмент UART на панели инструментов. Щелкните по нему. Вас встретит настраиваемая клавиатура с девятью кнопками.
Во-первых, нам нужно настроить кнопки для этого устройства. К счастью для вас, я экспортировал свою конфигурацию кнопок, чтобы вы могли ее использовать.
Загрузите эту конфигурацию в свой мобильный телефон.
После того, как это будет загружено на ваш телефон, вы можете щелкнуть раскрывающийся список верхнего заголовка, выбрать значок Загрузки и импортировать конфигурацию в приложение:
Последний и последний шаг - нажать кнопку «Подключиться» в нижней части приложения, найти Nordic_UART
устройство Bluetooth и подключиться к нему.
После того, как вы подключитесь к нему и выберете импортированную конфигурацию, вы сможете щелкнуть любую из кнопок на экране и увидеть, как результаты этих нажатий клавиш на вашем телефоне отражаются в minicom на вашем компьютере.
Поздравляю! Теперь вы использовали nRF51822 для подключения мобильного телефона к компьютеру и отправки сообщений между ними. Представьте себе возможности отсюда!
Следующие шаги
Это все для этого краткого руководства. В следующих руководствах я объясню:
- Как создать
custom_board.h
файл для приложения BLE Template, которое поставляется сv12.2.0
nRF5 SDK, чтобы функции библиотеки Button Support корректно работали для всех приложений SDK. - Как прошить пользовательское SoftDevice на ваш новый BLE400 и поставить поверх него одну из программ-примеров Bluetooth из nRF5 SDK.
- Как настроить команды
NRF_LOG_*
для работы через UART, чтобы вы могли видеть, что происходит на вашем устройстве.
Все это будет чрезвычайно полезно при разработке nRF5.