Обновить
226.42

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

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

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

Платотерапия: как я собрал свои Arduino UNO и Digispark с нуля

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

В последнее время поймал себя на том, что меня успокаивает процесс создания плат, от разводки, до пайки и я какое-то время вынашивал идею, что неплохо было бы сделать какую-то свою отладочную плату, например, с программированием по USB. Но зачем что-то придумывать без веской причины, тогда как можно взять готовый проект, например, Arduino UNO или Digispark и заодно подсмотреть, как там все устроено. Поэтому я ухватился за эту идею.

Эта статья — рассказ о том, как я собрал клоны Arduino UNO и Digispark, сделал три разные платы расширения своими руками и протестировал две из них, купленные в магазине.

Попробуем сделать Arduino UNO DIY — свой ответ Arduino UNO Q.

Читать далее

Обзор микросхемы DRV8870 (или Драйвер H-моста)

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

DRV8870 - это старая простая микросхема управления коллекторным DC-мотором с токами в обмотках до 3.5 Ампер от компании Texas Instruments. По сути это драйвер H-моста. Причем H-мост встроен прямо внутрь корпуса самой микросхемы. Это полностью интегрированное решение.

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

Читать далее

LORAmaster Lite: хорошо упакованная Лора (мечта электронщика Егора)

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

Сегодня мы поговорим об одной интересной платке — LORAmaster Lite, которая представляет собой «микро-ядерную» платформу для построения батарейных и стационарных LoRa нод (датчиков, актуаторов и т. п. устройств).

«Микро-ядерность» LORAmaster Lite заключается в том, что на этой миниатюрной платке, сравнимой по размером с популярной Pro Mini, содержится всё для построения законченного устройства — управляющий микроконтроллер, LoRa модуль на SX1262, аппаратный Watchdog, крипточип ATSHA204A, подсистема управления питанием датчиков и многое другое.

Но самое главное, на этой же платке находится чип DC/DC преобразователя Texas Instruments TPS63802, который позволяет «прямо из коробки» как угодно запитывать устройство — можно от сетевого источника питания, можно от пары батареек AA или AAA, а можно и от литиевого аккумулятора 3,7 В.

Другими словами — подцепил батарею, подключил датчики, залил прошивку (благо контроллер совместим с Pro Mini) — и батарейная долгоживущая LoRa нода готова.

Не об этом ли мы мечтали всё это время?

Читать далее

Модуль обработки и коммутации данных, с внешними управляющими устройствами по RS-485 на STM32

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

Привет, Хабр!

В данной статье будет рассматриваться разработка коммутатора, для приема, обработки и передачи потока данных от GNSS-приемника и энкодера, осуществляться передача ведущему устройству будет по интерфейсу RS-485.

Интерфейс RS-485 - представляет собой промышленный стандарт физического уровня передачи данных, широко применяемый в распределенных системах управления, телеметрии и автоматизации, его ключевая особенность - использование дифференциального сигнала, что обеспечивает высокую помехоустойчивость и надежность передачи данных на значительные расстояния (до 1200 метров).

Исходный сигнал разделяется на два синхронных сигнала, передаются они по двум проводникам - линия А и линия В образующих витую пару.

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

Если разность положительная (+200 мВ) - логический 0;

Если разность отрицательная (-200 мВ) - логическая 1.

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

Читать далее

Как я свой макропад за 600₽ собирал

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

Собрал свой макропад за 600₽. Делюсь, как за пару вечеров создал программируемую мини-клавиатуру с 10 механическими кнопками, удобной эргономикой и RGB-подсветкой. Без дорогих плат, с 3D-печатным корпусом и Raspberry Pi Pico.

Читать далее

Как я сделал робота — что хотел и что получилось. Часть 2

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

Привет! На связи Михаил Дроздов, младший разработчик в Selectel. Заканчиваю рассказ о создании собственного робота. Предыдущая часть была целиком посвящена железу: выбору компонентов, особенностям проектирования и изготовления корпуса, распайке электроники.

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

Читать далее

Embox поддерживает новый российский микроконтроллер от компании Миландр с архитектурой RISC-V

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

Недавно мы добавили в открытую ОСРВ Embox поддержку российского микроконтроллера на RISC-V, о чем я и хочу рассказать в данной статье. Речь пойдет о микроконтроллере MDR1206FI от компании «Миландр».

Читать далее

Работа с RISC-V контроллерами на примере CH32V303. Часть 9. Многозадачность

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

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

Читать далее

Программист embedded лезет в FPGA (часть 3, чего не может ардуинка)

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

Вначале мы поморгали диодом, затем посчитали семисегментником. Если с нуля, то уж лучше пройти эти этапы. Теперь приступим к задачке, которую с большой натяжкой можно применить где-нибудь на проде. С очень большой.

На плате, которую я использую для примера (QMTECH Cyclone 10 Starter Kit), есть разъём HDMI, что недвусмысленно намекает нам, что к нему можно подключить дисплей соответствующим кабелем. На самом деле, разъём – это не обязательно. А вот наличие на чипе выходов, которые можно сконфигурировать как lvds, очень сильно приветствуется. Возможно, получится и без этого (просто 2 выхода, формируемые из одного инверсией), но я не пробовал, потому промолчу.

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

Мы будем работать на более низком уровне. Делать на коленке прозрачные электроды, и наклеивать поляризационные плёнки, конечно, не надо. Будем формировать видео-сигнал.

Если вы думаете, что в 2025-м году ЭЛТ мониторы и телевизоры остались в далёком прошлом, то у меня для вас есть новость: Формат сигналов внутри проводов всё ещё напоминает сигнал, который идёт на одну из сеток большой вакуумной лампы, которой, по сути и является кинескоп.

