Обновить
128K+

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

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

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

Ортодоксально Каноническая Прошивка (ОКФП)

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

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

Читать далее

Подключение SD карты по SPI (Капсула памяти)

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

В этом тексте я написал про некоторые особенности работ c SD картами при соединении их с микроконтроллером по интерфейсу SPI.

Читать далее

Спасаем ARGB: Как я заменил сгоревший китайский хаб на ESP32 с веб-интерфейсом

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

Год назад я собрал систему с пятью бюджетными ARGB вентиляторами Aigo AR12 с 6-pin разъёмами. В комплекте шёл хаб AR12-2012 это типичная китайская плата с 10 портами для вентилей, SATA питанием и выходом на материнку для синхронизации подсветки.

Всё работало. Красиво светилось. Но ровно год.

Однажды утром вентиляторы крутились, а подсветка увы нет. Хаб умер. Покупать новый за $15-20 не хотелось, тем более что я знал: внутри этих вертушек сидят обычные адресные светодиоды (WS2812/SM16703-совместимые).

А раз адресные, значит можно управлять с ESP32.

Читать далее

Феномен Arduino: почему эта плата завоевала молодежь, а не стала скучным учебником

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

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

Читать далее

ESP32 + MLX90640: тепловизор с искусственным интеллектом

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

Сегодня я хочу показать и рассказать вам, как, подключив к ESP32-S3 тепловизионную матрицу MLX90640, можно запустить веб-сервер для стриминга теплового изображения с определением в реальном времени того, какие сущности попали в поле зрения тепловизора.

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

Данная система является полностью автономной, и инференс TensorFlow Lite-модели происходит прямо на борту микроконтроллера.

Ознакомиться

Протоколы для систем реального времени

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

Эта статья написана по итогам разработки геоинформационной платформы «RndFlow.Кругозор» и конкретной прикладной системы на её основе.

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

Состояние аппаратуры и канала связи с ней является критичным параметром работоспособности системы в целом, и, следовательно, тоже непрерывно мониторится.

Сама система представляет из себя интеграционную платформу, которая поддерживает

Читать далее

Чип, который умеет говорить (SI4703)

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

В этом тексте я хотел бы рассказать про свой опыт работы с однокристальным радио приёмникои SI4703 от компании Silicon Laboratories.

SI4703 - это миниатюрный настраиваемый FM радио приемник c DSP обработкой, управляемый по I2C, с возможностью принимать бинарные данные от радиостанций по протоколу RDS .

Чип производит демодуляцию частотно модулированного сигнала, пропускает его через цифровой гетеродин и выдает на наушники аналоговый сигнал. Тут есть два смесителя: первый аналоговый, второй цифровой. Аналоговый смеситель снимает FM сигнал с несущей. Цифровой смеситель подстраивает цифровой гетеродин на конкретную радиостанцию. Это классический гетеродинный приемник.

Читать далее

Самый маленький микроконтроллер в мире

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

Недавно я получил письмо с embedded.com о новом микроконтроллере MSPM0C1104. Что в нем такого кроме размеров? Разбираемся.

Читать далее

Протокол TBFP

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

В этом тексте я бы хотел рассказать про простой бинарный протокол, который я сам придумал для всяческих нужд при разработке приборов на микроконтроллерах. Называется он TBFP (Trivial Binary Frame Protocol)

Читать далее

Взламываем Аэродромный Метеоиндикатор

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

Я питаю двоякие чувства к метеостанциям. Терпеть не могу многочисленные Arduino-проекты с мелким экраном, зато люблю что-то эдакое. Например в коридоре уже пять лет как висит метеоиндикатор на базе блинкерного табло для автобуса, что случайно попалось на просторах авито. Так вышло и на этот раз, и в моем распоряжении оказался аэродромный индикатор погоды Комплексной Радиотехнической Аэродромной Метеорологической Станции.

Читать далее

Создаем свои компоненты для ESPHome на примере датчика света и приближения (AP3216)

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

ESPHome позволяет создавать программы для микроконтроллеров (ESP32, ESP8266 и т. д.) посредством написания YAML файлов. Это значительно упрощает и ускоряет разработку. Внешние компоненты (external components) разрабатываются с использованием С/С++ и Python и могут быть использованы повторно, по аналогии с библиотеками. Внешние компоненты могут разрабатываться для сенсоров, кнопок, GUI-компонентов и т.д.; подключаться локально или из удаленных репозиториев.

В статье я покажу как создавать внешние компоненты и повторно их использовать на примере AP3216 (датчика света и приближения).

Читать далее

Разработка электропривода. Часть 2. Электронная часть электропривода

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

В этой части цикла, посвященного разработке электропривода, мы сосредоточимся на его электронной составляющей. Рассмотрим топологии силовых узлов AC/DC, DC/DC и DC/AC электропривода, подбор электронных компонентов, а также ключевые нормативные стандарты, которых необходимо придерживаться при проектировании. Отдельный раздел будет посвящен выбору вычислительной платформы для управляющей платы — FPGA, DSP, SoC и другие варианты. Кроме того, затронем вопросы функциональной безопасности (safety) в электронике и требования к безопасной работе электропривода.

