
Espruino + ESP32: как вывести русский текст и подключить кириллический шрифт ? История из жизни, создание и подключение кастомного шрифта 🦐
Учимся программировать микроконтроллеры
Espruino + ESP32: как вывести русский текст и подключить кириллический шрифт ? История из жизни, создание и подключение кастомного шрифта 🦐
LoRa6100Pro-mini — это современный беспроводной UART-модуль от компании NiceRF, построенный на базе чипа Semtech SX127X и использующий технологию LoRa с расширенным спектром. Модуль предназначен для передачи данных на большие расстояния при низком энергопотреблении и высокой помехоустойчивости, что делает его идеальным решением для IoT-приложений.
Сегодня я расскажу вам, что представляет собой данная модель, как устроены циферблаты, покажу как легко можно переделать их под себя, нативное .ELF приложение как циферблат это действительно интересно..
Привет всем любителям схемотехники и программирования микроконтроллеров!
Мы начинаем цикл статей о работе с отечественным микроконтроллером К1946ВК035 — тем самым, который всё чаще мелькает в разговорах про импортозамещение, но пока ещё редко встречается «вживую» в рабочих проектах.
И начать мы решили с испытания на прочность: портирования популярной open-source прошивки AM32 для управления бесколлекторными двигателями. Здесь не обойдёшься простым «собрал и прошил» — все подробности и ещё много интересного ждут вас в этой статье.
Что такое Мурмулятор я уже писал тут. Немного повторюсь — это ультрабюджетная «материнская плата», в которую вставляется «процессор» — плата на основе RP2040 (Raspberry Pi Pico) или RP2350 (Raspberry Pi Pico 2). Мурмуляторы бывают разные — и под VGA выход, и под HDMI, и под всякую экзотику типа небольших TFT экранчиков на чипах ILI9341/ST7789. Есть устройства с дополнительной памятью PSRAM, есть с поддержкой дополнительных портов USB через отдельную микросхему‑хаб. И всё это великолепие требует драйверов. Стиль разработки под RP2040/2350 — это всё собрать вместе в один монолит baremetal‑прошивки, и плодятся прошивки кучами... Например, релиз pico‑spec 1.2.C насчитывает более 20-ти вариантов сборки под разное оборудование, и это — не предел.
Чтобы как‑то упорядочить всё это безобразие была разработана операционная система, которая содержит в себе необходимые драйвера. Идея в том, что настраивать нужно только её, а прикладные программы уже должны использовать API для доступа к функционалу...
В то время существовал ещё только чип RP2040, и про 2350 не было даже слышно, соответственно, разработанная ОС была полностью заточена под этот существующий тогда SoC. О самой ОС и её использовании я как‑то уже выпускал статьи. Поэтому сосредоточусь на ключевых отличиях новой версии.
Никаких новых возможностей версия 2.0 пока не предоставляет. Это просто полное портирование МОС на немного отличающийся SoC.
Первое основное отличие — 2.0 не умеет запускать .uf2-файлы. Для запуска «тяжёлых» приложений необходимо из заранее собрать «с отступом». Такой формат получил название «.m1p2» — т. е. под Мурмулятор первых версий с «пикой» второй версии. Этот же формат использует pico‑launcher для RP2350, который тоже не умеет запускать .uf2-файлы (в отличии от версии под RP2040).
В статье рассматривается библиотека на C++, которая предназначена для реализации технологии параллельного автоматного программирования (АП), отвечающей концепции среды ВКПа (подробнее о ней см. [1]). Для полного понимания материала рекомендуется ознакомиться с основами теории АП, представленной в статьях [2, 3, 4], Взаимосвязь машины Тьюринга с конечными автоматами (КА) подробно рассмотрена в [5]. Вопросы применения корутин в контексте автоматного программирования анализируются в статьях [6–9]. Но в минимальном варианте достаточно даже общего представления о модели конечного автомата и принципах объектного программирования.
Как гарантировать, что тысячи устройств будут работать безупречно как в лабе, так и у конечного пользователя? Конечно, с помощью тестов на всех этапах. Чем запитать DUT (тестируемое устройство)? С одной стороны — дешевый китаец (проблемно непредсказуемый или предсказуемо проблемный), с другой — лабораторный монстр (пугающе дорогой, 90% наворотов — мусор). Мы устали делать этот выбор, и решили сделать свой источник: надёжный с первой до последней секунды теста, компактный, умный и послушный.
Планировщик — мозг операционной системы. Его задача: решать, какая задача выполняется сейчас, и по каким правилам выдавать процессор другим задачам. Для embedded систем это особенно критично: ресурсы ограничены, реальное время важно, а поведение должно быть предсказуемым.
Это вторая из цикла статей про создание микроядерной операционной системы. В прошлой статье рассматривался таймер и HAL. Для вновь пришедших необходимо сначала ознакомиться с ней: ссылка.
Прием и парсинг 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» (но не спешите радоваться, до релиза ещё не один месяц). Одна из доработок этих «точных часов» коснулась дисплея, который теперь отображает время с точностью до миллисекунды. Причём я переработал его в корне, чтобы убрать мерцание, возникающее при записи работы часов на скоростную камеру.