Реклама ⓘ
Главная » Микроконтроллеры
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Реклама ⓘ

QuickLogic QuickFeather Development Kits

Искусственный интеллект на периферии включает в себя загрузку моделей машинного обучения в микроконтроллеры, что позволяет им принимать гораздо более «разумные» решения по более широкому диапазону данных, чем традиционно запрограммированное устройство. В этом проекте рассказывается о том, как начать работу с этой техникой, используя один из QuickLogic QuickFeather Development Kits и набор инструментов SensiML для сбора данных, создания модели и ее развертывания. 

 

 

 

Комплект для разработки QuickFeather - устройство, которое сочетает в себе множество функций и занимает мало места. Вот некоторые из характеристик:

  • Процессор QuickLogic EOS S3 (первый микроконтроллер Arm Cortex-M4F с поддержкой FPGA, полностью поддерживаемый Zephyr OS)
  • 16 Мб флеш-памяти
  • Акселерометр mCube MC3635
  • Датчик давления Infineon DPS310
  • Цифровой микрофон Infineon IM69D130 PDM

Плата QuickFeather  совместима с форм-фактором Adafruit Feather и построена на основе программного обеспечения с полностью открытым исходным кодом (включая инструменты Symbiflow FPGA).

 

SensiML

SensiML, дочерняя компания QuickLogic, предлагает передовые программные инструменты AutoML, позволяющие разработчикам приложений быстро создавать интеллектуальные устройства IoT, преобразовывая необработанные данные датчиков в автономную значимую информацию. Флагманское решение компании, SensiML Analytics Toolkit (https://sensiml.com/), представляет собой платформу для сквозной разработки, охватывающую сбор данных, маркировку, автоматическое создание алгоритмов и микропрограмм и тестирование. SensiML Toolkit поддерживает широкий спектр ядер микроконтроллеров Arm® Cortex®-M и выше, процессоры Intel® на базе x86 и гетерогенные ядра SoC, такие как платформа Quicklogic S3 с оптимизацией FPGA.

Необходимо зарегистрироваться.

 Начальная настройка  QuickFeather Development Kits

Сначала необходимо загрузить прошивку на плату QuickFeather для сбора данных для использования с SensiML Data Capture Lab. Скачать прошивку можно со страницы https://sensiml.com/documentation/firmware/quicklogic-quickfeather/quicklogic-quickfeather.html#flashing-quickfeather-firmware

Для загрузки прошивки требуется python 3.6 (или выше), git,  приложение TinyFPGA Programmer Application и python-библиотека tinyfpgab. В Windows PowerShell или cmd выполняем

git clone --recursive https://github.com/QuickLogic-Corp/TinyFPGA-Programmer-Application
pip3 install tinyfpgab

После помещения этого .bin файла в папку TinyFPGA-Programmer-Application, подключаем устройство через USB и нажмите кнопку RST на QuickFeather, а затем кнопку USR в течение пяти секунд после этого. Это приводит к тому, что светодиодный индикатор начинает мигать зеленым цветом, что указывает на то, что плата находится в режиме загрузки. 

В этот момент определяем порт подключения платы. До данных действий порт не определяется!!!

В командной строке переходим в папку TinyFPGA-Programmer-Application и запускаем команду

python tinyfpga-programmer-gui.py --port COMX --m4 quickfeather-simple-stream-data-collection.bin --mode m4

После завершения загрузки программы нажимаем на плате кнопку RST, чтобы загрузить новое приложение. Светодиод должен мигать синим в течение пяти секунд, а затем погаснет.

Настройка SensiML Data Capture Lab

SensiML Data Capture Lab - это приложение  позволяющее захватывать данные с устройства и передавать их на главный компьютер, где их затем можно обрабатывать и экспортировать в SensiML Analytics Toolkit. Загружаем приложение со страницы https://sensiml.com/download/

Устанавливаем программу и запускаем. Логин и пароль для входа идентичен данным для входа на сайт SensiML Analytics Toolkit.

Создаем новый проект

И выбираем режим захвата данных Capture (Switch Modes --> Capture)

Настраиваем источник данных

Выбираем QuickFeather Simple Stream, Параметры Motion (данные акселерометра)

 

И сохраняем под именем Sensor1

Режим захвата Simple Streaming требует использования контактов UART на QuickFeather, поэтому подключаем контакты QuickFeather к адаптеру USB к TTL :

USB-UART QuickFeather Development Kits
GND GND
+3.3V +3.3V
Tx IO_45
Rx IO_44

 


После подключения устройства, 

 

По нажатию на кнопку Connect происходит подключение к плате и мы можем видеть данные, приходящие с данного источника

Далее необходимо вести запись данных, По кнопке Record. Но сначала определим значения меток и метаданных. Метки - это определенные события, которые мы хотим выделить из данных. Допустим, мы хотим определять следующие события:

  • подъем-опускание датчика влево (для команды "влево") - leftupdown
  • подъем-опускание датчика вправо (для команды "вправо") - rightupdown
  • неподвижно - idle

Значит добавляем следующие метки - idle, LeftUpDown, RightUpDown

Для метаданных я добавил Class и выбрал два значения: Train и Test, что означает, что каждый захват предназначен либо для обучения, либо для тестирования.

Теперь можно приступать к сбору данных. По кнопке Sensor Select выбираем необходимые данные (мне нужно только значение акселерометра по оси x)

 

Нажимаем на кнопку Begin Recording и совершаем движения платой. Записываем несолько файлов данных Train и несколько Test.

 

Теперь в каждом файле выбираем сегменты (нажимаем правую кнопку мыши и не отпуская тянем) и присваеваем им метки idle, LeftUpDown, RightUpDown

Эти данные синхронизируются с облаком SensiML. 

Analytics Studio - Analytics Studio - это приложение в облаке, которое фильтрует и оптимизирует данные помеченных датчиков с помощью алгоритмов машинного обучения. Он генерирует модель (SensiML Knowledge Pack), готовую для прошивки в прошивку выбранного вами устройства.

Заходим в Analytics Studio и выбираем свой проект

Подготовим данные, настроив параметры (Пункт Prepare Data)

Для построения модели переходим во вкладку Build Model, выставляем параметры и нажимаем на кнопку Optimize

 

 По завершении будут созданы 5 моделей.

На вкладке Test Model мы можем протестировать каждую модель на метаданных Test.\

 

 

 

Выбираем лучшую модель. На вкладке Download Model мы создадим SensiML Knowledge Pack. SensiML Knowledge Pack берет модель обнаружения событий и преобразует ее в двоичный файл или файл библиотеки, который можно запускать на аппаратном устройстве. Когда SensiML Knowledge Pack находится на аппаратном устройстве, он начинает выводить идентификаторы классификации, которые соответствуют интересующим вас событиям.

 

В данном случае я создаю бинарный файл для загрузки на плату QuickFeather Development Kits. Переносим архив в папку TinyFPGA-Programmer-Application и извлекаем файлы.

 

Теперь в командной строке даем команду на прошивку платы QuickFeather Development Kits загруженной прошивкой

Подключаем плату к последовательному порту, открываем программу Com Port Toolkit, выставляем скорость передачи 460800 и соединяемся. В последовательный порт приходят данные

Параметры Classification смотрим в файле models.json

ModelDescriptions": [{"Name": "Pipeline1_rank_4", "ClassMaps": {"1": "LeftUpDown", "2": "RightUpDown", "3": "idle", "0": "Unknown"},

Проверяем работу модели. Если результат не устраивает, проводим переобучение.

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
Комплект разработчика QuickLogic QuickFeather Development Kits1 Поиск в магазине ОтронВ блокнот
Адаптер UART-TTL1 Поиск в магазине ОтронВ блокнот
Добавить все

Скачать список элементов (PDF)

Теги:

Опубликована: 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (2) | Я собрал (0) | Подписаться

0
Публикатор #
На форуме автоматически создана тема для обсуждения статьи.
Ответить
0
_abk_ #
Описан сферический конь в вакууме. Статья может быть интересна только тому, кто держит в руках упомянутый кит и не знает, что с ним делать. Добрый совет. Последние ваши статьи были бы гораздо интереснее, если бы содержали несколько вводных предложений, посвящающих в тему еще не посвященных: для чего это нужно, где применяется практически и какие от этого применения всем плюшки. И совсем хорошо было бы, если бы статья содержала конкретный законченный пример применения (в данном случае кита), который заинтересованный читатель мог бы повторить и порадоваться, что у него тоже получилось. А эта статья создает ощущение, что заглянул на какую-то лекцию в ее середине и ушел, не дождавшись окончания. В статье нет ни начала, ни конца. Для кого вы ее писали? Минимально хотя бы об этом надо было сказать.
Отредактирован 05.05.2021 06:18
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическая мощность?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

AVR-программатор USB ASP
AVR-программатор USB ASP
Ветрогенератор USB осциллограф DSO-2090
вверх