Обновить
128K+

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

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

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

Дальняя связь на модулях LoRa: принимаем сигнал ниже уровня шума

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

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

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

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

Из этой статьи вы узнаете, как появились устройства LoRa и почему они могут принимать сигналы ниже уровня шума. Вы узнаете, как работать с модулями LoRa, подключенными к микрокомпьютеру Raspberry Pi, научитесь конфигурировать эти модули с учетом ограничений законодательства, а также передавать с их помощью сообщения на километры. В завершение статьи я расскажу, как сделать простую погодную станцию, измеряющую температуру, давление и влажность. Данные будут передаваться через LoRa и отображаться на OLED-мониторах, подключенных к передатчику и приёмнику.

Читать далее

Как загрузить любой шрифт Google Fonts на дисплей ESP32 — без Processing и ручной конвертации

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

Встроенных шрифтов TFT_eSPI хватает ровно до того момента, когда интерфейс ESP32 хочется сделать аккуратнее обычного тестового стенда. В статье автор показывает браузерный генератор для Google Fonts и собственных TTF, а заодно объясняет, как устроен формат VLW и что важно учесть при работе со сглаживанием, LittleFS, переносами строк и размером файла.

Настроить шрифты

Обработка звука в реальном времени (или Full Duplex I2S на STM32)

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

В этом тексте я написал про то как настроить I2S трансивер работать в полнодуплексном режиме (Full Duplex). Показал как настроить на микроконтроллере STM32F407VG одновременное воспроизведение и запись встречного аудио потока по интерфейсу I2S.

Читать далее

Программирование плат Nucleo отладчиком J-Link

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

Как известно существуют учебно-тренировочные электронные платы серии Nucleo. Там всегда есть вмонтированный программатор ST-link. Эти платы дешевы и очень удобны для отладки большой прошивки по частям. Однако родной программатор ST-Link долго прогружается и пошаговая отладка часто срывается прямо из-под IDE. Потом нет способа перезагруpить прошивку из-под отладчика ST-link. В связи с этим возникла потребность отлаживать прошивки на плате другим программатором: отладчиком Segger J-link.

Читать далее

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

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

Во время Холодной Войны существовало клише что якобы в США все индивидуалисты, а в СССР - коллективисты. С клише была неувязочка: в тот же период американский гуру менеджмента Питер Друкер писал одну за одной толстые книги, как организовывать работу коллективов людей в больших корпорациях. Его книги подхватили японцы, которые быстро применили идеи Друкера в своих компаниях и вышибли американцев из рынков микросхем памяти, бытовой электроники и автомобилей. Даже менеджер моего менеджера, китаец в корейской компании, подарил мне книжку Друкера на позапрошлое рождество.

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

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

Читать далее

Esp-Monitor: архитектура и развертывание self-hosted IoT-платформы для микроконтроллеров ESP

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

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

Для решения этой проблемы был разработан легкий open-source сервис с открытым исходным кодом и условным названием «esp-monitor».

Читать далее

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

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

То, что ИИ заменил кодеров, уже ясно. А электронщиков ещё нет. Или уже?

Я решил проверить, какова ситуация сейчас, и применил ИИ везде, где смог, при разработке универсального сенсора присутствия.

Я сделал плату с радаром на 60 ГГц и прошивку к ней, и почти на каждом шаге использовал Claude, чаще всего Fable 5. Он подбирал мне микроконтроллер, планировал функции выводов, анализировал комплектацию, писал скрипты для Altium, драйверы и прикладной код. И знаете, практически получилось с первой итерации!

Читать далее

Подключаю свой перчик к умному дому, или как я датчик влажности почвы для Home Assistant делал

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

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

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

Читать далее

Zynq 7000. HDMI для платы Zynq Mini и Linux

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

Раз уж пошла такая песня, я решил добить вопрос с выводом изображения по HDMI на плате Zynq Mini. В предыдущей статье мы уже разобрали как это сделать в baremetal-сценарии, теперь пришла пора дополнить дизайн для возможности вывода системной консоли Linux, при том, что у Zynq-7000 нет своего видеоконтроллера и весь видеотракт (DMA, генератор таймингов, TDMS-кодер) должен быть построен внутри FPGA, а затем быть проброшен в Linux. 

Всем, кому интересна данная тема - добро пожаловать под кат!

Читать далее

Математика для датчиков: как посчитать коэффициенты для АЦП и получить реальные значения

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

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

Вперёд, к свету разума

Digital Points — программный осциллограф, так и не ставший стартапом

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

История о том, как внутренний программный инструмент для отладки вырос в проект, так и не ставший коммерческим, и почему в итоге мы выложили его в open‑source в надежде вдохнуть в него вторую жизнь. Заодно расскажу, что умеет этот инструмент.

TL;DR Digital Points — «программный осциллограф», инструмент для отладки систем реального времени. Может считывать переменные микроконтроллеров в реальном времени и по триггеру, математически обрабатывать их, измерять частотные характеристики, рассчитывать программные регуляторы. Пытались его коммерциализировать, не вышло, и теперь выкладываем в open‑source.

Читать далее

DIY и C++ в системе охлаждения кур

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

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

Читать далее

200 рублей, ESP12 и полная потеря самоконтроля: хроники одной вентиляции

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

ESP01 и ESP12 кажутся идеальными кирпичиками для самодельной автоматизации: стоят копейки, занимают минимум места, умеют Wi‑Fi и позволяют собрать полезное устройство буквально из нескольких модулей. Но стоит перейти от макетной платы к реальному корпусу, питанию, реле, датчикам и установке «на место», как начинается настоящая инженерная проза: пины внезапно мешают загрузке, реле щёлкает не тогда, питание проседает, корпус не герметичен, а вентилятор оказывается умнее, чем хотелось бы.

В этой статье я собрал свой практический путь — от выбора между ESP01 и ESP12 до проектирования платы, корпуса, прошивки и отладки устройства для управления вентиляцией в санузле. Здесь будет не только «как надо», но и честный список ошибок, тупиков и переделок: почему правило «семь раз проверь» для ESP особенно актуально, какие пины лучше не трогать, зачем тестировать питание заранее и почему иногда самое ценное в проекте — это не схема, а возможность спокойно обновить прошивку по воздуху и наконец-то лечь спать.

Читать далее

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

IoT системы не безопасны и разрознены

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

Ни для кого не секрет, что IoT‑устройства собирают огромное количество информации, в том числе личные данные пользователей и фиксируют их местоположение. А также они жёстко привязаны к конкретному производителю, т.е. пользователь зависим от конкретного производителя или бренда. Гаджеты совместимы с парой основных систем, но кроссплатформенность отсутствует. Устройства разных производителей часто не могут взаимодействовать друг с другом без дополнительных шлюзов. Универсального протокола связи устройств тоже нет. Из стандартов: Zigbee, Matter, Z‑Wave, Bluetooth, Wi-Fi — как следствие умные устройства плохо дружат между собой.

Читать далее

Из обучения школьников цифре на макетке нужно выкинуть все резисторы и вставить микросхемы с FIFO

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

Раз уж я начал учить школьников как собирать на макетной плате цифровые схемы (в рамках подготовки демонстраций к мероприятию торговой палаты города Маунтин-Вью, Калифорния), то возникла необходимость написать для них инструкции. У меня тут же ожидаемо спросили, почему мне не подходят существующие инструкции от Make и других источников. Объясняю:

1. Все эти туториалы последние 55 лет переписывают друг от друга как использовать: 1) резисторы при светодиодах и 2) подтягивающие резисторы. У меня этого нет, потому что я использую LED толерантные к пяти вольтам, кнопки со встроенными подтягивающими резисторами, а также блок питания от USB которые генерит стабильные 5V вместо 9-вольтовой батарейки "Крона". То есть я удалил как кучу лишних резисторов на плате, так и необходимость объяснять законы Ома и Кирхгофа.

2. Эти туториалы часто описывают как строить генератор тактового сигнала из микросхемы 555, конденсатоов и резисторов. У меня этого нет, посколько я используют уже собранные генераторы тактового сигнала с AlExpress. Сборка такого блока самому не дает ничего полезного для обучения цифровому проектированию по направлении к микроархитектуре.

3. В мейкерских туториалах есть куча вещей, которые никогда не возникают в работе проектировщика современного чипа (JK-триггеры, SR-защелки), но нет того, что используется ежедневно (FIFO - микросхема CMOS 40105, приоритетный энкодер - CMOS 4532 итд).

Короче вот первые четыре страницы и фотки школьников с последней сессии:

Читать далее

О Raspberry Pi Pico, RP2040 и Baremetal

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

В этой статье пойдет речь о первом поколении микроконтроллеров от Raspberry Pi Foundation — RP2040 на основе двух ядер ARM Cortex‑M0+, и о плате, которая базируется на этом чипе — Raspberry Pi Pico. Статья призвана облегчить понимание некоторых принципов работы RP2040 и микроконтроллеров в целом.

Читать далее

Калвиаутра путает калвиши: один байт изменил всё

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

Пришла моя долгожданная плата EC для клавиатуры Agar Mini. Собрал, начал пользоваться, но вот что-то слишком много опечаток. Думал, повожусь с настройками, да не тут-то было — приключение растянулось на 7 часов.

В статье о том, что такое EC, как отдебажить проблему и внести фикс в прошивку. Не обошлось и без реверс-инжиниринга.

Все опечатки неслучайны.

Читать далее

Подключение вакуумного люминесцентного индикатора (ВЛИ) типа ИВЛ1-8/13 от старого кассового аппарата АМС-100Ф

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

Как оживить старый ВЛИ (VFD) без родной электроники? В этой статье разберем подключение неизвестного дисплея, управление сетками и сегментами, работу с высоким напряжением и создание собственного драйвера на Arduino Nano, который позволит управлять индикатором через Serial‑порт.

Читать далее

Эмулятор CD-ROM из Raspberry Pi Pico W, использующий образы из сети

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

В одной из своих статей я уже рассказывал, как из Raspberry Pi Pico сделать USB CD-ROM. Так как размер флеш-памяти Pico ограничен, поместить что-то серьёзное в образ, который будет находиться во флеш-памяти невозможно. Можно попробовать разместить образ на флеш-карте и использовать модуль для неё, но я нашёл более интересное с точки зрения используемых технологий решение. Эмулировать образ, который находится в интернете. Образа многих дистрибутивов Linux доступны для загрузки с сайта.

Читать далее

MIK32 Амур + PlatformIO: пошаговый гайд по настройке среды разработки на Windows

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

MIK32 Амур (К1948ВК018) — первый российский 32-битный микроконтроллер на ядре RISC-V от АО «Микрон». Для работы с ним разработчики предлагают связку VS Code + PlatformIO. Казалось бы, всё просто — но на практике сталкиваешься с множеством неочевидных шагов, которые нигде не собраны в одном месте. В этой статье я пошагово покажу, как развернуть полноценную среду разработки для MIK32 Амур на Windows.

Читать далее