Обновить
171.01

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

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

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

STM32 Universal Boot Loader и стирание секторов памяти

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

Привет всем! Меня зовут Евгений и я работаю программистом микроконтроллеров в компании Бастион г. Ростов-на-Дону.

В своих проектах мы очень часто используем STM32F030 как сопроцессор отвечающий за реалтайм задачи (АЦП, обработка кнопок, управление дисплеем), а вот бизнесс логику выносим на контроллеры помощнее. В процесе работы естественно стал вопрос с выпуске обновлений для устройств и о том как обновлять ПО и нашем "сопроцессоре" (фига себе сопроцессор конечно, но вот такие термины). Так как с основным процессором мы связаны по UART, то сюда как нельзя лучше подошел UniversalBootLoader (UBL), который уже есть во всех процессорах STM.

Рассказ о том как прошивать сами контроллеры через UBL уже есть на сайтах многих эмбедеров (easyelectronics.ru и istarik.ru разжевывали эту тему не раз), но у меня появился отличный сайдквест.

Сейчас совсем немного контекста, для понимания с чем я столкнулся.

Для стирания памяти через UBL в STM32 есть алгоритм который представлен ниже

Читать далее

Простой измеритель ёмкости аккумуляторов своими руками

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

Ранее я описывал процесс проектирование корпуса для электронной самоделки. В этом посте будет продолжение проекта в виде описания его электронной начинки.

Изначально этот проект задумывался как улучшенная версия китайского модуля ZB2L3, но в по ходу дела оброс функциями вроде связи с компьютером и поддержкой тока до 20 А. В итоге я сейчас не уверен стоит ли его называть измерителем ёмкости, т.к. это только одна из его функций:

измерение ёмкости аккумуляторов

заряд и разряд аккумуляторов

измерение характеристик источников питания

Читать далее

Образовательный ROS2-робот: аппаратная архитектура и выбор компонентов

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

Наша цель — придумать ROS2-робота для старших классов школ и университетов. Чтобы он помогал изучать современные технологии при минимальной стоимости компонентов и простоте сборки. А также чтобы был потенциал модернизации для участия в соревнованиях. Расскажу вам о текущем состоянии этого проекта.

Собрать мобильного робота

Патчим OpenOCD для поддержки чипа NOR Flash

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

Disclaimer: "чукча не писатель, чукча читатель"

UseCase 0: надоело переподключать плату с RP2040 и захотелось загружать прошивку из IDE по кнопке "Run"
UseCase 1: хочется пошаговой отладки, а не принтами.

Установил на одну из плат DebugProbe и попробовал подключиться.

Оказалось не все так просто - OpenOCD плевался на неизвестное устройство:

окунуться

Индикатор искусственного горизонта на базе esp32

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

Для получения данных о пространственном положении самолета в полете, а также для информирование о высоте и скоростях разрабатываются пилотажные дисплеи.

Читать далее

Machine learning на ESP32

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

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

В этом примере используются измерения акселерометра MPU 6050 и машинное обучение (ML) для распознавания трех жестов рукой с помощью ESP32. Данные из сенсора распознаются на микроконтроллере и результат выводится в консоль в виде названия жеста и вероятности результата. Модель ML использует TensorFlow и Keras и обучается на выборке данных, представляющей три различных жеста: "circle" (окружность), "cross" (пересечение) и "pad" (поступательное движение).

Разработка проекта начнется с получения данных из акселерометра для построения набора жестов. Затем мы проектируем полносвязную нейронную сеть для распознавания жестов, и подключим модель в проекте ESP32.

В следующей части рассмотрим как настроить Bluetooth LE (BLE) на ESP32 и Android устройстве. Передадим квантированный набор ускорений сенсора по BLE. Настроим Модель ML для распознания жестов на Android.

Читать далее

Работа с RISC-V контроллерами на примере GD32VF103 и CH32V303. Часть 6. Дробные числа

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

Макетная плата GD32VF103


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

Читать дальше →

Руководство по началу работы с отладочной платой MIK32-DIP (K1948ВК018, Амур) в ОС GNU/Linux

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

MIK32 АМУР или K1948ВК018 является российским микроконтроллером (МК) с ядром на открытой архитектуре RISC‑V. По какой‑то причине производитель МК ГК «Микрон» предлагает в качестве средства разработки,‑ средство на базе Eclipse, но исключительно под Windows, что далеко не всех устраивает. А также, в руководстве по эксплуатации на данный МК, предлагается использовать VS Code, и это конечно более универсальный (кроссплатформеный) вариант, но предполагает использование VS Code совместно с плагином PlatformIO, что опять же устраивает далеко не всех. Поэтому я рассмотрю в данном руководстве старт работы с отладочной платой MIK32-DIP в ОС GNU/Linux в IDE Eclipse.

Чтобы начать работу вам понадобятся:

Читать далее

Зеркала вместо заводов: как город купил себе солнце и немножко разбогател

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

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

На Хабре была подробная статья на эту тему и совершенно эпичные комментарии под ней. А я долго не мог взять в толк, зачем вообще это было нужно (ну, кроме освоения грантов). Пока не прочитал про город Рьюкан, где почти никогда бывает солнца и где освещают кусок центральной площади с помощью зеркал, поворачивающихся вслед за солнцем. История показалась мне достойной того, чтобы рассказать ее отдельно.

да будет свет!

Использование лидара от робота-пылесоса для системы предотвращения столкновений в автономных роботах

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

Как прочитать данные с недорогого лидара от робота-пылесоса на ESP32, визуализировать показания на кольце из 12 светодиодов и даже интегрировать решение в робота для участия в соревнованиях.

Читать далее

«Лучшие» Образцы Си-Кода

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

Я долгое время негодовал по поводу того, что часто приходится копаться в плохо оформленном коде .

Но теперь я решил сделать рефрейминг. Отныне я коллекционирую такие куски кода! Да. Теперь каждая причудливая функция приносит мне искреннюю радость так, как пополняет ценнейшую коллекцию того, как не надо делать.

Читать далее

Управляем питанием компьютера кнопкой вызова от старого лифта

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров20K
Приветствую всех!
Однажды увидел я на просторах ролик, как кто-то подключил лифтовой вызывной пост вместо обычной кнопки включения компьютера. И вот как-то раз я снова вспомнил про это, отчего мне сразу захотелось сделать что-то подобное. Но, раз уж делать, то куда технологичнее. Сделаем такую кнопку, не требующую вскрытия корпуса и подключения напрямую к контактам на материнке. Можно ли это реализовать? Как оказалось, это несколько сложнее, чем я думал…



Итак, в сегодняшней статье сделаем аналог той штуки, который можно будет подключить к любому компьютеру. Заодно разберёмся, как это будет работать, поговорим про USB HID и все его нюансы, посмотрим на начинку лифтовых кнопок разных лет и наконец добавим на рабочий стол артефакт из подъезда двухтысячных.
Читать дальше →

Автоматизированный электропривод ленточного конвейера: Разработка системы управления с возможностью удаленного контроля

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

Проект автоматизированного электропривода экспериментального ленточного конвейера, разработанный на кафедре электроэнергетики и автоматики Белгородского государственного технологического университета имени В.Г. Шухова.

Читать далее

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

BLE показометр

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

Здравствуй Хабр! Случилось так, что совпали три события. Коллега подарил красивый винтажный миллиамперметр, по почте пришла платка с CH592F на борту и возникло желание изучать BLE. А изучение интересно совместно с решением какой-либо прикладной задачи. В статье хочу поделиться опытом создания индикатора на основе микроконтроллера CH592. Рассмотрим что такое TMOS, настроим инструменты для создания прошивки. Напишем программу для микроконтроллера. Она будет читать характеристику и управлять стрелкой миллиамперметра. Создадим "верхнее" программное обеспечение для компьютера. Оно будет принимать загрузку процессора и отправлять это значение на индикатор.

Читать далее

Зачем на печатных платах используют медные заливки?

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров26K
В начале 1980-х типичная печатная плата 8-битного домашнего компьютера выглядела примерно так:


Фрагмент основной платы Amstrad CPC 464.

К началу 2010-х та же технология имела следующий вид компоновки:


Снимок Arduino Uno R3 из рекламных материалов.

Кроме повышенной миниатюризации самым поразительным изменением стало использование медных заливок (copper pour), то есть сгенерированных компьютером зон, занимающих пустое пространство между дорожками печатной платы.

Почему мы начали их создавать?
Читать дальше →

В Мексике студенты отличаются дисциплиной, а у спецназа большие автоматы

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

Провел семинар по SystemVerilog, Gowin FPGA и Tiny Tapeout в городе Тихуана, Мексика. Главное впечатление: я в первый раз в жизни вижу студентов, которые приходят в 8 утра, делают упражнения по верилогу до 6 вечера, с перерывом на полуторачасовый обед, и при этом все 20 студентов выполнили все вариации упражнений которые я от них хотел.

Читать далее

Собираем прошивку NapiLinux и Raspberry Pi OS для микрокомпьютера с помощью Yocto

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

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

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

Компании, поставляющие устройства на базе микрокомпьютеров, могут комплектовать их ОС в необходимой конфигурации, а дистрибутив такой ОС они формируют с помощью Yocto.

В этой статье я расскажу о создании образов ОС с открытым кодом Napi Linux для модуля сбора данных от датчиков Front Control Compact, микрокомпьютеров  roc-pc-rk3328 и rockpro64-rk3399, а также ОС для встраиваемых систем на базе Raspberry Pi.

Пока Napi Linux работает на ARM, но готовится сборка и для платформы x86.

Читать далее

Получение SMS через SMPP Exolve на ESP8266

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

Всем привет! У платформы МТС Exolve есть сообщество, которое часто делится полезными гайдами от прокачки серверов до создания своих приложений. Наиболее интересные и подробные продолжаем размещать в нашем хабе.

Это гайд о том, как настроить и реализовать приём SMS-сообщений на ESP8266 через платформу Exolve и SMPP.

Читать далее

Эксперименты с самодельным компьютером воздушных данных

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

В авиации для измерения скорости движения летательного аппарата в воздушной среде используется трубка Пито и электронный вычислитель или air data computer.

Читать далее

Teensy 4: Arduino на скорости 600 МГц (почувствуй себя властелином вселенной)

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


Последнее время мне стали часто попадаться упоминания контроллеров Teensy, причём в самых интересных и мощных проектах. Какое-то время я не обращал на это внимание, но потом заинтересовался этой темой и чем дальше я в неё погружался, тем больше впечатлялся.

Оказывается, последняя версия Teensy 4 сделана на основе Cortex M7 и работает на частоте 600 МГц, причём ядро там довольно продвинутое и позволяет исполнять две инструкции за такт, использует предсказание ветвлений и аппаратную обработку 64-битных чисел с плавающей точкой, а также много чего ещё, в том числе имеет на борту много RAM, Flash и PSRAM памяти и т. д.

В общем, контроллер очень продвинутый и позволяет создавать проекты в области обработки звука, управления массивами светодиодов, вывода видео на LED экраны, создания музыкальных синтезаторов и т. д. и т. п.

В результате я пришёл к выводу, что с этим стоит познакомиться поближе и на Али был заказан комплект Teensy 4.1 с Audio и Ethernet расширениями, а затем я с большим удовольствием поэкспериментировал с этим железом. Ну а далее я предлагаю свой отчёт о проведённых экспериментах, а также поделюсь своими впечатлениями о Teensy 4.1.
Читать дальше →

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