Недавно я очень заинтересовался разработкой приложений 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.

Пожалуйста, перейдите по этой ссылке, чтобы установить приложение nRF5 toolbox на свой телефон прямо сейчас.

Как только это будет сделано, вы сможете открыть приложение и увидеть следующий экран:

Самая последняя синяя кнопка - это инструмент 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.