Рудирон — разработка ПО на языке С++ и дополнительные программные инструментальные средства

Установка и использование программных средств для программирования и взаимодействия с контроллером «Рудирон».
Учимся программировать микроконтроллеры
Установка и использование программных средств для программирования и взаимодействия с контроллером «Рудирон».
Однажды я узнал про существование микроконтроллеров ESP32, обладающих встроенными Bluetooth и Wi-Fi модулями. Тогда я начал всем рассказывать, какая крутая железка, пока мне ее наконец-то не подарили.
На момент создания материала, такой микроконтроллер можно купить в РФ с доставкой менее, чем за 1000 рублей. Ну не чудо ли?
Получив железку в руки, я начал думать, зачем же она мне. В первую очередь пришла мысль реализовать глушилку Bluetooth-колонки, но об этом как-нибудь позже.
Тут я вспомнил времена учебы в институте, где мы имитировали HID-устройство с помощью микроконтроллеров. Поэтому, задался вопросом, можно ли то же самое сделать для Bluetooth-клавиатуры. Оказывается, таких проектов довольно много, и я решил один из них повторить.
На GitHub существует прекрасная библиотека, позволяющая реализовать мою идею.
В этом тексте я собрал самые тупые правила и рекомендации оформления исходных кодов, которые только попадались мне на работе в разных реальных компаниях.
Вот буквально несколько настоящих примеров из жизни. Парад нелепости.
Как сказал мой коллега: "Формализм при ревью уже перешёл все рамки здравого смысла."
В программировании микроконтроллеров на Си часто приходится писать драйверы для умных и навороченных ASIC чипов с управлением по I2C/SPI/MDIO интерфейсам.
Обычно перед запуском эти чипы надо правильным образом сконфигурировать.
Такие чипы всегда оперируют с реальными физическими величинами. Одновременно с этим ячейки памяти этих ASIC чипов - дискретные, двоичные. Поэтому все производители микросхем кодируют эти переменные бинарными кодами разной разрядности.
В этом тексте я показал как можно делать интерпретаторы этих величин.
Как известно, в широкой продаже не существует компьютеров с интерфейсов CAN. Зато во всех настольных компьютерах и LapTop(ах) есть USB. В связи с этим для отладки оборудования с CAN нужны всяческие переходники USB-CAN.
В этом тексте я покажу как можно проверить это изделие.
Если у вас есть эмбедед(embedded) проект и он написан на С или на С++ вы можете попробовать запустить этот проект в режиме симуляции на десктопном ПК и даже под Windows, по крайней мере у нас это получилось.
Такая симуляция превращает десктопный ПК в специальное устройство при этом не отнимая у вашего ПК десктопных возможностей-функций, например для отладки вашего встроенного ПО, которое исполняется на ПК в режиме симуляции. Ну а возможности тестирования и диагностики вашего эмбедед проекта в режиме симуляции практически не ограничены.
Дисклеймер: поскольку проект все еще в работе и принадлежит компании мне приходится избегать некоторых специальных технических терминов и подменять их более общеупотребительными, чтобы не создать привязку к бренду или к имени компании. Также я излагаю только общую идею, которая достаточно сложна, чтобы кто-то мог эту идею легко использовать, хотя в принципе это возможно. Нам интересно есть ли у кого-то опыт в обозначенном техническом направлении и любой обмен таким опытом.
Разбирался тут на досуге с (относительно) новыми МК фирмы WCH с ядром RISCV (CH32V307FBP6) с целью осветить данный прибор, скачал рекомендованную среду разработки (mounriver) и на первом же примере наткнулся на совершенно неожиданную вещь. Пример совершенно классический (нет, не мигание светодиодом и даже не приветствие миру) и посвящен использованию функции printf, вот он:
USART_Printf_Init(115200);
printf("SystemClk:%d\r\n"),SystemCoreClоck);
printf("This is printf example\r\n");
Пнп: Вы (программисты сайта) думайте, что хотите, но я считаю, что редактор у Вас ("вот это слово еще ...") омерзительный.
В программировании микроконтроллеров регулярно приходится занимаются починкой bug(ов).
При этом все bug(и) уникальные. Поиск причины каждой конкретной осечки это скорее искусство. Починка программ сродни работы детектива.
Есть ли универсальные приемы того как искать причину программных ошибок?
Считаю, что да. Подробности в тексте...
Продолжаем цикл статей о системе визуального программирования ShIotiny5.
Очень много вопросов задают по поводу того, как правильно «прошить» ESP-модуль прошивкой ShIoTiny5 и как его настроить.Это не удивительно, так как параметров конфигурации немало. Да и разных ESP-модулей — тоже.
Действительно, есть уже несколько статей по программированию устройств ShIoTiny5, но нет ни одной, где описаны способы установки ПО - программного обеспечения - ShIotiny5 на ESP-модуль и по его системным настройкам.
Также есть вопросы по поводу того, почему система ShIoTiny5 такая какая есть, а не «вот такая», какая она рисуется в фантазиях некоторых читателей.
Попробую ответить на эти вопросы.
В этой статье нет ничего о программировании ShIotiny5.
Она целиком посвящена прошивке программного обеспечения и его конфигурации. И немного - концепциям и идеям.
В этом тексте я написал инструкцию того как настроить логический анализатор Saleae производить автоматический синтаксический разбор трафика на шине I2S.
Начнем знакомство с подключаемой библиотекой RepkaPi.GPIO, данная библиотека написана на Python 3 и для управления GPIO использует методы, реализованные через SysFS.
Данная статья создана с ознакомительной целью и служит рекомендацией по работе с Raspberry Pi 4 Model B ("Ягода"), WEMOS WiFi & Bluetooth ESP32 ("ESP32") при настройки Serial Peripheral Interface (SPI).
LCD-дисплеи (Liquid Crystal Displays) используют для отображения состояния или параметров в различных приборах.
LCD1602 – это 16-выводное устройство, имеющее 8 выводов для передачи данных (D0-D7) и 3 вывода управления (RS, RW, EN). Остальные 5 выводов предназначены для питания и подсветки ЖК-дисплея. Цифры «1602» указывают на формат выводимой (отображаемой) информации: 16x02 символов (рисунок 1).
Выводы управления помогают нам настроить LCD-дисплей в командном режиме или режиме передачи данных. Они также помогают настроить режим чтения или записи, а также время чтения или записи.
LCD-дисплей 16x2 можно использовать в 4-битном или 8-битном режиме в зависимости от технических требований. Чтобы использовать его, нам необходимо отправить определенные команды на LCD-дисплей в командном режиме, и как только ЖК-дисплей будет настроен в соответствии с нашими требованиями, мы сможем отправить необходимые данные в режиме передачи данных.
Настал третий за 12 лет случай, когда в профессии программист-микроконтроллеров понадобилось вспомнить школьную математику. В этом тексте я представил перевод AppNote(а) "The mathematics of two-way ranging". Также добавил свои комментарии в те места, которые неочевидны при первом прочтении.
Тема нужна для определения расстояния между двумя UWB радио трансиверами, которые могут определять моменты времени прихода и отправки радиоволны. Такое умеют делать UWB трансиверы, например чип DW1000 и DW3000.
Рынок интернета вещей растет значительными темпами и разработка кода для микроконтроллеров важна для любых проектов, где подразумевается наличие какого‑либо вспомогательного оборудования или носимого устройства. Для разработки программного обеспечения под встраиваемые микроконтроллеры сейчас (кроме C/C++) можно использовать многие другие технологии (например, TinyGo, Dart/Flutter, Rust), так же как и Python в наборе библиотек MicroPython, который работает как со своей платой (pyboard), так и с другими микроконтроллерами (например платами на процессорах ESP8266 или STM32). В этой статье мы рассмотрим общие подходы к разработке и тестированию программного обеспечения для микроконтроллеров с использованием Python.
При разработке прошивок микроконтроллеров приходится отлаживаться на прототипах. Прототип это просто набор отладочных плат соединенных перемычками.
Далее следует инструкция как сделать качественное основание для прототипа.
Решаем задачу непрерывной передачи данных от встраиваемой системы c Azure RTOS на персональный компьютер. Рассмотрим проблему с точки зрения наиболее эффективных и доступных способов приёма телеметрии. Сопроводим все открытым демонстрационным проектом.
В тексте написано кокой путь проходят сорцы с момента написания до исполнения на микроконтроллере. Также про то как настроить ToolChain из бесплатных утилит. Показано на что стоит обратить внимание при запуске первого проекта на Cortex-M чипах. Этот текст, в сущности, пояснение того, что происходит под капотом большинства IDE.