Как стать автором
Поиск
Написать публикацию
Обновить
180.97

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

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

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

Простой программатор для атмеловских 8051

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

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

Собственно программатор — голый Arduino с прошивкой, разбирающей HEX‑файл построчно и реализующий программирование целевого чипа по SPI. Прошивка и инструкции сложены в репозитории на гитхабе: At89s‑prog.

Конкретные чипы (At89s...) здесь скорее для примера. Мы не будем воспевать достоинства 8051-й архитектуры (конечно, они архаичны но у них есть плюсы, благодаря которым они до сих пор сохраняют популярность). У меня в какой‑то момент оказалась их горстка а программатора под рукой не нашлось. Они (те что с индексом S) программируются через SPI, а не стандартным «многоногим» интерфейсом что делает удобным их применение в любительских поделках.

Читать далее

Переходим границу из Мексики в Калифорнию в 2025 году: инструкция для айтишника с фотографиями

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

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

Кроме этого, в последние месяцы на иммигрантских IT‑форумах появилась информация, что все, лавочка закрыта и границу больше перейти нельзя. Это разумеется не так, и моя заметка будет проводником в осуществлении вашей Калифорнийской Мечты.

Читать далее

ESP32-S3 BLE Keyboard

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

Идеяустройства возникла у меня давно. Захотелось аппаратного менеджера паролей. Надоело перепечатывать 20-символьные пароли из телефонного KeyPass, а на каждый компьютер, где нужно что‑то вводить, устанешь устанавливать. Посмотрел, что предлагают, посмотрел, что делают. В основном, не понравились размеры. Иногда цена. С другой стороны, телефон с паролями всегда с собой. А тут ещё бесплатный DeepSeek.

TL;DR: Просто история мучений. В конце прошивка для контроллера + Android‑приложение, работает. Хотя и на стадии «концепт».

Читать далее

EEPROM Загрузчик для MIK32 (K1948BK018)

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

В данном тексте я написал про то, как я написал загрузчик для российского микроконтроллера MIK32 (K1948BK018).

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

Читать далее

Собираем умные часы: выбор микросхемы

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

Полный видеоролик по этой статье есть на моём YouTube-канале.

Это первая статья в серии, описывающей все этапы создания умных часов. Здесь я хочу показать, что в 2025 году не так уж сложно самому собрать достаточно неплохую модель. Хочется, чтобы наш проект по созданию обновлённых часов помог создавать их и другим желающим.
Читать дальше →

Рецепт фасолей: как я отреверсил бюджетный кнопочный телефон, хакнул его и научил запускать нативные программы на C

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

Осторожно: помните ли вы, как в вашем телефоне Siemens, Motorola и Sony поселились маленькие программы — «эльфы»? В рамках этой статьи мы во всех деталях исследуем прошивку бюджетного кнопочника, разберемся в её архитектуре, хакнем и напишем загрузчик тех самых эльфов с MicroSD-флэшки. При этом я постараюсь объяснить всё максимально простым и доступным языком!

Недавно я познакомился с легендой форума allsiemens.ru — Ilya_ZX, который известен своим огромным вкладом в тему реверса и моддинга телефонов на платформе E-Gold и S-Gold. Илья поведал мне интересную историю о том, как в начале нулевых, будучи студентом, поспорил с одногруппником, сможет ли он добавить ‭‭«змейку‭‭» в свой Siemens A60. И спор он этот выиграл, путем бессонных ночей ковыряния прошивки в IDA Pro! Я подумал ‭‭— «а чем я хуже?‭‭». Взял в руки кнопочный телефон на платформе Spreadtrum, сдампил прошивку и загрузил в дизассемблер...

Если вам интересен подробный процесс реверса различных модулей прошивки, как они взаимодействуют между собой, как я написал программу для применения патчей к фуллфлэшу и, собственно, бинлоадер с первой программой — жду вас под катом!

Читать далее

E-paper Arduino термометр на ESP-IDF

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

