Обновить
128K+

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

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

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

В Китай за embedded-мечтой: программируем микроконтроллеры в SHENZHEN I/O

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

Доброе утро, Шэньчжэнь. На улице 19 градусов, плохое качество воздуха, высокая активность дронов, льет дождь и светит солнце. Все это я узнал от умной наружной камеры; мне же светят лишь холодные офисные лампы. Я мог бы торговать электроникой на рынке Хуачанбей неподалеку. Но у меня есть инженерное образование, мой воротничок белоснежен, и с сегодняшнего дня я работаю в Longteng Electronics.

Так начинается SHENZHEN I/O — головоломка, где нужно заниматься аппаратной разработкой и программированием микроконтроллеров. Выполнять разные ТЗ с помощью имеющихся компонентов и стремиться к экономии по всем возможным направлениям. У реального меня, автора этой статьи, инженерного образования нет. Я лишь окончил базовый онлайн-курс схемотехники и написал об этом три статьи. Поможет ли это здесь? Не уверен. Доедаю воображаемый баоцзы и открываю почту сотрудника.

Читать далее

Новости

Как мы делали BLE-систему аур для ролевой игры

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

Всё началось с желания сделать ролевую игру по мотивам компьютерной игры Arcanum, в мире которой одновременно сосуществуют магия и технология, причём эти две силы принципиально конфликтуют друг с другом.

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

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

То есть игровой мир должен был сам реагировать на присутствие персонажей.

Читать далее

Как я добавил в QUAD 3 прямой выбор входов: реверс ARM-прошивки, бинарный патч и 64 байта здравого смысла

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

Как я добавил в QUAD 3 прямой выбор входов: реверс ARM-прошивки, бинарный патч и 64 байта здравого смысла.

Читать далее

Про дела сырные

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

Если я шутя спрошу вас: «что мы любим на завтрак? Что мы любим на ужин?» — думается, что ответы будут очень разными, но, наиболее очевидным ответом наверняка будет то, что, хотя бы изредка, мы позволяем откусить себе, что утром, что вечером — маленький, ароматный кусочек килограмма на полтора душистого сыра!

Читать далее

Используем ISD для защищенной персонализации Java Card апплета

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

Всем привет!

В статье «Асимметричная криптография в JavaCard» приводится пример создания канала защищенного обмена сообщениями на сессионных симметричных ключах, вырабатываемых по протоколу ECDH. У этого решения есть два спорных момента: во-первых, сама реализация потребует дополнительных ресурсов на тщательное тестирование, а во-вторых ECDH не обеспечивает аутентификацию сторон. Этот пункт более актуален, т.к. без поддержки апплетом инфраструктуры открытых ключей (PKI) и цифровых сертификатов, он выдаст секреты любому, кто знает параметры эллиптической кривой. Т.е. нужна еще куча времени на разработку и отладку. Преодолеть эти сложности можно одним элегантным решением: использовать механизмы безопасности, предоставляемые «главным по карте» - Issuer Security Domain.

Читать далее

Игровая консоль в корпусе нормирующего преобразователя: raycast на ESP8266

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

Подарок сыну и списанный прибор

Не так давно мой сын, которому тогда было 5 лет, попросил игровую консоль. Я немного подумал, и решил, что до полноценной консоли ему бы ещё подрасти… и решил сделать её сам. Проведя ревизию полезного «железа» я нашёл 2.4“” TFT SPI дисплей, шилд джойстика и ESP8266. Сначала был написан в Arduino IDE код, затем найден корпус… но я начну от обратного. Поиск подходящего корпуса начался с Авито. Куплена нерабочая китайская консоль, но сразу после получения успешно отремонтирована подключением шлейфа дисплея и поиск продолжился… На работе был присмотрен списанный нормирующий преобразователь интерфейсов, замерен, и… признан пригодным к адаптации в качестве корпуса.

Читать далее

Узбекистан решил строить образовательную инфраструктуру для собственной микроэлектроники

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

Выступил с докладом через Zoom на конференции SEMICONUZ в Узбекистане. Заметил два момента, один из них: cудя по вопросу преподавательницы из Ферганского политехнического института, в Узбекистане наверное ведутся дискуссии "кодописатели против физиков". То есть обсуждают, достаточно ли программировать софтвер на уже сделанных чипах и дизайнить на верилоге логику (с учетом отчетов от программы статического анализа тайминга) - или нужно вводить курсы физики полупроводников.

Читать далее

Разработка CAN адаптера (часть 1)

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

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

Читать далее

Хотел сделать контроллер теплового насоса, а получился симулятор ESP32, Arduino и цепей 12/230 В

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

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

Сразу оговорка: это пока только виртуальная сборка. К реальной я ещё не приступал и когда приступлю, не знаю. Дом строится, деньги и время уходят в первую очередь на него. Всё описанное ниже работает в симуляторе, а не в подвале на живом компрессоре.

