Главная » Микроконтроллеры
Призовой фонд
на ноябрь 2021 г.
1. Рюкзак Mean Well
Компэл
2. Инвертор авто Mean Well 150 Ватт
Компэл
3. Термос MeanWell
Компэл

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

Программатор Pickit3
Программатор Pickit3
Raspberry Pi 2 Конструктор - темброблок на LM1036
вверх