All streams
Search
Write a publication
Pull to refresh
193
0
Павел Локтев @EasyLy

TinyML, исполнение нейросетей на микроконтроллерах

Send message

При тех шумах и иголках, получим такое дёрганье, что ууууууу! Я начинал с малого числа опросов. Частоту АЦП ещё сильнее уменьшить нельзя. Коэффициент деления - максимальный.

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

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

Однозначно косяк, и это отмечено в целых двух разделах статьи. Но не у нас. Как отмечено, мы не имеем отношения к разработке схемы и не имеем возможности влиять на её доработки. Но при этом, нашу (программную) часть проекта бы без стабилизации не приняли.

Ну поделим мы на 10. У нас останется 90 измеряемых положений потенциометра... Это даже не по 2 градуса на шаг. Может даже по 3.

Единицы измерения реального шпинделя сейчас обсуждать не будем. Тем более, что они там меняются от модели к модели. Просто обсудим именно положения ручки, которые можно задать. 900 положений и 90.

В найденном алгоритме, вся точность сохранена, просто добавлен, как верно отметили в комментариях ниже, гистерезис. Поймали среднее положение и замерли в нём. Крутанули туда-сюда - за несколько итераций (незаметных глазу человека) найдём новое среднее положение с максимально возможной точностью. И снова замрём.

Ну, я в тексте показал, что 250 чтений происходят за 100 мс. То есть, чтения идут с частотой 2.5 КГц. Там на одно измерение тратится 13 тактов. Значит, тактовая у АЦП 35.5 КГц. У меня выбрана самая большая константа деления, какую только можно поставить в Меге - 128.

Если бы наши проекты не были ограничены по времени, там можно было бы ещё поисследовать, как влияет тактовая частота АЦП на точность в условиях, когда и измеряемое, и опорное напряжения вырабатываются импульсниками (то есть шумят, причём каждое по-своему). Но к сожалению, и так-то косо смотрят, что сроки затянуты были.

Нет, не больше. Ну вот, у нас показания равны, скажем, 567, дрожат на плюс-минус 8. Я очень боюсь переврать Ваш алгоритм, но мне кажется, что Вы просто предлагаете округлять. То есть, терять точность.

Так а у меня что сделано? Тут главное - не забыть, что ручка - вообще несерьёзная мелочь в рамках проекта. Что не стоит класть все силы разработчиков, всё ОЗУ, всё ПЗУ и все такты процессора на её обработку.

Результирующий алгоритм получился в экран размером. И по сути, это как раз он, гистерезис. Просто на фоне битвы, я про это слово забыл. Спасибо за напоминание!

итого значения от 0 до 10000 +-99

В текста сказано, что значения были от 93 до 930 (вообще, у Меги АЦП 10 битный, выше, чем 1023 не может быть в принципе, но в конкретной схеме не приходило более, чем 930, проверено опытным путём, схему менять нельзя, это тоже указано в тексте). И что не хотелось терять точность. Поэтому среднее значение мы искали очень точное, просто вокруг него не давали прыгать, если было видно, что ручка не пришла в движение. Пришла - снова ищем точное среднее.

Да там ничего не помогало, с теми двумя импульсными источниками питания, их иголками и персональными шумами. Только жёсткая алгоритмическая фильтрация всё спасла.

Может и так, но может просто стиль у них в Китае такой.

Меня как-то давненько знакомый попросил поменять один предел настроек в паяльнике TS-100. Я взял за основу не сторонние решения с Гитхаба, а исходники от производителя паяльника. Чтобы всё было так, как привычно тому знакомому.

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

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

Да, стандарт PowerDelivery совершил переворот. Теперь, если надо БЫСТРО, то можно просто купить то, что питается от него, взять соответствующий PowerBank, и рвануть на природу, проводить опыты. Человеко-часы на подготовку чего-то своего, они же тоже денег стоят.

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

Можно... И я ни на чём не настаиваю. Но уже лет 20 у меня всё работает.

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

И это же замечательно, что есть оборудование под любые потребности! И не надо либо одним всё время всё жечь, либо другим тратиться на то, на что им тратиться не нужно! Все довольны!

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

В ряде случаев - да. Но чаще всего меня спасает обратное. Когда всё соединено хорошей землёй.

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

Но такое требуется раз в несколько лет при работах с цифровыми устройствами. А я всё больше с ними работаю. С ними хорошая общая земля наоборот полезней.

Если исходники, которые были написаны, то они весьма специфичны, от них толку никому не будет. Во второй части статьи будут таблицы команд (черновики уже имеются, надо дооформить статью), а дальше - можно будет сделать демонстрационный проект небольшой. Он в планах. .

По третьему вопросу - модуль ищется на озон, по фразе "модуль голосового управления роботом". Его не перепрошить, но отдельно у того же продавца есть чистый модуль в продаже, без прошивки.

На Озоне ищется по фразе "модуль голосового управления роботом"

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

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

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

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

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

Они утверждали, что специалисты. У кого-то есть корочки, включая иностранные. Кто-то просто работает с нейросетями у нас. И типовые решения вполне себе неплохо делает.

И ТЗ, и много чего базового есть в том сериале на 10 частей на Ютубе. И какие именно негативные примеры требовали...

Что касается случайной генерации негативных примеров... А что, если туда заберётся правильный вариант?

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

В заголовке есть пояснение, что восстание идёт ползучим методом. Поэтому его и не замечают.

В самой статье есть сразу два раздела "Так где же здесь восстание машин?", по одному на каждую из базовых мыслей.

И поэтому мы должны смириться? Или всё-таки это сигнал, что надо что-то в нашей Российской Консерватории менять?

В статье как раз сказано, что голосование рублём позволит достучаться до разума тех, кто принимает решения. Меньше отзывов (разумеется, не глобально, а только от тех, от кого их почему-то не приняли, но после этого поток останавливать) => покупатели пойдут искать на других площадках => после прочтения они поленятся вернуться => купят там, где нашли отзывы..

Сейчас, к сожалению, многие вместо этого ищут, как сделать так, чтобы отзыв опубликовали. Слова подбирают. Кооперируются для этого. Ради чего - не знаю. Привычка, что "это же компьютер, тут ничего не изменишь"... А надо помнить, что ЭВМ программируются людьми. О чём и напомнил. Что не так?

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity