Обновить
256K+

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

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

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

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

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

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

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

Читать далее

Новости

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

К каким социальным проблемам приводит неправильная последовательность глав в учебнике по программированию

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

Сегодня видел план вводного курса, написанный начинающей американской преподавательницей. План иллюстрирует распостраненную ошибку — неправильный порядок подачи материала:

Читать далее

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

Как проект на лето растянулся на полгода: Делаем свою светодиодную вывеску с управлением по Wi-Fi (ч.1)

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

Привет! Кто не любит прикольные интерьерные штуки? Я, например, всегда любил вид неоновых вывесок. В какой-то момент мне пришла в голову мысль: а почему бы не сделать свою собственную? Правда, не неоновую, а светодиодную. Да ещё и с кучей эффектов и управлением со смартфона. Так появилась идея для очередного «проекта на лето», реализация которого у меня растянулась на полгода. С виду простая задумка таила в себе кучу технических сложностей и мелочей, которые нельзя было упускать из виду. Добро пожаловать в невероятно интересную историю создания, которую я вам сейчас поведаю…

Погрузиться в историю

Как отечественный RISC‑V микроконтроллер влияет на локализацию дождевальных машин

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

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

Один из таких примеров связан с локализацией дождевальных машин изготавливаемых компанией «Зелёный Робот» (ООО «АРОССА») и смежной автоматики для агропромышленного комплекса. В этом кейсе отечественный микроконтроллер на архитектуре RISC‑V стал не просто заменой импортного компонента, а частью системы управления, от которой зависит локализация конечного изделия и, как следствие, доступ заказчика к мерам господдержки.

Под катом — разбор того, почему в данном случае важен именно микроконтроллер, что было сделано на уровне изделий и какие выводы этот кейс позволяет сделать для российской экосистемы RISC‑V.

Читать далее

Миллион долларов, заработанный в студенческом общежитии

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

За свои первые каникулы в колледже, вдохновившись Satisfaction75, я создал устройство, которое назвал Dissatisfaction65 — беспроводную клавиатуру формата 65%. Не помню, почему конкретно, но, изготовив несколько проводных клавиатур, мне хотелось попробовать собрать самодельную беспроводную. Для реализации беспроводной связи я выбрал микроконтроллер Adafruit 32u4 Bluefruit LE, потому что опенсорсная клавиатурная прошивка QMK поддерживала Bluetooth конкретно с этой платой. Получившееся устройство выглядело прекрасно, но производительность была чудовищной. Из-за задержек при вводе пользоваться им было почти невозможно, и несмотря на огромный аккумулятор, работало оно от него всего несколько дней.

У компаний наподобие Logitech и Apple есть беспроводные клавиатуры с низкими задержками и долгой работой от аккумуляторов, поэтому я понимал, что это не предел. На следующие два месяца я погрузился в мир беспроводных микроконтроллеров и самодельных клавиатур. Почти сразу же я понял, что любители выбирают микрочипы Nordic, а правит в этом мире формат Pro Micro. В процессе исследований я обнаружил три микроконтроллера, разработчики которых пытались связать эти две технологии: BlueMicro, nRFMicro и BLE-Micro-Pro1.

Из-за форм-фактора BlueMicro я бы не смог изготовить большинство клавиатур Pro Micro, потому что они бы мешали друг другу. BLE-Micro-Pro был довольно дорогим, закрытым и продавался только в Японии. Ближе всего оказался nRFMicro. Сначала я решил модифицировать под свои нужды nRFMicro, но вскоре осознал, что мои цели слишком амбициозны, поэтому начал с нуля.

Читать далее

Самодельный «ретрокомпьютер» из трёх Arduino

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

Некоторые компьютеры предназначены для того, чтобы двигать прогресс вперёд. Я собрал Daisy, чтобы двинуть его в прошлое!

Это самодельный персональный компьютер, изготовленный из трёх плат Arduino, резисторов и большой любви. Он не пытается быть мощным. Он старается быть интересным: портативным, ограниченным в возможностях и милым. За таким компьютером можно провести ночь, рисуя простые картинки, сочиняя музыку или создавая маленькую игру. Такие машины когда-то были в изобилии, но теперь их практически нет: Timex Sinclair 1000, Commodore PET, TRS-80 MC-10.

Но Pinecone Daisy — это ещё и нечто иное: артефакт из альтернативной истории. У него есть название, производитель, номер модели и печатное справочное руководство по программированию на BASIC. Моё руководство стилизовано под книги Abacus Software для Amiga; источником вдохновения для него стала реклама DASH-80 в журнале, а напечатано оно было якобы существующей компанией Pinecone Computer. Всё это не совсем реально, но реально достаточно. Машина работает. Руководство точно её документирует. Медведь (капибара из начала статьи) присутствовала почти при всём процессе сборки, как помогающий в отладке «резиновый утёнок».

Название собрано из двух частей: вымышленной компьютерной компании из фильма 1985 года «Электрические грёзы» и клички моей собаки Дейзи. Модель называется DAISY-1.

Творческий, авантюрный дух домашних компьютеров 1970-х и 80-х был неотделим от ограничений. 40 столбцов, пара цветов (если повезёт), несколько звуковых каналов и BASIC. Это были не изъяны, которые нужно преодолевать, а сама среда.

Читать далее

Распределённый ПЛК без шкафов автоматики

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

Insol-1000 в сборе: центральный модуль с OLED и с модулями расширения на DIN-рейке.

Статья посвящена практическому построению распределённой системы автоматизации на основе открытого стандарта IEC 61499 и экосистемы 4diac (Eclipse Foundation).

Читать далее

Самодельный elgato-like макропад. Часть 2, софтовая

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

Так как в первой статье я сосредоточился на схемотехнике, в этой хотелось бы пройтись по разработке ПО и прошивки.

Напомню, я решил, что вместо прошивки мне подойдёт и нейрослоп - в конце концов это не серийное устройство, а поделка для себя. И тут, как обычно, в процессе работы пошли фейерверки.

ESP32-S3 имеет два USB выхода - обычный через микросхему CH340, которая конвертирует USB в UART, и второй USB OTG, который подключен к чипу напрямую. То есть чип может управлять тем, какое "устройство" он предоставит хостовой ОС! Более того, он может предоставлять несколько устройств одновременно. Это было как раз то, что надо: одним устройством будет USB HID клавиатура для "сырого" ввода в консоль, например, а вторым - USB RAW устройство, которое будет слушать софт бекенда - запускать приложения по ярлыкам, регулировать громкость, отправлять в устройство настройки. И всё это минуя тормознутый UART. Сказка. Но, как оказалось, для взрослых.

Казалось бы, полный интернет примеров того, как это настраивать. Даже в самом фреймворке esp-idf есть пример композитного устройства, значит, информация уж точно легкодоступная, бери да пользуйся. Я попросил ИИ добавить это в прошивку и... Оно не смогло. То есть вообще. Два дня и токенов примерно на 30 баксов - и я взял дело в свои руки, потому что ИИ выдумывал всё более и более изобретательные причины того, почему прошивка не компилируется, но вот выдумать компилирующуся прошивку не мог никак.

Читать далее

Программирование блока питания АКИП-1160/6 (или Drive-by-Wire)

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

Часто бывает такая ситуация, что вы разрабатываете прошивку для электронной платы у которой есть ADC порты.

Рано или поздно Вам придется как-то убедиться, что ADC в самом деле измеряют то напряжение, что приложено со стороны улицы.

И тут выясняется, что нужен прибор, который способен по команде выставлять на проводе разнообразные постоянные напряжения. Таким прибором, внезапно, является любой нормальный лабораторный блок питания.

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