Обновить
256K+

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

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

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

Лампа плавного пуска

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

У меня было множество вело фар и всегда меня напрягало то, что фара включается практически мгновенно.

Глаза даже не успевают приспособиться и это доставляет существенный дискомфорт.

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

Читать далее

Новости

MSX на ESP32-S3 с VGA-выходом

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

По многим критериям ESP32-S3 - это весьма мощный маленький компьютер. Неудивительно, что его используют даже для таких задач, как эмуляция ретро-консолей и тому подобного. В рамках проекта S3-MSX-PC [Иван Сварковский] (Ivan Svarkovsky) пошел еще дальше: он взял компонент MSX из мультисистемного проекта Retro-Go и оптимизировал его под процессорные ядра Xtensa Lx7, установленные в ESP32-S3.

Читать далее

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

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

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

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

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

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

Читать далее

Воскрешение «Пентагона-128» из пепла и безвейтовый контроллер клавиатуры и джойстиков на ATmega8 своими руками

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

Вместо введения:

Не помню, когда точно, но скорее всего это был 92-93й год. Мне было тогда 12-13 лет. Жили мы, как бы сказать, очень не очень. Нас было четверо детей, я из них самый старший. Отец — неработающий инвалид, а мама — единственная, кто тянул всю семью, работая с образованием 8 классов деревенской школы. Денег не то чтобы не хватало, а их ВООБЩЕ не было.

Но электроникой и компьютерами я уже тогда бредил. И вот в один прекрасный день у меня появился КОМПЬЮТЕР!!! Мама совершила какое-то чудо и вопреки всему купила мне его. Сказать, что я был рад — это все равно что ничего не сказать. Сейчас уже не помню точную модель, какой-то клон 48К Спектрума, но с 99% вероятностью это был «Ленинград». Вот так началось моё знакомство с компьютерами, играми и программированием.

Кстати, в само программирование меня подтолкнуло то, что в один прекрасный день мой Спектрум тупо перестал загружаться с магнитофона. Игры кончились, надо было что-то делать. Я взял в руки печатный справочник, который шел в комплекте, и начал набивать оттуда программки вручную. Некоторые были с ошибками — и это, кстати, огромный плюс! Приходилось включать мозги, разбираться в логике и эти ошибки исправлять. Вот так постепенно я освоил Бейсик, ну а потом догнал и ассемблер… и понеслось.

Так было до момента, пока мне не купили Денди. На долгие годы я забыл про Спектрум, ибо потом в руки мне попалась неисправная Сега, которую я смог отремонтировать! Тогда мне было лет шестнадцать, и моё инженерное эго после этого выросло примерно до размеров Вселенной (хотя неисправным там оказался всего лишь копеечный стабилизатор 7805 😊).

Читать далее

AtelTerminal — терминал со встроенным языком для работы с COM/Ethernet/WIFI/Bluetooth устройствами

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

В процессе борьбы со всевозможными COM/Ethernet/WIFI/Bluetooth RS-485 устройствами, в том числе встраиваемыми, программаторами и тд. столкнулся с тем, что автоматизировать работу с устройством практически нечем. Т.е. написать полноценный сценарий для имитации целевого устройства, обеспечить обмен данными с во всех возможных вариантах без ручного управления не получится ничем. На форумах умники советую брать питон, что сложно для схемотехников и иногда медленно. Самые продвинутые терминалы позволяет создавать макросы, некоторые — группы макросов без возможности полноценного анализа. Поэтому пришлось наваять терминал со встроенным скриптовым языком.

Цель — создать инструмент для широкого круга пользователей, схемотехников, радиоинженеров, которые недолюбливают среды программирования. Поэтому скриптовый язык делался максимально простым, никаких рекурсий, сложных выражений, лямбд, грамматических конструкций и пр. Также сделать простым работу с данными, предоставить возможность работать с несколькими устройствами одновременно. Унифицировать способы подключения (COM/Ethernet/WIFI/Bluetooth) устройств. Иметь в распоряжении специфические функции, которые решают задачу в комплексе.

Читать далее