Наверное каждый любитель электроники имеет в запасе модули приобретенные на всякий случай. Так несколько лет назад я не смог пройти мимо 1.5 дюймового E-Ink дисплея, лежащего на витрине радиомагазина. Через некоторое время нашлось для него применение. В статье ESP32 E-Paper Thermometer описывается, как отображать окружающую температуру, измеренную с помощью датчика DS18B20. Проект выполнен в Arduino IDE. Но я решил пройти "Путь самурая" и портировать код на ESP-IDF. Пришлось немного повозится с библиотеками для работы с дисплеем. На этом мой путь не окончился, как говорят: "У самурая нет цели, есть только путь". И я решил, что было бы неплохо добавить еще несколько сенсоров, измеряющих влажность, давление, CO2, а потом отправлять эти данные по MQTT. В том же радиомагазине был приобретен фанерный домик-конструктор со светодиодным ночником. А в другом магазине - модуль с датчиками. Таким образом родилась идея сконструировать Micro-smart-home. На передней части домика расположен дисплей на пластиковых стойках. А с другой стороны расположен модуль с сенсорами.

Читать далее

PI BOARD: автоматизированный шахматный робот

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

Pi Board — это продвинутая автоматизированная шахматная система на основе Raspberry Pi, использующая механизм шагового двигателя оси XY и магниты для перемещения шахматных фигур по доске. Процесс разработки состоял из множества этапов, в том числе из прецизионной калибровки координат шагового двигателя, вычисления веса каждой фигуры для точного перемещения, интеграции сильного шахматного движка, оптимизации стратегий захвата фигур и распознавания движения. Особое внимание было уделено выбору наиболее эффективного алгоритма для снижения энергопотребления шаговых двигателей.

Pi Board позволяет игрокам выбирать цвет фигур и настраивать уровень сложности шахматного движка. Кроме того, на этапе разработки у неё имелась возможность подключения к Интернету, позволявшая пользователям участвовать в дистанционных шахматных матчах по сети.

Читать далее

Proxy MCAL для Микроконтроллера

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

При продолжительной разработке на одном семействе микроконтроллеров получается так, что приложение намертво привязано к конкретному семейству микроконтроллеров и его SDK, так как напрямую использует HAL от вендора.

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

Получается, что приходится заново писать всю прошивку, всё приложение, драйвера всех ASIC-ов. Драйвер светодиодов, драйвер кнопок, драйвер ASICов c I2C SPI управлением. В общем всё переписывать. Поменяли MCU и пришлось переписать все файлы в репозитории. Нормально так да?

В этом тексте я написал, как можно обойти эту проблему.

Читать далее

Интеграционное тестирование в Spring Boot: SourceCraft + Amplicode + Docker Compose Starter в деле

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

Когда одних юнит-тестов уже недостаточно, на сцену выходят интеграционные. В этой статье от команды Amplicode мы покажем, как протестировать REST API в Spring Boot с использованием современного стека: генерация тестов через Amplicode, автоматический запуск окружения с помощью Docker Compose Starter и поддержки со стороны LLM-инструментов от Яндекса.

Читать далее

Датчик качества воздуха EFEKTA Smart Air Quality Box

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров5.5K
Приветствую всех читателей Habr, сегодня хочу рассказать вам о моем новом интересном проекте для умного дома — многофункциональном датчике качества воздуха EFEKTA Smart Air Quality Box, работающем на протоколе Zigbee 3.0. Современные технологии умного дома активно развиваются, и одним из ключевых аспектов комфортной жизни становится контроль микроклимата. Качество воздуха в помещении напрямую влияет на здоровье, работоспособность и общее самочувствие. Если вам интересна тема контроля качества воздуха и вы хотите узнать чем закончилась эта разработка — добро пожаловать под кат.


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

Попытка настроить macOS для использования китайского программатора ST-LINK V2 и Blue Pill

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

В основном я работал на оригинальной отладочной плате Nucleo (stm32f411ret6) и прекрасно себя чувствал на macOs.
Не так давно я решил попробовать прошить blue pill через китайский st-link и получил море ошибок в CubeIDE с которыми решил разобраться раз и навсегда. На самом деле все оказалось не так сложно, как я думал по началу. Через костыли, но она работает!
Данная статья является дубликатом моего репозитория https://github.com/nikitatm333/ST-LINK_V2_for_macOS, я давно хотел написать свою первую статью на хабре и решил начать с дубликатов своих "шпаргалок".
Не будем затягивать, начнем!

