Обновить
256K+

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

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

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

PID (ПИД) без математики: как просто понять P, I и D

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

PID-регулятор — частая проблема для начинающих в робототехнике: математика отпугивает. Но саму идею понять можно без формул. В этой статье я объясню P, I и D простыми словами и с визуализацией

Читать далее

Новости

Одноразовый вейп в качестве веб-сервера

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

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

Предыстория

Уже пару лет я собираю коллекцию одноразовых вейпов, полученных от друзей и членов семьи. Поначалу я только извлекал аккумуляторы для «будущих» проектов (это точно не синдром Плюшкина), но в последнее время одноразовые вейпы стали гораздо более продвинутыми. Не хотел бы я быть юристом, которому придётся доказывать, что устройство с разъёмом USB C и перезаряжаемым аккумулятором можно классифицировать, как «одноразовое». К счастью, в ближайшее время я не планирую подаваться в юриспруденцию.

В прошлом году я разбирал одну из этих технологичных сосок для взрослых и заметил нечто любопытное: вместо обычной чёрной капли, которой заливают ASIC (Application Specific Integrated Circuit), я увидел небольшую интегральную схему с маркировкой «PUYA». Не буду винить читателей, если это название не вызвало у вас того же восторга, что и у меня — большинство людей никогда его не слышало. Эта компания больше всего знаменита своими флэш-чипами, но впервые я узнал о них из поста Джея Карлсона о самом дешёвом флэш-микроконтроллере. Это довольно мощные крошечные микроконтроллеры ARM Cortex-M0+.

За последний год у меня скопилось довольно много таких одноразок с PY32; это были разные модели вейпов одного производителя. Я не буду бесплатно рекламировать табачный бренд, но выражу благодарность проектировщику за маркировку на отладочных контактах!

Читать далее

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

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

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

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

Читать далее

Сервер за копейки

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

КДПВ


Обычно сервер ассоциируется с чем-то дорогим и недоступным обычному человеку. Даже на вторичном рынке они пока еще стоят весьма существенно (если не рассматривать совсем уж допотопные экземпляры). Однако, есть и такие, которые можно приобрести весьма недорого.


Это так называемые блейд-серверы. Блейд-сервер (от англ. blade — лезвие) – концепция использования нескольких компактных серверов в одной общей корзине (шасси). Некоторые узлы сервера (такие как блоки питания, охлаждение, сетевые адаптеры, управление) вынесены за пределы сервера и сделаны общими для всех. Благодаря этому исключается излишнее дублирование и, соответственно, уменьшаются габариты и общее энергопотребление всей сборки. Увеличивается плотность вычислительной мощности на единицу объема серверной стойки. Из-за того, что единичный блейд-сервер бесполезен без корзины, а в корзине избыточен, они не пользуются спросом на вторичном рынке, а потому стоят весьма недорого. 

Читать дальше →

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

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

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

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

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

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

Глухарь ESPшный — мемуары охотника

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

> Названием «глухарь» птица обязана известной особенности токующего в брачный период самца утрачивать чуткость и бдительность, чем часто пользуются охотники

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

Сегодня мы посмотрим внутрь флеш-картриджа для Nintendo Switch под названием MIG Switch и раскроем тайну его происхождения! Ну и в качестве побочного квеста победим защиту одного из самых современных микроконтроллеров на рынке.

Интересно? Продолжаем!

Хакаем самую дешёвую консоль с Ozon

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

Помните статью про самую дешёвую консоль с Ozon — Sup GameBox? Тогда я рассказал вам о том, что у этого чуда инженерной мысли находится «под капотом» и почему эта консоль не так проста, как кажется на первый взгляд.

После статьи я решил написать письмо производителю процессора этой консоли. И что самое интересно — мне ответили! Даже Спустя 40 лет после релиза оригинальной NES, тайваньская компания V.R.T продолжает развивать архитектуру оригинальной NES. Мне больше ничего не оставалось, кроме как включить фен, достать программатор и хакнуть этот девайс...

Читать далее

Как я купил кота в мешке: реверс-инжиниринг электронных ценников. Часть 1. Знакомство с nrf52832

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

Как-то давным-давно я заинтересовался дешевым железом, ибо был студентом-ардуинщиком, который очень хотел сэкономить. И как-то раз пришла идея — поработать с E-INK дисплеем. Цены на новые модули на Али кусались, поэтому я отправился шерстить Авито и нашел там объявление о продаже б/у электронных ценников из супермаркета и DNS.

О чудо! Всего 250 рублей за штуку: плата, контроллер, корпус, и оно даже работает... наверное.

Я заказал целую партию, не подозревая, что внутри меня ждет коррозия всего - чего можно, чип nRF52832 в новой партии, нестандартный протокол связи и абсолютный ноль документации. О том, как я ковырял эти платы китайским программатором, как писал в RAM через GDB, убил пару ценников, экранов и в итоге завел дисплей через Zephyr RTOS. Спойлер: фрактал Мандельброта успешно выведен! Дум не за горами

Читать далее

Я купил игровую консоль и написал для неё… BIOS

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

Осторожно: статья написана максимально простым языком. Так что если вы гик, но не умеете программировать — вам всё равно будет интересно!

Недавно я наткнулся на DIY-игровую консоль за 1.500 рублей — Waveshare GamePi13. Когда гаджет приехал ко мне, я запустил примеры игр от производителя... и оторопел от 5 FPS в Pong — это ж как плохо нужно код писать!

Не желая мириться с этим, я открыл схему устройства, даташит на RP2040 и принялся писать свой собственный BIOS. Если вам интересно узнать, как работают DIY-консоли «изнутри», можно ли запускать внешние программы на микроконтроллерах из RAM, как реализованы различные подсистемы BIOS, а в конце даже написать «Змейку» - добро пожаловать под кат!