Логичный первый шаг: написать прошивку и проверить логику. Проверять на настоящем компрессоре, который не прощает ошибок, не хотелось. Захотел что‑то вроде Wokwi, но чтобы там можно было собрать ещё и силовую часть: реле, контактор, автомат, компрессор на 230 В. Такого я не нашёл и написал сам. Так проект про тепловой насос превратился в проект про симулятор: PinPort, онлайн‑симулятор ESP32, Arduino и цепей 12 и 230 В. Тепловой насос стал его самым сложным примером и хорошим тестом на прочность.

Часть кода написана вместе с нейросетью (вайбкодинг), и я этого не скрываю.

Читать далее

Скоростная разработка электроники 2

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

На этот раз делаем сенсор присутствия для опасных промышленных зон. В нагрузку берёмся за реализацию требований функциональной безопасности PL и SIL. Кто сказал, что AI не может делать функционально безопасные устройства? Сейчас проверим.

Читать далее

Научил кнопочный телефон 1980-х годов разговаривать с Claude

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

На старый немецкий кнопочный телефон FeTAp я установил аудиоплату на ESP32 и связал ее со своим ассистентом на Raspberry Pi. Теперь достаточно снять трубку, как на другом конце отвечает ИИ, с которым можно разговаривать почти как по обычному телефону.

Читать далее

От сборки до проверки на плате: набор открытых инструментов для разработки под STM32

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

При работе с STM32 приходится решать несколько повторяющихся задач: настроить сборку, подключить библиотеки, записать прошивку и проверить её поведение на плате. После изменений эти действия нужно выполнить снова — желательно тем же способом и с понятным результатом.

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

Хочу показать, как эти проекты связаны и где могут пригодиться.

Читать далее

Метеостанция, которая измеряет радиацию: счётчик Гейгера, ESP32 и LoRa

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

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

В этой статье я расскажу про источники радиации и средства её измерения. В практической части статьи будет описана погодная станция, способная измерять не только температуру, давление и влажность, но и уровень радиационного фона.

Читать далее

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

Составное устройство USB на AT32. Часть 1: Подготовка

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

История эта началась два года назад, когда подписчики моего канала начали регулярно и настойчиво интересоваться, когда же в «Селените появится режим автономной обработки сигналов». Базовый блок трансивера получился достаточно компактным, 100х62х23 без выступающих частей, и желание пользователей «отвязать» его от компьютера, где как раз и производилась обработка сигнала, было вполне резонным.

Читать далее

Hello World для STM32

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

Когда пишут программу HelloWorld на C, обычно выводят текст “Hello, World!”. Но когда программа пишется для микроконтроллера, часто ограничиваются миганием светодиода, особенно для микроконтроллеров семейства STM32.

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

Читать далее

Rust для микроконтроллеров: что он даёт по сравнению с С

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

Си отлично работает на микроконтроллерах и никуда не исчезает. Но часть правил, которые в Си держатся на архитектуре проекта и дисциплине разработчика, в Rust можно выразить так, чтобы их проверял компилятор.

Разберём это на DMA, владении периферией, состояниях GPIO, прерываниях и unsafe — без попытки доказать, что Rust должен заменить Си.

Читать далее

Основы Universal Measurement and Calibration Protocol (XCP)

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

XCP (Universal Measurement and Calibration Protocol) — это бинарный автомобильный интерфейсно-независимый протокол прикладного уровня модели OSI-7. Используется при разработке и отладке ECU. Появился в далёком 2003 году как потомок ранее существующего протокола CCP.

Читать далее

Мобильник почти из ничего: Как ИИ помог собрать телефон из деталей с маркетплейсов

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

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

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

Замечу, что я использовал только бесплатные DeepSeek, Gemini и ChatGPT в бесплатном ограниченном режиме. Какой-то особой системы когда кому и какие задавать вопросы не было. Обычно переключался между ними, когда кто-то начинал тупить.

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

Радиомодуль проще купить готовый. Я выбрал такой:

Читать далее

Перистальтический насос‑дозатор на 3D‑принтере для лабораторной установки водоподготовки

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

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

Для такого исследования нужен точный перистальтический насос‑дозатор на маленький расход. Реагенты должны поступать в воду непрерывно, с заданной дозой в мг/л, от 1 до 13 мл/мин. Реагентов два — коагулянт и флокулянт, значит, нужно два канала.

Подходящий готовый насос я не нашёл и спроектировал свой. Рассказываю, как он устроен, где я ошибся и как он работает на установке.

Читать далее

Как я запустил Bad Apple с частотой 20 fps на E‑Ink дисплее за $71

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

Мне удалось запустить полноценное чёрно-белое видео на стоковой плате ESP32-S3 с экраном на электронных чернилах: никакой ПЛИС и никакого ПК — панель управляется напрямую по параллельной шине. В статье я подробно расскажу, как работает этот драйвер. Если коротко, то в нём используется векторный блок, принимающий по 64 пикселя за раз; управляющие сигналы (waveforms), которые хранятся в регистрах, а не в таблицах, и дельта-движок, который обрабатывает только изменения. При этом точность всей системы контролировалась с помощью планшетного сканера.

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