Arduino UNO Q: начало работы (характеристики, распиновка, примеры)
Компания Arduino была недавно приобретена Qualcomm, и вместе с этим они выпустили совершенно новую плату Arduino: Arduino UNO Q. Сохраняя тот же форм-фактор, что и предыдущие платы Arduino, она обладает уникальными, весьма впечатляющими характеристиками, которые могут вывести ваши IoT-проекты на новый уровень. На данный момент её главная особенность заключается в том, что она одновременно является микроконтроллером и микрокомпьютером (работающим под управлением Linux), и они могут легко обмениваться данными друг с другом, помимо других функций, которые мы упомянем в этой статье.
Знакомство с Arduino UNO Q
Arduino UNO Q — это новейшая плата Arduino, которая объединяет микроконтроллер (STM32U585) и микрокомпьютер с поддержкой Linux (Qualcomm Dragonwing QRB2210 SoC), сохраняя при этом классический форм-фактор платы Arduino.
Qualcomm Dragonwing™ QRB2210:
Четырёхъядерный Arm® Cortex®-A53 @ 2.0 ГГц
Графический ускоритель Adreno GPU 3D
2x ISP (13 МП + 13 МП или 25 МП) @ 30 кадров/с
STM32U585 Arm® Cortex®-M33 32-битный MCU:
Arm® Cortex®-M33 до 160 МГц
2 МБ флеш-памяти
786 КБ SRAM
Модуль вычислений с плавающей точкой (FPU)
Программирование платы Arduino UNO Q
Плата Arduino UNO Q может быть запрограммирована точно так же, как обычная Arduino UNO для управления её GPIO с помощью Arduino IDE, или вы можете использовать Arduino App Lab для работы как с микроконтроллером, так и с микрокомпьютером.
MCU программируется на C/C++, как вы обычно делаете для других плат Arduino, а для микрокомпьютера можно писать программы на Python.
Несмотря на то, что одной из интересных особенностей является возможность программировать и MPU, и MCU из одной IDE, вы по-прежнему можете сосредоточиться только на стороне Arduino или использовать только микрокомпьютер, как если бы вы работали с Raspberry Pi.
Итак, когда речь идёт о программировании платы Arduino UNO Q, мы можем выбрать:
Классический Arduino: используя только MCU;
Интегрированный App Lab: единая среда: скетчи на C/C++ для Arduino + программы на Python для микрокомпьютера с Linux;
Автономный Linux: использование платы как Raspberry Pi с доступом к Linux OS напрямую через SSH или как автономный компьютер.
Связь между MCU и микрокомпьютером
Что действительно интересно — микроконтроллер и микрокомпьютер могут обмениваться данными друг с другом с помощью инструмента/библиотеки под названием Router Bridge.
Например, на стороне Arduino вы можете собирать данные с датчиков и управлять выходами, а затем передавать эту информацию для обработки более сложными программами на стороне микрокомпьютера. Например, запуск моделей ИИ, обработка изображений и аудио, или подключение к продвинутым веб-приложениям — и всё это при сохранении управления оборудованием через MCU STM32.
Arduino App Lab
Arduino App Lab — рекомендуемое программное обеспечение для программирования платы Arduino UNO Q.
В Arduino App Lab вы пишете программы для Arduino на C/C++, как обычно, и можете писать и запускать программы на Python на стороне микрокомпьютера. Это универсальная среда разработки.
Ещё одна полезная функция и новинка здесь — это Bricks (Кирпичи). Это модульные строительные блоки, которые можно установить и добавить в ваши проекты для получения готовых к использованию функциональностей, таких как модели ИИ и другие более сложные возможности.
Итак, в Arduino App Lab мы можем иметь:
Arduino скетчи для MCU
Python скрипты для MPU
Bricks для вашего приложения
Режимы программирования
Когда речь идёт о программировании платы с помощью Arduino App Lab, она может быть запрограммирована в трёх различных режимах:
Подключение к ПК: программирование платы напрямую с компьютера через USB-кабель с использованием Arduino IDE или Arduino App Lab.
Автономный режим: запуск всего на самой плате как полноценного одноплатного компьютера с использованием предустановленного Arduino App Lab.
Беспроводной режим: подключение через Wi-Fi (или Bluetooth) для удалённого развёртывания и отладки кода с ПК или мобильного устройства через App Lab.
Использование как автономный компьютер
Как и Raspberry Pi, Arduino UNO Q может работать как автономный компьютер с Linux, если подключить клавиатуру, мышь и монитор, или вы можете использовать свой компьютер для отправки и выполнения команд в Терминале через SSH.
При использовании в качестве автономного компьютера вы можете использовать предустановленный Arduino App Lab для написания и запуска программ как для MCU, так и для микрокомпьютера.
Встроенная память и возможности подключения
Очень полезно то, что плата поставляется со встроенным хранилищем eMMC объёмом 16 ГБ или 32 ГБ, плюс 2 ГБ или 4 ГБ оперативной памяти LPDDR4, обеспечивая быстрый доступ к памяти и надёжное хранение данных для встраиваемых приложений.
Ещё одна очень важная функция для IoT-проектов — плата поддерживает Wi-Fi и Bluetooth.
Разъёмы расширения и коннекторы
Помимо классических GPIO-разъёмов (которые сохраняют совместимость с существующими шилдами), плата оснащена высокоскоростными разъёмами на задней стороне для подключения дисплеев, камер или аудиоустройств.
Плата также включает разъём Qwiic для plug-and-play интеграции со сторонними датчиками и исполнительными механизмами.
Кроме того, на плате есть встроенная светодиодная матрица, которая может быть полезна для предоставления обратной связи пользователю.
Распиновка Arduino UNO Q
UNO Q сохраняет знакомую компоновку классического UNO с 14 цифровыми I/O выводами (включая 6 PWM), 6 аналоговыми входами, выводами питания (3.3 В, 5 В, GND) и разъёмом ICSP, но добавляет выделенные высокоскоростные интерфейсы MIPI CSI/DSI для камер и дисплеев, а также разъём Qwiic I2C для удобного последовательного подключения датчиков.
Плата также оснащена четырьмя маленькими встроенными RGB-светодиодами, два из которых управляются MPU, а два других — MCU.
На следующем изображении представлен обзор распиновки Arduino UNO Q.
Распиновка Arduino UNO Q (источник изображения)
Для получения более подробной информации рекомендуем ознакомиться с полным PDF-файлом распиновки Arduino UNO Q.
Тестирование платы Arduino UNO Q
Как мы упоминали ранее, существуют различные способы использования и программирования платы Arduino UNO Q. В этом разделе мы быстро протестируем микроконтроллер и микрокомпьютер с помощью Arduino App Lab на вашем компьютере, при этом плата также подключена к компьютеру через USB-C.
Для получения дополнительной информации и других способов управления и программирования платы (через SSH, сетевой режим или как автономный компьютер) вы можете ознакомиться с официальным руководством пользователя Arduino UNO Q.
Установка и запуск Arduino App Lab на компьютере
1) Перейдите по этой ссылке и скачайте Arduino App Lab на свой компьютер.
2) Запустите установочный файл.
3) Запустите Arduino App Lab.
4) Подключите плату Arduino UNO Q к компьютеру с помощью кабеля USB-C.
Если у вас есть сомнения относительно процедуры установки, вы можете ознакомиться с инструкциями в официальной документации.
5) Затем подождите немного, пока ваш компьютер и IDE распознают плату. После этого выберите опцию USB.
Приложение Blink LED
Чтобы протестировать плату и дать вам небольшой обзор Arduino App Lab, давайте запустим встроенное приложение Blink LED.
На левой боковой панели нажмите на Examples и выберите пример Blink LED.
На левой боковой панели отобразятся все файлы приложения.
Убедитесь, что оно содержит папку python с кодом для запуска на MPU и папку sketch с кодом Arduino для запуска на MCU.
Обзор приложения Blink LED
В приложении есть файл README.md, который объясняет, как работает приложение и код.
По сути, помимо демонстрации управления одним из встроенных светодиодов MCU, оно также показывает, как передавать данные между MPU и MCU:
Программа на Python запускает цикл, который переключает состояние светодиода через регулярные интервалы.
Router Bridge обеспечивает связь между программой на Python и скетчем Arduino.
Программа на Python отправляет состояние светодиода в скетч Arduino.
Скетч Arduino получает состояние светодиода и соответственно управляет встроенным светодиодом.
Если вы откроете файл main.py, вот что вы должны увидеть:
А если вы откроете файл sketch.ino, вы увидите скетч Arduino.
Мы не будем объяснять, как работает код, поскольку это уже описано в файле README.md.
Запуск приложения
Теперь, чтобы запустить приложение, просто нажмите кнопку Run.
Подождите несколько минут, пока код компилируется и запускается на плате.
Во время запуска приложения и его работы программа переключится на вкладку Console. Она покажет прогресс запуска приложения, Serial Monitor и Python Shell. В данном конкретном примере ничего не выводится в Serial Monitor или Shell, поэтому они останутся пустыми.
Когда код начнёт выполняться, вы увидите, как встроенный красный светодиод мигает каждую секунду.
Заключение
Это был быстрый и простой обзор новейшей платы Arduino UNO Q. Для получения более подробной информации вы можете ознакомиться с официальной документацией.
Я считаю, что эта новая плата весьма полезна, и она открывает целый новый мир возможностей для IoT-приложений, которые сочетают простоту использования датчиков и периферийных устройств на микроконтроллере с более сложными моделями и приложениями, которые могут потребовать микрокомпьютер. Я думаю о таких вещах, как запуск моделей ИИ, сложные программы веб-серверов, создание собственной самостоятельно размещённой базы данных и многое другое.
Однако для новичков, которые только начинают знакомиться с IoT и микроконтроллерами, простая плата Arduino, ESP32 или Raspberry Pi Pico могут быть лучшим выбором, чтобы сначала понять, как работает микроконтроллер, прежде чем переходить к чему-то более сложному, как UNO Q. В качестве альтернативы они могут просто использовать только функциональность MCU платы и программировать её с помощью классической Arduino IDE — хотя я думаю, что это несколько избыточно для простых IoT-проектов и проектов автоматизации.
Что вы думаете об этой новой плате? Напишите нам в комментариях ниже.
Хотите начать работу с другими платами? У нас есть руководства по началу работы с ESP32, Raspberry Pi Pico, ESP8266 и Raspberry Pi: