Прием и парсинг NMEA-данных от GPS-приемника

Прием и парсинг NMEA-данных от GPS-приемника, а также, рассмотрение работы разных типов GPS (UART и RS-232): как правильно подключить модуль к микроконтроллеру STM32.

Учимся программировать микроконтроллеры

Прием и парсинг NMEA-данных от GPS-приемника, а также, рассмотрение работы разных типов GPS (UART и RS-232): как правильно подключить модуль к микроконтроллеру STM32.

В программировании ARM Cortex-M микроконтроллеров обычно код исполняется из on-chip NOR Flash памяти.
Однако иной раз надо разместить Си-функции в RAM памяти.
В этом тексте я написал как запустить функцию из оперативной памяти.

Задумывались ли вы, как идеи инженеров 19 века вдруг становятся реальностью в мире современных чипов? Как вычислительная машина из огромных латунных шестерёнок — превратилась в FPGA.
То, что Чарльз Бэббидж мечтал построить, сегодня принципы легко воссоздать на чипе размером с монету.
В этой статье разберем, как современные технологии соединили эпоху паровых машин с цифровым железом, а вопросы о том, что такое «компьютер», становятся ещё более захватывающими и… личными. Заходите, будет интересно.

Привет, Habr! Продолжаем серию статей о LVGL в ESPHome. В третьей части статьи речь пойдет о создании своего пользовательского виджета, который может быть подключен к проекту. И не только к данному проекту, а вообще даст небольшое представление как делать виджеты в ESPHome. Итак, Создавать будем виджет умной розетки с индикацией мощности, напряжения и силы тока. Поехали...

Современные робототехнические системы, дроны и автоматизированные устройства требуют точного определения перемещения в пространстве. Один из ключевых компонентов для этой задачи — Оптический модуль инерциальной навигации, такой как MTF02. Этот компактный и энергоэффективный сенсор позволяет устройствам "чувствовать" движение даже без GPS или внешних ориентиров.

Ко мне на днях обратились сначала два стартапера, а потом и из большой компании по вопросу EDA с помощью AI. Я дал всем троим одну и ту же задачку и думаю сделать еще несколько таких задач, так как два тула эту задачку решили, один тул на ней лег, а еще четыре произвели некий код на языке описания аппаратуры SystemVerilog, который не проходил мой тест, то есть не являлся решением.
В чем социальная значимость таких задачек? Дело в том, что венчурные капиталисты тратят не свои деньги, а деньги, которые институциональные инвесторы, в частности пенсионные фонды - вкладывают в фонды венчурных капиталистов. Тем самым, хотя в США существуют законы, запрещающий неопытным инвесторам ("widows and orphans laws" - "законы о защите вдов и сирот") вкладывать в стартапы напрямую - вдовы и сироты все равно не защищены, так как живут на выплаты из пенсионного фонда, в который вкладывал их безвременно почивший отец семейства.
Также не открою Америку, что стартапер стартаперу рознь. Одни честно делают прототипы и решают задачки от потенциальных пользователей. А другие занимаются shmoozing - то есть ходят по тусовкам и пытаются что-то впарить VC говорением в стиле Остапа Бендера.
И вот чтобы защитить венчурных капиталистов (а через них - вдов и сирот) от стартаперов второго типа, мы с соратниками сделали задачку под названием SystemVerilog Microarchitecture Challenge for AI No.1:

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

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

В этой статье мы соберем ОСРВ OpenVela от Xiaomi под отладочную плату STM32F411CEU6, используя WSL, который официально вроде как не поддерживается.
Эта ОС базирована на Apache Nuttx и имеет много фич от Xiaomi, включая HyperConnect.
В комплекте также небольшая предыстория от автора.
Итак, передо мной лежала полностью собранная плата и время стремилось к вечеру. Руки чесались хотя бы помигать светодиодом, а руководство было вскользь прочитано уже несколько раз, но тут меня осенило - у меня нет подходящего программатора!

Решил наконец погрузиться в электронику как хобби. Изначальной целью была самодельная игровая консоль, но из-за сложностей я начал с более простого проекта — светодиодного брелка на микроконтроллере CH32V003F4P6. Почему именно он? Это дешевая (около 20 рублей за штуку) и доступная микросхема с 20 выводами — достаточно, чтобы управлять матрицей 8x8 без драйверов вроде MAX7219.

Хочу поделиться с вами своей мечтой, мечтой о светодиоде, который корректирует свою яркость в соответствии с окружающим освещением… без каких-либо вспомогательных компонентов.
Читателям моего блога известно, что я работаю над обновлённой версией «Precision Clock» (но не спешите радоваться, до релиза ещё не один месяц). Одна из доработок этих «точных часов» коснулась дисплея, который теперь отображает время с точностью до миллисекунды. Причём я переработал его в корне, чтобы убрать мерцание, возникающее при записи работы часов на скоростную камеру.

Файловая система во встраиваемых решениях — критическое звено. От её выбора зависят надёжность, детерминированность и задержки всей системы.
В типичном устройстве она обслуживает запись сигналов, ресурсы для дисплеев и аудиовоспроизведения, логи, файлы веб‑интерфейса, образы прошивок и многое другое.
На практике всплывают одни и те же проблемы: дефрагментация, высокое потребление RAM, плохая детерминированность (плавающие задержки), неустойчивость к сбоям записи/питания и низкая скорость. Нередко корнем оказываются драйверы из SDK производителей чипов: они не оптимизированы для многозадачной среды и часто недоработаны под OSPI.
Я протестировал четыре файловые системы на платформе MC80 с внешней OSPI NOR Flash и разработал специализированный драйвер вместо стандартного из FSP — с полноценной поддержкой OSPI и RTOS.

Здравствуйте люди!
Я сделал библиотеку под названием "SillyOled" для работы с OLED-дисплеями SSD1306 через I2C и SPI. Библиотека может показывать текст, фигуры, бит-мапы, а также управлять дисплеем. Вот главные особенности:

При разработке SoC много говорят про RISC-V, а вот информации про шину AHB-Lite сравнительно мало. Все, что есть на русском языке, касается старого проекта MIPSFpga. Почему бы не взять открытые наработки из MIPSFpga Plus и не использовать совместно с ядром RISС-V?

Случайно наткнулся на видео про лифт убийцу на Arduino. В этом видео автор показывает, как некая компания выполнила заказ по разработке и установке лифта для инвалидов. То , что там было сделано, это пример преступной некомпетентности разработчиков.

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

Приветствую всех! Уверен, каждый, кто катался на новом лифте, видел подобные штуки. Всё чаще такие экраны ставят взамен привычных светодиодных или сегментных ЖК-индикаторов.
И вот однажды мне стало интересно: а как вообще они работают и можно ли запустить их самому? Как оказалось, то, что я представлял себе небольшим опытом буквально на пару часов, на деле оказалось целым приключением...

Рядовая ситуация в разработке — необходимо проверить работоспособность новой печатной платы. Для этого я каждый раз собирал импровизированный тестовый стенд: источник питания, измерительное оборудование и микроконтроллер с подключенными к нему модулями, реле и преобразователями интерфейсов, который бы имитировал различные события, например переключения выводов, прием и отправку сообщений и прочее. Все это собиралось на макетной плате и проводочках, каждый раз программировалось вручную.
У этого подхода были очевидные минусы — стенд был ненадежным, проводочки могли вылететь, код для стенда, как и для прототипа, тоже надо было написать и проверить, и стенд превращался в еще одну разработку. В какой‑то момент я решил, что хочу упростить этап создания тестового стенда. Так появилась идея устройства «Луч» — компактного прибора с поддержкой популярных интерфейсов, цифровыми входами и выходами, который мог бы заменить собой тестовый стенд. Он позволял бы быстро запустить последовательность действий без написания кода с нуля, и мог бы работать как терминал для многих интерфейсов, этакий швейцарский нож. Именно об этом устройстве я хочу рассказать в этой статье.

Про настройку отладку ваших stm микроконтроллеров с помощью программатора-отладчика STLINK-V3MINIE через встроенную функцию VCP.
В статье описана настройка инструментов на ОС Windows и ОС Linux, также приведен пример кода для вывода данных себе в терминал на ПК.