Обычно я пишу циклы статей по двум причинам. Либо я участвую в какой-то разработке и, с одной стороны, хочу рассказать о ней, но с другой – описать что-то интересное про применённые там технологии, так как овладел ими в достаточной мере. Самый большой цикл был про комплекс Redd, который перерос в разработку USB-анализатора на его базе. Другая причина засесть за клавиатуру – я нашёл какую-то интересную поделку

В сегодняшней статье (которая, надеюсь, разрастётся до цикла) всё несколько иначе. Поделка сама нашла меня. Её разрабатывают в другом отделе нашей же компании. Но именно в соседнем отделе, не в моём. Как она устроена внутри, мне знать не положено. Зато я могу, вдобавок к чтению документации, не просто расспрашивать авторов про пользовательский интерфейс, а ещё и давать им советы, как его изменить.

Речь пойдёт про чип, который по задумке разработчиков должен помочь Embedded-программистам начать работу с Искусственным Интеллектом, не погружаясь в его недра, а оперируя только привычными им сущностями. Давайте разбираться более детально.



Зачем это надо


Если организация работает по проектной модели, то кто-то в ней находит Заказчика, который спускает некую задачу. Если задача базируется на хорошо известных для разработчиков технологиях – это просто отлично. Но в реальности, обычно от какого-то кусочка до абсолютно всего является новым. Станешь ждать проектов, где нет неизведанного – ну не будет работы, а значит – не будет денег. Знаем мы, что бывает с теми, кто ждёт принцев, отвергая реальные варианты… Поэтому обычно при старте проекта, народ садится и читает документацию, благо обычно новые вещи вовсе не невиданные, а просто непривычные. Можно сесть и разобраться за приемлемый срок.

Я не возьмусь рассуждать, насколько это надолго, но сейчас всё чаще Заказчики хотят, чтобы в системах были элементы, относящиеся к Искусственному Интеллекту. И вот тут возникла проблема. Всё, что я говорил выше про «просто непривычность», относилось к Embedded-технологиям. Давным-давно, когда наши ребята сделали первые робкие попытки взять проекты с ИИ, выяснилось, что классическому программисту там придётся туго. Там надо менять весь подход к работе.

Собственно, вместо просто программирования, надо выяснить, какой тип нейросети выбрать. Потом поставить SDK для него. Потом начать что-то делать, отличное от привычного программирования… В общем, осваивать много чего нового.

Нет, кто сразу привычен к этому, он всё сделает. Вот, скажем, мой сын, он какие-то там нейросети по учебным делам делает. Но когда я его попросил о помощи с одной моей несложной идейкой, выяснилось, что он это всё делает на уровне шаманства. Именно начинает думать, какой же пакет он возьмёт для работы… Может тот, может этот… Причём ориентируется по принципу «нутром чую», а любой программист-железячник скажет, что нутро – это не калиброванный измерительный инструмент. Ему подавай чёткое понимание процессов.

В общем, тем, кто привык к работе с железом, тяжко менять подход к работе. Лично я просто не касался этих новомодных штучек.

И вот возникла у нашего руководства идея спрятать нейросеть внутрь микросхемы. Сделать этакий как бы сопроцессор. Здесь «Этакий» и «как бы» — не слова паразиты. Настоящий сопроцессор реализован аппаратно. У нас же реализация программная. Наш код с нейросетью зашивается в отдельно припаиваемый микроконтроллер, но с точки зрения конечного пользователя, всё выглядит, как настоящий сопроцессор. Что и как работает внутри, никто не знает. Для конечного пользователя предоставляется привычный ему интерфейс. Сейчас это I2C, но в задумках есть и SPI. Для доступа к чипу имеется несложный API, оформленный в стиле, привычном именно системному программисту. Шлём чипу запросы, получаем ответы.

Собственно, именно такую штуку мне и дали для экспериментов. А так как разработчиков интересует как можно больше мнений, то ещё попросили описывать всё это в виде статей.

Какая сеть используется


Самый правильный подход с точки зрения науки – это попробовать много различных типов сетей, составить список достоинств и недостатков и выбрать лучшую или лучшие… Но наука разбивается о реалии. А реалии таковы, что на внутренний проект невозможно выделить бесконечное число сотрудников и платить им бесконечную зарплату за бесконечные эксперименты, большая часть из которых пойдёт в корзину.

