Как стать автором
Обновить
137.21

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

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

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

Упрощение отладки с помощью unit-тестов

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

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

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии5

Сезам, откройся… или как оправдать свою лень прогрессом

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

Кто не помнит арабскую сказку "Али-Баба и сорок разбойников", и их волшебную пещеру, для входа и выхода из которой требовался секретный пароль. Может кто-то вспомнит еще короткий и забавный рассказ А. Беляева, где та же команда открывала двери в доме престарелого магната. Но теперь для создания этого не надо учиться колдовать или даже продавать заработанные тяжким трудом текстильные фабрики...

Читать далее
Всего голосов 6: ↑5 и ↓1+4
Комментарии9

Как Чинить Программные Ошибки?

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

В программировании микроконтроллеров регулярно приходится занимаются починкой bug(ов).

При этом все bug(и) уникальные. Поиск причины каждой конкретной осечки это скорее искусство. Починка программ сродни работы детектива.

Есть ли универсальные приемы того как искать причину программных ошибок?

Считаю, что да. Подробности в тексте...

Читать далее
Всего голосов 14: ↑8 и ↓6+2
Комментарии40

KC868-A2: ESP32 + LAN8720A + GSM 2G/4G (на квадрате 9x9 см)

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


В линейке контроллеров Kincony KC868 на ESP32 присутствуют модели серий A4, A6, A8, A16, A32, A64, A128 и т. д., но не было модели A2 (компактной версии с двумя реле). И вот компания Kincony решила исправить это досадное упущение и выпустила модель KC868-A2, причём решила не мелочиться и на небольшом куске текстолита 9x9 см (плюс ко всему прочему) разместила разъёмы для подключения 2G/4G GSM модулей SIM800L/SIM7600, что делает эту компактную модель очень интересным решением — тут одновременно присутствуют ESP32, LAN8720A и один из GSM модулей 2G/4G (на выбор) и на этой плате можно реализовать довольно развитые IoT проекты.
Читать дальше →
Всего голосов 20: ↑19 и ↓1+18
Комментарии9

Истории

Индастриал-пирсинг со светодиодами

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

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

Мне же, как любителю интересных проектов с электроникой, пришла идея встроить в эту штангу светодиоды.

Это один из проектов, которые я успел реализовать как раз перед закрытием London Hackspace. К этому моменту у меня уже год, как нет доступа к фрезерному станку, а без него просверливание отверстий в игле от шприца оказалось нетривиальной задачей.
Читать дальше →
Всего голосов 79: ↑76 и ↓3+73
Комментарии34

Реверс-инжиниринг и ремонт платы зарядного устройства

Уровень сложностиПростой
Время на прочтение18 мин
Количество просмотров4.7K
image

Волею случая у меня в руках оказались две неисправные платы от зарядного устройства тяговых аккумуляторов LiFePo. Параметры платы вызывают уважение – она выдает в номинале 48 В при токе до 60 А, то есть мощность платы порядка 3 кВт. Плата подключается к однофазной сети 220/230В. Всего в зарядном устройстве стоит несколько таких плат, они все подключаются параллельно и работают на общую нагрузку. Выпускаются варианты таких зарядных устройств с разным числом плат, соответственно, на разный зарядный ток. Например, как на фото ниже — 3 платы, 180 А.
Читать дальше →
Всего голосов 35: ↑35 и ↓0+35
Комментарии21

Как сделать быстрый Wi-Fi для ПЛК

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

Быстрый Wi-Fi позволяет собрать больше диагностической информации, а значит облегчает отладку, улучшает поддержку и открывает путь к машинному обучению в ПЛК и во встраиваемых устройствах. Но кроме быстрого Wi-Fi модуля нужен ещё быстрый драйвер на стороне микроконтроллера. Здесь покажем процесс портирования открытого проекта Infineon Wi-Fi Host Driver (WHD) на нашу платформу универсального ПЛК PLCS7.

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии3

Разбор примера BLE Audio от Nordic Semiconductor (или переходник I2S->BLE-Audio)

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

Обзор технологии беспроводной передачи данных BLE 5.3.
Представлен разбор примера Ble Audio от Nordic Semiconductor для микроконтроллера nRF5340. Это пример передачи звука по Bluetooth 5.3.

Читать далее
Всего голосов 8: ↑7 и ↓1+6
Комментарии2

Структура драйвера Linux для одноплатного компьютера

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

Здраствуйте меня зовут Дмитрий. Недавно я написал статью как собрать прошивку для одноплатного компьютера Orange PI i96 с нуля. Если вы не читали то очень советую. И там я упоминал что для того чтобы собрать прошивку на новом ядре Linux, мне пришлось переписать драйверы с учетом архитектуры Device Tree, которую использует современное ядро. В этой статье я опишу как я это сделал.

Читать далее
Всего голосов 37: ↑36 и ↓1+35
Комментарии5

Создание автоматического долива воды в чайник — своими руками

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров20K
image

Во время наших ежедневных утренних ритуалов часто возникает момент, когда нужно включить кофемашину или чайник, и если не повезет, то можно услышать их молчаливую просьбу: «Пожалуйста, добавьте воды» И Вам приходится искать подходящую емкость, терпеливо ждать, пока она заполнится водой из фильтра, а потом аккуратно переливать воду из емкости в чайник, рискуя при этом разлить ее. Знакомая вам ситуация?
Читать дальше →
Всего голосов 67: ↑61 и ↓6+55
Комментарии63

NORVI Arita: добавляем SD картридер и веб-интерфейс (почти контроллер мечты)

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


Итак, это уже третья статья (0, 1, 2) по модернизации NORVI Arita Model 5, контроллера который имеется в моём распоряжении. Арита изначально была интересным решением, а после добавления нами на прошлых этапах Ethernet интерфейса и OLED дисплея SSD1306 стала ещё интереснее.

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

Фактически, контроллер превращается в полностью самодостаточную вещь: он может управлять подключённым оборудованием (как собственно контроллер), общаться по сети с другими устройствами, выводить нужную информацию на веб-страницы, управлять другими контроллерами по проводным и беспроводным интерфейсам и т. д.
Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии13

К вопросу о ESP32

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

Решил я приобщиться к модным трендам и купить себе (для побаловаться) платку на ESP32, тем более и повод выдался неординарный - на сайте одной из российских фирм, торгующих Arduino, обнаружился модуль ESP32 lolin32 OLED по цене ниже, чем на Aliexpress. Пнп: не знаю, будет ли это рекламой, но вот ссылка на модуль https://iarduino.ru/shop/boards/wemos-esp32-oled.html, а фирму вы узнаете сами. Не то, чтобы мне было очень жалко 1200-990=210 рублей, но возможность получить платку сразу, без ожидания посылки дорогого стоит. Пнп: кстати, если заказывать доставку до пункта выдачи, то даже получается чуть дороже, хотя и быстрее, чем из Китая - всего 3 рабочих дня. Но можно съездить в "столицу нашей Родины город-герой Москва" и получить заказ на следующий день, что я и сделал. Не очень понятно, зачем я это все совершил в пятницу, потому что в выходные с платой возится так и не начал, но охота пуще неволи.

Тем не менее, на следующей неделе приступил к освоению платы. Для начала включил плату в USB порт - экран засветился и появилась надпись, заявляющая о любви к ESP - начало неплохое. Нужно установить среду разработки программ, и я решил поступить, как нормальный самодельщик, тем более что мне это рекомендовали на сайте фирмы продавца - скачать Arduino. Читатели, испытывающие непреодолимое отвращение к этому термину, могут далее себя не мучить, все остальные могут нажать на транспарант ниже.

Читать далее
Всего голосов 28: ↑24 и ↓4+20
Комментарии36

Санком. Неизвестный производитель оптических домофонов

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров7.9K
Приветствую всех!

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



Итак, сегодня поговорим об оптических считывателях и домофонах ранее неизвестной мне фирмы. Узнаем, как работали их ключи и разберёмся, как всё это запустить. Традиционно будет много интересного.
Читать дальше →
Всего голосов 45: ↑45 и ↓0+45
Комментарии2

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

Зачем Программисту Микроконтроллеров Математическая Статистика? (или так ли хороши UWB трансиверы?)

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

Настал день, когда мне для работы программистом микроконтроллеров наконец пригодилась математическая статистика из ВУЗ(овского) курса по теории вероятностей.

Есть очень интересная технология для автоматического радиоизмерения расстояния. Технология основана на UWB трансиверах. Позволяет измерять время пролёта радиоволны.

В этом тексте написал как я исследовал измерения расстояния, при помощи ASICа UWB трансивера DWM1000.

Читать далее
Всего голосов 12: ↑12 и ↓0+12
Комментарии23

Как «озолотиться» на собственном образовательном продукте

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

В этой статье я расскажу, как прошел весь путь для реализации своего образовательного продукта от идеи до… полного провала. Как и многие преподаватели, я мечтал поделиться своими наработками. Кто-то выпускает учебные пособия или даже целые книги. Но мне хотелось запустить учебный стенд. Что из этого получилось, вы можете прочитать под катом.

