- Arduino Nano 33 BLE Sense
- Обзор оборудования Arduino Nano 33 BLE Sense
- Программные улучшения с Arduino Nano 33 BLE sense
- Подготовка вашей Arduino IDE для Arduino Nano 33 BLE sense
- Программа для чтения данных датчика и отображения на последовательном мониторе
- Arduino Nano 33 BLE - загрузка кода
Arduino была платформой разработки для быстрого создания прототипов и проверки идей. Многие из нас начали бы с платы разработки Arduino UNO, но сегодня, когда мы продвигаемся к Интернету вещей, компьютерному зрению, искусственному интеллекту, машинному обучению и другим футуристическим технологиям, скромная Arduino UNO больше не могла справляться со своими 8 -битный микроконтроллер. Это потребовало выпуска новых плат с более мощными процессорами, которые имеют встроенные Wi-Fi, Bluetooth, GSM и другие возможности беспроводной связи, такие как популярные MKR1000 или MKR GSM 1400. В этом контексте Arduino недавно выпустила новую версию своего Nano под названием Arduino Nano 33.
Всего существует два типа плат Arduino Nano 33, а именно Arduino Nano 33 IoT и Arduino Nano 33 BLE sense. Основное различие между обоими модулями заключается в том, что сенсорный модуль Arduino Nano 33 BLE имеет несколько встроенных датчиков (подробности будут рассмотрены позже), в то время как Arduino Nano 33 IoT их не имеет. В этой статье мы рассмотрим сенсорную плату Arduino Nano 33 BLE, познакомим вас с ее функциями и функциями и, наконец, напишем образец кода для чтения значений датчиков и отображения на последовательном мониторе. Итак, давайте учиться….!
Arduino Nano 33 BLE Sense
Название «Arduino Nano 33 BLE Sense» звучное, но само название содержит важную информацию. Он называется «Nano», потому что размеры, распиновка и форм-фактор очень похож на классический Arduino Nano, он фактически планируется использовать в качестве замены Arduino Nano в ваших существующих проектах, но загвоздка в том, что этот новый модуль работает на 3,3 В, в то время как классический Nano работает от 5 В. Я думаю, что здесь появилось название «33», чтобы указать, что плата работает от 3,3 В. Тогда название «BLE» указывает, что модуль поддерживает Bluetooth Low Energy (BLE5 5.0).а название «смысл» указывает на наличие встроенных датчиков, таких как акселерометр, гироскоп, магнитометр, датчик температуры и влажности, датчик давления, датчик приближения, датчик цвета, датчик жестов и даже встроенный микрофон. Мы подробно рассмотрим BLE и другие датчики позже, а пока так выглядит сенсорная плата Arduino Nano 33 BLE без упаковки.
Обзор оборудования Arduino Nano 33 BLE Sense
При первом взгляде на плату вы можете обнаружить множество компонентов, скученных сверху, большинство из которых являются датчиками, о которых я говорил ранее. Но основной мозг спрятан за металлическим кожухом с правой стороны. В этом корпусе находится процессор Nordic nRF52840, который содержит мощный Cortex M4F и модуль NINA B306 для связи BLE и Bluetooth 5. Это позволяет плате работать с очень низким энергопотреблением и обмениваться данными с помощью Bluetooth 5, что делает ее идеальной для приложений маломощной ячеистой сети в домашней автоматизации и других связанных проектах. Кроме того, поскольку процессор nRF поддерживает ОС ARM Mbedон также обеспечивает некоторые улучшения программного обеспечения, которые мы обсудим позже. Датчики, светодиоды, кнопки и другие важные элементы, которые вы должны знать на своей плате, отмечены на изображении ниже.
Как вы можете видеть на изображении выше, плата оснащена датчиками, которые могут помочь вам построить правую часть коробки, даже не подключая плату к каким-либо внешним датчикам. Плата предназначена для использования в носимых устройствах и других интеллектуальных портативных устройствах, таких как фитнес-браслеты, мониторинг уровня глюкозы, шагомеры, умные часы, метеостанция, домашняя безопасность и т. Д., Где вы будете использовать большинство этих датчиков. И, как всегда, все эти датчики имеют встроенные библиотеки для Arduino, которые вы можете легко использовать. В конце этой статьи мы прочитаем значения со всех этих датчиков и отобразим их на последовательном мониторе. Подробная информация о датчике на сенсорной плате Arduino Nano 33 BLE вместе с необходимыми библиотеками приведены в таблице ниже.
Имя датчика |
Параметры |
Ссылки |
LSM9DSI - ST Микроэлектроника |
Акселерометр, Гироскоп, Магнитометр |
Лист данных LSMDSI Библиотека Arduino_LSM9DS1 |
LPS22HB - ST Микроэлектроника |
Давление |
LPS22HB Лист данных Библиотека Arduino_LPS22HB |
HTS221 - ST Microelectronics |
Температура и влажность |
LPS22HB Лист данных Библиотека Arduino_HTS221 |
APDS9960 - Avago Tech. |
Близость, Свет, Цвет, Жест |
LPS22HB Лист данных Библиотека Arduino_APDS9960 |
MP34DT05 - ST Microelectronics |
Микрофон |
MP34DT05 Лист данных Встроенная библиотека PDM |
Большинство этих датчиков произведены ST Microelectronics и поддерживают работу с низким энергопотреблением, что делает их идеальными для устройств с батарейным питанием. Мало кто может уже быть знаком с датчиком APDS9960, поскольку он уже доступен в виде модуля spate, и мы также ранее использовали датчик APDS9960 с Arduino. Для получения дополнительной информации об этих датчиках вы можете посетить соответствующее техническое описание, а также убедиться, что вы добавили всю предоставленную библиотеку в свою Arduino IDE, чтобы начать использовать их с вашей сенсорной платой Arduino Nano 33 BLE. Чтобы добавить библиотеку, вы можете использовать данную ссылку, чтобы перейти на соответствующую страницу GitHub и загрузить ZIP-файл, затем используйте Sketch -> Include Library -> Add.ZIP Library, или вы также можете использовать менеджер библиотек в Arduino IDE и добавить их библиотеки.
Технические характеристики платы Arduino Nano 33 BLE sense:
Плата Arduino Nano 44 BLE, работающая на процессоре Nordic nRF52840, имеет следующие технические характеристики
- Рабочее напряжение: 3,3 В
- Входное напряжение USB: 5 В
- Входное напряжение: от 4,5 В до 21 В
- Чип: NINA-B3 - RF52840
- Часы: 64 МГц
- Flash: 1 МБ
- SRAM: 256 КБ
- Беспроводная связь: Bluetooth 5.0 / BLE
- Интерфейсы: USB, I2C, SPI, I2S, UART
- Цифровые контакты ввода / вывода: 14
- Контакты ШИМ: 6 (разрешение 8 бит)
- Аналоговые выводы: 8 (настраиваемые 10 или 12 бит)
Программные улучшения с Arduino Nano 33 BLE sense
Как и все существующие платы Arduino, Arduino Nano 33 BLE sense можно запрограммировать с помощью Arduino IDE. Но перед тем, как начать, вы должны использовать менеджер доски и добавить информацию о плате в свою IDE. Поскольку мы знаем, что nRF 52840 может быть запрограммирован с использованием ОС ARM Mbed, это означает, что наша плата Arduino Nano 33 поддерживает операционную систему реального времени (RTOS). С помощью программирования Mbed OS мы можем запускать несколько потоков в программе одновременно для выполнения многозадачности. Кроме того, энергопотребление платы будет значительно снижено, каждый раз, когда мы вызываем функцию задержки, плата будет входить в режим щекотания в течение времени задержки для экономии энергии и вернется в работу после того, как задержка закончится. Сообщается, что эта операция потребляет на 4,5 мкА меньше, чем обычная операция задержки Arduino.
При этом интеграция ОС Mbed с Arduino IDE является относительно новой, и потребуется некоторое время, прежде чем мы сможем полностью использовать всю мощь ОС Mbed с Arduino IDE. Поэтому для быстрого запуска мы напишем программу для чтения всех значений датчика и отображения их на последовательных мониторах.
Подготовка вашей Arduino IDE для Arduino Nano 33 BLE sense
Запустите вашу Arduino IDE и перейдите в Инструменты -> Платы -> Board Manger, чтобы запустить ваш менеджер плат Arduino. Теперь найдите «Mbed OS» и установите пакет. Для завершения установки потребуется некоторое время.
После завершения установки закройте диалоговое окно и подключите плату Arduino 33 с помощью кабеля micro USB к ноутбуку. Как только вы подключите плату, окна автоматически начнут установку необходимых драйверов для платы. Затем откройте свою Arduino IDE и выберите Инструменты -> Плата -> Arduino Nano 33. Затем также выберите правильный COM-порт, отметив Инструменты -> Порт, мой подключен к порту COM3, но ваш может отличаться. После выбора порта нижний правый угол вашей IDE должен выглядеть следующим образом
Теперь, чтобы быстро проверить, все ли работает, мы можем использовать пример программы, давайте попробуем программу, представленную в Файл -> Примеры -> PDM -> PDMSerialPlotter. Эта программа будет использовать встроенный микрофон, чтобы прослушивать звук и строить его на последовательном плоттере. Вы можете загрузить программу и проверить, работают ли плата и IDE.
Теперь, если у вас происходит смехотворно медленная компиляция, значит, вы не одиноки, многие люди, включая меня, сталкиваются с этой проблемой, и на момент написания этой статьи, похоже, не было решения. На компиляцию и загрузку простых программ у меня уходит около 2-3 минут, а когда я пробовал некоторые программы BLE или пытался работать с Mbed OS, время компиляции увеличивалось до более чем 10 минут, что не побудило меня пробовать что-либо еще. Это из-за интеграции ОС Mbed с Arduino IDE, будем надеяться, что кто-то из замечательного сообщества Arduino найдет решение для этого.
Программа для чтения данных датчика и отображения на последовательном мониторе
Если мы не используем BLE или основные функции Mbed OS платы, время компиляции было разумным. Поэтому я написал простой набросок, чтобы прочитать все значения датчиков и отобразить их на последовательном мониторе, как показано ниже.
Полный код, позволяющий сделать то же самое, приведен внизу этой страницы, но убедитесь, что вы установили все библиотеки, упомянутые выше. Пояснение к коду следующее.
Запустите программу, включив все необходимые файлы заголовков. Здесь мы будем использовать все четыре датчика, кроме микрофона.
#include // Включить библиотеку для 9-осевого IMU #include // Включить библиотеку для чтения давления #include // Включить библиотеку для чтения температуры и влажности #include // Включить библиотеку для распознавания цвета, близости и жестов
Внутри функции настройки мы инициализируем последовательный монитор со скоростью 9600 бод для отображения всех значений датчиков, а также инициализируем все необходимые библиотеки. Код внутри настройки показан ниже
void setup () {Serial.begin (9600); // Последовательный монитор для отображения всех значений датчиков if (! IMU.begin ()) // Инициализируем датчик IMU {Serial.println ("Не удалось инициализировать IMU!"); while (1);} if (! BARO.begin ()) // Инициализировать датчик давления {Serial.println ("Не удалось инициализировать датчик давления!"); while (1);} if (! HTS.begin ()) // Инициализировать датчик температуры и влажности {Serial.println («Не удалось инициализировать датчик температуры и влажности!»); while (1);} if (! APDS.begin ()) // Инициализируем датчик цвета, приближения и жестов {Serial.println («Не удалось инициализировать датчик цвета, приближения и жестов!»); while (1);}}
Внутри функции цикла мы считываем необходимые значения датчиков из библиотеки и затем печатаем их на последовательном мониторе. Синтаксис можно ссылаться на пример программы каждой библиотеки, мы считали значения акселерометра, гироскопа, магнитометра, давления, температуры, влажности и датчиков приближения и отобразили их на последовательном мониторе. Код для измерения значения акселерометра показан ниже, мы также можем измерить для всех датчиков.
// Значения акселерометра if (IMU.accelerationAvailable ()) {IMU.readAcceleration (AccelerationAvailable (AccelerationAvailable)) (AccelerationAvailable (AccelerationAvailable)); Serial.print ("Акселерометр ="); Serial.print (Accelerometer = "); Serial.print (","); Serial.print (Accel_y); Serial.print (","); Serial.println (Accel_z); } задержка (200);
Arduino Nano 33 BLE - загрузка кода
Загрузка кода в Nano 33 аналогична загрузке любых других плат, но обратите внимание, что на плате есть два COM-порта. Когда вы нажимаете кнопку загрузки, Arduino IDE компилирует код, а затем автоматически сбрасывает плату с помощью программной команды, это переведет плату в режим загрузчика и загрузит ваш код. Из-за этого, как только загрузка будет завершена, вы можете заметить, что IDE Arduino автоматически изменила свой COM-порт на другой номер, и вы можете захотеть изменить его обратно, прежде чем открывать монитор последовательного порта.
Так что это в значительной степени мой опыт работы с платой Arduino Nano 33, я попробую создать что-то с ее датчиками и функциями BLE в будущем. Каким был твой опыт работы с доской? Что бы вы хотели, чтобы я построил из этого? Оставляйте ответы в комментариях, и мы обсудим их подробнее.