Обновить
227.05

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

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

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

Один день из жизни программиста микроконтроллеров (или бег с препятствиями)

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

Вы наверное думаете, что программисты микроконтроллеров на работе занимаются исключительно только программированием?

Позвольте рассказать вам про буквально один случайный день из жизни программиста МК.

Читать далее

Новости

Программатор из обломка платы Nucleo

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

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

В этом тексте я написал про то как запрограммировать внешнее target устройство.

Читать далее

Итерационный бинарный критерий делимости: Деление без деления. Алгоритм для Big Integers и FPGA

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

Итерационный бинарный критерий делимости: Деление без деления. Алгоритм для Big Integers и FPGA.

Деление — одна из самых ресурсоемких операций для Big Integers в криптографии и для аппаратных ускорителей (FPGA/ASIC). Что, если бы можно было проверять делимость, полностью исключив операцию деления и взятия остатка?

Представляем новый детерминированный алгоритм, который заменяет дорогой N mod d на O(logN) итераций, состоящих исключительно из сложения (X+d) и побитового сдвига.

Разбираем, как этот подход, обладающий линейно-логарифмической сложностью O(n⋅logN), обеспечивает радикальное снижение константного фактора и становится идеальным решением для многословной арифметики и низкоуровневой оптимизации железа. Экспертный уровень.

Читать далее

Разработка USB-клавиатуры без поиска лёгкого пути

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

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

Поэтому в статье пойдет подробный рассказ о разработке USB-клавиатуры на микроконтроллере CH32V003, в котором по умолчанию нет поддержки USB. Но чтобы проект был более интересным, клавиатура состоит из 9 кнопок, 3-х энкодеров и 2-х светодиодов. При этом корпус и кейкапы тоже сделаны самостоятельно (почти).

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

Читать далее

BareMetal CI Part 2: Docker-контейнер для быстрого развёртывания CI/CD стенда для embedded-систем

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

Продолжение серии статей о BareMetal CI. В первой части мы рассмотрели базовый подход к автоматизации тестирования микроконтроллеров с использованием J-Link и RTT. Эта статья посвящена масштабируемому решению на базе Docker, которое поддерживает различные типы оборудования и CI-платформы.

Читать далее

Самообучение против курсов для ребенка. В чём сила, брат?

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

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

Читать далее

9 лет эволюции занятий робототехники в моей детской школе

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

Меня зовут Максим Иванков, 9 лет назад я открыл первую школу робототехники и программирования в небольшом городе Краснодарского края. За 9 лет занятия робототехники для детей претерпели множество изменений о чём и хотел рассказать в статье.

Читать далее

Два притопа, три прихлопа

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

Подготавливая статью [1] к публикации, обратил внимание на картинку, показанную на рис. 1. Я сохранил ее, чтобы воспользоваться в будущем. И оно не заставило себя ждать, т.к. захотелось повысить наглядность решения, введя в него графику и используя именно эту картинку.  К чему это привело, далее мы и поговорим.

Все, что связано с картинкой, сделать не так уж сложно. Это довольно подробно описано в цикле статей по реализации графики в ВКПа (см. [2]). Для этого, во-первых, нужно создать графическое окно, установив данную картинку в качестве фона. Во-вторых, воспользоваться существующими заготовками контролов (элементов графического интерфейса), которые необходимо будет разместить на данном фоне.

Читать далее

Сдвигать за 60 секунд: конденсаторы, триггеры, двоичные счетчики

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

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

На маршруте последовательностной логики меня поджидает своего рода counter strike — два секундомера в качестве финального проекта курса схемотехники. По пути освою новые компоненты… и новые среды эмуляции. Долой трехмерность, даешь эффективность!

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

Читать далее

Протокол TBFP

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

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