Обновить
263.48

Программирование микроконтроллеров *

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

Сначала показывать
Порог рейтинга
Уровень сложности

VSCode, SourceCraft Code Assistant и микроконтроллеры

Уровень сложностиСредний
Время на прочтение34 мин
Охват и читатели7.7K

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

В этой статье я расскажу, как использовать VSCode для разработки прошивок под разные архитектуры и как мне в этом помогает SourceCraft Code Assistant от разработчиков Yandex Cloud & Yandex Infrastructure.

Читать далее

Имитатор касаний. Ч3: Программная часть

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели1.6K

Цифры нажимались как бы сами собой, быстро следуя в чётком порядке. Это было очень круто! Кряк даже пустил слезу от умиления, а енот довольно потирал свои ловкие ручонки.) Наверняка ему не терпится сделать ещё один интересный проект.
+++
Проанализировав данные, полученные с помощью обратной разработки в части 1 и части 2, можем прикинуть алгоритм работы имитатора касаний, написать приложение и взломать пароль! Этим сегодня и займёмся.

– Кто-нибудь, разбудите программиста!
Читать дальше →

Приглашаем на хакатон по сборке и программированию учебного ROS2-робота

Время на прочтение3 мин
Охват и читатели1.6K

Добрый день! Приглашаем вас принять участие в хакатоне «Сборка и программирование учебного ROS2-робота», который пройдёт в первом блоке ROS-митапа 4-6 апреля 2025 года. Второй блок будет посвящён мастер-классам для робототехников.

Читать далее

Cтандарт RISC-V RV32I и математика с плавающей точкой

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели2.3K

Стандарт RISC-V RV32I не содержит команд умножения и деления, поэтому интересно, достаточно ли в софт-ядре реализовать стандарт RV32I, чтобы можно было вычислять что-то серьезное. На примере RISC-V процессора YRV, описанного в книге «Inside an Open-Source Processor, мы рассмотрим, как, используя компилятор GCC, рассчитать такие тригонометрические функции, как синус, косинус и тангенс и вывести на экран результат. Даже нарисуем олдскульную синусоиду в VGA-режиме.

Читать далее

Рудирон — разработка ПО на языке С++ и дополнительные программные инструментальные средства

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели1.1K

Установка и использование программных средств для программирования и взаимодействия с контроллером «Рудирон».

Читать далее

Часы на базе микроконтроллера ch32v003 (часть 2)

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели2.8K

Эта статья, продолжение статьи часть 1. Как правильно в ней заметил @mozg37 в комментариях, RC генератор не обеспечивает достаточной точности хода часов. Благо на aliexpress можно заказать готовую плату nanoCH32V003 с кварцем на борту. В итоге получилось немного модернизировать плату и собрать проект в корпусе, распечатав его.

Читать далее

Векторизация в RISC-V. Основы

Уровень сложностиСложный
Время на прочтение13 мин
Охват и читатели4K

Многие современные вычислительные задачи, в частности повсеместная обработка изображений и звука или работа с матрицами для ИИ, хорошо поддаются параллелизации на уровне данных.  Чтобы ускорить такие вычисления, производители процессоров добавили в архитектуры специальные SIMD инструкции, которые позволяют работать за одну инструкцию сразу с несколькими элементами.

В процессорах архитектуры x86 SIMD инструкции добавляются по принципу ad hoc. Из-за такого подхода, легаси и требований обратной совместимости в x86 накопилось много проблем.

Архитектура RISC-V относительно молодая, и при её разработке учтён прошлый опыт. В основе подхода к SIMD в RISC-V заложили идею чистого векторного процессора.

В этой статье рассмотрим основные принципы работы векторного процессора и базовые векторные операции с памятью и арифметикой.

Читать далее

Бюджетная зарядка-пауэрбанк своими руками

Время на прочтение10 мин
Охват и читатели4.5K

Чтобы показать, что это вообще возможно, пришлось взять в качестве отправной точки (универсальный) прикладной пример

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

Читать далее

Генерация случайных чисел

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели6.9K
Картинка Benzoix, Freepik

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

Рассмотрим наиболее известные применения случайных чисел и способы их получения как программным способом, так и комбинированным (программно-физическим).
Читать дальше →

Армения посреди Америки, Китая и России: отчет с EDA Connect 2025

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели1.5K

Мысль, что Армения удобна тем, что соединяется и с Америкой, и с Китаем - высказал мне один из китайских участников конференции EDA Connect. А мысль, что Армения соединяется еще и с Россией - возникала естественно при просмотре докладов о логическом синтезаторе, статическом анализаторе и верификации с помощью UVM.

Помимо докладов, при конференции прошел хакатон по Verilog и FPGA, на который пришли студенты из Ереванского университета, русско-армянского университета, американо-армянского, французско-армянского, европейско-армянского, и других университетов. Занятно, что второй день хакатона проходил в комнате напротив зала, где большое начальство встречалось с Премьер-Министром Армении. Один из студентов хакатона перепутал дверь, и его перенаправила секьюрити.

Читать далее

STM32 Universal Boot Loader и стирание секторов памяти

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели3.2K

Привет всем! Меня зовут Евгений и я работаю программистом микроконтроллеров в компании Бастион г. Ростов-на-Дону.

В своих проектах мы очень часто используем STM32F030 как сопроцессор отвечающий за реалтайм задачи (АЦП, обработка кнопок, управление дисплеем), а вот бизнесс логику выносим на контроллеры помощнее. В процесе работы естественно стал вопрос с выпуске обновлений для устройств и о том как обновлять ПО и нашем "сопроцессоре" (фига себе сопроцессор конечно, но вот такие термины). Так как с основным процессором мы связаны по UART, то сюда как нельзя лучше подошел UniversalBootLoader (UBL), который уже есть во всех процессорах STM.

Рассказ о том как прошивать сами контроллеры через UBL уже есть на сайтах многих эмбедеров (easyelectronics.ru и istarik.ru разжевывали эту тему не раз), но у меня появился отличный сайдквест.

Сейчас совсем немного контекста, для понимания с чем я столкнулся.

Для стирания памяти через UBL в STM32 есть алгоритм который представлен ниже

Читать далее

Простой измеритель ёмкости аккумуляторов своими руками

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели8.8K

Ранее я описывал процесс проектирование корпуса для электронной самоделки. В этом посте будет продолжение проекта в виде описания его электронной начинки.

Изначально этот проект задумывался как улучшенная версия китайского модуля ZB2L3, но в по ходу дела оброс функциями вроде связи с компьютером и поддержкой тока до 20 А. В итоге я сейчас не уверен стоит ли его называть измерителем ёмкости, т.к. это только одна из его функций:

измерение ёмкости аккумуляторов

заряд и разряд аккумуляторов

измерение характеристик источников питания

Читать далее

Образовательный ROS2-робот: аппаратная архитектура и выбор компонентов

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели5K

Наша цель — придумать ROS2-робота для старших классов школ и университетов. Чтобы он помогал изучать современные технологии при минимальной стоимости компонентов и простоте сборки. А также чтобы был потенциал модернизации для участия в соревнованиях. Расскажу вам о текущем состоянии этого проекта.

Собрать мобильного робота

Ближайшие события

Патчим OpenOCD для поддержки чипа NOR Flash

Время на прочтение2 мин
Охват и читатели933

Disclaimer: "чукча не писатель, чукча читатель"

UseCase 0: надоело переподключать плату с RP2040 и захотелось загружать прошивку из IDE по кнопке "Run"
UseCase 1: хочется пошаговой отладки, а не принтами.

Установил на одну из плат DebugProbe и попробовал подключиться.

Оказалось не все так просто - OpenOCD плевался на неизвестное устройство:

окунуться

Индикатор искусственного горизонта на базе esp32

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели7K

Для получения данных о пространственном положении самолета в полете, а также для информирование о высоте и скоростях разрабатываются пилотажные дисплеи.

Читать далее

Machine learning на ESP32

Уровень сложностиСредний
Время на прочтение34 мин
Охват и читатели10K

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

В этом примере используются измерения акселерометра MPU 6050 и машинное обучение (ML) для распознавания трех жестов рукой с помощью ESP32. Данные из сенсора распознаются на микроконтроллере и результат выводится в консоль в виде названия жеста и вероятности результата. Модель ML использует TensorFlow и Keras и обучается на выборке данных, представляющей три различных жеста: "circle" (окружность), "cross" (пересечение) и "pad" (поступательное движение).

Разработка проекта начнется с получения данных из акселерометра для построения набора жестов. Затем мы проектируем полносвязную нейронную сеть для распознавания жестов, и подключим модель в проекте ESP32.

В следующей части рассмотрим как настроить Bluetooth LE (BLE) на ESP32 и Android устройстве. Передадим квантированный набор ускорений сенсора по BLE. Настроим Модель ML для распознания жестов на Android.

Читать далее

Работа с RISC-V контроллерами на примере GD32VF103 и CH32V303. Часть 6. Дробные числа

Время на прочтение14 мин
Охват и читатели2.5K

Макетная плата GD32VF103


Одно из основных предназначений микроконтроллера — это получение информации извне, ее обработка и выдача реакции. Причем зачастую эта информация представлена не в цифрах, а в терминах реального мира: 3 сантиметра, 101 килопаскаль, 3.6 вольта. Мало того, что информацию надо получить, ее зачастую надо потом отобразить человеку. Вот только подобные аналоговые величины плохо ложатся на целочисленные переменные, с которыми так хорошо работает контроллер. О том, как дробные числа можно закодировать и какие при этом встречаются подводные камни, сегодня и поговорим.

Читать дальше →

Руководство по началу работы с отладочной платой MIK32-DIP (K1948ВК018, Амур) в ОС GNU/Linux

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели3.7K

MIK32 АМУР или K1948ВК018 является российским микроконтроллером (МК) с ядром на открытой архитектуре RISC‑V. По какой‑то причине производитель МК ГК «Микрон» предлагает в качестве средства разработки,‑ средство на базе Eclipse, но исключительно под Windows, что далеко не всех устраивает. А также, в руководстве по эксплуатации на данный МК, предлагается использовать VS Code, и это конечно более универсальный (кроссплатформеный) вариант, но предполагает использование VS Code совместно с плагином PlatformIO, что опять же устраивает далеко не всех. Поэтому я рассмотрю в данном руководстве старт работы с отладочной платой MIK32-DIP в ОС GNU/Linux в IDE Eclipse.

Чтобы начать работу вам понадобятся:

Читать далее

Зеркала вместо заводов: как город купил себе солнце и немножко разбогател

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели9.8K

В прошлом году появилась новость про калифорнийский стартап Reflect Orbital, который собирался запустить 57 малых спутников, чтобы в любой момент можно было перенаправить солнечный свет в произвольную точку мира. Если вдруг не можете найти ключи в темноте, то заказываете в приложении свет по своим координатам – вуаля, только вам светит солнце. 

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

да будет свет!

Использование лидара от робота-пылесоса для системы предотвращения столкновений в автономных роботах

Уровень сложностиСредний
Время на прочтение22 мин
Охват и читатели16K

Как прочитать данные с недорогого лидара от робота-пылесоса на ESP32, визуализировать показания на кольце из 12 светодиодов и даже интегрировать решение в робота для участия в соревнованиях.

Читать далее

Вклад авторов