====== Arduino Nano 33 BLE: распиновка, схема подключения и программирование ====== [[amp>product/arduino-nano-33-ble?utm_source=man&utm_campaign=arduino-nano-33-ble&utm_medium=wiki|Arduino Nano 33 BLE]] — компактная платформа для разработки на чипе U-blox NINA-B306 с микроконтроллером Nordic nRF52840 и беспроводным модулем Bluetooth BLE. {{ :products:arduino-nano-33-ble:arduino-nano-33-ble.4.jpg?nolink |}} На плате также распаян IMU-модуль на 9 степеней свободы, который содержит трёхосевые сенсоры: акселерометр, гироскоп и магнитометр. Приведённый сет модулей, позволяет создать на Arduino Nano BLE собственный фитнес-браслет, умные часы или другой мобильный проект с беспроводной связью по Bluetooth. ===== Подключение и настройка ===== ==== Шаг 1 ==== [[articles:arduino-ide-install|Скачайте и установите]] на компьютер интегрированную среду разработки Arduino IDE. ==== Шаг 2 ==== По умолчанию среда Arduino IDE настроена только на AVR-платы. Для работы с платформой Arduino Nano 33 BLE — [[:articles:arduino-boards-manager#добавление_плат_arduino_семейства_mbed_os|добавьте в менеджере плат поддержку платформ Mbed OS]]. ===== Элементы платы ===== {{ :products:arduino-nano-33-ble:arduino-nano-33-ble-annotation.png?nolink |}} ==== Беспроводной модуль U-blox NINA-B306 ==== Arduino Nano 33 BLE выполнена на чипе {{ :products:arduino-nano-33-ble: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:lsm9ds1-datasheet.pdf |LSM9DS1}} по технологии (англ. System-in-Package — система в корпусе), где акселерометр, гироскоп и магнитометр лежат методом бутерброда в пластиковом корпусе. Для примеров работы используйте [[https://www.arduino.cc/en/Reference/ArduinoLSM9DS1|ArduinoLSM9DS1]]. ==== 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: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:arduino-nano-33-ble-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 является 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&utm_medium=wiki|платами расширения]] и [[amp>collection/sensors?utm_source=man&utm_campaign=arduino-nano-33-ble&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&utm_medium=wiki|платами расширения]] и [[amp>collection/sensors?utm_source=man&utm_campaign=arduino-nano-33-ble&utm_medium=wiki|сенсорами]] по последовательному интерфейсу. ===== Принципиальная и монтажная схемы ===== {{:products:arduino-nano-33-ble:arduino-nano-33-ble-schematic.png?direct&390 |}} {{ :products:arduino-nano-33-ble:arduino-nano-33-ble-layout-top.png?direct&280|}} {{ :products:arduino-nano-33-ble:arduino-nano-33-ble-layout-bottom.png?direct&280|}} ===== Габаритный чертёж ===== {{ :products:arduino-nano-33-ble:arduino-nano-33-ble-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?utm_source=man&utm_campaign=arduino-nano-33-ble&utm_medium=wiki|Arduino Nano 33 BLE]] в магазине. * [[https://github.com/amperka/hardware-drawings/blob/master/arduino-nano-33-ble.svg|Векторное изображение Arduino Nano 33 BLE]] * {{ :products:arduino-nano-33-ble:ublox-nina-b306-datasheet.pdf |Datasheet на чип U-blox NINA-B306}} * {{ :products:arduino-nano-33-ble:lsm9ds1-datasheet.pdf |Datasheet на IMU-сенсор LSM9DS1}} * {{ :products:arduino-nano-33-ble:mpm3610-datasheet.pdf |Datasheet на понижающий регулятор 3V3 MPM3610}} * [[https://www.arduino.cc/en/Reference/ArduinoLSM9DS1|Библиотека для IMU-сенсора]] * [[https://www.arduino.cc/en/Reference/ArduinoBLE|Библиотека Bluetooth BLE]]