Читать далее

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

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

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

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

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

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

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

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

Читать далее

Я отреверсил процессор, чтобы улучшить детскую фотокамеру

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

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

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

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

Поэтому я задумался: наверняка ведь есть способ пропустить меню и сразу перейти в режим камеры? Должно быть, внутри камеры находится какой-нибудь процессор ARM, и я не думаю, что разработчики заморочились с защитой кода. Достаточно считать его через JTAG, загрузить в Ghidra, найти нужный бит, изменить его, снова записать код во флэш-память, и всё.

Читать далее

Плохое яблоко на русской Ардуине

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

Некоторое время назад я поделился первыми впечатлениями от знакомства с Ардуино-совместимой платой ELBEAR ACE-UNO на базе отечественного микроконтроллера MIK32 «Амур». Материал нашёл хороший отклик среди читателей, и это подогрело моё желание развить тему. Правда, подогрев слегка перешёл в фазу медленного бурления, и достиг точки закипания только сейчас. Но лучше поздно, чем никогда.

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

Читать далее

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

Структуры данных на практике. Глава 1: Разрыв в производительности

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

Часть I: Основы

«В теории теория и практика одинаковы. На практике это не так». — авторство приписывается разными специалистам по computer science

Загадка

Два часа утра. Я смотрю на совершенно нелогичные данные профилирования.

В процессе работы над загрузчиком для SoC RISC-V у нас возникла проблема с производительностью. Загрузчик должен был искать конфигурации устройств в таблице: примерно пятьсот элементов, каждый с 32-битным ID устройства и указателем на данные конфигурации. Всё просто.

Мой коллега реализовал эту систему с помощью хэш-таблицы. «Поиск за O(1), — сказал он уверенно, — лучше уже некуда».

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

Я попробовал использовать очевидную оптимизацию: заменить хэш-таблицу двоичным поиском по отсортированному массиву. Двоичный поиск занимает O(log n), что теоретически хуже, чем O(1). Так написано в учебниках. Мой преподаватель алгоритмов был бы разочарован.

Но в результате загрузчик оказался на 40% быстрее.

Как O(log n) смогло победить O(1)? Что происходит?

Читать далее

Моя жизнь с матричным принтером

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

РЕТРОКОМПЬЮТИНГ

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

Это классический матричный принтер Epson MX-80 F/T III. Он был первым принтером, который я купил, где-то в 1982 или в 1983 году, и стоил он мне гораздо больше, чем я мог себе позволить. Даже после того, как он перестал быть моим основным принтером — сначала его заменило невероятно громкое лепестковое печатающее устройство, а потом лазерный принтер Epson, который я «приобрёл» на своей должности составителя обзоров продуктов — он продолжал служить мне в нишевых ситуациях.

Его основной задачей стала печать этикеток для моей библиотеки 35-миллиметровых цветных слайдов. У меня есть база данных, созданная на основе ПО Eagle компании Emerald Bay (это своего рода более удобная версия dBase), и мне было гораздо проще печатать этикетки программно на матричном принтере, чем возиться с листами этикеток на лазерном. Именно такой функциональности мне не хватает.

Читать далее

Ёлочная игрушка, на которой запустили Doom

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

Близятся Новый год и Рождество, а значит, ёлки и всё связанное с ними: гирлянды, украшения и, разумеется, игрушки. Праздник слишком уж весёлый, и я решил, что ему не хватает мрачной игры, поэтому напечатал маленькую ёлочную игрушку в виде модели IBM PC, засунул в неё самый маленький ЖК-дисплей, который смог найти, добавил туда процессор и логику, а также аккумулятор. Это устройство может висеть на ёлке и показывать демонстрационный режим Doom со звуком и музыкой. Но и это ещё не всё: если подключить ней любую BLE-клавиатуру или джойстик, то можно будет самому убивать миллиметровых зомби, какодемонов и импов.

Читать далее

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

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

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

Читать далее

Разбираемся с композитным видеосигналом NTSC, и стоит ли изучать его в 2025 году. Часть 2

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

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

Сигнал CVBS можно получить, используя и FPGA-решения, но стоимость их выше, чем у микроконтроллеров, таких как Raspberry Pi Pico или ESP32.

Я использовал платы разработчика на базе микроконтроллера RP2040. На рынке существует несколько таких плат. Классика — это Raspberry Pi Pico, но есть несколько китайских аналогов, например, YD-2040. Отдельно хочется выделить RP2040 Zero от Waveshare — очень компактное решение, правда у него отсутствует порт для отладки, но можно обойтись и без порта.

Важный момент — СVBS-сигнал является аналоговый, поэтому стабильность напряжение на выходе играет важную роль и для приемлемого качества сигнала китайские клоны Raspberry Pi Pico могут не подойти, так как они страдают нестабильным напряжением на выходах. Мой совет — используйте или оригинальный Raspberry Pi Pico или RP2040 Zero от Waveshare.

Желающих продолжить чтение приглашаю под кат.

Читать далее

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

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

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

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

Читать далее

Разработка RC-машинки с BLDC. Подход с нуля

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

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

Будет описан мой пройденный путь: от печати готового проекта до разработки и печати новой платформы; от разработки первой версии печатной платы для использования коллекторного DC мотора до реализации управления бесколлекторным BLDC мотором с датчиками холла; от локального управления до реализации полудуплексного обмена данными на расстояние в сотни метров с передачей телеметрии.

Вновь потратил на разработку пару лет, но никуда не спешил. Это лишь мое хобби.

«Long story short…»
1
23 ...