Обновить
246.21

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

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

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

Разрушая миф: «Из-за санкций США Китай создаст новую архитектуру RISC-X, потому что доступ к RISC-V будет заблокирован»

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

Представьте заголовок: “Китай запускает новую архитектуру RISC-X - ответ на санкции США”. Хороший кликбейт: есть драма, геополитика и слово "архитектура". Но если выключить кликбейт-режим, остаётся классический рецепт жареной утки: берём "а вдруг?", вырываем из контекста, добавляем три щепотки паники - и подаём как "уже решили!". 

Спойлер: блокировать RISC‑V нельзя так же, как нельзя «отозвать» таблицу умножения. Это открытый стандарт (ISA), тексты опубликованы и лицензированы так, чтобы ими мог пользоваться любой, кто умеет читать и проектировать железо. Данная организация представляет собой швейцарскую ассоциацию RISC‑V International, что в значительной степени снижает геополитические риски. Хотите — форкните, назовите хоть RISC‑XXL, но экономически это как «играть в хоккей на льду в роликах с мячом, которого нет»: красиво звучит, играть неудобно, выиграть невозможно.

И этот миф мы разберем более подробно в нашем следующем материале. Всем заинтересованным - добро пожаловать под кат!

Читать далее

Новости

Что должно быть на каждой PCB с STM32

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

С моей точки зрения большинство разрабатываемых электронных плат работают под управлением микроконтроллера STM32. Если обобщить их схемотехнику, то можно кое-что вынести за скобки. Вот об этом сейчас и поговорим. Что должно быть заложено в каждую электронную плату на основе МК STM32? Само собой надо добавить квадратные первые пины на вилках, шелкографию, тест пады, симметричные отверстия 3мм по краям для крепления платы, удобный USB для питания и т.п. Но есть кое-что еще. Некоторые особенности проектирования PCB применимы только для STM32. Но обо всём по порядку.

Читать далее

Игрушка на елку к Новому году

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

Приветствую, Хабр!

Перед Новым годом для поднятия настроения до праздничного, захотелось сделать что-то необычное и новое. Все мы украшаем елку, ставим на вершину звезду, вешаем на ветки игрушки и ждем Деда Мороза. Женя, 41 годик.

Читать далее

Моя версия системы автоматического тестирования БК моторов (PHPH)

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

Я увлекаюсь авиамоделизмом, в основном радиоуправляемыми моделями на бесколлекторных двигателях, но в последние годы данная сфера престала быть нишевой, и поэтому цены на компоненты заметно выросли. Без того дорогие проверенные бренды стали еще дороже, поэтому я все чаще выбираю более бюджетные аналоги с AliExpress или от малоизвестных производителей. Но тут возникает проблема: как убедиться, что дешёвый мотор выдаст заявленные характеристики, и будет надёжным в полёте?

Конечно, есть инструменты вроде Betaflight, которые отлично справляются с настройкой полётных контроллеров и дают данные о работе мотора по обратной ЭДС. Но я бы хотел получать дополнительно независимые данные о таких харакетритиках как RPM, потребляемый ток, напряжение, тяга двигателя и его температура.

Читать далее

Аналоговый датчик CO₂

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

Всем привет и наступающими! Захотелось тут сделать пару гаджетов для друзей в их умные дома. И что-то вдруг подумалось - а что они все скучные такие? Давайте же сегодня сделаем датчик в таком форм-факторе, в котором точно не купишь в магазине, будет отличный подарок на Новый Год или Рождество. Ну и ещё чтобы подарить было не стыдно.

Давайте же сделаем с вами такой датчик

Как наш shell похорошел

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

Так сложилось, что программируя микроконтроллеры, разработчик балансирует между двумя крайностями. Все ресурсы под твоим полным контролем — и это кайф (думаю, многие в embedded за этим и идут). Но платой становится сложность встраивания базовых инструментов, которые стали де-факто стандартом в других областях разработки. Сложность хотя бы в том, что они не идут из коробки.

Возьмём обычную задачу: включить фару на устройстве.

На практике наша железка должна загрузиться, зарегистрироваться в LTE-сети, поднять TLS-соединение с MQTT-брокером, синхронизировать состояние и пройти ещё кучу слоёв бизнес-логики. С другой стороны — мобильное приложение и бэкенд для управления этой лампочкой (уже целая система собралась!). Там не меньше логики: от авторизации до “да кто блин так дизайн спроектировал?”. Пока дотапаешься до кнопки, пройдёт вечность.

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

Хотелось бы проще. Нужен способ аккуратно вмешаться в работу устройства — без отключения основной логики, без специальных сборок и независимо от режима. Не просто физическая кнопка, а полноценный интерфейс: настраивать параметры, включать/выключать функции, забирать данные.

И стало ясно: нам не хватает shell-интерфейса. Или CLI. Или терминала — называйте как угодно (разницу можно глянуть здесь). Но не просто не хватает — его придётся писать самим. Меня зовут Сергей Шилин, я руковожу разработкой электроники и встроенного ПО в Whoosh. Почему не взяли готовое и чем наш велосипед лучше — расскажу под катом!

user@habr > article start --full

Почему одна Arduino сделала для робототехники больше, чем все вузы мира вместе взятые

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

(Дисклеймер: Заголовок — намеренная провокация. Но если ваша рука уже потянулась к клавиатуре, чтобы написать гневный комментарий о деградации инженерной школы — добро пожаловать под кат. Там мы разберемся, почему синяя платка из Италии победила академический снобизм и создала армию инженеров).

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

Сначала нужно купить микроконтроллер (PIC или AVR). Затем найти программатор ($50–100) или паять LPT-«костыль» на коленке, рискуя сжечь порт материнской платы. Потом открыть даташит на 300 страниц на английском, чтобы понять, в какой регистр нужно «плюнуть» битом, чтобы просто зажечь светодиод. И, наконец, написать код на Ассемблере или голом Си, где ошибка в одной запятой превращает устройство в кирпич.

мигаем светодиодом

Доверенные АСУ ТП на базе RISC-V: от ядра к экосистеме

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

В конце ноября Российский Альянс RISC-V при участии «Группы Астра» и Baikal Electronics, собрал на одной площадке разработчиков чипов, производителей АСУ ТП, разработчиков ОС, инструментов разработки и конечных заказчиков. Повод - круглый стол "Доверенные АСУ ТП на базе RISC-V: от технологического ядра к промышленной экосистеме".

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

Читать далее

Если вы эксперт 45+ и вдруг решили сменить работу

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

Для возрастных кандидатов на рынке IT действительно существует негласная планка. После 45 лет количество откликов и звонков заметно снижается, а ближе к 50 поиск работы рискует превратиться в тяжелый труд, где помогают либо связи, либо уникальная, редкая экспертиза. Это касается не только embedded разработчиков, но и любых IT специалистов.

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

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

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

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