Как из аппаратного цифрового входа, сделать цифровой выход? Схема с внешним ключом

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

Занимаюсь проектом, на модуле ESP32 не хватило выводов! Не особо хотелось применять расширители портов на PCF8574 и ей подобные, в связи с чем пришлось городить костыль.

DevKit v1 на базе ESP-WROOM-32, на своих выводах (pins) имеет GPIO сконфигурированные только под цифровой вход, т. е. Input! Но никак Input/Output. Это порты: GPIO34, GPIO35, GPIO36 и GPIO39.

Читать далее

Конечный автомат (FSM) – инструмент программиста

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

Тема конечных автоматов (КА) актуальна. Почти как тема реализации светофоров. Но вот, если серьезно, только отношение к ней разное. Время от времени появляются статьи типа «Конечные автоматы (FSM) – это ловушка для программиста» [1]. И здесь очень не хочется, чтобы складывалось превратное представление о некой «псевдо-математической» автоматной абстракции. Нужно оберегать народ от подобных суждений, которые ни на чем не основываются.

Не будем, в пику упомянутой статье, петь дифирамбы автоматам в очередной раз. Потому, как «сколько не говори халва, во рту сладко не станет». Но можно реализовать пример из статьи только с позиции другого взгляда на автоматы. Это больше убедит, чем пространные рассуждение в духе «свист-технологии» или той же многопоточности и конкурентности.

Пусть перед нами стоит задача реализовать светофор и при этом уже есть довольно интересное, если не сказать – оригинальное, решение, которое дает право автору статьи весьма критично высказываться в отношении автоматов. Само решение сводится к следующим шагам: 1) создается таблица, строки которой определяют цвет светофора и его время; 2) создается простая программка перебора строки, которая зажигает в прямом и переносном смыслах, реализуя управление светофором.

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

Читать далее

От «Амура» к Baikal‑U и К1921ВГ1Т: как РЕГЛАБ переводит модули R500 на отечественные микроконтроллеры

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

Для производителя ПЛК переход на отечественный микроконтроллер начинается не с замены строки в BOM, а с пересборки части аппаратной и программной платформы. Микроконтроллер в серийном модуле — это не просто строка в спецификации: его замена требует прежде всего устойчивой программной поддержки в серии, а также адаптации схемотехники и обвязки под новый кристалл.

В случае РЕГЛАБ задача дополнительно усложняется масштабом линейки: более 100 серийных изделий, более 1500 типов компонентов и разные классы модулей в линейке REGUL. Для части задач достаточно компактного микроконтроллера уровня «Амур» К1948ВК018, который уже применен в серийных модулях. Для основных изделий рассматривается Baikal‑U, а для наиболее требовательных — К1921ВГ1Т НИИЭТ.

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

Читать далее

Конечный автомат инкрементного энкодера

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

При разработке электронных устройств порой надо подключить инкрементный энкодер.

Это могут быть устройства с регулированием громкости звука, яркости свечения, датчик оборотов одометра или что-н еще.

В этом тексте я показал как может работать программный компонент драйвера для опроса инкрементного энкодера.

Читать далее

Как я сделал брелок на ATtiny13, научил его трем гипнотическим режимам и превратил в набор для пайки

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

Представьте: маленький брелок лежит в кармане. На нём — мордочка кота из популярного мема. Нажимаешь кнопку на затылке — и в центре головы загорается круг из двенадцати ярких SMD-светодиодов. Два огонька начинают бегать по кругу с коротким хвостом. Ещё одно нажатие — и запускается спиннер: три луча вращаются по часовой, потом три круга против. Третий режим — маятник, три светодиода плавно качаются взад-вперёд, как загипнотизированный взгляд. Четвёртое нажатие — и всё гаснет. Батарейка CR2032 отдыхает.

Всё это работает на самом дешёвом микроконтроллере ATtiny13. Четыре пина управляют двенадцатью светодиодами через Charlieplexing. Никаких Arduino, никаких сдвиговых регистров.

Читать далее

Как сделать робота из того, что нашлось в кладовке

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