Читать далее

Основы по GNU Make

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

GNU Make - это консольная утилита, которая запускает другие консольные утилиты в желаемой последовательности согласно скрипту. Только и всего.

В этом тексте я показал, как можно организовать самостоятельно написанные make скрипты для микроконтроллерных проектов.

Читать далее

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

Забавы в ближнем инфракрасном. Часть 2. Сенсор + Arduino + Скетч = Счётчик пробегающих

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

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

Когда сенсорная система готова, интерес смещается к проблеме обработки поступающей от неё информации. Электронщик, отдохни, сходи попить кофе. Айтишник, просыпайся: твой выход.

Читать далее

Как найти и потерять бэкдор в ESP32

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

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

А потом... все как-то поутихло. Что же на самом деле нашли испанские исследователи в популярном микроконтроллере? Почему новость о «бэкдоре» разлетелась со скоростью лесного пожара? И главное — насколько реальна была угроза?

Давайте разберемся в этой запутанной истории, где переплелись технические исследования, PR-ходы, погоня за кликами и, конечно же, всеми любимые низкоуровневые протоколы. Поехали!

Читать далее

Проект «Мультиключ». Эмулятор ключей от домофона на ESP8266

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

Никак не доходили руки до написания этой статьи, точнее я её планировал написать после полноценного перевода устройства на esp32 c3, который никак не состоится.

Вкратце напомню о чем этот проект, и чем он закончился в прошлой статье. Мы разрабатываем компактное устройство для чтения, хранения, записи и эмуляции электронных ключей (которые чаще всего встречаются у нас в подъездах и на проходных). Изначально это был проект одного из моих учеников. Но в этом году, для участия во ВСОШ по робототехнике ему пришлось поменять тему работы, которая тоже довольно интересная, как-нибудь по неё тоже напишу). А я по наличию времени и энтузиазма продолжил добивать программную часть.

В прошлой статье мы перевели устройство на esp8266, что сделало его более производительным и решило проблему с памятью. У нас получилось прочитать и эмулировать контактные ключи dallas и русские Сyfral и Metacom. После этого мы решили перейти к бесконтактным ключам стандарта EmMarine.

Бесонтактные ключи уже так просто, при помощи одного резистора, не прочитаешь, нужен детектор-генератор на 125 кГц. На этом этапе опять очень помог проект от Alex Malov EasyKeyDublicator. У него я взял схему детектора без изменений. И первые тесты производил на Arduino Nano.

Читать далее

Атрибуты Хорошего Loader-a

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

В программировании микроконтроллеров периодически приходится писать клиентские PC программы для загрузки *.hex файлов в микроконтроллер через загрузчик.

Обычно в названии этих утилит присутствует слово loader.

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

Читать далее

О переходе на QingKeV4. Тесты CoreMark в разных областях флэша для СH32V2/V3 и что же такое non-zero wait

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

Про внешний SPI флэш внутри чипов WCH уже везде написали, ситуацию с реальным объемом я описывал. Но какая там скорость и как она влияет на производительность системы? WCH на эту тему неоднократно высказывался, правда по китайский и в ответах саппорта на wch.cn:) Общий смысл того, что мне поведал Google переводчик: для кода используйте кэшируемый флэш zero‑wait, все остальное это для пользовательских данных, но если вы уж прям не влезаете в zero-wiat, то можно и в non zero-wait залезть. Крайне содержательно. Чтобы окончательно раскрыть тему, я вооружился тестами производительности CoreMark и в целом получил ответы на 2 своих главных вопроса: какая частота доступа к физическому SPI флэшу и как стратегия его применения в реальных проектах. Сейчас расскажу.

Далее

Собираем демо чемодан из подручных остатков к выставке WBCE2025

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

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

Читать далее

Статический Анализ С-кода

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

Существуют бесплатные статические анализаторы для Си кода. Среди них splint и cppcheck.

Статический анализатор - это такая консольная программа, которая проверяет исходные коды до компиляции. Своего рода автоматическая инспекция программ.

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

Суть этой короткой заметки в том, чтобы показать, как просто и лаконично происходит подключение разнообразных статических анализаторов к проекту, который собран скриптами сборки GNU Make.

Читать далее

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