Обновить
128K+

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

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

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

Добавляем надежный recovery в Xiaomi Band 10 Pro

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

В руках у меня новые часы от Xiaomi, Smart Band 10 Pro, у них есть приличный минус в системе recovery, который устранен в других часах линейки Сяоми, я расскажу об устройстве данной модели, структуре прошивки, пакета OTA и покажу какое решение решение я реализовал, чтобы улучшить механизм восстановления часов.

Читать далее

Новости

Генератор M-последовательностей

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

В радиолокации и цифровой связи есть острая потребность кодировать зондирующие импульсы уникальным цифровым кодом с хорошей автокорреляционной функцией.
Для преодоления помех надо закачивать в импульс существенно большую энергию. Энергию можно закачивать в двух направлениях: либо в амплитуду передаваемого сигнала, либо в длительность излучения. Амплитуду невозможно увеличивать до бесконечности. Остается увеличивать длительность зондирующего импульса. Однако длинные монотонные импульсы портят разрешение по дальности. Чтобы не проиграть в разрешении по дальности длинные сигналы надо как-то модулировать. Вот тут-то и выходят на сцену М-последовательности.

Читать далее

Необычный ремонт LCD Roland JUNO-G

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

Довольно давно у меня в кладовке пылился синтезатор Roland JUNO-G. Его поразила родовая болезнь – быстрая смерть LCD, замену которому Roland выпускала по конским ценам, а потом и просто прекратила выпуск. При этом в остальном синтезатор полностью рабочий и выбрасывать его было жалко. И тут, спустя много лет, мне попался репозитарий на GitHub с описанием способа нестандартного ремонта дисплея Roland JUNO-G. Я осуществил его на собственном синтезаторе и хочу немного рассказать об этом. Тема интересная, поскольку таким образом можно восстанавливать разную устаревшую технику.

Читать далее

time.ticks_ms() в MicroPython: как не блокировать код и выполнять задачи конкурентно на ESP

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

Очень часто в программировании микроконтроллеров используются блокирующие задержки: delay() для Arduino, time.sleep() для MicroPython. Эти функции просты и понятны, но у них есть фундаментальный недостаток: они останавливают выполнение программы на заданное время, делая систему нечувствительной к внешним событиям. В этот промежуток времени процессор не выполняет никакой код, не проверяет таймеры, не обрабатывает события и не реагирует на прерывания. Это как повар в ресторане, который ставит суп на плиту и говорит: «Я ничего не буду делать 10 минут, пока он варится». За это время мимо проходят голодные посетители, другие кастрюли перекипают, а он просто сидит и смотрит на таймер.

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

В MicroPython есть, на мой взгляд, элегантное решение — time.ticks_ms(). Это способ заставить микроконтроллер ESP делать несколько дел одновременно — без прерываний, без Timer, без asyncio и сложных планировщиков. Достаточно просто… посмотреть на часы.

Это как повар, который включает плиту, смотрит на настенные часы, запоминает время и идёт готовить салат. Каждые пару минут он поглядывает на часы: «Прошло 5 минут — помешаю суп. Прошло 30 минут — выключу огонь». Он успевает управлять десятью кастрюлями одновременно, потому что у него есть часы на стене и система проверок.

В этой статье мы рассмотрим,

как с помощью функции time.ticks_ms() создать систему неблокирующих таймеров. Она позволит управлять реле, опрашивать датчики и отправлять SMS одновременно, без остановки основного цикла;

Читать далее

Эхолокация: микрофон и фазированная решётка из колонок

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

Представьте себе кромешную темноту карстовой пещеры, куда не проникают лучи солнечного света. В таких местах обитают маленькие, но очень интересные существа — летучие мыши. В непроглядной тьме эти ночные хищники уверенно летают, огибая каждый сталактит, и ловят крошечных насекомых для пропитания. Они не видят, но «слышат» окружающий мир с помощью эхолокации.

Я захотел воспроизвести их способность с применением микроконтроллера. Так родился проект — сонар на базе STM32F429. Для его создания я использовал простые доступные компоненты: микрофон, компьютерные колонки, микроконтроллер и ноутбук для отображения результатов. В этой статье я расскажу о том, как устроено моё устройство, какие сложности возникли при реализации, и что в итоге получилось.