Продолжение статьи про ИИ в реальном мире — по просьбам из комментариев.

Как устроено железо: из чего собран робот, почему компас врёт, дальномер ведёт под шкафы, а пистолет съел неделю вместо дня. Не туториал, а разбор граблей.

Читать далее

Но почему, почему, почему был светофор зеленый?

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

Но почему, почему, почему
Был светофор зеленый?
А потому, потому, потому,
Что был он в жизнь влюбленный.

Читать далее

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

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

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

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

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

Читать далее

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

Экспресс-проектирование, или как я делал умный стоп-сигнал за два часа до поездки

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

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

Недавно, вдохновившись моим опытом, мой товарищ решил приобщиться к моноколёсному комьюнити и купил моноколесо Inmotion V12 Pro. В целом колесо достаточно хорошее, но первая совместная поездка выявила одну проблему, а именно: практически невидимые задние сигналы. Этот недостаток не добавляет безопасности поездкам, поэтому, как всегда, я спешу исправить ситуацию. А что из этого вышло — читайте далее.

Читать далее

COM-порт из ничего: PTY, epoll и немного RS485-боли

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

Демон «ничего не делал» — а одно ядро было загружено на 100%. История про виртуальный COM-порт для Linux/WSL2: PTY, epoll и эмуляция RS485, с кодом и граблями.

Рассказываю, как сделал vseriald — демон, который создаёт виртуальный последовательный порт /dev/ttyV0 в Linux и WSL2 и выводит его в сеть, FIFO или очередь сообщений. Разбираю три неочевидных места: псевдотерминал, после закрытия которого одно ядро уходит в 100%; притормаживание источника в однопоточном epoll-цикле без блокировок; эмуляцию полудуплексного RS485 как конечного автомата с таймингами и коллизиями. Плюс честный ответ на вопрос «зачем это, если есть socat и /dev/pts» — и код из реального проекта.

Читать далее

Конечный автомат (FSM) — ловушка для программиста

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

Всем привет, с вами вновь сумасшедший профессор (хотя совсем не профессор и возможно не совсем сумасшедший). Разберем очередную актуальную тему или не очень актуальную.

Как конечные автоматы заставляют нас бросить решение реальной задачи и уводят в сферические псевдо-математические дебри.

Или можно ли для произвольной задачи программирования найти практический смысл?

Читать далее

Как 11 лет назад собрать игру на ATtiny2313 без знаний электроники и породить ИИ-баг

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

Привет, Хабр! Хочу рассказать вам историю об одном устройстве, которое было создано 11 лет назад. Это простая игра «Угадай число» на микроконтроллере ATtiny2313. Собранное мной с 0 знаний в электронике.

Плата не просто выжила и работает до сих пор, но и скрывает в себе секретный режим, игра сама с собой. О том, как собирался этот low-tech шедевр и как забавно он восстает против кожаных мешков, читайте под катом. 

Читать далее

Обзор SPI Flash памяти MX25L6433F

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

В этом тексте я произвел обзор микросхемы SPI-NOR FLASH памяти MX25L6433F.
Показан код, который позволит запустить на микросхеме файловую систему LittleFS.

Читать далее

CO2 станция на ESP32-C3 + SCD41 + GC9A01

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

История создания открытой настольной CO2-станции на базе микроконтроллера ESP32-C3, круглого дисплея GC9A01 и честного фотоакустического NDIR-сенсора углекислого газа Sensirion SCD41.

Большинство бюджетных мониторов воздуха используют дешевые eCO2-датчики, которые лишь угадывают уровень углекислого газа по качеству летучих веществ. Этот проект — полностью открытая альтернатива. Прошивка написана на чистом фреймворке ESP-IDF, использована моя собственная графическая библиотека. Устройство передаёт данные по протоколу MQTT, откуда информацию может забирать умный дом или любая другая похожая система. В настоящий момент показания интегрированы в Home Assistant.

Читать далее

Исследование алгоритмов цифрового предыскажения для LTE-сигналов на SDR-платформе РИТМ SDR USRP

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

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

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