Читать далее

LuckFox pico — одноплатник в форм факторе Arduino

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

В данной статье я хочу рассказать об одной интересной плате LackFox pico. Она представляет собой нечто среднее между микроконтроллером и полноценным компьютером. На плате установлен полноценный ARM-процессор от Rockchip, и на ней запускается полноценный Linux. При этом по габаритам и цене данная плата сопоставима с микроконтроллерами. Её цена начинается от 600р за младшую версию.

Читать далее

Как я сделал робота — что хотел и что получилось. Часть 1

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

Привет! На связи Михаил Дроздов, младший разработчик в Selectel. Все началось с простого вопроса о том, как устроен мир микроконтроллеров. Возникло желание не просто прочитать теорию об Arduino или подключить пару датчиков к плате. Хотелось понять саму суть — архитектуру, принципы работы и реальные возможности подобных систем.

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

Выбор пал на создание робота-универсала. Такое устройство — целый мир механики, 3D‑печати, электроники, низкоуровневой разработки, веба и даже ИИ. Идея — создать машину, которая не просто перемещается в пространстве, а по-настоящему видит и понимает свое окружение.

Можно ли представить лучшую возможность поработать с различными типами датчиков и исполнительных механизмов? Также впереди ждали интересные задачи…

Читать далее

Тайна самой дешевой консоли с Ozon

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

Наверняка многие читатели слышали о самой дешевой консоли на маркетплейсах — «Sup». На первый взгляд, это устройство — чудо чудное: цветной дисплей приличного разрешения, целых 500 игр в комплекте, аккумулятор и даже дополнительный геймпад, и всё это за какие-то 400 рублей в розницу.

Обычный человек просто подумает мол «очередной масс-маркет по типу Тетриса» и пройдет мимо. Однако моя гиковская душа очень хотела узнать, в чём же заключается тайна самой дешевой консоли на Озоне и я решил заглянуть «под капот»… Поверьте, внутри гораздо интереснее, чем кажется на первый взгляд!

Читать далее

Минимальный каркас самописного Bootloader'a на STM32F103C8T6. Пошаговый пример

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

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

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

Поэтому было решено разбить задачу на мелкие и начать с минимального примера. Подопытным будет BluePill на stm32f103c8t6.

В соответствии с декомпозицией задачи, у меня получилось так:

Читать далее

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

DIY: свой бесплатный чат-бот в Telegram

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

В этой статье я покажу, как буквально за 15 минут создать собственного Telegram чат-бота на базе ИИ и начать использовать его абсолютно бесплатно.

Читать далее

DIY Open Source принтер. Часть 2. Логика управления печатающей головой HP123

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

Привет, Хабровчане!

Это продолжение моего дневника разработки DIY струйного принтера. Предыдущие части:

DIY Open Source принтер. Часть 0
DIY Open Source принтер. Часть 1. Покоряем USB Printer Class и имитируем печать текста

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

Основным источником информации для меня выступают:

статья на Hackaday и проект PrintSpider_Arduino от нашего товарища по Хабру @lichnost
— cтатья Magic Printer Cartridge Paintbrush и проект printercart_simple от Spritetm

Речь пойдёт только об отработке логики! Подключение железа пока невозможно — затронем в следующий раз — я работаю в этом направлении.

Читать далее

Декодирование IR сигнала с TV (или исследование пультовых лучей)

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

В этом тексте я написал про то как подключить к микроконтроллеру инфракрасный приёмник.

Как просто и легко распознавать сигнал с TV пульта.

Читать далее

Игра «Морской бой» через UDP на двух Raspberry Pi PICO-W

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

Мы создали игру «Морской бой» (Battleship) на двух игроков в реальном времени при помощи микроконтроллеров Raspberry Pi Pico W, обменивающихся данными через UDP. К каждому устройству подключён VGA-дисплей 320×240, джойстик для размещения кораблей и ударов, а также тактильные кнопки для взаимодействия с игрой. Для проекта разработан собственный протокол ходов на основе конечных автоматов и интегрирована звуковая обратная связь на основе как DMA, так и прерываний.

Читать далее

Техническое руководство по реализации цифро-аналогового двухрежимного модуля рации DMR818S для системной интеграции

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

DMR818S — это высокоинтегрированный радиочастотный приемопередающий модуль, в который встроены микроконтроллер (MCU), основной чип цифровой рации и радиочастотный усилитель мощности (PA). Он поддерживает как цифровой режим связи DMR, так и традиционный аналоговый. Серия в основном состоит из двух основных моделей: стандартной версии DMR818S (номинальная мощность 2 Вт) и версии высокой мощности DMR818S-5W (номинальная мощность 5 Вт). Обе модели совместимы по распиновке и физическим размерам корпуса. Эта особенность позволяет поддерживать варианты продуктов с разным уровнем мощности за счет унифицированной конструкции печатной платы, что упрощает разработку и управление производством аппаратных платформ.

Читать далее

Про асинхронное программирование микроконтроллеров и программирование аппаратных функций периферии процессора

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

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

Читать далее

Анализ модуля RF125 (125 кГц): дальность >5 м и мкА потребление

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

Серия RF125 представляет собой систему беспроводной связи, работающую в низкочастотном (НЧ) диапазоне 125 кГц. Ее основной функцией является обеспечение дальнего «пробуждения по воздуху» (Over-the-Air Wake-up) и двунаправленной передачи данных. Система состоит из передающего модуля (RF125-TX/TX2) и приемного модуля (RF125-RX/RA), специально разработанных для приложений, где приемное устройство должно находиться в режиме ожидания в течение длительных периодов времени при сверхнизком энергопотреблении и может быть активировано при получении определенного беспроводного сигнала.

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

Читать далее

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