Но зачем набивать шишки с нуля, если можно изучить опыт тех, кто их уже набил? Это позволит отбросить проверку заведомо бесперспективных вещей и выбрать те, которые позволят получить положительный опыт. А уже потом, когда этого опыта будет много, там и интуиция подтянется. И можно будет искать другие пути. А начать лучше с того, который хвалят другие.

В сети есть много статей и видеоматериалов от разработчиков ST, которые работают с ESN (Echo State Network) сетями, использующими резервуары. Вот пишу умные слова, а спроси меня кто в комментариях о подробностях, я не смогу ничего сказать. Для тех, кто интересуется подробностями, я попросил у наших разработчиков дать мне ссылки на теоретические статьи. Вот что мне выдали:

1) Types of Recurrent Neural Networks For Non-linear Dynamic System Modelling
2) A review on TinyML: State-of-the-art and prospects
3) Deep Reservoir Computing: A Critical Analysis
4) Long Short Term Memory-based anomaly detection applied to an industrial dosing pump

Правда, про эти резервуары у ST-шников можно судить только по теоретическим выкладкам. Практического кода нет. Мало того, даже теоретические выкладки у них расплывчатые, так что идти всё равно пришлось с нуля. Но хотя бы в ту сторону, где точно можно что-то найти. Почему именно ST? Авторитет этих разработчиков достаточно высок. Вряд ли они станут выкладывать какие-то выдумки и подгонять результаты под свои домыслы. Если пишут, что есть успех, значит есть. Поэтому в нашей разработке также используется ESN Сеть с резервуарами. И в принципе, наши ребята утверждают, что подтверждают цифры, заявленные в ST.

Что в итоге распознаём


В итоге, полученный чип способен распознавать аномалии в сигналах. Судя по разговорам тех, кто всё время работает с нейросетями, это очень известный термин. Но повторю: я с ними не работаю. И если не я один, то объясню собратьям суть решаемой задачи.

Допустим, у нас имеется некий двигатель. ST-шники любят рассказывать про бесколлекторный электромотор. Вот мы снимаем либо его вибрации, либо его звук. И обучаем сеть, что вот этот снятый сигнал – это одно нормальное поведение, вот этот – другое. А прочее – это аномалии. При желании, можно даже обучить, какой конкретный сигнал соответствует какой аномалии.

Ну, а дальше, ориентируясь на сигналы, можно как-то ловить аномалии и пользоваться ими. Простейший случай – аварийно всё отключать, чтобы система не пошла вразнос. Ну, или ещё какие меры принимать. Самые первые опыты велись на вентиляторе. Система училась определять скорость, на которой тот работает, анализируя вибрации, которые на разных скоростях будут разными. В одной из следующих статей, я планирую рассказать реальный случай, который я в своё время решал для анализа работы станка. Но тогда всё решалось путём сбора данных и программного анализа спектра. Штука хорошая, но собрать новые данные – это надо повозиться. Здесь же подкупает, что нажал на кнопочку, показал звук. Ещё раз нажал, показал другой звук. Несколько нажатий на кнопку, и система обучилась.

Да, под данный конкретный станок! Но зато именно под него она обучилась замечательно! Сеть же обучается быстро, буквально за секунды, так что можно калибровать аномалии под конкретное оборудование. Собрали, обучили, дальше оно работает. Для производства тысяч изделий за смену, необходимость обучить каждую индивидуально — это недостаток, а вот для штучных вещей, точная подгонка по месту — достоинство. Хотя, и в случае конвейерного производства… Ну, несколько раз нажать на кнопку и подождать по секунде. На телевизионном заводе в нашем городе в своё время по 700 изделий за смену выпускали, у которых каждому геометрию настройщики выставляли, и ничего! А тут — кнопку и робот нажать может.

В целом, спектр используемых сигналов может быть весьма широк. Однажды я встретил ведущего разработчика из той группы в продуктовом магазине. Он явно был на взводе. Прижал меня к прилавку с овощами и взахлёб рассказывал, что они попробовали распознавать с помощью этой системы жесты. Без какой-либо подготовки, точность распознавания составила 80%. С тех пор были приняты меры по повышению этой самой точности, но вот факт. Сигналы могут оказаться самыми удивительными и неожиданными. И возможно, многие сигналы могут быть классифицированы по классам и аномалиям.

Важная особенность обучения


Самая главная особенность ESN сетей – простота их обучения. Не нужны серьёзные вычислительные мощности, не нужны большие датасеты. Достаточно в течение нескольких секунд показать сети сигнал, чтобы она научилась классифицировать его. Если точнее, то мне сказали, что в целом, достаточно даже миллисекунд.

Сами разработчики утверждают, что при этом сеть обучается не строго на такой же сигнал, а на сигнал плюс-минус. Вот тут я даже знаю умное слово «переобучение», это когда нейросеть распознаёт только те образцы, которые ей показали и не воспринимает остальных. Это мне ребёнок рассказывал, объясняя важность большого датасета, которого в случае с ESN как раз нет. Я лично ещё только в начале экспериментов с чипом, так что ничего не скажу. Но в следующих статьях как раз буду уделять чувствительности к погрешностям особое внимание. Будем надеяться, что там всё в порядке.

Что за чип


Всё это дело реализовано в чипе ESP32-C3. Как объяснили те, кто отвечал за выбор, этот чип безумно дешёвый, но при этом достаточно мощный. Он имеется у большого количества продавцов. На него есть приличная документация. В общем, почему бы и нет?

В целом, я с ними согласен. Вообще, ESP32 — это один из самых известных контроллеров для работы с Wi-Fi и Bluetooth, но в нашем случае, ни одна из этих функций в нём не используется. Это просто удобный кристалл с ядром RISC-V. Предельная тактовая частота у него приличная, есть возможности по энергосбережению. Но главное — это возможность шифрования кода.

Очень многие разработчики решений на базе ИИ любят хвастаться своими результатами в статьях, но при этом не дают никому своих наработок. Наши разработчики — не исключение. Наработки они отдавать не хотят. Но выдать чип на пробу — почему бы нет? В старых системах «прошивка» закрывалась битом защиты. Чтобы обновить прошивку, спрятанную таким способом, файл с нею всё равно надо выдать. Приходилось придумывать какие-то свои методы шифрования протокола. Не всегда идеально устойчивые. Взлом же бита защиты — это любимая тема для многих хакеров.

Ох, какой был переполох среди моих знакомых, когда китайцы вскрыли защиту AtMega8 и сделали клон их платы! Старые версии оборудования были скомпрометированы, и подделки были за копейки выброшены на TaoBao. Понятно, что покупатели стали смотреть на них, а не на легальные комплексы. Я помогал ребятам сделать навесной модуль дополнительной защиты, содержащей советский чип, не имеющий импортных аналогов. Китайцы не смогли разгадать, что же там такое стояло… Новые версии ПО не работали без этого чипа, проект хоть и пострадал, но хоть в утиль не слился.

У ESP32 всё проще. Прошили во фьюзах ключ шифрования, после этого контроллер будет расшифровывать «прошивку» на лету. Вышла новая версия — файл с нею можно разослать всем. У кого есть кристалл с соответствующим ключом — «прошивка» заработает. Остальные будут смотреть на неё, а вскрыть — не смогут. И использовать на кристаллах, купленных в другом месте тоже не смогут. Поэтому проблема «отдать наработки» при использовании ESP32-C3 не стоит. Исходный код — это да. Его даже мне не дают. А двоичный код — да сколько угодно! Ну, прекрасный же контроллер!

Макетные платы


«Большой» вариант


Итак, мы выяснили, что для управления чипом нужна шина I²C. Вообще никто не мешает взять и подключить всё к ПК через FT232H, но не всё так просто. Для экспериментов нужны сигналы с датчиков. В целом, можно подключить датчики к тому же ПК, но насколько это всё будет удобно? Поэтому разработчики решили, что сигналы лучше слать с микроконтроллера на автономной плате. Настолько автономной, что она даже может питаться от батареи (но именно может, основной источник, разумеется, кабель USB). Давайте будем потихоньку наворачивать блок-схему… Итак. У нас уже есть целевой чип, управляющий контроллер и питание…



Хорошо. Теперь не забудем про те самые датчики, с которых будут сниматься воздействия для экспериментов. Для этого на плате установлен MEMS гироскоп-акселерометр-магнетометр MPU-9250, чтобы ловить разнообразные вибрации и другие изменения положения в пространстве, а также пара PDM-микрофонов MP34DT06.

Для взаимодействия с пользователем просто необходим экран и какие-никакие, а кнопки.

Когда аномалии пойманы, иногда надо отметить это звуковым сигналом. Для этого в системе имеется I2S-ЦАП с усилителем и динамик. Добавляем их на рисунок.



Если эта система вся из себя такая автономная, то просто просится беспроводная связь, поэтому в качестве управляющего контроллера был выбран модуль на базе ESP32-S3. Для его программирования можно воспользоваться доступом к JTAG и виртуальному COM порту через основной разъём USB (есть такая интересная штука внутри ESP32-S3), но шина USB может быть занята каким-то функционалом. Так что добавляем на плату переходник USB-UART для обновления «прошивок» управляющего контроллера. И, раз используется модуль, выводим его свободные линии на разъёмы нашей платы.

В итоге, получаем такую систему:



И последний штрих. Добавим модную возможность отломить целевой чип от отладочной платы, чтобы установить его куда-то в рабочую систему. Честно говоря, я ни разу не слышал, чтобы кто-то когда-то что-то отламывал от макетной платы, но такую возможность добавлять почему-то принято. Не избежали соблазна и наши разработчики. Причём я, как балалаечник-любитель (подробнее про это тут), заметил, что если часть с чипом отломать, та половина будет похожа на корпус балалайки. Давайте я сфотографирую результирующую плату, а то на начальную картинку был вынесен красивый рендеринг.



Минималистичный вариант


За всё надо платить. Каждый элемент, припаянный на «большой» вариант модуля стоит денег. По копеечке набегает приличная сумма. Я когда эту сумму на Озоне увидел — сам чуть со стула не упал. Но ведь у кого-то уже может иметься Ардуинка с кучей готовых датчиков! Зачем переплачивать? Для этого случая, разработан минималистичный вариант модуля. Он выглядит вот так:



Честно говоря, я как-то привык к Ардуиновским проводочкам под разъёмы с шагом 2.54 мм, поэтому белый разъём I2C вместо привычных штырей, меня смутил. Но разработчики сказали, что, во-первых, нужные линии продублированы на разъёме J4, надо только его впаять… А, во-вторых, для Ардуинки можно купить новомодный Grover Shield, на котором разъём I2C выглядит именно так. Тогда подключение будет выглядеть следующим образом:



Ну, и существуют другие макетные платы именно с таким разъёмом. Скажем, такая, тоже на базе ESP32 C3:



Программная поддержка


Для опытов с модулем, создано целых два репозитория на GitHub. В первом хранится всё про SDK – документы и функционал. Этот репозиторий расположен тут Grovety/grc_sdk

Как бы ни был хорош документ, а всё равно без реальных примеров в нём разобраться обычно очень сложно. Поэтому во втором репозитории лежит проект, который прошит в «большую» плату по умолчанию. Этот репозиторий расположен тут: Grovety/grc_devboard

Сейчас в составе проекта имеются четыре демонстрационных приложения:
  • Распознавание жестов (на основе акселерометра),
  • Распознавание ритмов, которые обычно настукиваются пальцем,
  • Распознавание вибраций (разработчики тренировались определять скорость работы вентилятора),
  • Голосовой пин-код (запоминает, а затем распознает 4 цифры пин-кода, произнесенные пользователем вслух).

Про каждое из них я планирую сделать отдельный разбор. Сегодня статья – обзорная, поэтому я просто рассказал, что эти приложения существуют, они опубликованы в данном репозитории и могут быть взяты за основу, чтобы понять, как пользоваться SDK.

Где купить


Большие платы уже продаются на Озоне. Их там можно найти вот по этой ссылке… Цена, правда, кусачая. Не совсем для любителей. Но руководство обещало, что в ближайшее время там же появятся и бюджетные варианты. Пока же, если вдруг имеется желание добыть плату — обращайтесь в личку по координатам из профиля или в диалогах, постараемся решить вопрос.

Цели статьи


Ну, первая цель проста. Когда я буду писать про свои опыты с этим чипом – я смогу ссылаться на эти общие сведения, чтобы было хоть понятно, о чём идёт речь.

Но интереснее вторая цель. Сейчас разработка находится в стадии активного поиска. Любая идея может натолкнуть авторов на какое-то озарение. Под воздействием свежих идей, они могут сделать крутой поворот туда, о чём ещё вчера даже не задумывались.
• Где ещё можно использовать данную систему? — Да, это тот случай, где не решение делается под задачу, а наоборот, ищутся задачи под решение. Это не коммерческий, а внутренний проект, на котором нарабатывается опыт. Варясь в собственном соку, можно сделать какого-то сферического коня в вакууме, который на практике никому не нужен.
• А может, у кого-то есть не просто идеи, а реальные потребности, которые ложатся на эту концепцию.
• Вдруг кто-то соберётся поиграть в эту систему на практике? И даст советы, где и что надо подкрутить в рамках функционала SDK.
• Или, скажем, поймает реальные проблемы переобучения… Ну, или ещё какие проблемы, которые разработчикам не видны, а реальным потребителям – вполне.

Собственно, основная цель статьи — это расширение кругозора наших разработчиков. Само собой, они будут читать комментарии. Ну, а если надо — можно и в личной переписке пообщаться.

Комментарии (17)


  1. 1CHer
    03.04.2024 15:06
    +1

    Чем это отличается от тысячи других плат на esp/atmega/stm и подобных? Тем что не надо спаять пару проводов до датчика? ПО хабаровчане сами напишут (ну по крайней мере я - точно, но я и провода спаяю). Вот на свежем Миландровском (если не ошибся в названии, прошу поправить если что) бы выпустили я бы прикупил бы. Всё таки импортозамещение было бы.


    1. EasyLy Автор
      03.04.2024 15:06
      +2

      Чем это отличается от тысячи других плат на esp/atmega/stm и подобных?

      Тут главное - не перепутать причину и следствие. Мы не зарабатываем денег на изготовлении и продаже плат. Хотя бы потому, что зарабатывать на этом можно, только находясь в Китае. В остальных случаях, цены будут (и есть) конскими.

      Но представьте. Вышла статья в стиле: "У нас есть приборы, но мы вам их не покажем". Интересно будет? Вряд ли. Поэтому должно быть нечто, что можно по итогу пощупать. А этим "нечто" является чип. Нутро этого чипа хорошо закрыто, но щупать снаружи можно - сколько угодно. И советы давать по доработке.

      Хорошо, допустим мы говорим: "Хотите - берите наш чип, паяйте его, куда хотите и пробуйте". Многие купят просто так, чисто попробовать? Да никто не станет. Опять статья ни о чём. Значит, должна быть плата. Но какая? Тут мы вспоминаем, что мы не перепродаём чипы, привезённые с Марса. Прошивку разрабатывают наши сотрудники. И они должны быстро получить макетку и начать работать. Времени на коммутации и сборки стендов у них нет.

      Поэтому первое, что было сделано - это такая полноценная плата в стиле "Взял и пользуешься". Она была доведена до ума первая, поэтому она пошла в продажу первая. Кто-то скажет, что не стыкуется - простую плату проще довести до ума. И будет прав. В условиях бесконечного количества конструкторов, которых можно загрузить в параллель много чем. А когда надо в первую очередь ЭТО и ещё другие коммерческие проекты - да, плата, которая не участвует во внутренних работах, будет стоять в очереди. Она и стояла. Правда, на столе у тестеров она уже есть.

      Вот и получается, что статья - не про новую плату. А про закрытую "прошивку" одного из чипов, который на этой плате стоит. И плата хороша тем, что её взял и сразу работаешь. Собрать всё в кучу... Для этого должно быть непреодолимое желание. Практика показывает, что оно возникает у единиц. Но в статье сказано, что в ближайшем будущем, будет и для них плата. Там будет стоять исключительно процессор с установленными ключами шифрования, чтобы в него зашивать описываемую "прошивку" любых версий.


    1. EasyLy Автор
      03.04.2024 15:06
      +1

      в дополнение вопрос: а какой чип Миландра вас интересует? ДСП или что-то другое? Спасибо!


  1. yamifa_1234
    03.04.2024 15:06
    +2

    возможно какието отдельные критерии отлавливать получится такой микросхемой. но так чтобы "приложил устройство, объяснил что эта 1 секунда работы есть правильная" и успокоился, не верю).


  1. Dynasaur
    03.04.2024 15:06
    +2

    ML на ESP32?.. вот что-то никак в моей голове эти две сущности не складываются. Одно ядро процессора, 400кБ памяти ... 160МГц Мда... Что же за модель можно на такой балалайке запустить? Я просто только что экспериментировал с YOLO8 на Raspberry Pi 5+ Coral и мне оказалось мало...


    1. zedroid
      03.04.2024 15:06
      +1

      Yolo достаточно требовательная, для расчетов кастомной нейронки при анализе звука вполне может хватить и мк с частотой 160МГц при наличии аппаратного умножения.


      1. Dynasaur
        03.04.2024 15:06
        +1

        Ну тогда что угодно можно называть нейросетевым чипом - и ардуину и калькулятор. Всё может потянуть какую-нибудь нейросеть. У нематоды вся нервная система 302 нейрона, её цифровую копию можно запустить на чём угодно. Всё-таки в 2024 специализированными чипами для нейросетей называют что-то другое.


    1. EasyLy Автор
      03.04.2024 15:06

      Если коротко, то разработчики на внутренних совещаниях говорили: "Сами удивляемся".

      Я знаю, что там внутри ESN. И знаю, что ESN была взята не с потолка, а потому что в публикациях STшники писали, что у них с нею всё классно получилось. Поэтому было решено пойти по этой же дорожке. Идти пришлось с нуля, просто в том же направлении. Оказалось, что не обманули.

      Насчёт экспериментов - проект длится больше года, так что быстрых результатов не было и у нас. И что там внутри - это такая тайна, что даже я только примерно знаю. Я, как и все пользователи, допущен только к внешней части этого чипа.

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


  1. Dynasaur
    03.04.2024 15:06
    +1

    В моём понимании нейросетевой чип - это тензорный акселератор типа гугловского Корала, а не микроконтроллер на esp32


    1. EasyLy Автор
      03.04.2024 15:06

      Если бы мы распределяли бюджет на разработки - возможно, я бы даже занял Вашу позицию. Но у нас внутренний проект. Руководство решило рискнуть частью собственных средств. И сейчас на внутренних задачах уже что-то получается. Пора выходить на реальные.

      Может так оказаться, что на реальных всё остановится. Но может и не оказаться. Так или иначе - надо пробовать. Собственно, может, после этой статьи, с кем-то совместно попробовать получится.

      Если тема взлетит - работы всем хватит. И Кораллу, и ESPхе. По воробьям же не из пушек стреляют. Так что больше вариантов, хороших и разных.

      Целью работ была именно проверка реализуемости каких-то нейросетевых задач на заведомо дешёвом оборудовании.


      1. Dynasaur
        03.04.2024 15:06

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

        Ладно, пожелаем вам успеха и подождём когда у вас уже что-то получится и вы расскажете по-подробнее.


  1. DSarovsky
    03.04.2024 15:06
    +1

    Правильно ли я понял, что продаваемый продукт - это две esp32 (C3 + S3) + рассыпуха по мелочи, в ESP32C3 зашит ноу-хау код, который управляется с ESP32S3, для которого уже пользователь с предоставленным SDK пишет программу?

    Может, бинарь для C3 продавать отдельно, или слишком "неудобный" ценник получится?:) Нисколько не критикую, понятно, что софт пишут люди, которые хотят кушать, но ощущение, что для сокрытия его дороговизны все это в виде красивой платы сделано.


    1. Indemsys
      03.04.2024 15:06

      Забавно что ML легко адаптируют для определения вибраций мотора, но как то туго идёт внедрение ML для управления мотором чтобы не было вибраций.
      Разработчики частотников про ML помалкивают и в свои векторные алгоритмы пока не внедряют.

      Самая интересность возникает когда ML работает быстро. С ESP здесь уже не угнаться за трендами. Это не их ниша.


    1. EasyLy Автор
      03.04.2024 15:06

      Продукт - это именно "прошивка". Но она защищённая. В чип C3 на обеих платах загружены ключи, чтобы можно было вливать "прошивки" новых версий, благо ESP32 это поддерживает. Установил ключи, потом файлы можно гонять свободно. Всё равно в них никто ничего не поймёт.

      Платы же - это то, без чего "прошивку" не попробовать. Большая разработана для наших собственных разработчиков. Но и кому угодно она подойдёт, чтобы просто взять и пробовать, не тратя время и силы на подключение датчика. Малая - ну на ней как раз кроме чипа с ключами ничего и нет. Поэтому не надо думать о цене.


  1. Ozzarius
    03.04.2024 15:06
    +1

    Хорошая идея, хотелось бы, увидеть #улей из данных пчёл. Хороший проект. Автор свяжитесь со мной есть идея, можем обсудить.


  1. Gryphon88
    03.04.2024 15:06

    Не хочу обесценить вашу работу, искренне не понимаю. Если мы можем воспроизводимо подобрать сеты для "плохо" и "хорошо", то зачем нужен ML? Вот, допустим, две задачи:

    • Надо понимать, когда пора менять сверло. Берем и сверлим, пока сверлится, параллельно регистрируем звук и вибрацию, заодно оцениваем сверловку. Обычно можно на графиках поставить риску "пора менять"

    • Надо, чтобы шаговый двигатель побыстрее проскакивал резонанс. Смотрим вибрацию, ток и положение по энкодеру. Можно определить: ага, вибрация, пропуск шагов, повышаем частоту импульсов.


    1. yamifa_1234
      03.04.2024 15:06

      Возможно это для тех кто не хочет/не может/не умеет работать с графиками, выставления порогов.