TGViewer
Channel Public Channel
IggyTech

IggyTech

@iggy_tech

Привет! В этом канале делюсь опытом из мира электроники и программирования: как собрать отечественную игровую консоль, запрограммировать робота, настроить ci/cd. Также новости, мемы, ошибки - все в этом технодневнике

https://boosty.to/voryabchevsky
Subscribers
48
Photos
80
Videos
17
Links
57

Showing posts older than #154 · Back to latest

Older Posts 20 shown
Post #152 69
Дорабатываю софтовые компоненты для платы. Я выяснил, что брать gyvercore за основу оказалось не лучшей идеей: оно отлично оптимизировано, но для atmega328p. Пришлось потратить вечер, чтобы отследить, почему же регистры ddrb не менялись при переназначении функций. Теперь отлаживаю интерфейсы. К сожалению, НИИЭТ выбрали не лучший кристалл avr (который сейчас microchip) и ОЗУ хватает не для всех функций. Но ничего, от 8ми битного мк многого не ждут, так что все получится отлично 👉
Post #151 80
В 2017 году на кафедре проходили обучение среде разработки LabVIEW. Тогда для меня это был настолько прорывной инструмент, что в 2019 году уже подготовился (на сколько помню, на уровень CLAD) и искал центры сертификации. Забавный факт: до EV3 были блоки NXT, для них как раз разработка была на labview. Раньше находил модули (в контексте этой среды) и для EV3 — эффективно, эффектно, но детям не объяснить.

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

Так вот я почему вспомнил про эту прекрасную среду: это то же программирование обработки сигналов, и у него есть модуль экспорта в FPGA. Кто-нибудь пробовал?

Да, скоро займусь консолью, просто вот вспомнил
  • 🤯 1
Post #150 632
Не так давно накидал небольшой плагин для flutter разработки для Аврора ОС. Сам плагин доступен для установки в Visual Studio Code
Он реализует простенький менеджмент устройств, а также сборку и установку приложения на девайс. Вы можете внести свои доработки через pr в git
Подробне о том, как плагин разработан — читайте в статье на хабр
  • 🔥 1
Post #149 88
Затягивает ли вас разработка решений так же, как и меня? Вчера прокомментировал объекты класса stk500 и наткнулся, что Doxygen может сделать MAN page (но это не тот самый man).

Есть во всех linux классная команда - man. Она выдает справку о том, как работает приложение, что оно делает, какие есть флаги, примеры использования и всю остальную информацию, которую хочет указать разработчик. И эта система справочного руководства имеет свой формат. В целом, он не сложный, но не очевидный. Забавный факт: формат не меняется с 2002 года. За часик накидал для своего решения полноценную справку. Теперь могу считать завешненным некоторый этап в разработке программ в linux. Осталось "причесать" репозиторий и сгенерировать релиз (ну и протестировать)
Post #147 75
На короткий отпуск у меня были грандиозные планы, но я успел переключиться и отдохнуть. Единственное, что сделал: выложил ядро arduino для своей отладочной платы. Думаю, в будущем сделать аналогичное для 32битной МК. Также в планах допилить упрощенный загрузчик и собрать релиз под все платформы (даже windows, но через mingw)(да, под Аврору тоже, но до 5.2)

Как происходит подготовка платформы и ядра под arduino ide? Мой друг говорит, что для этого надо быть «жестким прогером», но в целом хватает понимания архитектуры микроконтроллеров и чтение кода: переписать регистры, протестировать функции и собрать загрузчик из исходников 🤷‍♂️ Схема, распиновка и интерфейсы у меня все есть - сам же плату рисовал. Для i2c надо будет немного пострадать, т.к. стандартный wire крайне прожорлив и избыточен (для трекпада уже приходилось его реверсить)

Но над заменой avrdude пришлось поработать: сначала найти описание stk500v1, затем тестовый код на python и тут столкнулся с проблемой на уровне железа. После этого уже довольно быстро переписал на родных плюсах и отладил. Осталось прокомментировать функции и пушить релиз 👉
  • 🔥 2
Post #146 73
Разработка документации к продукту (а особенно если это библиотека или api) — важный процесс в разработке ИТ решений. Он нужен не только для других разработчиков или аналитиков, но и вам: вернувшись к коду через месяцы, будет проще понять что делали и зачем. Большую часть документации можно вести прямо в коде, и для этого есть несколько удобных инструментов:
- Doxygen — генерация документации из комментариев в коде (поддерживает C++, Qt, просто C, Python, Java и др.)
- Sphinx + Breathe — для Python-проектов с возможностью подключения C++ кода
- Natural Docs — лёгкий генератор с простым синтаксисом
- CppDoc — минималистичный инструмент для C++
- MkDocs — генератор документации на базе md файлов.

И с наличием такого количества инструментов я удивлен, что некоторые компании не могут мне дать инструкцию к своему api. Я планировал переработать приложение подключения к приборам с новыми крутыми библиотеками, но “магии apple” не случилось. Грустно? Нет, это печально 🤦‍♂️ в конечном итоге отрефакторил свою библиотеку под qt, используя его нативные типы данных и сигналы и в целом пока хватит. Сейчас выясню через wireshark управление dts и полноценный аналог avrdude готов (хотя прототип на python уже работает).
  • 🤷‍♂ 1
Post #145 70
Сегодня ощутил по-настоящему импортозамещение: искал проблему с китайской микросхемой в японском блоге, чтобы понять почему не программируется (более одного раза) российский чип 👉 Однако, добился больших успехов: optiboot получает по stk500v1 прошивку и успешно пишет ее в память. Следующий шаг — переписать avrdude (ну не консолью же заниматься). Мне кажется, что за пару дней разберусь как загружать прошивку с помощью системы на небезызвестной мобильной ОС.

В целом получается довольно интересно: из небольшой гипотезы выстраивается прикольный продукт. Хз, выйду ли с ним на рынок, но точно получил в свое распоряжение достаточно удобный инструмент. Осталось отладить стандартные функции, пару тестов и запаять пару версий для друзей.

Если у кого также возникнет проблема с ch340x: помимо 100нФ между ресетом чипа и dtr нужно еще и 4.7кОм между cts и dts.
  • 🔥 4
Post #144 69
Прошлый вечер потратил совсем не на разработку, а на отладку загрузчика, чтение документации и необоснованного желания получить все галочки соответствия стандартам Gitverse. Также обновил у себя в голове информацию о лицензиях (остался при мнении, что mit лучше, чем gpl).

Также пришлось вспомнить закон ома для расчета нагрузочных резисторов. Довольно бездумно было ставить одинаковое сопротивление на цветовые индикаторы разных цветов, но в рамках уменьшения номенклатуры деталей неосознанно сделал именно это. И к сожалению, это вообще резисторная сборка, так что придется на текущих платах сделать все светодиодны одного цвета. Ну или работать в солнцезащитных очках, потому что индикатор питания - ярко белый 👉
  • ❤ 1
Post #143 79
Наконец то поборол сборку загрузчика и прошивку в плату. Теперь можно быстро и удобно накидывать код даже с помощью стандартных функций для arduinoide. Ну или просто использовать optiboot для загрузки прошивки, а разрабатывать где угодно. Надо будет посмотреть, жив ли еще старый добрый codevisionavr, у него была поддержка отправки кода в arduino и другие совместимые stk500 платы.

Из интересного — наконец то попробовал кварцевый резонатор в smd корпусе и со встроенными емкостями. Если б микруха была сразу со фьюзами внутреннего генератора, тогда сразу можно было запаять и его, но приходится сначала костыль в виде провода делать.

Теперь можно запаять пины и пару интересных микрух, дописать наконец то код контроллера робота и тестовый для дополнительных чипов. И конечно же вернуться к коду консоли 👉
  • 🔥 1
Post #142 74
Сегодня пятница — в этот день недели в офисе выкладывают фотки своих животных 👉

Достигнут большой прогресс — программатор отлично прошивает, меняются режимы и частоты, даже записал загрузчик. Но в рамках проверки случайно прописал фьюз запрета записи по SPI, теперь нужен hv программатор 🤦‍♂️
  • 🔥 2
Post #141 76
За вечер замутил программатор на подпружиненных контактах. Мелочь, но довольно удобно — нет необходимости паять разъем. Прошивка завершилась успешным провалом - нужно было сначала прошить с 1МГц генератора на внутренний 8МГц стабилизатор, а потом на кварц 16МГц, но я поспешил. К счастью фьюз блокировки не ставил (вроде бы 🤷‍♂️)

Параллельно развернул gitea на домашнем сервере. С каждым днем там все больше инструментов, так что еще запарился и поставил nginx с wildecard от let’s encrypt. Осталось настроить доступы и будет огромная сборочная среда для всяких там ОС.
  • 🔥 4
Post #140 82
Неожиданно: Разворачиваю Jupiter notebook на домашнем сервере. Чуть позже будут подробности 👉
  • 🔥 4
Post #139 88
Остались мелкие доработки по плате контроллера и можно перейти к разработке устройств на его базе. Для упрощения на первое время решил собрать платформу для arduino ide. В целом, процесс не очень сложный. Но т.к. некоторые компоненты в стандартном wiring работают не очень оптимально, то буду прикручивать ядро от Алекса Гайвера. В целом, теперь получается полноценная отладочная плата, подключаемая к совместимым ide. Позже выложу исходники 💻
  • 🔥 5
Post #138 92
Ошибка в 6000р!
Довольно кликбейтный заголовок, но это именно то, что произошло: я пропустил пару проводник толщиной 0.2мм и пришлось напаивать их руками. И если длинную перемычку запаял за минуту, то аккуратно подогнуть проводник, подставить его под qfp20 корпус (квадратик посередине) ушло пол часа работы под микроскопом. После выяснилось, что коммутатор работает в неправильном режиме, пришлось выпаивать чтобы просто отладить интерфейс. Для отладки — пойдет, но всю партию плат нужно переделать и перезаказать 🤦‍♂️

Сегодня запаял первую макетную плату для отладки контроллера (игрового и для робота). Там сильно больше компонентов, чем в трекпаде, но и здесь закрался косяк: не все компоненты были в наличии. Ну, хотя бы сам центральный микроконтроллер и подготовка питания готовы, а интерфейсы дело вторичное.
  • 😱 4
  • 🔥 1
Post #137 83
За 5 секунд можно запаять целую плату! Осталось правильно нанести припой (попробую напечатать шаблон на 3d принтере), приделать выключатель термостола и можно массово выпускать платки. Сейчас потренируюсь на трекпаде, дальше контроллер робота ну и другие интересные штучки 👉
  • 🔥 1
Post #135 86
С момента переезда в Питер у меня небыло домашнего стационарного компа и все время пользуюсь только ноутбуком (эчпочмакбук про). Это оказалось достаточно удобно: дома подкидываю thunderbolt из монитора, сразу цепляется клавиатура, трекпад и графический планшет. Вынул кабель, кинул ноут в рюкзак и поехал на встречу, в офис, etc. По необходимости— могу поменять ноут с интелом на аналогичный с армом и работать в аналогичном окружении.

Не смотря на то, что это модель 19 года, яблочная корпорация все еще выпускает обновления макоси. Но время от времени нужно обслуживать «железную» часть. Пропылесосить, продуть и заменить термопасту. В этот раз попробовал «фазовый термоинтерфейс». Производители заявляют, что эта пластина при первом повышении температуры заполняет все пустоты и царапины между кристаллом и теплоотводящими компонентами. Посмотрим 🤷‍♂️

Из забавного (тоже связанного с радиаторами) ловлю на материнской плате сервера ошибку b7. Нашел случайно на одном из форумов неочевидное решение — ослабить крепление радиатора процессора. Надо попробовать, потому что использовать ноутбук в качестве временного сервера уже становится практически постоянным решением
Post #133 88
Протопад! Приблуда для отладки компонентов и софта игрового контроллера. За выходные запаяю пару экземпляров, раздам друзьям-разработчикам. Дальше останется верхнеуровневое ПО, но его сам хочу допилить со всеми фичами и косяками. За одно повторю как там эти всякие dbus и драйвера строятся 👉
  • 🔥 5
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →