В настоящее время доступно множество плат разработки Интернета вещей (IoT). Но если вы посмотрите на платы разработки искусственного интеллекта (AI) IoT, то увидите, что выбор очень ограничен. Даже среди них те, у которых хорошая производительность, как правило, дорогие, а те, что дешевые, не обеспечивают достаточной производительности или ограничены каким-либо другим образом. Так же, как и вы, мы также искали плату AI IoT, которая была бы не такой дорогой и имела бы хорошую производительность. Именно тогда мы наткнулись на комплект Sipeed MaixDuino Ai Development. Он не только имеет разумную цену, но и поставляется с множеством полезных функций и периферийных устройств.
Maixduino, работающий на модуле Sipeed M1 AI, также оснащен такими интересными функциями, как сопроцессор ESP32 для подключения по WiFi и Bluetooth, 2,4-дюймовый ЖК-дисплей, датчик изображения VGA, слот для карты microSD и встроенный микрофон MEMS. Все это упаковано в плату размера Arduino Uno, которая совместима по выводам с Arduino Uno R3.
В продолжение данной статьи можете также прочитать статью о создании проектов искусственного интеллекта и машинного обучения с помощью Maixduino.
Давайте распакуем его
Теперь давайте рассмотрим содержимое упаковки Maixduino. Плата разработки и все ее дополнительные компоненты поставляются в прочной пластиковой коробке, которая обеспечивает защиту от любых повреждений.
Внутри коробки вы найдете саму плату разработки Maixduino AI с 2,5-дюймовым ЖК-дисплеем и модулем VGA-камеры GC0328.
Возможности комплекта разработки Sipeed MaixDuino Ai
Как мы уже говорили ранее, комплект разработки Sipeed MaixDuino Ai содержит множество функций. Вот некоторые из них:
- Ядро RISC-V Dual Core 64bit, с FPU.
- Частота 400 МГц (можно разогнать до 600 МГц).
- Встроенная SRAM-память 8 МБ.
- Распознавание изображений QVGA@60fps/VGA@30fps.
- Микрофонный массив распознавания речи (8 микрофонов).
- Фреймворк глубокого обучения: поддерживает TensorFlow, Keras, Darknet, Caffe и другие популярные фреймворки.
- Периферийные устройства FPIOA, UART, GPIO, SPI, I2C, I2S, ТАЙМЕР.
- Обработка видео.
- Нейросетевой процессор.
- FPU соответствует стандарту IEEE754-2008.
- Аудиопроцессор (APU).
- Ускоритель быстрого преобразования Фурье (БПФ).
- Встроенный нейросетевой процессор.
- Разъем: совместимый с интерфейсом Arduino, слот для карты TF, порт динамика.
- Беспроводная связь: поддержка 2.4G 802.11.b/g/n и Bluetooth 4.2.
- Аудио: микрофон MEMS, выход динамика 3 Вт.
- Интерфейс камеры DVP: разъем FPC 24P 0,5 мм, поддержка OV2640, OV5640, OV7740 и т. д.
- Интерфейс ЖК-дисплея: 24-контактный 0,5-мм FPC-разъем; поддержка 8-битного MCU LCD.
- Модуль ESP32: для подключения по WiFi и Bluetooth.
- Среда разработки: поддержка Arduino IED, MaixPy IDE, OpenMV IDE.
- 2,4-дюймовый 320x240 SPI TFT-дисплей.
- Модуль камеры VGA GC0328.
Обзор аппаратного обеспечения платы разработки искусственного интеллекта Sipeed Maixduino
Поскольку вы ознакомились с функциями комплекта, теперь давайте рассмотрим обзор оборудования для платы разработки Sipeed Maixduino. Плата разработки Sipeed Maixduino имеет все свои компоненты, собранные на одной стороне. Ниже приведены изображения маркировки деталей, представляющие каждый основной компонент.
Главной достопримечательностью платы разработки Sipeed Maixuino, конечно же, является модуль искусственного интеллекта Sipeed M1. Модуль Sipeed M1 основан на процессоре искусственного интеллекта K210 RISC-V от компании Kendryte. K210 оснащен двухъядерным процессорным чипом с независимым FPU, 64-битной шириной ЦП, 8 МБ встроенной SRAM, 400 регулируемой тактовой частотой и FPU двойной точности, поддерживающим умножение, деление и операцию квадратного корня. Он также имеет функции искусственного интеллекта, такие как аппаратный ускоритель нейронной сети KPU, блок обработки голоса (APU), программируемый массив ввода-вывода (FPIOA/IOMUX) и ускоритель быстрого преобразования Фурье. При обработке искусственного интеллекта K210 может выполнять такие операции, как свертка, пакетная нормализация, активация и объединение. В то же время также может выполняться предварительная обработка сканирования направления голоса и вывода голосовых данных.
Для подключения по WiFi и Bluetooth Sipeed Maixduino использует модуль ESP32-WROOM. Мало того, что некоторые контакты выведены на разъем в стиле Arduino для индивидуального использования. Также плата может питаться как от разъема постоянного тока, так и от порта USB типа C. Разъем постоянного тока может принимать входное напряжение 6–12 В постоянного тока. На плате имеются два тактильных переключателя: один для сброса платы, а другой для выбора загрузки платы. Для программирования и отладки Sipeed Maixduino использует USB-микроконтроллер CH552. С помощью специализированной прошивки ch55x_dualserial CH552 может создавать два виртуальных порта UART, которые можно использовать для программирования модуля Sipeed M1, а также модуля ESP32. Он также может автоматически определять сообщения загрузчика ESP32 и K210 и принудительно переводить его в режим ISP без необходимости какого-либо аппаратного управления потоком.
Sipeed Maixduino также содержит микрофон MEMS MSM261S4030H0 для захвата аудио, ЦАП TM8211 для декодирования звука I2S и усилитель мощности 3 Вт, построенный на основе NS4150 для аудиовыхода. Выход усилителя мощности может быть напрямую подключен к динамику 3 Вт через разъем JST с шагом 1,25 мм. На плате также имеется светодиод RGB, расположенный рядом с микрофоном MEMS для использования выходов. Другие светодиоды на плате включают светодиод питания вместе со светодиодами индикации RX и TX как для модуля Sipp M1, так и для ESP32. Также на плате имеется слот для карты microSD для хранения пояснений. Для сопряжения с дисплеем TFT на плате используется 24-контактный разъем FPC 0,5 мм. Дисплей, поставляемый в комплекте, представляет собой 2,4-дюймовый дисплей ST7789 TFT с разрешением 320x240 пикселей, и он использует 8-битную шину для сопряжения с модулем M1. 24-контактный интерфейс FPC камеры поддерживает различные модули камер, включая OV2640, OV5640, OV7740 и GC0328.
Распиновка платы разработки Sipeed Maixduino AI
На изображении выше четко показаны основные и альтернативные функции каждого контакта на плате разработки Maixduino. Как вы можете видеть, некоторые контакты напрямую подключены к модулю Sipeed M1, а некоторые — к модулю ESP32. Все цифровые контакты подключены к модулю M1, а все аналоговые контакты — к ESP32 SoC.
Несмотря на то, что форма и контакты совместимы с Arduino UNO R3, уровни выходного напряжения GPIO отличаются. Maixduino поддерживает только 3,3 В и 1,8 В в своих GPIO, что требует большого внимания при взаимодействии с внешними компонентами, в противном случае плата может быть повреждена. Контакт сброса совместим только с 1,8 В, будьте осторожны при его использовании. Плата также поставляется с базовой маркировкой контактов в стиле Arduino на нижней части печатной платы.
Использование Sipeed Maixduino с Arduino IDE
С точки зрения поддержки программного обеспечения Maixduino нас тоже не разочаровал. Sipeed Maixduino поддерживает множество популярных фреймворков, таких как MaixPy IDE, PlatformlO IDE и, наконец, наш любимый Arduino IDE. Он также поддерживает различные операционные системы реального времени, такие как Free-RTOS и RT-Thread. Поэтому в нашей статье мы будем использовать Arduino IDE, поскольку он очень популярен и прост в использовании. Подробные инструкции по настройке Maixduino IDE можно найти в официальной документации Miaxuino. Для начала откройте Arduino IDE и добавьте следующий URL в раздел URL дополнительного менеджера плат в настройках Arduino IDE.
http://dl.sipeed.com/MAIX/Maixduino/package_Maixduino_k210_index.json
После закрытия окна настроек Arduino найдите и установите пакет платы Miaxuino через менеджер плат.
После установки выберите плату Miaduino из меню инструментов, а также выберите соответствующий последовательный порт. При подключении устройство покажет два последовательных порта, выберите первый. В опции programer выберите программатор k-flash. Если вы его не выберете, вы не сможете запрограммировать плату. Оставьте остальные параметры такими же, как по умолчанию.
Внимание: прежде чем двигаться дальше, некоторые библиотеки, которые идут с пакетом платы Maixduino, устарели и могут вызывать некоторые ошибки компиляции. Чтобы устранить это, перейдите в репозиторий Maixduino GitHub и загрузите папку библиотеки. Скопируйте все библиотеки, кроме библиотеки Adafruit_GFX в папке библиотеки, в папку библиотеки в пути установки пакета платы. Когда будет предложено заменить все файлы.
Для начала откроем файл примера. Откройте базовый код примера дисплея под Sipeed_ST7789. Скомпилируйте код и загрузите его на плату. Теперь плата будет отображать некоторые базовые формы и текст на TFT-дисплее. Убедитесь, что все работает правильно.
Внимание: Если при загрузке возникли ошибки, например “a programmer is needed for uploading” («для загрузки требуется программатор»), убедитесь, что в меню инструмента выбран k-flash в качестве программатора. Если проблема не устранена, используйте загрузку с помощью опции программатора из меню Sketch вместо кнопки загрузки. Если при загрузке возникла ошибка тайм-аута, перезагрузите плату, удерживая кнопку загрузки, и попробуйте загрузить ошибку. Если плата застряла в режиме FT2232 с предупреждением «recv unknown op 96» , измените скорость передачи данных на 1 Мбит/с и попробуйте выполнить загрузку, а в случае неудачи измените скорость передачи данных на 1,5 Мбит/с и повторите загрузку. Если при компиляции возникла ошибка, связанная с библиотекой Arduino_GFX, обязательно удалите все существующие версии и установите версию 1.4.8 библиотеки Arduino_GFX.
Чтобы протестировать камеру, откройте пример sipeed_gc0328, который вы можете найти в обновленных библиотеках, которые вы скачали с GitHub. Этот пример отобразит видеопоток с камеры на TFT-экране.
Maixduino также поддерживает множество продвинутых приложений, таких как распознавание лиц, распознавание речи и множество других приложений ИИ (искусственного интеллекта). Вы можете найти примеры для всех этих приложений в репозитории GitHub, который мы предоставили ранее. Перед тем как закончить, мы также можем рассмотреть еще один пример, и для этого я выбрал пример распознавания речи. Для этого мы собираемся использовать библиотеку Maix-SpeechRecognizer от Andri. Загрузите файл voice_model.h и файл main.c в папку. Переименуйте файл main.c в файл ino и откройте его с помощью Arduino IDE. Убедитесь, что файл эскиза и файл voice_model.h находятся в одной папке.
После загрузки кода вы можете взаимодействовать с платой, используя крылатые фразы “Hey, Friday” или “Hey, Jarvis”. Плата уловит ваш голос через встроенный микрофон MEMS и запустит на нем алгоритм распознавания речи.
21 просмотров