Читать далее

Двенадцать символов, двадцать один байт: как я научил голый RISC-V говорить «Привет, мир!»

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

Без библиотек, без обвязок, без операционной системы под ногами. Реальный код на реальном железе — ну, почти реальном.
Пустая эмулируемая машина RISC-V, десяток строк ассемблера, и в терминале:
Сначала думал вывести «hello», как все.
Пусть будет «Привет, мир!»

Ну, привет!

Моя котельная

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

На этот раз хочу описать контроллер и обвес для котельной, который я с переменным успехом ваяю уже с полгода. ESP32, Kinkony A16, Modbus, тепломер, Arduino в слейв-режиме по i2c, ШИМ-управляемые насосы, дашборд, ну и MQTT. Тупой газовый котёл, гидрострелка, тёплые полы. Если эти слова вам близки, или хотя бы интересны - может и моя статья пригодится.

Итак, начиналось всё как всегда со статьи на Хабре. Кажется вот этой: Kincony KC868-A16: контроллер 16-го уровня. Ну или даже нет, если быть совсем точным, началось всё с комментария в одной из статей, что эта железка на озоне продается дешевле полутора тысяч рублей. В тот момент я еще не очень понимал, зачем мне эта штуковина, но решил взять, просто чтобы было.

Читать далее

Основатель движения мейкеров Дейл Догерти расспросил Майю и Свету об их проектах на нашем кружке электроники

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

Я писал в предыдущих постах, что наш митап по верилогу пригласили на мероприятие торговой палаты города Маунтин-Вью, Калифорния. И вот мероприятие состоялось. Ну, как я уже написал в заголовке, на наш стенд зашел Дейл Догерти, основатель журнала самоделкиных Make Magazine и выставок Maker Faire. Дейл расспросил Майю и Свету почему у них возник интерес к проектам с микросхемами малой степени интеграции.

Читать далее

Сонар из Музыкальной Колонки

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

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

Читать далее

Метеостанция на LoRa и ESP32, которая годами работает от батарейки

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

Ранее в своих статьях я рассказывал, как подключать модули EBYTE LoRa к Raspberry Pi и Repka Pi (ссылки в конце этой статьи). Но такие микрокомпьютеры потребляют довольно много электроэнергии и не «проживут» долго на аккумуляторе. 

Сами по себе модули LoRa в спящем режиме весьма экономны и могут годами работать на автономном питании, если после передачи данных «засыпают» на длительное время. Но вся эта экономия сработает, только если они будут управляться микроконтроллерами, способными переходить в спящий режим и просыпаться по таймеру.

В этой статье на примере метеостанции я расскажу о том, как создавать узлы сбора данных LoRa на базе микроконтроллера ESP32-S3, установленного в модуле Heltec Automation HTIT‑WB32LAF V3. Микроконтроллер может переходить в состояние глубокого сна, когда работают только часы реального времени и память RTC, а вся периферия отключается. В результате узел сбора данных может работать очень долго, питаясь от аккумулятора.

Читать далее

Генератор импульсов для изучения катушки индуктивности

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

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

Отличие такого генератора от распространённых ШИМ-генераторов в том, что у данного генератора имеется возможность задавать отдельно длительность импульса и отдельно длительность паузы, а также количество последовательно идущих импульсов и пауз. Имеется также возможность получения полноценного регулируемого повторяющегося во времени сигнала.
Все перечисленные возможности реализованы через код. Для создания генератора понадобится Arduino Nano/Uno, две тактильные кнопки, LCD-дисплей и установленная на ПК программа Arduino IDE.
Схема подключения изображена на рисунке 1.

Читать далее

Одна страничка для ответа на вопросы про FPGA и рассыпуху на городских ярмарках

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

На всяких народных гуляниях типа MakerFaire и OpenSauce меня постоянно спрашивают при виде FPGA “Это Ардуино / Raspberry Pi?” Причем когда я отвечаю “нет”, у людей появляется выражение лица будто я им нагрубил. Я раньше не понимал, с чем это связано, но теперь думаю, что цель такого вопроса - просто показать свою эрудицию, а я эту цель обламываю. Кроме этого минимум у одной дамы было такое выражение лица, что она наверное подумала, что я сумасшедший.

