Обновить
214.61

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

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

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

Схемотехника и алгоритмы световых мечей: вызовы и решения

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

Сага «Звёздные войны» давно стала больше, чем просто серией фильмов. Миллионы людей объединены общей страстью, и для многих из них обладание своим личным световым мечом становится очень важным. Ведь это не только предмет коллекционирования, технологический артефакт или даже спортивный инвентарь, а символ джедайской (или ситхской) философии.

На этом интересе вырос целый рынок. Есть компании, которые производят световые мечи целиком. Есть те, кто специализируется только на отдельных компонентах: рукоятях, платах, светодиодных модулях и прочей электронике.

Привет, на связи Крэйл из команды умных устройств Яндекса. Но сегодня я расскажу не о Станциях, а о своём необычном хобби. Однажды ко мне обратились производители компонентов с задачей разработать электронику для кастомных световых мечей. Проект оказался ярким во всех смыслах. А в статье я расскажу о том, какие были условия и как я справлялся с поставленными задачами.

Читать далее

CAN-шина (Теория)

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

Вэтом тексте изложены базовые теоретические основы по CAN шине безотносительно к конкретному микроконтроллеру.

CAN — это двухпроводный, дифференциальный, последовательный, полудуплексный интерфейс для передачи бинарных данных между электронными платами (PCB). В качестве кабеля чаще всего применяют одну экранированную витую пару проводов с именами: CAN_L и CAN_H.

Читать далее

Практическое руководство по реализации LoRa-связи точка-точка между модулем LoRa1120 и ESP32

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

Ядром модуля LoRa1120 является чипсет LR1120 от Semtech, интегральная схема, разработанная специально для беспроводной связи на большие расстояния с низким энергопотреблением и для приложений геолокации ¹. Перед началом разработки реальных приложений ключевым фактором успеха является глубокий анализ основных технических возможностей этого модуля. Это не просто LoRa-приемопередатчик, а комплексная платформа, объединяющая несколько режимов связи и функции позиционирования.

Читать далее

Самодельная монтировка телескопа на ESP32

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

Несколько лет назад благодаря таким ютуберам, как Nebula Photos, у меня появился интерес к астрофотографии. Вооружённый OM System OM-5 и объективом Olympus на 15-140 мм, я смог сделать со штатива достаточно приличные снимки туманности Ориона, сняв 300 кадров с двухсекундной экспозицией и затем объединив их в Siril.

Понимая, что могу получить более качественные результаты при помощи трекинга, я примерно за €200 купил трекер Move Shoot Move. Он позволил использовать более долгую экспозицию, но находить объекты для съёмки и обеспечивать правильную привязку к полюсам всё равно было довольно сложно. В итоге я потратил кучу времени на изучение подходящих монтировок телескопов с функциями GOTO (автоматического наведения) и трекинга, почти решившись на приобретение моделей в ценовом диапазоне от €1200 до €4000. Для хобби, в котором я пока был новичком, подобные вложения показались мне перебором.

Читать далее

Контроль напряжения над блоком питания на STM32: Подход к энергоэффективности и защите

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

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

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

В данной статье будет представлен пример контроля напряжения, над блоком питания - внутри которого (никель-металлгидридная аккумуляторная сборка NiMH 14.4В/12 банок по 1.2В(1.4В- при полной зарядке)), с помощью микроконтроллера STM32.

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

Работа с кнопкой;

Работа со светодиодом;

Работа с пъезоэлектрическим излучателем(звуковая индикация);

Контроль заряда/разряда аккумулятора(дает звуковой сигнал при напряжении менее 9 вольт и более 14).

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

Читать далее

Обзор USB-CAN переходника USBCAN-II C

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

В программировании микроконтроллеров часто приходится работать с CAN шиной.
В этом тексте я произвел обзор USB-CAN переходника USBCAN-II C.

Как известно, не существует компьютеров с интерфейсом CAN. Зато во всех настольных компьютерах и LapTop(ах) есть USB. В связи с этим для отладки оборудования с CAN нужны всяческие переходники USB-CAN.

В этом тексте я написал про достаточно хороший переходник с USB на CAN, который не раз выручал меня при отладке прошивок с CAN-трансивером. Называется изделие USBCAN-II C. Вот он перед вами.

