Рубрика «программирование микроконтроллеров» - 12

В этой статья я бы хотел перечислить и обсудить некоторые общие системные поведенческие атрибуты хорошего firmware (прошивки) для микроконтроллерных проектов, которые не зависят от конкретного приложения или проекта. Некоторые атрибуты могут показаться очевидными однако в 9 из 10 российских embedded компаний нет ни одного из перечисленных атрибутов.

1. Сторожевой таймер

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

2. Загрузчик

Читать полностью »

KC868-Uair: пролетая над гнездом кукушки. Часть 1. Гнездо - 1

Сегодня мы немного отвлечёмся от исследования серьёзных контроллеров серии KC868 (KC868-A4, KC868-A8) и займёмся совершенно несерьёзным (на первый взгляд) контроллером Kincony KC868-Uair. KC868-Uair — это эдакая «неведома зверушка с лампочками», с которой непонятно что вообще нужно делать — то ли это погодная станция, то ли устройство инфракрасного (IR) управления бытовой аппаратурой, то ли хаб умного дома, то ли ещё что.

В результате разбора и хирургического исследования KC868-Uair с применением паяльника выяснилось, что это больше всего напоминает универсальную беспроводную (Wi-Fi, Bluetooth) базу для «лёгкой» домашней автоматизации с возможностью добавления поддержки nRF24, LoRa и прочих беспроводных интерфейсов, что делает устройство крайне интересным и потенциально весьма полезным в домашнем хозяйстве.

А симпатичный внешний вид, наличие полноцветной индикации событий, встроенной пьезоэлектрической пищалки, поддержки беспроводной связи 433 МГц, возможности подключения дисплея и наличие свободного места в корпусе для добавления собственных плат-расширений делает KC868-Uair устройством мимо которого мы, как креативные гики, никак не можем пройти.
Читать полностью »

Это моя шпаргалка по пересечению тактового домена, синхронизации для устранения метастабильности, кодам Грея, обратной связью и связанным вопросам
Это моя шпаргалка по пересечению тактового домена, синхронизации для устранения метастабильности, кодам Грея, обратной связью и связанным вопросам
Читать полностью »

image
USB на регистрах: STM32L1 / STM32F1
USB на регистрах: bulk endpoint на примере Mass Storage

Уже довольно давно я пытался разобраться, как же устроена классическая файловая система FAT и вот наконец критическая масса обрывочных сведений в моей голове привела к качественному скачку и закономерному воплю "а что, все действительно настолько просто?!". Нет, разумеется, в FAT полно причудливых костылей, наросших за время ее эволюции, но сама идея и правда проста. Настолько, чтобы реализовать ее эмуляцию на контроллерах вроде stm32f103, stm32l151 в достаточном для ряда задач объеме. То есть наше устройство будет прикидываться флешкой смешного объема, запись и чтение которой будут не приводить к перезаписи памяти, а обрабатываться исключительно кодом.

Читать полностью »

Я всей душой люблю малоизвестных производителей. Зачастую их продукты имеют фичи, недоступные у их более именитых конкурентов, по очень интересной цене (однажды меня очень выручило наличие встроенной в SoC полуамперной зарядки для аккумулятора и нескольких LDO, способных запитать всю периферию). Кроме того, сроки и условия поставки какого-нибудь Nanjing Qinheng MicroelectronicsЧитать полностью »

Доброго всем дня!

Читать полностью »

Kincony KC868-A4: ультимативный гайд. Часть 3: управление контроллером через Telegram-бота - 1

В предыдущей статье цикла о Kincony KC868-A4 было рассмотрено «атомарное» программирование компонентов этого контроллера, в этой статье будем разбирать более продвинутый пример работы с KC868-A4 — управление вашей (IoT) системой через интернет.

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

Ну и, конечно, когда вы добавите к основной функциональности вашего контроллера ещё и удалённое управление, то возможности вашей системы выйдут на совсем другой, более высокий, уровень.
Читать полностью »

Однаждый мне рассказали о самодельном девайсе под названием Yayagram (по какой-то причине описанном создателем в Твиттере, а вот тут по-русски). Я на него посмотрел и решил сделать свой, с преферансом и поэтессами аркадными кнопками и старым термопринтером.

Так родился БабаГрам, чёрный ящик, открывающий моей бабушке общение в Телеграме.

Что такое Бабаграм

Читать полностью »

Разработка hexapod с нуля (часть 12) — новое ядро передвижения - 1


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

Также в гексаподе появилась стабилизация тела относительно горизонта на базе MPU6050. Прошивка сама компенсирует углы наклона во время движения — в будущем это очень пригодится, когда я буду реализовывать адаптацию к неровностям. В этом направлении уже ведутся разработки (датчики касания на базе тензорезисторов), настало время для следующего шага.

В этой статье расскажу, насколько простая может быть математика ядра передвижения гексапода и какие красивые движения можно выполнять с помощью неё. Разработка продолжается, и я переписал около 80% математики. Это позволило выкинуть явное указание координат точек назначения во время движения — траектории теперь строятся в реальном времени. Все технические подробности в статье. Как всегда, вас ждёт фото и видео.Читать полностью »

Сейчас в продаже доступно много разных Ч/Б дисплеев, в том числе и OLED. Для того, чтобы получить красивое черно-белое изображение для этих дисплеев, с глубиной цвета всего 1 бит, но в тоже время с имитацией полутонов, как на представленной ниже картинке — нужно использовать преобразование по алгоритму «Floyd-Steinberg». Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js