Обновить
191.75

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

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

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

Система мониторинга и подсчета перелетных птиц

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

Идея проекта возникла этой весной, когда в наши края приезжал вице-президент Союза охраны птиц России Алексей Леонович Эбель, для учёта гуменника, мигрирующего через Алтайский край.

Проблема в том, что гусь летит 5-6 недель и неравномерно (насколько неравномерно - это базовый вопрос). И ещё нерешённая задача: гусь может лететь ночами.

Алексей Леонович вычислил место, где гуменника во время весенней миграции учитывать оптимальнее всего. Эта точка оказалась недалеко от меня. За 2 плюс один неполный световых дня в коридоре 7-8 км он насчитал почти 15.000 пролётных особей, а мы с друзьями ему в этом немного помогали.

Понятно, что посчитать это вручную более-менее точно не получится, поэтому я сразу подумал о том, чтобы автоматизировать задачу.

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

Читать далее

Новости

Ищем ошибку в работе WiFi у платы ESP32-C3 SuperMini

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

Статья о небольшой эпопее с поиском ошибки в работе WiFi на плате ESP32-C3 SuperMini, с которой пришлось разбираться в процессе отладки кода прошивки для контроллера батареи АКБ (О контроллере батареи ИБП (вопрос к читателям Хабра) и О контроллере батареи ИБП (часть 2)).

Симптоматика проблемы с WiFi следующая: после включения питания и начала авторизации по WiFi плата ESP32-C3 SuperMini через какое-то время зависает, вплоть до срабатывания сторожевого таймера. Поиск решения проблемы в интернете не помог, но было замечено, что в эти моменты на плате очень сильно нагревается стабилизатор напряжения 3.3V, да так, что даже рука не терпит, тогда как при работе тестовых примеров (где WiFi работает нормально) такого эффекта не наблюдается.

Из-за этого решил копать именно в этом направлении.

Читать далее

Размещение глобальных констант по фиксированным адресам

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров2K

В программировании микроконтроллеров порой надо сделать так, чтобы после сборки артефактов в прошивке глобальные константы оказались в строго заданных адресах NOR Flash памяти. Причем при пересборке проекта эти адреса оставались прежними.

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

Потом это требование международного стандарта программирования ISO-26262.
Делается для того, чтобы появилась возможность менять значения в этом интервале утилитой TunerPRO перед прошивкой бинаря.

Фиксированные адреса констант позволят вам всегда иметь один и тот же *.xdf файл для утилиты TunerPRO.

Читать далее

Самые необычные серверы Minecraft: от умной лампочки до микроконтроллера. Как это работает?

Время на прочтение6 мин
Количество просмотров4.4K

Minecraft давно вышел за рамки развлечений. Сейчас это еще и площадка для экспериментов. Энтузиасты запускают сервера игры на устройствах, которые вообще не предназначены для такого. Как вам — умная лампочка с мигающим светодиодом, роутер, забытый в шкафу, микроконтроллер ESP32 размером с марку? Подобные проекты рождаются из простого «а что, если…» и показывают, насколько гибкой стала архитектура Minecraft и как далеко можно зайти в оптимизации. В этом материале разберем, как сервер работает на уровне кода и железа и какие приемы позволяют запускать его на слабом, почти игрушечном оборудовании. Ведь классический сервер — это Java-приложение, требующее виртуальной машины и памяти, но в нашем случае правила меняются. Поехали!

Читать далее

Мультитул для инженера: волшебная коробочка с I2C/SPI/UART/JTAG за 1.000 рублей

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

Будучи творческим человеком и техногиком, я обожаю при первой возможности апгрейдить своё оборудование. Время от времени я мониторю маркетплейсы в поисках чего-то новенького и в этот раз я наткнулся на настоящий мультитул для Embedded-разработчика — контроллер I2C/SPI/UART/JTAG в одной коробочке и всё это всего за 1.000 рублей... Конечно я не смог пройти мимо этой штучки и в рамках сегодняшней статьи хочу рассказать что оно из себя представляет и как с ним работать. Жду вас под катом!

Читать далее

Обзор утилиты TunerPro (или const volatile)

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

TunerPRO это бесплатный бинарный редактор прошивок. Это аналог STM32Studio.
Эта программа позволит вам редактировать константы в готовом bin файле. Минуя стадию повторной пере сборки всего проекта прошивки. Можно сказать, что TunerPRO хакерская tool-а.

Эта утилита связывает воедино всю информацию про переменные. Это адрес ячейки памяти в бинаре, название физической величины, размерность переменной, размер параметра, формат ее хранения в памяти, имя переменной, множитель, единицу измерения, максимальное и минимальное значение. В то время как тот же *.map файл дает только сведения про имя адрес в памяти и размер.

Читать далее

Портативный СВЧ-детектор

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

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

Читать далее

Альянс RISC-V подвел итоги второго этапа программы DEVBOARDS: проект победителя

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

На «Микроэлектронике-2025» подвели итоги 2-го и объявили старт 3-го этапа программы раннего доступа RISC‑V DevBoards — того самого комьюнити‑эксперимента, где разработчикам раздают отечественные отладочные платы и просят сделать из них что‑то полезное (а лучше — неожиданно крутое). В этом году выбрали победителя, назвали призёров и озвучили цифры, которые уже тянут на маленькую индустриальную статистику.

Читать далее

Progress Bar для Сборки Программы

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1.9K

Компиляцию большой программы можно сравнить с кипячением воды. Вы никогда не можете сказать сколько еще осталось времени до окончания процесса. Многим пользователям GUI‑IDE приходится страдать от того, что запустив сборку проекта приходится ждать окончания непредсказуемое время.

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

В этом тексте я написал про то, как добавить индикатор прогресса в процесс сборки прошивки.

Читать далее

Шпаргалка по AXI: Краткое описание интерфейса

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров1.7K

Обзор интерфейса AMBA AXI на основе Introduction to AXI. Может быть полезным тем, кто хочет быстро понять основные его фишки.

Читать далее

Разбираемся с композитным видеосигналом NTSC, и стоит ли изучать его в 2025 году. Часть 2

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

В предыдущей статье я рассказал об основах композитного видеосигнала NTSC. Эта статья должна быть интереснее, так как она посвящена программной генерации такого видеосигнала. Тема интересна тем, что помимо самого видеосигнала вы ещё получаете множество практических навыков применения современных микроконтроллеров.

Сигнал CVBS можно получить, используя и FPGA-решения, но стоимость их выше, чем у микроконтроллеров, таких как Raspberry Pi Pico или ESP32.

Я использовал платы разработчика на базе микроконтроллера RP2040. На рынке существует несколько таких плат. Классика — это Raspberry Pi Pico, но есть несколько китайских аналогов, например, YD-2040. Отдельно хочется выделить RP2040 Zero от Waveshare — очень компактное решение, правда у него отсутствует порт для отладки, но можно обойтись и без порта.

Важный момент — СVBS-сигнал является аналоговый, поэтому стабильность напряжение на выходе играет важную роль и для приемлемого качества сигнала китайские клоны Raspberry Pi Pico могут не подойти, так как они страдают нестабильным напряжением на выходах. Мой совет — используйте или оригинальный Raspberry Pi Pico или RP2040 Zero от Waveshare.

Желающих продолжить чтение приглашаю под кат.

Читать далее

Умный дренажный колодец на ESP32: уведомление в телефон — вместо «сюрпризов» в унитазе, дешевле готовых решений в разы

Время на прочтение6 мин
Количество просмотров7.2K

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

Вы бежите к колодцу, поднимаете тяжеленную крышку, а там... уже всё плавает. А через пару минут доходит осознание: насос благополучно проспал момент включения. Привет, внеплановые 20 минут откачки и «удобрение» участка самым неожиданным способом.

Я посмотрел в сторону готовых решений за 3000+ рублей (используют емкостной метод (измеряют точный уровень 0-100%), имеют качественный корпус, готовое приложение и гарантию), но обнаружил, на мой взгляд, подводные камни: мало отзывов — устройства довольно новые на рынке, закрытая система — нельзя ничего доработать под свои нужды.

А мне было нужно простое, как лопата, решение. Чтобы устройство оповестило меня: «Колодец полный, не желаешь ли включить насос? ПОЖАЛУЙСТА 😠» — и желательно в Telegram, где я точно замечу это сообщение.

Да ну, серьёзно?

Подключение PlayStation2 Джойстика к Микроконтроллеру (или Переходник между человеком и компьютером)

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

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

В этом тексте я написал про то как запрограммировать Game Pad от PS2.

Читать далее

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

Обзор Протокола UDS [ISO 14229-1]

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров1.3K

UDS (ISO 14229) (Unified Diagnostic Services) это бинарный протокол.

Обычно этот протокол гоняют поверх протокола ISO-TP в CAN шине между ECU. Подробно протокол описан в стандарте ISO 14229.

Это диалоговый протокол, то есть работает по принципу запрос-ответ. Получается что тут есть master и slave узлы. Ещё говорят клиент сервер. Где клиент - это тестировочное оборудование, а сервер - автомобильный ECU.

В этом тексте я произвел поверхностный обзор протокола UDS.

Читать далее

Адресная лента WS2812b на STM32 с помощью SPI

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров3.8K

Подробное руководство по управлению адресной светодиодной лентой WS2812B с микроконтроллерами STM32 с использованием SPI. Обсуждаются кодирование битов, формирование массива данных, настройка яркости и передача нескольких светодиодов в цепочке.

Читать далее

Сначала логика, потом код: как писать программы для ESP на MicroPython

Время на прочтение14 мин
Количество просмотров7.8K

В прошлой статье  мы дали голос нашему ESP32 — научили его отправлять уведомления в Telegram и ntfy. Теперь, когда устройство умеет "говорить", пришло время научить его "думать" и работать самостоятельно, без постоянного контроля.

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

В реальном проекте недостаточно просто уметь отправлять уведомления — нужно понимать:

Когда их отправлять (чтобы не спамить).

Что делать между уведомлениями.

Как не зависнуть через неделю работы.

Куда девать ограниченную память ESP32.

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

Читать далее

Новогодняя гирлянда на BluePill

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров7.2K

Близится Новый год, а гирлянда на ёлку не готова. В комоде уложена старая, её использовали уже пять раз и хочется чего-то нового. Предлагаю сделать свою, на популярной плате STM32 BluePIll в связке с адресными светодиодами. Это история с открытым концом. Если читателю идея покажется интересной, будет прошивка на git с реализацией интересных задумок; в противном случае, придётся купить готовую на маркетплейсе. Но мы же этого не допустим?

Предложить идею

Даем голос ESP: Уведомления в Telegram и ntfy

Время на прочтение8 мин
Количество просмотров8.3K

В прошлой статье  мы рассмотрели, как отлаживать код, загружать отредактированные файлы и удалять ненужные файлы на устройстве прямо из браузера (беспроводное управление устройством) через WebREPL и через uPyLoader. Теперь научим устройство "говорить" — отправлять нам сообщения  через систему push-уведомлений популярных мессенджеров.

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

Мы протестируем две системы уведомлений:

Telegram-бот — для ESP32, который будет отображать сообщения от модуля, обладающего достаточными ресурсами  для обработки SSL-шифрования, требуемого Telegram API.

Продолжаем

Хакаем самую дешёвую консоль с Ozon

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров27K

Помните статью про самую дешёвую консоль с Ozon — Sup GameBox? Тогда я рассказал вам о том, что у этого чуда инженерной мысли находится «под капотом» и почему эта консоль не так проста, как кажется на первый взгляд.

После статьи я решил написать письмо производителю процессора этой консоли. И что самое интересно — мне ответили! Даже Спустя 40 лет после релиза оригинальной NES, тайваньская компания V.R.T продолжает развивать архитектуру оригинальной NES. Мне больше ничего не оставалось, кроме как включить фен, достать программатор и хакнуть этот девайс...

Читать далее

Энкодер на базе HEDR и STM32

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

Всем привет!

В данной статье я хочу Вам рассказать про датчик HEDR(от компании avago technologies) - это двухканальный инкрементальный оптический датчик, предназначен для измерения пройденного пути, линейной скорости, угловой скорости и направлении вращения вала.
С помощью данного датчика будет реализован энкодер на базе микроконтроллера STM32, который будет производить вычисление пройденного пути.

Будет рассмотрено:

Принцип работы датчика HEDR-5420-ES214;

Схема подключения к микроконтроллеру STM32;

Программная реализация (расчет пройденного пути и вывод информации на дисплей).

Читать далее
1
23 ...

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