====== Arduino Nano 33 BLE Sense: распиновка, схема подключения и программирование ======
[[amp>product/arduino-nano-33-ble-sense?utm_source=man&utm_campaign=arduino-nano-33-ble&utm_medium=wiki|Arduino Nano 33 BLE Sense]] — компактная платформа для разработки на чипе U-blox NINA-B306 с микроконтроллером Nordic nRF52840 и беспроводным модулем Bluetooth BLE.
{{ :products:arduino-nano-33-ble-sense:arduino-nano-33-ble-sense.4.jpg?nolink |}}
На плате также распаян IMU-модуль на 9 степеней свободы, который содержит трёхосевые сенсоры: акселерометр, гироскоп и магнитометр. Приведённый сет модулей, позволяет создать на Arduino Nano BLE собственный фитнес-браслет, умные часы или другой мобильный проект с беспроводной связью по Bluetooth.
===== Подключение и настройка =====
==== Шаг 1 ====
[[articles:arduino-ide-install|Скачайте и установите]] на компьютер интегрированную среду разработки Arduino IDE.
==== Шаг 2 ====
По умолчанию среда Arduino IDE настроена только на AVR-платы. Для работы с платформой Arduino Nano 33 BLE Sense — [[:articles:arduino-boards-manager#добавление_плат_arduino_семейства_mbed_os|добавьте в менеджере плат поддержку платформ Mbed OS]].
===== Элементы платы =====
{{ :products:arduino-nano-33-ble-sense:arduino-nano-33-ble-sense-annotation.png?nolink |}}
==== Беспроводной модуль U-blox NINA-B306 ====
Arduino Nano 33 BLE выполнена на чипе {{ :products:arduino-nano-33-ble-sense:ublox-nina-b306-datasheet.pdf |U-blox NINA-B306}}, который включает в себя 32-битный микроконтроллер Nordic nRF52840 на архитектуре ARM Cortex-M4 с тактовой частотой 64 МГц, 1 МБ флеш-памяти и 256 КБ оперативной памяти. Чип NINA-B306 так же обеспечивает связь Bluetooth v5.0 в диапазоне 2,4 ГГц и поддерживает энергосберегающий протокол [[https://www.arduino.cc/en/Reference/ArduinoBLE|ArduinoBLE]].
==== IMU-сенсор ====
IMU-сенсор на 9 степеней свободы включает в себя акселерометр, компас и магнитометр. Сборка выполнена на чипе {{ :products:arduino-nano-33-ble-sense:lsm9ds1-datasheet.pdf |LSM9DS1}} по технологии SiP (англ. System-in-Package — система в корпусе), где акселерометр, гироскоп и магнитометр лежат методом бутерброда в пластиковом корпусе. Для примеров работы используйте [[https://www.arduino.cc/en/Reference/ArduinoLSM9DS1|ArduinoLSM9DS1]].
==== Метеосенсор HTS221 ====
Датчик {{ :products:arduino-nano-33-ble-sense:hts221-datasheet.pdf |HTS221}} определяет температуру и относительную влажность воздуха в окружающем пространстве и выдаёт их значения в 16-битном формате. Для запуска примеров работы используйте библиотеку [[https://www.arduino.cc/en/Reference/ArduinoHTS221|ArduinoHTS221]].
==== Барометр LPS22HB ====
Датчик атмосферного давления {{ :products:arduino-nano-33-ble-sense:lps22hb-datasheet.pdf |LPS22HB}} служит альтиметром для носимого гаджета или барометром для метеостанции. Для запуска примеров работы используйте библиотеку [[https://www.arduino.cc/en/Reference/ArduinoLPS22HB|ArduinoLPS22HB]].
==== Сенсор APDS-9960 ====
Датчик {{ :products:arduino-nano-33-ble-sense:apds9960-datasheet.pdf |Avago APDS-9960}} от Broadcom использует четыре фотодиода с ИК-излучателями для измерения расстояния и распознавания базовых жестов: взмаха руки влево или вправо, вверх-вниз и вперёд-назад. Также он умеет распознавать цвета через интенсивность каналов RGB и уровень освещённости. Для запуска примеров работы используйте библиотеку [[https://www.arduino.cc/en/Reference/ArduinoAPDS9960|ArduinoAPDS9960]].
==== Микрофон MP34DT05 ====
Встроенный цифровой микрофон {{ :products:arduino-nano-33-ble-sense:mp34dt05a-datasheet.pdf |MP34DT05}} пригодится для распознавания коротких голосовых команд или записи звука. Для запуска примеров работы используйте библиотеку [[https://www.arduino.cc/en/Reference/PDM|PDM]].
==== USB порт ====
Разъём micro-USB предназначен для прошивки платформы Arduino Nano Every с помощью компьютера.
==== Светодиодная индикация ====
^ Имя светодиода ^ Назначение ^
| ON |Информационный индикатор питания.|
| L | Пользовательский светодиод на ''13'' пине микроконтроллера. Используйте определение ''LED_BUILTIN'' для работы со светодиодом. При задании значения высокого уровня светодиод включается, при низком – выключается.|
| RGB | Пользовательский RGB-светодиод с общим анодом. Катоды красного, зелёного и синего цвета выведены на ''22'', ''23'' и ''24'' пине микроконтроллера соответственно. Для удобства используйте встроенные в Arduino IDE определения ''LEDR'', ''LEDG'' и ''LEDB'' для работы с RGB-светодиодом. При задании значения высокого уровня светодиоды выключается, при низком – включается.|
==== Понижающий регулятор 3V3 ====
Импульсный понижающий регулятор напряжения {{ :products:arduino-nano-33-ble-sense:mpm3610-datasheet.pdf |MPM3610}} обеспечивает питание модуля [[#беспроводной_модуль_u-blox_nina-b306|U-blox NINA-B306]] и другой логики платформы при подключении платформы через пин ''Vin''. Диапазон входного напряжения от 5 до 18 вольт. Выходное напряжение 3,3 В с максимальным выходным током 1,2 А.
==== Кнопка RESET ====
Пользовательская кнопка с двумя полезными функциями:
* Один клик (Single Сlick): служит для сброса микроконтроллера.
* Двойной клик (Double Click): переводит микроконтролер в BOOT-режим, который пригодиться при зависании платы или дургих сбоев в программе.
===== Распиновка =====
{{ :products:arduino-nano-33-ble-sense:arduino-nano-33-ble-sense-pinout.png?nolink |}}
==== Пины питания ====
* **VIN** Пин для подключения внешнего источника напряжения в диапазоне от 5 до 18 вольт.
* **5V:** Для обратной совместимости с проектами на Arduino Nano пин 5V оставили на месте, но на плате отсутствует стабилизатор напряжения на 5 вольт и пин висит в воздухе. Чтобы получить активную линию питания на 5 вольт, вам понадобится спаять перемычку для площадок VUSB и подвести внешнее питание 5 вольт через USB-порт.
* **3V3** Пин от стабилизатора напряжения с выходом 3,3 вольта и максимальных током 1,2 А. Регулятор обеспечивает питание чипа [[#беспроводной_модуль_u-blox_nina-b306|U-blox NINA-B306]] и другой вспомогательной логики платы.
* **GND** Выводы земли.
==== Порты ввода/вывода ====
В отличие от большинства плат Arduino, родным напряжением Arduino Nano 33 BLE Sense является 3,3 В, а не 5 В. Выходы для логической единицы выдают 3,3 В, а в режиме входа ожидают принимать не более 3,3 В. Большее напряжение может повредить микроконтроллер!
Будьте внимательны при подключении периферии: убедитесь, что она может корректно функционировать в этом диапазоне напряжений.
* **Цифровые входы/выходы** 22 пина: ''D0''–''D21''\\ Логический уровень единицы — 3,3 В, нуля — 0 В. Максимальный ток выхода — 15 мА. К контактам подключены подтягивающие резисторы, которые по умолчанию выключены, но могут быть включены программно.
* **ШИМ** 22 пина: ''D0''–''D21''\\ Позволяет выводить аналоговые значения в виде ШИМ-сигнала. По умолчанию разрядность «ШИМ» установлена в 8 бит. Изменить разрядность «ШИМ» можно с помощью функции [[https://www.arduino.cc/reference/en/language/functions/zero-due-mkr-family/analogwriteresolution/|analogWriteResolution()]].
* **АЦП** 8 пинов: ''A0''–''A7''\\ Позволяет представить аналоговое напряжение в виде цифровом виде. По умолчанию разрядность «АЦП» установлена в 10 бит. Изменить разрядность «АЦП» можно с помощью функции [[https://www.arduino.cc/reference/en/language/functions/zero-due-mkr-family/analogreadresolution/|analogReadResolution()]]. Диапазон входного напряжения от 0 до 3,3 В. При подаче большего напряжения микроконтроллер может выйти из строя.
* **I²C:**\\ Для общения с периферией по интерфейсу «I²C». Для работы используйте библиотеку [[https://www.arduino.cc/en/Reference/Wire|Wire]].
* **I²C** пины ''SDA/D18'' и ''SCL/D19''\\ Для коммуникации платы Arduino с другими [[amp>collection/boards?utm_source=man&utm_campaign=arduino-nano-33-ble-sense&utm_medium=wiki|платами расширения]] и [[amp>collection/sensors?utm_source=man&utm_campaign=arduino-nano-33-ble-sense&utm_medium=wiki|сенсорами]] по параллельному интерфейсу.
* **I²C1** пины ''SDA/D30'' и ''SCL/D31''\\ Используется для общение с беспроводным модем [[#беспроводной_модуль_u-blox_nina-b306|U-blox NINA-B306]].
* **SPI:** пины ''MOSI/D11'', ''MISO/D12'' и ''SCK/D13''\\ Для общения с периферией по интерфейсу «SPI». Для работы — используйте библиотеку [[https://www.arduino.cc/en/Reference/Spi|SPI]].
* **UART/Serial:**\\ Платформа поддерживает несколько последовательных интерфейсов. Для работы — используйте методы библиотеки [[https://www.arduino.cc/en/Reference/Serial|Serial]].
* **Serial/SerialUSB** пины: ''D−/D31/C55'' и ''D+/D32/C54''\\ Выводы шины соединены с USB-разъёмом платы. Используется для прошивки и отладки платформы через ПК.
* **Serial1** пины: ''RX/D0/C38'' и ''TX/D1/C37''\\ Для коммуникации платы Arduino с другими [[amp>collection/boards?utm_source=man&utm_campaign=arduino-nano-33-ble-sense&utm_medium=wiki|платами расширения]] и [[amp>collection/sensors?utm_source=man&utm_campaign=arduino-nano-33-ble-sense&utm_medium=wiki|сенсорами]] по последовательному интерфейсу.
===== Принципиальная и монтажная схемы =====
{{:products:arduino-nano-33-ble-sense:arduino-nano-33-ble-sense-schematic.png?direct&390 |}}
{{ :products:arduino-nano-33-ble-sense:arduino-nano-33-ble-sense-layout-top.png?direct&280|}}
{{ :products:arduino-nano-33-ble-sense:arduino-nano-33-ble-sense-layout-bottom.png?direct&280|}}
===== Габаритный чертёж =====
{{ :products:arduino-nano-33-ble-sense:arduino-nano-33-ble-sense-mechanical-drawing.png?nolink |}}
===== Характеристики =====
* Чипы: NINA-B306, LSM9DS1
* Входное напряжение через Vin: 5–18 В
* Напряжение логических уровней: 3,3 В
* Порты ввода-вывода: 22
* Пины с АЦП: 8
* Разрядность АЦП: 8/10/12 бит (по умолчанию 10 бит)
* Пины с ШИМ: 22 (до 4 каналов)
* Разрядность ШИМ: 8/10/12 бит (по умолчанию 8 бит)
* Аппаратные интерфейсы SPI: 1
* Аппаратные интерфейсы I²C: 1
* Аппаратные интерфейсы UART: 1
* Максимальный выходной ток с пина: 15 мА
* Суммарный выходной ток с пинов: до 25 мА
* Габариты платы с ножками: 45×18×13 мм
==== Беспроводной модуль U-blox NINA-B306 ====
* Микроконтроллер: Nordic nRF52840
* Вычислительное ядро: ARM Cortex M4 (32 бита)
* Тактовая частота: 64 МГц
* Flash-память: 1 МБ
* SRAM-память: 256 КБ
* Частотный диапазон связи: 2,4 ГГц
* Стандарт связи: Bluetooth v5.0 с поддержкой BLE
==== IMU-сенсор ST LSM9DS1 ====
* Диапазон измерения ускорения: ±2/±4/±8/±16g
* Диапазон измерения поворота: ±245/±500/±2000 град./с
* Диапазон измерения магнитной индукции: ±4/±8/±12/±16 Гс
* Частота опроса акселерометра и гироскопа: 14,9–952 Гц
* Частота опроса магнитометра: 0,625–80 Гц
===== Ресурсы =====
* [[amp>product/arduino-nano-33-ble-sense?utm_source=man&utm_campaign=arduino-nano-33-ble&utm_medium=wiki|Arduino Nano 33 BLE Sense]] в магазине.
* [[https://github.com/amperka/hardware-drawings/blob/master/arduino-nano-33-ble-sense.svg|Векторное изображение Arduino Nano 33 BLE]]
* {{ :products:arduino-nano-33-ble-sense:ublox-nina-b306-datasheet.pdf |Datasheet на чип U-blox NINA-B306}}
* {{ :products:arduino-nano-33-ble-sense:lsm9ds1-datasheet.pdf |Datasheet на IMU-сенсор LSM9DS1}}
* {{ :products:arduino-nano-33-ble-sense:hts221-datasheet.pdf |Datasheet на датчик температуры и влажности HTS221}}
* {{ :products:arduino-nano-33-ble-sense:lps22hb-datasheet.pdf |Datasheet на барометр LPS22HB}}
* {{ :products:arduino-nano-33-ble-sense:apds9960-datasheet.pdf |Datasheet на датчик жестов, освещенности, цвета и приближения в одном чипе APDS-9960}}
* {{ :products:arduino-nano-33-ble-sense:mp34dt05a-datasheet.pdf |Datasheet на цифровой микрофон MP34DT05}}
* {{ :products:arduino-nano-33-ble-sense:mpm3610-datasheet.pdf |Datasheet на понижающий регулятор 3V3 MPM3610}}
* [[https://www.arduino.cc/en/Reference/ArduinoLSM9DS1|Библиотека для IMU-сенсора]]
* [[https://www.arduino.cc/en/Reference/ArduinoHTS221|Библиотека на датчик температуры и влажности HTS221]]
* [[https://www.arduino.cc/en/Reference/ArduinoLPS22HB1|Библиотека на барометр LPS22HB]]
* [[https://www.arduino.cc/en/Reference/ArduinoAPDS9960|Библиотека на датчик жестов, освещенности, цвета и приближения в одном чипе APDS-9960]]
* [[https://www.arduino.cc/en/Reference/PDM|Библиотека на цифровой микрофон MP34DT05]]
* [[https://www.arduino.cc/en/Reference/ArduinoBLE|Библиотека ArduinoBLE]]