Maixduino быстрый старт
В конце 2018 года был анонсирован чип Kendryte K210. Kendryte K210 - это система на кристалле (SoC), которая объединяет: два 64-битных ядра RISC-V IMAFDC (RV64GC), каждое со встроенным независимым FPU и тактовой частотой от 400 до 600 МГц; Аппаратный ускоритель сверточных нейронных сетей (CNN) KPU; Аппаратный ускоритель аудио APU; SRAM 8 МБ.
Особенности Kendryte K210
- Kendryte K210 - двухъядерный 64-разрядный RISC-V процессор с частотой 400 МГц (разгоняемый до 800 МГц)
- Аппаратный ускоритель KPU CNN
- Аппаратный ускоритель APU с поддержкой до 8 микрофонов, частота дискретизации до 192 кГц
- FPIOA (Field Programmable IO Array), отображающий 255 функций для всех 48 GPIO на чипе.
- SRAM 8 Мбайт общего назначения, включая 5.9 МБ, используемые в качестве памяти AI SRAM
- AXI ROM для загрузки пользовательской программы из SPI-памяти
Kendryte K210 поддерживает платформы глубокого обучения Tiny-Yolo, Mobilenet и TensorFlow Lite с идентификацией изображений QVGA с частотой 60fps или VGA - 30fps.
- Приложения Smart Home (Умный Дом), такие как роботы-уборщики, умные колонки, электронные дверные замки, домашний мониторинг;
- Приложения медицинской промышленности, такие как вспомогательная диагностика и лечение, распознавание медицинских изображений, экстренная сигнализация;
- Приложения Smart Industry, такие как промышленное оборудование, умная сортировка, мониторинг электрооборудования;
- Образовательные приложения, такие как образовательные роботы, интеллектуальные интерактивные платформы, проверка эффективности обучения;
- Сельскохозяйственные приложения, такие как сельскохозяйственный мониторинг, мониторинг вредителей и болезней, автоматизированный контроль и т. д.
В течение года появилось множество плат на основе данного чипа. Я конечно не мог пройти мимо и активно следил за развитием платформ на его основе. Оптимальной по соотношению цены и комплектации, на мой взгляд, является платформа Maixduino, представленная компанией Seeed studio. Maixduino представляет собой плату в форм-факторе Arduino uno, которая сочетает модуль sipeed M1 и ESP32-WROOM-32. На плате также установлен mems микрофон и аудио усилитель. В комплекте идет камера OV2640 и дисплей с разрешением 320*240. Прошивка и питание платы осуществляется через разъем USB-C. За общение с ПК отвечает микросхема CH552, которая представляет собой двухканальный USB-UART конвертер. Таким образом мы можем отдельно получить доступ как к SIPEED, так и к ESP32.
Maixduino
Характеристики Maixduino
| Модуль AI | Sipeed M1 / Sipeed MAIX-I AIoT |
| Система на кристалле (SoC) | Kendryte K210 (CPU+KPU+APU) |
| Процессор | 2 x 64-битных ядра RISC-V IMAFDC (RV64GC), каждое со встроенным независимым FPU, тактовая частота 400-600 МГц. 2 x 32Ki I-Cache (Кеш инструкций), 2 x 32Ki D-Cache (Кеш данных); Аппаратный ускоритель сверточных нейронных сетей (CNN) KPU; Аппаратный ускоритель аудио APU |
| ОЗУ | 8 МБ встроенной SRAM |
| Хранилище | Слот для карты Micro SD (TF); Встроенный Flash модуль на 16M |
| Видео вход | 24-контактный разъем камеры DVP; Поддерживает видео захват решением до 640×480 @ 30fps; Поддерживает форматы входного изображения YUV422 и RGB565 |
| Видео выход | Может выводить изображения как на KPU так и на дисплей — 24-контактный разъем для 8-битного ЖК-дисплея MCU |
| Аудио вход | Встроенный всенаправленный цифровой I2S MEMS Микрофон MSM261S4030H0 |
| Аудио выход | DAC+PA: ЦАП TM8211: 16-битный динамический диапазон; Низкое гармоническое искажение; NS4150: выходная мощность 3 Вт, разъем динамика с шагом 1.25 мм; КПД до 90%; |
| Беспроводная связь | Модуль ESP32: Поддерживает 2.4G 802.11.b/g/n 802.11 n (2,4 ГГц), скорость до 150 Мбит/с Полный стандарт Bluetooth v4.2, включая традиционный Bluetooth (BR/EDR) и Bluetooth Low Energy (BLE) |
| USB | 1 x USB 2.0 устройство тип C для питания и программирования как K210, так и ESP32 через двухканальный чип CH522 |
| Периферия | Arduino UNO-совместимые разъемы с цифровыми входами/выходами/ШИМ, I2C, UART, 6-кратными аналоговыми входами и сигналами питания |
| Питание | USB Type-C; 6 — 12 В, >600 мА через разъем питания; 4.8 — 5.2 В через Vin (?) |
| Кнопки | сброса (reset) и загрузки (boot) |
| Индикаторы (LED) | Питания (Power), TX-K210, RX-K210, TX-ESP32 и RX-ESP32 |
| Форм-фактор | Arduino Uno |
| Температурный диапазон | от -30 °C до 85 ° |
Структура Maixduino
Плата поставляется в пластиковом боксе с фирменной маркировкой Sipeed.
При подаче питания на плуту, если она в порядке, на дисплее появится приветственное сообщение на красном фоне.
Потребление при подключенном дисплее составляет порядка 220 мА.
При подключении к ПК, автоматически устанавливаются драйвера для CH552 - в системе появляются два виртуальных com-порта.
Работать с платой можно, используя предоставляемый производителем SDK, но этот путь для более опытных пользователей. Для менее опытных более удобным вариантом будет использование привычной Arduino IDE или Platformio. Но наиболее удобным вариантом будет использование специализированной IDE - MaixPy и языка MicroPython. MaixPy представляет собой адаптированную OpenMV IDE. Скачать MaixPy можно по ссылке.
MaixPy, имеет текстовый редактор, средство просмотра кадрового буфера, позволяющее видеть то, что видит камера, последовательный терминал для отладки и отображение гистограммы для облегчения отслеживания цвета. MaixPy поддерживает русский язык и интуитивно понятна.
В отличие от OpenMV IDE MaixPy не содержит встроенных примеров кроме одного. Дополнительные примеры можно найти на Github. Также можно использовать большинство примеров для OpenMV.
Для запуска текущего скрипта необходимо нажать кнопку, расположенную ниже кнопки подключения.
Пример helloworld.py просто выводит изображение с камеры на дисплей и частоту кадров (FPS) в терминал. При активном буфере кадра в MaixPy FPS составляет около 14, буфер кадра можно заблокировать FPS при этом немного увеличится до 16.
Доступны примеры, которые позволяют записывать видео и сохранять фото на MicroSD карту.
Также есть возможность воспроизводить видео, аудио и фото с карты памяти.
Kendryte K210 имеет встроенный ускоритель быстрого преобразования Фурье (FFT), работу которого можно проверить запустив скрипт demo_fft_spectrum.py, расположенный в папке hardware. В скрипте необходимо изменить пины шины I2S, к которым подключен микрофон: WS на 19 и SLCK на 18.
Для более серьезных примеров, использующих возможности машинного зрения, необходимо обновление прошивки и загрузка соответствующих обученных моделей нейронной сети. В следующих частях будут рассмотрены примеры детектирования и распознавания лиц.







Комментарии
Отправить комментарий