Читать далее

Программист embedded лезет в FPGA (часть 1, hello blink)

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

Любой программист микроконтроллеров, Imho, рано или поздно (сейчас, скорее, рано) от одного из коллег или из статьи в интернете слышит загадочное ПЛИС или FPGA, CPLD, ПВМ — что-то такое. Если честно, то я услышал вот это загадочное, занырнул чуть-чуть, и теперь думаю, что мой опыт пригодится кому-то ещё. Если совсем честно, то статья ещё планируется как небольшая (всего в трёх частях) заметка для себя. Я когда погружался, делал пометки в текстовом файле, здесь получится их хорошо отредактированная версия.

Очень много вещей в подобных этому туториалах, которые я читал, пропускаются как сами собой разумеющиеся. Подробные инструкции куда и как тыкать есть в документации к плате разработки. Но там не хватает ответов на вопросы зачем и почему. Здесь я хочу скомбинировать 2 подхода.

Лезем в FPGA

I2C Slave на STM32G4

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

Понадобилось мне для проекта по приколу сделать i2c slave (ведомого устройства), но не просто эмуляцию одного устройства (например eeprom), а сразу эдакого эмулятора с, если можно это так назвать, API, к которому можно уже привязывать эмуляции конкретных реализаций устройств на произвольные адреса.

На тему реализации ведомых устройств на STM32 с использованием LL я как-то не особо много инфы нарыл, в итоге накостылил, как сам понял :D Тест отвёрткой проходит, хотя первые реализации иногда прям залипали намертво.

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

Читать далее

Монитор качества воздуха Zigbee своими руками

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

Сразу должен сказать, что идея не моя. Изначально речь шла об устройстве на дисплее epaper, который бы на экран выводил значения CO2, температуру и влажность. Ну еще время. В процессе обсуждения родился проект, который мы назвали Air Quality Monitor.

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

Читать далее

Расследование: отечественные микросхемы в счетчиках электроэнергии – миф или реальность?

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

Расследование: отечественные микросхемы в счетчиках электроэнергии – миф или реальность?

13 апреля в канале пользователя @STriple вышла первая разоблачающая публикация о производителях счетчиков, использующих комплектующие зарубежного происхождения, что запрещено законом. Со временем таких статей стало несколько, и каждая из них получала широкий отклик: об этом писали СМИ, обсуждали в блогах и кулуарах на отраслевых тусовках, а Минпромторг инициировал проверки.Мы с замиранием сердца следили за происходящим и были слегка разочарованы тем, что в поле зрения @STriple попало только несколько игроков рынка, тогда как их значительно больше. Быть может у остальных все нормально и дела с импортозамещением не так уж и плохи? Или, наоборот, нам показали лишь вершину айсберга? Мы решили это проверить и приобрели три реестровых счетчика, которые не фигурировали в расследовании нашего незримого коллеги. Продолжим вскрывать этот гнойник, чтобы заражение не разнеслось по всей отрасли.

Читать далее

Как я научил Espruino на ESP-32 понимать кириллицу

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

Espruino + ESP32: как вывести русский текст и подключить кириллический шрифт ? История из жизни, создание и подключение кастомного шрифта 🦐

Ну давай показывай, что там у тебя

Практическое руководство по проектированию для инженеров по мощным модулям LoRa1121F33-2G4

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

LoRa6100Pro-mini — это современный беспроводной UART-модуль от компании NiceRF, построенный на базе чипа Semtech SX127X и использующий технологию LoRa с расширенным спектром. Модуль предназначен для передачи данных на большие расстояния при низком энергопотреблении и высокой помехоустойчивости, что делает его идеальным решением для IoT-приложений.

Читать далее

Mibro Watch Lite3 — тюним крутой .elf циферблат

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

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

Читать далее

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

Первый опыт портирования open-source прошивки на отечественный микроконтроллер К1946ВК035

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

Привет всем любителям схемотехники и программирования микроконтроллеров!
Мы начинаем цикл статей о работе с отечественным микроконтроллером К1946ВК035 — тем самым, который всё чаще мелькает в разговорах про импортозамещение, но пока ещё редко встречается «вживую» в рабочих проектах.

И начать мы решили с испытания на прочность: портирования популярной open-source прошивки AM32 для управления бесколлекторными двигателями. Здесь не обойдёшься простым «собрал и прошил» — все подробности и ещё много интересного ждут вас в этой статье.

Читать далее

Murmulator OS 2.0 под RP2350 (Raspberry Pi Pico 2)

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

Что такое Мурмулятор я уже писал тут. Немного повторюсь — это ультрабюджетная «материнская плата», в которую вставляется «процессор» — плата на основе RP2040 (Raspberry Pi Pico) или RP2350 (Raspberry Pi Pico 2). Мурмуляторы бывают разные — и под VGA выход, и под HDMI, и под всякую экзотику типа небольших TFT экранчиков на чипах ILI9341/ST7789. Есть устройства с дополнительной памятью PSRAM, есть с поддержкой дополнительных портов USB через отдельную микросхему‑хаб. И всё это великолепие требует драйверов. Стиль разработки под RP2040/2350 — это всё собрать вместе в один монолит baremetal‑прошивки, и плодятся прошивки кучами... Например, релиз pico‑spec 1.2.C насчитывает более 20-ти вариантов сборки под разное оборудование, и это — не предел.

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

В то время существовал ещё только чип RP2040, и про 2350 не было даже слышно, соответственно, разработанная ОС была полностью заточена под этот существующий тогда SoC. О самой ОС и её использовании я как‑то уже выпускал статьи. Поэтому сосредоточусь на ключевых отличиях новой версии.

Никаких новых возможностей версия 2.0 пока не предоставляет. Это просто полное портирование МОС на немного отличающийся SoC.

Первое основное отличие — 2.0 не умеет запускать .uf2-файлы. Для запуска «тяжёлых» приложений необходимо из заранее собрать «с отступом». Такой формат получил название «.m1p2» — т. е. под Мурмулятор первых версий с «пикой» второй версии. Этот же формат использует pico‑launcher для RP2350, который тоже не умеет запускать .uf2-файлы (в отличии от версии под RP2040).

Читать далее

Как избежать кошмара параллелизма в IoT: автоматы вместо потоков и корутин

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

В статье рассматривается библиотека на C++, которая предназначена для реализации технологии параллельного автоматного программирования (АП), отвечающей концепции среды ВКПа (подробнее о ней см. [1]). Для полного понимания материала рекомендуется ознакомиться с основами теории АП, представленной в статьях [2, 3, 4], Взаимосвязь машины Тьюринга с конечными автоматами (КА) подробно рассмотрена в [5]. Вопросы применения корутин в контексте автоматного программирования анализируются в статьях [6–9]. Но в минимальном варианте достаточно даже общего представления о модели конечного автомата и принципах объектного программирования.

Читать далее

Здоровое питание для стенда. Концепция открытого источника питания для тестирования электроники

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

Как гарантировать, что тысячи устройств будут работать безупречно как в лабе, так и у конечного пользователя? Конечно, с помощью тестов на всех этапах. Чем запитать DUT (тестируемое устройство)? С одной стороны — дешевый китаец (проблемно непредсказуемый или предсказуемо проблемный), с другой — лабораторный монстр (пугающе дорогой, 90% наворотов — мусор). Мы устали делать этот выбор, и решили сделать свой источник: надёжный с первой до последней секунды теста, компактный, умный и послушный.

Вот что мы придумали:

Операционная система от А до Я: Планировщик

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

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

Это вторая из цикла статей про создание микроядерной операционной системы. В прошлой статье рассматривался таймер и HAL. Для вновь пришедших необходимо сначала ознакомиться с ней: ссылка.

Читать далее

Прием и парсинг NMEA-данных от GPS-приемника

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

Прием и парсинг NMEA-данных от GPS-приемника, а также, рассмотрение работы разных типов GPS (UART и RS-232): как правильно подключить модуль к микроконтроллеру STM32.

Читать далее

ARM Cortex-M: Исполнение кода из RAM памяти

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

В программировании ARM Cortex-M микроконтроллеров обычно код исполняется из on-chip NOR Flash памяти.

Однако иной раз надо разместить Си-функции в RAM памяти.

В этом тексте я написал как запустить функцию из оперативной памяти.

Читать далее

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