Читать далее

ESPB — брат WASM для ESP32

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

Привет, Хабр! Меня зовут Андрей. По основной профессии я инженер-проектировщик, а программирование для меня — это хобби и инструмент, помогающий в работе.

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

Всё началось с прикладной задачи, опять же в качестве - а смогу ли? Было разработано и собрано устройство для переключения насосов и управления системой подпитки для индивидуального теплового пункта. Оно подключается к телефону для мониторинга и настройки. В какой-то момент захотелось иметь возможность дополнять его логику новыми схемами управления прямо с телефона, не перекомпилируя и не перепрошивая основное ядро. И понеслась...

Читать далее

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

Pi.Alert на минималках — сканируем сеть с помощью ESP32

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

Привет, Хабр! Меня зовут Алексей, и я разработчик в Cloud.ru. Бороздя просторы Github в поисках вдохновения для проекта выходного дня, наткнулся на репозиторий Pi.Alert. В его описании первой строкой было ёмкое «WIFI / LAN intruder detector». Мне понравилась концепция устройства, которое выполняет мониторинг подключенных к сети девайсов, и я захотел сделать что-то подобное. Но выделять под эту задачу машинку, способную исполнять Python-код, показалось избыточным. Было решено - пора сдуть пыль с давно заказанного, но так и не нашедшего применения ESP32, и наконец-то поупражняться в написании кода под эту SoC. Целью эксперимента стало создание анализатора домашней сети, отображающего подключенные устройства. В качестве дополнительной фичи добавим сигнализирование о ситуациях возможного arp-spoofing.

Читать далее

Вайб вместо звука: как я за вечер собрал вибровариометр на ESP32, а Gemini и ко сгенерировали всё, кроме пайки

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

Парапланеризм - это про спокойствие, свободу и медитативный полет. Но в этой идиллии есть один назойливый артефакт: звук вариометра.

Традиционные приборы - звуковые. Они меняют тональность в зависимости от скороподъемности. И когда часами часами летаешь под облаками это постоянное пикание слегка надоедает.

Однажды мой друг, с которым мы летали на соревнованиях, бросил фразу:
«Было бы круто, если бы вариометр просто вибрировал - как телефон в кармане. Чтобы я чувствовал поток рукой или запястьем, а не ухом».

Я тогда просто кивнул. А через годик, болтаясь по Алиэкспрессу я увидел на сайте часы Watchy на ESP32-PICO-D4 с Е-ink и в голове щелкнуло: А что, если превратить эти open-source часы в вибровариометр?

Читать далее

Искусство выжить. Простое руководство для настоящих программистов

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

Задача Эдсгера Дейкстры о философах – великая задача великого программиста. Уж сколько лет, а она актуальна. Решая ее, прикасаешься к этому величию. И вот, перефразируя известное, «давно не было такого и вот опять», можно познакомиться с ее «новым прочтением» на Хабре[1].

Ну, как новое?… Но она стала тем триггером, который подвигнул меня к очередной попытке ее решения. Тем более, что с момента знакомства с философами пролетела уйма лет, а в  багаже - опыт применения автоматной модели и значительно усовершенствованная среда их реализации.

Познакомился с проблемой обедающих философов – Dinning Philosopher Problem (DPP), я более двадцати лет тому назад (про DPP см. [2]). Результатом стала статья, в которой философы выполняли поставленную задачу, как минимум, не хуже, чем классические алгоритмы сортировок[3]. Позднее был сделан доклад на конференции по параллельным вычислениям в Саратове, где на суд научной общественности была предъявлена модель автоматных параллельных вычислений и пример ее приложения - задача Дейкстры[4].  

Замечание 1. В рамках обсуждения статьи на Хабре было проигнорировано  предложение поручить сортировку философам. Зря, конечно, т.к. надо же как-то убедиться, что предлагаемое решение работает хотя бы в первом приближении. К примеру, тот же DeepSeek, моментально выдавший свое решение DPP, так и не смог заставить их сортировать.

Не знаю, считается ли данная задача решенной, но то, с чем я знаком, по большей части беглое рассмотрение проблем, которые она отражает. У задачи есть теория, которая представлена монографией Хоара[5], или моделями сетей Петри у Питерсона[6] и В.Е. Котова[7] или другими подобными публикациям. Но, повторюсь, все это по большей части достаточно краткий анализ свойств модели и/или даже конкретного решения. Статья на Хабре из этой же серии. Все это ни как не окончательное решение описываемых ею проблем параллелизма. Правда, может, [авторами] вопрос так и не ставился, но все же ответ на него весьма желательно иметь.

Читать далее

Сколько воды в бочке?

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

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

Читать далее

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее