Pull to refresh
53
14.2
Пирогов Владислав @vladipirogov

Инженер по автоматизированным системам управления

Send message

Попробуйте ESP32-C3. Я точно не менял, по идее должен меньше потреблять

От розетки - блок питания 5V

Может такое быть. Я в первом комментарии описал случай. Других проблем не было. Но если зависнет, то по MQTT ничего не передается, и сразу все определяется.

lcd тоже имелся, но надо было придумать применение дисплечику с электронными чернилами. Нашел статью на instructables, решил портировать

Симпатичный домик). До e-paper дисплея какое-то время тоже использовал семисегментный для отображения наружной температуры.

Если необходимо, чтобы wifi_start не зависел от успеха подключения, а продолжал выполнение, например, с отложенным подключением, то можно удалить wifi_event_group. В моем случае вроде как не критично. Или можно обрабатывать асинхронно подключения с event_handler. У меня была другая проблемма. Я изначально подключил вывод данных от ds18b20 на второй пин esp32. Затем просто выбрал свободный пин из левого ряда (25). Pin2 также является led-пином. Это приводило к тому, что после рестарта модуль мог не подключаться с нескольких попыток к wi-fi. Можно найти обсуждение этой проблемы, например на reddit.

Да, на Windows 10 все работало. Пробовал компилировать не только примеры. У меня IDF находится на C:/ диске. Можно еще попробовать export.ps1 вместо export.bat. На крайний случай написать в issue tracker.

Спасибо за совет. Пока немного есть времени, посмотрю в сторону перекрытия буферов. Я из теории также понял, что использования на первом этапе алгоритма окон, типа Hann за счёт плавного приближении функции к нулю по краям должно нивелировать обрывы и паразитные гармоники.

С данной моделью скорее всего жанры вряд ли будут лучше определяться. Я делал тестовый python-скрипт, где на вход подавал различные аудио файлы с выраженными жанрами. Модель не всегда справлялась даже с файлами из тестовой выборки. Композицию часто не легко однозначно отнести к определенному жанру. Например, я включил Nirvana Smells Like Teen Spirit. В запеве, алгоритм метался между жанрами, а вот в припеве он более-менее определил жанр как rock. ESP32-C3 взял потому что он у меня был, и на нем есть дисплей). Насчёт улучшения согласен, можно попробовать доработать алгоритм, выбрать другое железо. Я изначально решил портировать существующий алгоритм и модель, точнее модель обучил сам, но исходники уже готовые, Я только расширил список жанров.

Среди источников есть ссылка на плейлист по аудио-обработке. Cсылка с тайм-кодом на ролик с MFCC. Идея всего алгоритма - разделить спектры вокального тракта от гортанного пульса. Т.е., произвели первое преобразование FTT, взяли логарифм. После этого работаем с суммированием логарифмических спектров. Каждая логарифмическая составляющая также является в той или иной мере периодической. Затем применяется mel-фильтрация. Второе преобразование (как правило DCT) позволяет выразить эту периодику математически, при этом как бы в изначальном физическом виде. Лучше посмотрите ролик, автор неплохо все расставляет поп полкам.

Слои чаще всего подбираются на основании практики. Если рассмотреть различные примеры ML-моделей, то в итоге обнаруживаются, что-то вроде шаблонных структур. На Udemy есть неплохие курсы по Tensorflow. GPT может предлагать неплохие идею структуры Можете поэкспериментировать с моделью из этой статьи, изменить в кратности количества нейронов в слоях, убрать Dropout, и т.д., и понаблюдать графики обучения. Основная цель - это минимизация ошибок обучения, и избежания переобучения, т.е, чтобы модель хорошо работала на новых ранее не используемых данных.

Судя по всему, на kickstarter пожертвования начинаются с 19 £ (около 26 $).Комплект с антенной (вроде как для ранних покупателей) - 24 £ (около 32 $)

ESP32 с Bluetooth-стеком nimble поддерживает классическую схему advertising + scan response. Это значит, что можно отправлять базовый рекламный пакет (до 31 байта) и дополнять его ответом на сканирование. Насколько мне известно, ESP32 не поддерживает extended advertising, его стек не реализует передачу за пределами 37, 38, 39 adv. каналов. Scheduled advertising, как я понял, также пока не поддерживается. В Major Feature Support в таблице указано, что сейчас поддерживается, а что в разработке. Для экспериментов я приобрел также nRF52840 Dongle, думаю с ним можно эти фичи протестировать. Сейчас его использую в качестве сниффера BLE в Wireshark

Вы правы, это не досказано. Подразумевается, что существует IoT платформа, которая развернута в частном или публичном облаке. Приложение отдает данные по MQTT. Далее, конечно, зависит от конкретики. У меня был проект, где данные о производительности нефтяных скважин собирались с помощью Edge-платформы. Затем данные агрегировали в течение определённого времени и передавали в ML workflows. А логика workflow уже может предупреждать аварийные ситуации, проводить virtual rate estimation, и сравнивать с текущей и так далее.

Пожалуйста)

Пожалуйста. Пробуйте на практике тоже по материалам из статьи или книг. В комментариях тоже ссылки давали на подобные проекты

Можете писать в личку, если надо что-нибудь уточнить. Теорию я на самом деле описал общими словами. По I2C в основном брал материал с первой книги, мне показалось, что там довольно просто и наглядно написано. Не думал, что будет сложно для восприятия. Но на заметку принял. Я в свое время изучал по академическим материалам, там более детально с математикой

Спасибо. Я бегло просмотрел статью по ссылке. Подход там похожий. И модель сети тоже, последний слой - softmax для вычисления вероятностей классов. Используется Arduino среда, думаю, можно адаптировать на разные МК. В приведенных книгах есть примеры для Arduino и Raspberry pi Pico

Пожалуйста. Удачи вам с экспериментами. Пробуйте разные МК и фреймворки для сравнения.

Спасибо за комментарий.

В книге TinyML Cookbook жесты cirlce, cross, pad используются для управления просмотра Youtube. Я тоже решил взять эти три жеста, хотя никто не мешает выбрать любые другие. Мне понравилось, что в книге дается простое объяснение разным вопросам. Поэтому я дал ссылку на источники, чтобы читатель смог самостоятельно ознакомится с материалом в случае необходимости. Но я решил реализовать модель с нуля. Пробовал разные структуры сети, начал с LSTM, но остановился на модели, что привел в статье, она простая, быстро обучается на данной выборке, число нейронов можно можно даже уменьшить в два раза.

Четвертый класс есть смысл добавить, я скорее так и сделаю. Но, опять же никто не мешает любому добавить нужный класс, это делается легко. Выбирается нужный жест, делается его запись в файл, в словарь gestures добавляется имя класса, а выход softmax увеличивается на 1.

Надеюсь, издательство "Лань" выпустит издание с keras 3). У меня установлена keras 3.6.0. И модель строил в этой версии. Думаю многое зависит от структуры модели. Есно, после конвертации модель нужно тестировать.

Мне было интересно сбилдить tensorflow C++ на Raspberry pi, это не занимает много времени и ресурсов, и поведение модели похоже как на МК. Ну, как вы заметили, варианты могут быть разные.

ESP32-S3 клеиться прямым образом, он у меня был в наличии, и на нем тестировалась модель. В моем случае этом проекте ESP32-S3 потребляет 0,08 - 0.1 А, средняя температура 38 ℃

Information

Rating
243-rd
Registered
Activity

Specialization

Embedded Software Engineer, Software Architect