Теперь при использований микросхем малой степени интеграции появляется второй вопрос “разве все эти микросхемы не устарели и не были заменены Ардуино?”

Короче для Technology Showcase в Mountain View в этот четверг я решил сделать вот такую одну страничку и просто молча давать ее людям, которые задают эти два вопроса. Первая сторона:

Читать далее

Поилка для кота из мусора с MQTT, Home Assistant и ESP8266

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

Почти умная поилка для кошки с MQTT, Home Assistant и ESP8266.

Эта короткая статья посвящена реализации умной поилка за нормальные деньги.

Думаем, думаем

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

Клавиатура Vibe-кодера на Zephyr RTOS и двухъядерном микроконтроллере STM32WB55

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

В статье приведен мой опыт знакомства с Zephyr RTOS на примере создания беспроводной клавиатуры с тремя кнопками (Enter, Copy, Paste). Затронуты ключевые аспекты: настройка BLE-стека и HID-сервиса, управление энергопотреблением (STOP2, параметры соединения, программный сон), работа с Devicetree (overlay и правки dtsi), отладка через RTT, а также типичные проблемы (прошивка CPU2, EXTI-конфликты, требования HID к шифрованию). Проект полностью воспроизводим и содержит ссылки на полный исходный код и готовую прошивку.

Читать далее

Школьницы ваяют цифру на макетке ничуть не хуже школьников

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

Оказывается, школьницы стран бывшего СССР умеют ваять цифровые схемы на CMOS 4000 ничуть не хуже школьников, причем не только русскоязычных школьников, но и школьников из Индии и Китая. Под конец нашей месячной «Школы не в Замке, а в Клубе Хакеров по викендам» образовалась такая теплая компашка:

Читать далее

C++ для STM32. Часть 1: организация пакетов данных для отправки по интерфейсам связи

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

Привет, Хабр!
Это первая статья из планируемого цикла про мой объектно-ориентированный подход к написанию кода для микроконтроллера stm32 (а именно камня stm32f303vc на отладочной плате stm32f3discovery) с использованием возможностей языка вплоть до стандарта c++20. Но обо всём по порядку.

Читать далее

Оценка скорости реакции RTOS на события

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

продолжение темы RTOS, начало см.
https://habr.com/ru/posts/1060466/
https://habr.com/p/1062346/

Получив результат, а именно, запуск SMP версии RTOS, задался вопросом, а какая же плата в виде ухудшения временнЫх характеристик взимается за межъядерное взаимодействие сервисов RTOS?

Достал из пыльного чулана давно написанный тест производительнсти сервисов RTOS и причесал с целью использования в одно- и много-ядерном режиме.

Читать далее

История проекта «РобоБиатлон»: от детской игрушки до рейдерского захвата

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

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

Меня зовут Владимир Мозговой, и я являюсь основателем данного кружка. Историю одного из наших самых амбициозных проектов - молодёжных инженерных соревнований "РобоБиатлон", я и хотел бы рассказать в этой статье.

Читать далее

Скачивание прошивки с ПЛИС Altera MAX, ну и немного про ремонт

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

Привет Хабр. Мы хотим вам немного рассказать про один интересный недавний ремонт, а так-же свой опыт и инструкцию скачивания прошивки с ПЛИС ALTERA MAX.

Началось все с прибора Fluorophos FLM200 – прибор для проверки качества пастеризации молока.

Читать далее

Запуск файловой системы LittleFS на SPI‑NAND Flash от GigaDevice

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

В этой статье я подготовил обзор широко известной и доступной в продаже микросхемы Flash NAND памяти GD5F1GQ5xExxG. Согласно маркировке, это микросхема энергонезависимой NAND-памяти GigaDevice емкостью 128 МБ с доступом по интерфейсу SPI. Во второй части я расскажу, как установить на эту микросхему LittleFS — отказоустойчивую файловую систему, разработанную специально для микроконтроллеров.

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