Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Транслируем искусство через робототехнику

Разработка робототехники *Прототипирование *Читальный зал Робототехника DIY или Сделай сам
Из песочницы

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

Читать далее
Всего голосов 9: ↑9 и ↓0 +9
Просмотры 2.7K
Комментарии 4

STM32 LTDC и 7-дюймовый дисплей: часть 1

Программирование микроконтроллеров *
Из песочницы

Речь пойдёт подключении дисплея AT070TN94 с параллельным интерфейсом к контроллеру STM32H743, начиная от выбора электронных компонентов, заканчивая настройкой блока LTDC. И хотя в сети достаточно много информации по данной теме, при создании своего устройства у меня периодически возникали те или иные вопросы, ответов на которых найти не удавалось. Пишу в первую очередь для новичков, а профи приглашаю почитать ради советов и аргументированной критики (первая статья как-никак). Приступим.

Заинтересовало
Всего голосов 35: ↑34 и ↓1 +33
Просмотры 12K
Комментарии 16

USB на регистрах: interrupt endpoint на примере HID

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


Еще более низкий уровень (avr-vusb)
USB на регистрах: STM32L1 / STM32F1
USB на регистрах: bulk endpoint на примере Mass Storage
USB на регистрах: isochronous endpoint на примере Audio device

Продолжаем разбираться с USB на контроллерах STM32L151. Как и в предыдущей части, ничего платформо-зависимого здесь не будет, зато будет USB-зависимое. Если точнее, будем рассматривать третий тип конечной точки — interrupt. И делать мы это будем на примере составного устройства «клавиатура + планшет» (ссылка на исходники).
На всякий случай предупреждаю: данная статья (как и все остальные) — скорее конспект того, что я понял, разбираясь в этой теме. Многие вещи так и остались «магией» и я буду благодарен если найдется специалист, способный объяснить их.
Читать дальше →
Всего голосов 27: ↑25 и ↓2 +23
Просмотры 4.4K
Комментарии 4

MIDI браслет для управления синтезаторами (в основном — для органично звучащего вибрато)

Программирование микроконтроллеров *Разработка под Arduino *3D-принтеры DIY или Сделай сам
Из песочницы

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

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

Читать далее
Всего голосов 30: ↑30 и ↓0 +30
Просмотры 3.4K
Комментарии 14

Умные дворники: автоматизируем автомобиль

Блог компании Тензор Схемотехника *DIY или Сделай сам Электроника для начинающих

Рассказ об опыте создания "с нуля", от идеи до рабочего устройства, простой автоматизации для своего автомобиля. Используя микроконтроллер STM32 и CAN-шину автомобиля сделаем жизнь автолюбителя немного проще и приятнее.

Читать далее
Всего голосов 68: ↑66 и ↓2 +64
Просмотры 22K
Комментарии 160

CAT-интерфейс для трансивера «Радио-76»

Блог компании RUVDS.com Разработка систем связи *Программирование микроконтроллеров *DIY или Сделай сам Электроника для начинающих
Tutorial

В предыдущей публикации о трансивере «Радио-76» упоминалось о синтезаторе частоты с CAT-интерфейсом. В этой статье тема CAT-интерфейса будет раскрыта подробней.

CAT-интерфейс (Computer Aided Transceiver) предназначен для управления частотой, видами модуляции и другими функциями радиостанции с помощью компьютера.

В сети есть множество описаний радиолюбительских синтезаторов на базе Si5351, но в массе своей CAT они не поддерживают. Данная публикация этот пробел должна восполнить.
Читать дальше →
Всего голосов 59: ↑58 и ↓1 +57
Просмотры 6.2K
Комментарии 10

Отладочный вывод на микроконтроллерах: как Concepts и Ranges отправили мой printf на покой

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

Здравствуйте! Меня зовут Александр и я работаю программистом микроконтроллеров.

Начиная на работе новый проект, я привычно набрасывал в project tree исходники всяческих полезных утилит. И на хедере app_debug.h несколько подзавис.

Дело в том, что в декабре прошлого года у GNU Arm Embedded Toolchain вышел релиз 10-2020-q4-major, включающий все GCC 10.2 features, а значит и поддержку Concepts, Ranges, Coroutines вкупе с другими, менее "громкими" новинками С++20.

Воодушевленное новым стандартом воображение рисовало мой будущий С++ код ультрасовременным и лаконично-поэтичным. И старый добрый printf("Debug message\n") в это благостное видение не очень-то вписывался.

Хотелось бескомпромиссной плюсовой функциональности и стандартных удобств!

Например, таких:
Всего голосов 26: ↑23 и ↓3 +20
Просмотры 5.2K
Комментарии 15

Новые цены на микроконтроллеры STM32 из свежих поставок

Блог компании Timeweb Программирование микроконтроллеров *Производство и разработка электроники *Компьютерное железо


Наверное уже многим надоело, что все кому не лень, пишут про очередной кризис в производстве микросхем, повышение отпускных цен на радиодетали и микроэлектронику или невозможность их приобрести вследствие нарушившихся цепочек поставок из-за пандемии COVID-19, майнинговой лихорадки или продолжающейся торговой войны США и Китая.

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

И вот теперь эту напасть я увидел воочию и сполна прочувстовал на себе. И если сказать, что был удивлен и шокирован, то это не сказать вообще ничего. Я просто не поверил своим глазам, когда увидел стоимость копеечного микроконтроллера STM32F105 из новой поставки.
Читать дальше →
Всего голосов 34: ↑26 и ↓8 +18
Просмотры 18K
Комментарии 68

Предельная скорость USB на STM32F103, чем она обусловлена?

Системное программирование *Программирование микроконтроллеров *Компьютерное железо
У данной статьи тяжёлая история. Мне надо было сделать USB-устройства, не выполняющие никакой функции, но работающие на максимальной скорости. Это были бы эталоны для проверки некоторых вещей. HS-устройство я сделал на базе ПЛИС и ULPI, загрузив туда «прошивку» на базе проекта Daisho. Для FS-устройства, разумеется, была взята «голубая пилюля». Скорость получалась смешная. Прямо скажем, черепашья скорость.



Но я же крутой, у меня теперь есть USB-анализатор (его разработка была описана в блоке из нескольких предыдущих статей). Посмотрев логи, я понял, что похоже, знаю, почему скорость невозможно поднять, даже если STM32F103 обслуживает исключительно USB и ничего больше. Даже начал писать о результатах… Но потом решил, что кому-то это будет не интересно, а кто-то скажет, что и так это знал.

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

Итак, давайте выясним, почему именно STM32F103C8T6 не может прокачать по шине USB данные на скорости 12 мегабит, заняв всю ширину предоставленного канала, и можно ли с этим что-то сделать.
Читать дальше →
Всего голосов 61: ↑59 и ↓2 +57
Просмотры 8.8K
Комментарии 73

USB на регистрах: isochronous endpoint на примере Audio device

Программирование микроконтроллеров *Схемотехника *
image<картинка с платой и наушниками>
Еще более низкий уровень (avr-vusb): habr.com/ru/post/460815
USB на регистрах: STM32L1 / STM32F1
USB на регистрах: bulk endpoint на примере Mass Storage
USB на регистрах: interrupt endpoint на примере HID

Сегодня рассмотрим последний тип конечных точек, изохронный. Он предназначен для передачи данных, критичных к времени доставки, однако не гарантирует ее успешность. Самый классический пример — аудиоустройства: колонки, микрофоны.

