Обновить
256K+

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

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

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

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

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

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

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

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

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

Читать далее

Новости

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

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

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

Демон «ничего не делал» — а одно ядро было загружено на 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 мин
Охват и читатели9.8K

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

Читать далее

Пуск SPI трансивера на STM32

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

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

SPI это цифровой, последовательный, относительно высокоскоростной, полнодуплексный, синхронный физический интерфейс передачи данных в пределах одной электронной платы PCB.

Этот интерфейс служит для обмена данными между микросхемами в пределах одной электронной платы.

Читать далее

Создаем I2C Master Controller на Verilog. Перенос на Zynq 7000 (bare‑metal)

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

После успешной отладки на плате с Cyclone IV пришла пора перенести наработки на плату Zynq Mini c XC7Z020. В этой статье я опишу, каким образом можно организовать вывод нужной нам информации из PS‑части Zynq на дисплей который подключен к EMIO на выводах PL. Сделаем обновленный модуль i2c_master_axi который добавляет сверху к уже разработанному ядру поддержку AXI4-Lite Slave, сделаем сборку проекта, подключим их к PS и проверим в bare‑metal сценарии. После того как это будет все работать — переходить к Linux уже будет гораздо проще.

Всем заинтересованным добро пожаловать под кат! 

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