Чтобы не создавать интриг, сразу скажу, что озолотиться конечно же не получилось! Но было чертовски интересно пройти весь этот путь.
Читать дальше →
Всего голосов 61: ↑61 и ↓0+61
Комментарии27

Управление сервоприводами, часть 4. Управление «сервами» по I2C с Repka Pi через серво-драйвер Robointellect Controller

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

В предыдущих статьях нашей серии про сервоприводы мы рассказывали, как они устроены, как можно управлять сервоприводами с помощью широтно-импульсной модуляции ШИМ (Pulse Width Modulation,  PWM) с помощью контроллеров Robointellect Controller 001, а также напрямую через GPIO через генератор ШИМ на плате микрокомпьютера Repka Pi.

В четвертой статье серии статей про сервоприводы мы расскажем, как управлять сервоприводами с помощью контроллеров Robointellect Controller 001 или PCA9685, подключенных к Repka Pi через шину I2C.

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии1

Продолжаем глубже изучать передачу данных по сетям GSM через GPRS с помощью SIM868 и Repka Pi — про AT-команды

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

 

В предыдущей статье мы рассказали, как с помощью модуля GSM/GPRS/GNSS Bluetooth HAT, созданного на базе SIM868, библиотек SIM800L, RoverConnect и Telemetry можно обмениваться данными между микрокомпьютером Repka Pi с JSON-сервисом, доступным в интернете.

Мы привели исходные коды программ на Python, которые можно использовать для такого обмена. Однако за пределами изложения остался рассказ о том, как происходит работа с модулем на уровне AT-команд.

Такая информация нужна для более глубокого понимания принципов работы SIM800 и SIM868 при передаче данных через GPRS (General Packet Radio Service). Она может пригодиться при отладке программ передачи данных, составленных с использованием других библиотек и языков программирования. Также же сведения об AT-командах GPRS потребуются, если вы собираетесь создать свою собственную библиотеку передачи данных в сетях мобильных операторов.

Собираем стенд для работы

Установка и запуск терминала minicom

Документация по AT-командам модуля

Получаем информацию с помощью AT-команд

Инициализация модуля SIM868

Обмен данными через GPRS

Полезные ссылки

Итоги

Читать далее
Всего голосов 16: ↑14 и ↓2+12
Комментарии10

Реализация многофункционального терминального интерфейса для МК AVR

Время на прочтение29 мин
Количество просмотров3.8K

В данной статье речь пойдёт о разработке многофункционального терминального интерфейса для МК (на примере МК Atmega32 и терминала HyperTerminal. Многофункциональность в моём случае будет заключаться в обработке управляющих символов и управляющих последовательностей с целью реализации не только командного функционала, но и истории вводимых команд. Я постараюсь максимально приблизить свой интерфейс к интерфейсу командной строки Windows. Большая часть статьи - подробный комментарий программного кода, который может быть доступен даже начинающим в программировании. Никакого ООП нет - только элементы языка Си.

Читать сначала
Всего голосов 9: ↑9 и ↓0+9
Комментарии5

Осваиваем чип с Arm Cortex-M85

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

Фирма Renesas вдруг стала раздавать бесплатно платы EK-RA8M1 со своим новейшим чипом R7FA8M1AHECBD. А чип этот является первым в индустрии коммерческим микроконтроллером с ядром Arm® Cortex®-M85. Работает ядро на 480 МГц, снабжено технологией M-Profile Vector Extension (MVE) под названием Helium™ и ускоряет работу AI в малых системах в 4 раза. Ну и другие DSP алгоритмы там тоже ускоряются примерно на столько же. По сути чип стал передовым DSP, но это не всё.

Читать далее
Всего голосов 12: ↑12 и ↓0+12
Комментарии11

Озвучка самокатов, часть 2: MIDI через пьезоизлучатель

Время на прочтение15 мин
Количество просмотров2K

Всем привет! В первой части статьи мы рассказали о том, как на наших IoT модулях реализована схема управления пьезоэлектрическим излучателем (баззером) с регулировкой частоты и амплитуды; как эта схема управляется микроконтроллером программно, воспроизводя простые звуки и мелодии. Такая реализация показала себя надежной в эксплуатации, нетребовательной к ресурсам и на начальном этапе решала задачу базовой озвучки самоката. Шло время, появлялись новые сценарии взаимодействия с пользователями и нам самим хотелось чего-то большего — например, хорошо было бы сделать звучание самоката более “фирменным”, узнаваемым и приятным на слух. Так мы и задумались о “звуковом рефакторинге” — об этом и расскажем вам в этой статье.

Слушать далее
Всего голосов 8: ↑7 и ↓1+6
Комментарии4

Вклад авторов