Как ни странно, этот тип конечной точки оказался самым мозговыносящим (и это после всего, что я успел повидать с stm'ками!). Тем не менее, сегодня мы сделаем аудиоустройство и заодно чуть-чуть допилим ядро библиотеки USB. Как обычно, исходные коды доступны:
github.com/COKPOWEHEU/usb/tree/main/4.Audio_L1
github.com/COKPOWEHEU/usb/tree/main/4.Audio_F1
Читать дальше →
Всего голосов 15: ↑14 и ↓1 +13
Просмотры 3K
Комментарии 9

Power-line communication. Часть 3 — Основные блоки устройства

Блог компании Directum Разработка систем связи *Программирование микроконтроллеров *

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

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

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Просмотры 2.6K
Комментарии 9

Stm32 + USB на шаблонах C++. Продолжение. Делаем CDC

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

Продолжаю разработку полностью шаблонной библиотеки под микроконтроллеры Stm32, в прошлой статье рассказал об успешной (почти) реализации HID устройства. Еще одним популярным классом USB является виртуальный COM-порт (VCP) из класса CDC.

Популярность объясняется тем, что обмен данными осуществляется аналогично привычному и простому последовательному протоколу UART, однако снимает необходимость установки в устройство отдельного преобразователя.

Читать далее
Всего голосов 18: ↑18 и ↓0 +18
Просмотры 5.3K
Комментарии 9

Работа с параметрами во внешнем EEPROM

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

Привет Хабр. Наконец-то у меня появилось свободное время и я могу немного поделиться своим опытом, возможно кому-то это будет полезно, и поможет в его работе, и я этому буду безусловно рад. Ну что же,....

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

И вот если вам интересен один из способов, который использую я со студентами добро пожаловать под cut

Доступ к EEPROM параметрам
Всего голосов 11: ↑9 и ↓2 +7
Просмотры 5K
Комментарии 45

Работа с параметрами в EEPROM, как не износить память

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

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

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

Особенность таких параметров заключается в том, что их нельзя писать просто так в одно и то же место EEPROM, вы просто израсходуете все циклы записи EEPROM. Например, если, необходимо писать время работы один раз в 1 минуту, то нетрудно посчитать, что с EEPROM в 1 000 000 циклов записей, вы загубите его меньше чем за 2 года. А что такое 2 года, если обычное измерительное устройство имеет время поверки 3 и даже 5 лет.

Кроме того, не все EEPROM имеют 1 000 000 циклов записей, многие дешевые EEPROM все еще производятся по старым технологиям с количеством записей 100 000. А если учесть, что 1 000 000 циклов указывается только при идеальных условиях, а скажем при высоких температурах это число может снизиться вдвое, то ваша EEPROM может оказаться самым ненадежным элементом уже в первый год работы устройства.

Продлить жизнь EEPROM
Всего голосов 11: ↑10 и ↓1 +9
Просмотры 5K
Комментарии 16

OpenRPNCalc: делаем бескомпромиссный калькулятор

Блог компании RUVDS.com Программирование микроконтроллеров *3D-принтеры DIY или Сделай сам Электроника для начинающих

Вообще-то в блогах я обычно выступаю в роли фриковатого научного сотрудника, занудным голосом вещающего про какое-нибудь измерение параметров Стандартной Модели. Но сейчас я попробую совсем другой жанр. Короче говоря, в один прекрасный день я понял, что мне не хватает «железного» научного калькулятора. Пришлось делать самому. 

Но зачем?
Всего голосов 161: ↑156 и ↓5 +151
Просмотры 18K
Комментарии 117

Benchmark OpenCV на STM32

Блог компании Embox Ненормальное программирование *Open source *Обработка изображений *Программирование микроконтроллеров *
Сегодня обработка изображений прочно вошла в нашу жизнь. Никого не удивляет распознавание лиц или дорожной разметки. Самой распространенной библиотекой для этих целей на данный момент является OpenCV. На сегодняшний день OpenCV ориентирован прежде всего на большие платформы. И хотя старшие модели современных микроконтроллеров обладают ресурсами сопоставимыми с Pentium II, запуск на них OpenCV все еще является очень редким, даже экзотическим явлением.

Какое-то время назад мы показали, что существует принципиальная возможность использовать OpenCV на STM32 (и других микроконтроллерах подобного класса). Тогда нашей целью было продемонстрировать возможность использования данной библиотеки на подобных аппаратных платформах. Поэтому, хотя мы и получили очень низкую производительность, мы не стали разбираться в ее причинах. На текущий момент мы исправили очевидные недостатки первого решения, что позволило добиться приемлемой производительности. В данной статье приведены результаты замеров производительности для различных примеров использования OpenCV на платформе STM32F7.
Всего голосов 10: ↑10 и ↓0 +10
Просмотры 2.5K
Комментарии 5

Разработка панели индикации с помощью сдвиговых регистров IN74HC595AD

C++ *Алгоритмы *Схемотехника *Софт Электроника для начинающих
Из песочницы

Часто при разработке радио-электронных устройств возникает необходимость выполнения климатических условий с повышенными требованиями, таких как предельно допустимые рабочие температуры -60…+70 ºC. И эти требования становятся проблемой для реализации цифровых панелей взаимодействия с пользователем. Рабочие температуры ЖК индидикаторов в пределах -20...+70 ºC , люминисцентных газоразрядных индикаторов -40..+70 ºC. Поэтому возникает необходимость организовывать панели взаимодействия с оператором-пользователем с помощью 7-сегментных цифровых индикаторов, одноцветных и двухцветных светодиодов. Для использования таких органов индикации необходимы схемотехнические и программные решения. Есть разные способы управления системой индикации. В данной статье хочу привести свой опыт использования и организации схемно-программной структуры проекта.

Читать далее
Всего голосов 18: ↑17 и ↓1 +16
Просмотры 4.1K
Комментарии 23

USB Mass Storage BOT чиним multi LUN у STM32

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

Попалась задача в проекте реализовать, чтобы по USB микроконтроллер прикидывался несколькими дисковыми устройствами для MicroSD, встроенной EEPROM и нескольких страничек оперативной памяти. Решил, что вполне логично, пойти по пути наименьшего сопротивления, попробовав запустить из коробки, то что ST реализовали в своей библиотеке. Работа c USB разделена у них на уровни абстракции: драйвер + MiddleWare:

В статье говорится как заставить работать USB Mass Storage multi LUN путём исправления ошибок в библиотеке Middlewares ST, а также побороть сопутствующие проблеммы. Исравлялось для stm32l4, но может быть достаточно легко адаптированно для остальных серий. Каждый LUN, по сути - независимый диск со своей таблицей разделов и адресацией. В конце статьи приводится ссылка на репозиторий с исправленной библиотекой. Также отправил Pull Request в ST - ждём официальных исправлений!

Читать далее
Всего голосов 21: ↑21 и ↓0 +21
Просмотры 3K
Комментарии 7

Разрабатываем бионический протез руки с нуля

Робототехника Биотехнологии Медгаджеты Здоровье Будущее здесь
Из песочницы

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

Читать далее
Всего голосов 12: ↑12 и ↓0 +12
Просмотры 3.5K
Комментарии 36