Обновить
128K+

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

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

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

Как мы придумали NAPI-C как Linux-платформу для прототипирования с UART, I2C, SPI, GPIO

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

Есть классический путь начинающего embedded-разработчика: взять Arduino (плата для прототипирования с микроконтроллером), подключить датчик через I2C, написать 30 строк кода, порадоваться результату. Потом взять микроконтроллер ESP32 — чуть мощнее, Wi-Fi из коробки, уже интереснее. А потом наступает момент, когда задача требует полноценного TCP/IP-стека, SSH-доступа, записи данных в базу, отладки через gdb (GNU Debugger, отладчик в Linux) и еще пяти вещей, для которых на микроконтроллере нужно написать половину ОС.

Читать далее

Новости

Проектируем с нуля калькулятор на FPGA. Часть 8: От платы разработки до реального устройства

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

← Седьмая часть

В предыдущем посте я писал о микрокоде и слое скриптинга. На этом этапе калькулятор почти полностью существовал только в ПО: в виде десктопного Qt-приложения, выполняющего симуляцию, или в виде страницы с WebAssembly в браузере. Это удобная среда для разработки и демонстрации, но это не калькулятор. Калькулятор должен лежать на столе, его можно взять и постучать по кнопкам.

Сегодня мы поговорим об этом этапе (за исключением издевательств над кнопками).

Читать далее

Пингвин в гостях у Дельфина, или UNIX‑like система на Flipper Zero

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

Когда на экране терминала появилось приглашение #, Flipper Zero уже сложно было назвать просто устройством для работы с радиопротоколами, NFC и инфракрасными пультами. Передо мной находился маленький Unix-подобный компьютер: с ядром, процессами, командной оболочкой и файловой системой на microSD.

Читать далее

Поставил четыре датчика влажности на одну шину I2C — и они разошлись на 10%

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

У каждого датчика температуры и влажности в даташите написана своя погрешность. Но честная проверка — не читать даташит, а положить несколько штук в один и тот же воздух и снять показания в один и тот же момент. Я взял четыре популярных копеечных модуля с AliExpress — BME280, BMP280, AHT20 и HDC1080 — посадил их на одну шину I2C к одной ESP-шке и вывел всё на одну веб-страницу: у каждого датчика живое значение и график тренда, рядом.

Температуры совпали в пределах полуградуса. А вот с влажностью получилось интересно: один датчик показал на почти 10 процентных пунктов больше соседнего, который лежал в пяти миллиметрах от него. Ниже — как это выглядело, почему так вышло и на чём собран сам дашборд (спойлер: это несколько строк C++, без единой строчки фронтенда).

Читать далее

Подключаем к Raspberry Pi Pico MIDI-клавиатуру и делаем музыкальный синтезатор

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

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

Многие могут спросить: а в чём проблема? Взял МIDI-клавиатуру, подключил к компьютеру или смартфону с программой и играй сколько хочешь. Но у меня другая цель — понять, как нажатие на клавишу превращается в звук.

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

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

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

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