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

В этом тексте я написал про то как подключить к микроконтроллеру инфракрасный приёмник.
Как просто и легко распознавать сигнал с TV пульта.
Embedded SW/Firmware Engineer
В этом тексте я написал про то как подключить к микроконтроллеру инфракрасный приёмник.
Как просто и легко распознавать сигнал с TV пульта.
В ARM Cortex-M (Arm v7-M) процессорах есть очень полезный блочок. Называется MPU (Memory Рrotection Unit). Попробуем разобраться что это такое и зачем нужно. .
Недавно я купил себе CAN-трансивер USB2CANFD_V1 и с удивлением обнаружил насколько же простой и лаконичный протокол заложили разработчики в прошивку STM32G0B1CBT6. Это протокол SLCAN. По сути serial CLI. И это оказалось очень кстати, ведь в программировании микроконтроллеров порой приходится работать с UDS протоколом. Как известно, UDS протокол работает поверх сетевого протокола ISO-TP. В этом тексте я написал под SLCAN простую отладочную утилиту для отладки процесса передачи данных по протоколу ISO-TP (ISO 15765-2).
В процессорах ARM Cortex‑M стек растет от большего адреса к меньшему. То есть вниз. В этом тексте я написал как оценивать расходование стековой памяти прямо во время исполнения программы на микроконтроллере. Считать израсходованный стек можно определив соотношение непрерывно прописанных нулей к ненулевым значениям в диапазоне стековой памяти.
Стол для программиста - это святое. От удобства стола зависит производительность труда программиста и, как следствие, качество результата всей работы.
Именно за столом на работе по сути и проходит вся трудовая жизнь.
В 2024 я купил себе в кабинет для работы стол с подъемной столешницей. Спустя год электроника подъёма внезапно перестала работать. Произошел полный отказ. Семи-сегментный индикатор стал показывать непонятный токен rE5. Кнопки перестали слушаться. Столешница застыла под потолком.
Я не знал, что мне делать. Пришлось разбираться, что же это такое за шайтан машина: электрический стол.
В этом тексте я произвел обзор широко распространенного переходника с USB на CAN? который называется USB2CANFD V1.
Вы узнаете, что это за прибор и с какой стороны следует к нему подходить.
В программировании микроконтроллеров порой приходится прибегнуть к медианной фильтрации.
В этом тексте я произвел разбор решения LeetCode задачи 480. Sliding Window Median в контексте реализации на языке программирования Си.
Вэтом тексте изложены базовые теоретические основы по CAN шине безотносительно к конкретному микроконтроллеру.
CAN — это двухпроводный, дифференциальный, последовательный, полудуплексный интерфейс для передачи бинарных данных между электронными платами (PCB). В качестве кабеля чаще всего применяют одну экранированную витую пару проводов с именами: CAN_L и CAN_H.
В этом тексте вы узнаете зачем велосипедисту нужна квантовая механика.
Те кто катаются на велосипеде не раз ездили в темноте. В таких случаях надо как-то предупреждать окружающих пешеходов о приближении велосипеда. Ставить фары - классическое решение. Но фары быстро сажают батарею.
Я решил пойти другим путем. Как-то раз я обратил внимание на фотолюминесцентные наклейки. Фотолюминесцентные вещества - это такие вещества, которые заряжаются светом, а затем источают свет в темноте. У меня была рядом фиолетовая лазерная указка и я заметил, что лазер охотно заряжает такие наклейки.
В программировании микроконтроллеров часто приходится работать с CAN шиной.
В этом тексте я произвел обзор USB-CAN переходника USBCAN-II C.
Как известно, не существует компьютеров с интерфейсом CAN. Зато во всех настольных компьютерах и LapTop(ах) есть USB. В связи с этим для отладки оборудования с CAN нужны всяческие переходники USB-CAN.
В этом тексте я написал про достаточно хороший переходник с USB на CAN, который не раз выручал меня при отладке прошивок с CAN-трансивером. Называется изделие USBCAN-II C. Вот он перед вами.
В программировании ARM Cortex-M микроконтроллеров обычно код исполняется из on-chip NOR Flash памяти.
Однако иной раз надо разместить Си-функции в RAM памяти.
В этом тексте я написал как запустить функцию из оперативной памяти.
Иной раз возникает такая ситуация, что надо получить доступ к устройству висящему под потолком.
В этом тексте я расскажу как запустить беспроводную консоль на микроконтроллере.
Надо запустить NVRAM на микроконтроллере, где нет возможности дописывать интервалы памяти.
В этом тексте я показал как организовать NVRAM на основе широко распространенного программного компонента LittleFS.
В программировании часто приходится писать программные компоненты, которые, в общем очень похожи друг на друга по своей структуре и API.
В заметке я представил простую утилиту r.exe для авто-замены токенов в файлах и названиях файлов.
Системы Lockstep — это отказоустойчивые компьютерные системы, которые выполняют один и тот же набор операций одновременно и параллельно.
Происходит избыточность (дублирование), которое позволяет обнаруживать и исправлять ошибки: выходные данные операций Lockstep можно сравнить, чтобы определить, произошла ли ошибка.
В программировании микроконтроллеров эпизодически приходится решать задачу о выявлении пересечения интервалов.
На первый взгляд простая задачка, однако, как оказалось, реализовать такое в коде - это вовсе нетривиальная задачка. Но обо всём по порядку...
В этой заметка я представил свой алгоритм определения пересечений интервалов и его разбор.
Итак вам надо клонировать репозиторий с компанейского репозитория и git просит какие-то непонятные пароли.
Знакома ситуация?
В этой заметке я написал как настроить ssh ключи.
Периодически сталкиваюсь со сложностью выбора билетов на региональные автобусные рейсы. Прямых рейсов нет, перевозчиков несколько, стоимость разная, время прибытия тоже разное. Порой ручной выбор двух подходящих билетов затягивается на несколько часов.
Я решил положить этому конец и распетлять задачу при помощи ЭВМ.
Постановка задачи
Надо доехать из города A в город C. При этом надо совершить пересадку в городе B. На сайтах есть множество билетов в направлении A->B и B->C. Надо выбрать два билета так чтобы:
1--минимальное время пересадки
2--минимизировать стоимость поездки
3--минимизировать общее время в пути
Надо написать программу. Буквально загружаешь все доступные в продаже билеты, запускаешь программу и получаешь целеуказание на самый оптимальный комплект билетов.
В настоящее время акселерометры встраивают куда только можно: в часы, автомобили, самокаты, LapTop-ы и прочее.
В данном тексте изложена концепция распознавания аварии по данным с MEMS акселерометра.
В этом тексте Вы узнаете зачем программисту микроконтроллеров надо знать дифференциальную геометрию.
В работе на планерках и от коллег порой такое услышишь, что это становится либо цитатой или мемом. Вот небольшая подборка того, что мне понравилось за 12 лет работы программистом МК. Некоторые цитаты имеют автора другие, просто безымянные афоризмы сродни народному творчеству. Итак обо всём по порядку...