Pull to refresh
183
0
Andrew Kambaroff @RaJa

БПЛА, робототехника, разработка, обучение

Send message

STM32 и USB-HID — это просто

Reading time14 min
Views377K
На дворе 2014 год, а для связи микроконтроллеров с ПК самым популярным средством является обычный последовательный порт. С ним легко начать работать, он до примитивности прост в понимании — просто поток байт.
Однако все современные стандарты исключили COM порт из состава ПК и приходится использовать USB-UART переходники, чтобы получить доступ к своему проекту на МК. Не всегда он есть под рукой. Не всегда такой переходник работает стабильно из-за проблем с драйверами. Есть и другие недостатки.
Но каждый раз, когда заходит разговор о том, применять USB или последовательный порт, находится множество поклонников логической простоты UART. И у них есть на то основания. Однако, хорошо ведь иметь альтернативу?

Меня давно просили рассказать как организовать пакетный обмен данными между ПК и МК на примере STM32F103. Я дам готовый рабочий проект и расскажу как его адаптировать для своих нужд. А уж вы сами решите — нужно оно вам или нет.

У нас есть плата с современным недорогим микроконтроллером STM32F103C8 со встроенной аппаратной поддержкой USB, я рассказывал о ней ранее

Заставим ее работать

Дорабатываем аппаратуру Turnigy 9x

Reading time3 min
Views68K
Всем, кто интересуется радиоуправляемыми моделями, известна аппаратура Turnigy 9x. Это практически народная аппаратура РУ.
Доступная по цене, существует множество аксессуаров и альтернативных прошивок к ней. Например, вот так выглядит мой экземпляр:

В нем альтернативная прошивка — er9x, добавлена подсветка экрана, стики заменены на широкие, сзади добавлена откидная подставка, в батарейный отсек выведен кабель для прошивки и редактирования настроек с ПК, питание от 2S LiIon аккумулятора.
И все бы хорошо в этой аппаратуре, она ведь модульная. Можно поставить любой модуль передатчика JR стандарта. А их существует море — почти на любой кошелек и задачи. Однако, есть два варианта комплектации — с родным радиомодулем Turnigy 9x и вообще без модуля.
Родной модуль не имеет своей антенны и подключен к верхней антенне на корпусе передатчика неразъемным кабелем так, что отсоединить модуль нельзя и заменить его можно только откусив антенный кабель:

Вот это мы и исправим

Дорабатываем зарядник Turnigy Accucel 6

Reading time4 min
Views140K
Многим знакомо универсальное зарядное устройство iMax B6 и его клона Turnigy Accucel 6.

Оно умеет заряжать
  • Литий-полимерный LiPo и литий-ионные LiIon аккумуляторы
  • Никель-кадмиевые NiCd, столь любимые производителями электродрелей
  • Никель-металлогидридные Ni-Mh, идущие в комплекте с недорогими радиуправляемыми моделями
  • Свинцовые Pb, которые можно найти в автомобиле, мото, UPS и много где еще.
Стоит недорого, принимает питание 11-17В от БП или автомобильного аккумулятора, позволяя заряжать прямо в поле.
Но это еще не все. Зарядник можно подключить к компу и получить наглядные графики зарядки/раздрядки аккумуляторов, наглядно оценив на графике, в каком диапазоне напряжений сосредоточена основная часть заряда, как аккумулятор реагирует на разные зарядные и разрядные токи, насколько проседает напряжение под нагрузкой и много чего еще интересного.
Вот только с завода эта зарядка уже пару лет идет без такой возможности. Производитель пожадничал и не поставил пару микросхем и копеечных элементов, а производитель iMax B6 вообще шнурок и софт продает отдельно по цене сопоставимой с самой зарядкой.
Будем исправлять

Em::Blocks 1.20

Reading time2 min
Views7.8K
Вышла Em::Blocks 1.20, в которой довольно много вкусностей:
  • Semihosting as library option for EmBlocks Bare-metal ARM
  • Semihosting checkbox in debug interfaces JLink and STlink
  • Live data implemented on memory watch and debugger variable tooltip.
  • New STlinkGDB server with live data and semihosting support
  • Syntax highlight on GNU linker scripts
  • Yagarto toolchain replaced by Generic GCC (Yagarto project is cancelled)
  • C++ library linker option and C++ compiler options added
  • Make file tool entry is replaced by CPP tool entry.
  • Device list updated for JLinks
  • STmicro project wizard is changed so that the debug interfaces are preconfigured at the beginning.
  • Breakpoint on-the-fly is now working
  • Run to main() is working smoothly
  • Pre-compiled headers is supported
  • File manager plugin added to the installation package
  • EnergyMicro project wizard is using the preinstalled header files from EM instead of copying all the files with the wizard.
  • Project wizard can also use ZIP archive as template storage.
  • Bug fix STmicro project wizard
  • Bug fix EnergyMicro project wizard
  • and a lot of minor fixes.

В связи с этим я сделал новую сборку с версией 1.20
Преимущества EmBlocks я описывал ранее.
Быстрый старт с EmBlocks на примере простого blink.
Читать дальше →

STM32 + EmBlocks — мигаем светодиодами

Reading time3 min
Views67K
Как и просили в комментариях к предыдущей статье о EmBlocks, сегодня я покажу от начала и до конца как создать в EmBlocks простой проект для мигания парой светодиодов.
В качестве отладочной платы мы будем использовать кроху на STM32F103C8.
Вот наш стенд:

Подключаем аноды светодиодов к пинам PB5 и PB6, катоды через резсторы в 390 Ом к земле.
Заставим их перемигиваться

EmBlocks — IDE для STM32

Reading time3 min
Views62K
Я обещал поделиться своей настроенной средой Em::Blocks.
Выполняю обещание.


Что такое Em::Blocks?


Это IDE на основе Code::Blocks — кросс-платформенной быстрой среды разработки со встроенным скриптовым языком и очень гибкой настройкой, ориентированной под С/С++ разработку. В среде есть встроенные шаблоны для кучи различных случаев и возможность подключать любые компиляторы.
EmBlocks в отличие от CodeBlocks не кросс-платформенная, она существует только под Windows.
Зато вместе с ней поставляется специальная версия CodeSourcery тулчейна, которая позволяет плотнее интегрировать тулчейн с IDE. Версия в комплекте всегда свежая.

Достоинства EmBlocks


  • быстрая, т.к. написана в native коде
  • расширяемая и хорошо автоматизируется с помощью скриптов
  • шаблоны проектов можно настроить на свой вкус
  • можно самому изменить диалог мастера создания проекта
  • не требует установки — можно носить с собой на флешке и легко перенести с настройками на другой комп
  • из коробки поддерживает отладку через ST-Link и J-Link
  • бесплатная
  • неплохо поддерживается на собственном форуме

Пример проекта с использованием EmBlocks — мигание светодиодами.
Подробности и архив для скачивания

RThrust — система автоматического тестирования БК моторов

Reading time4 min
Views35K
Я довольно давно увлекаюсь мультикоптерами, и все это время я ищу способы заставить коптеры летать дольше.
Типичное время полета для недорогого коптера 7-15 минут. Удручающе мало. Мой текущий квадрокоптер летает 19 минут. И на выбор регуляторов и ВМГ для него я потратил немало времени, чаще всего делая предположения в условиях недостаточных данных.
Ключом к продолжительности полета является энергоэффективная винтомоторная группа. Что это значит? Комбинация мотора и воздушного винта должны максимально эффективно использовать энергию для создания тяги. То есть поднимать как можно больше веса, потребляя как можно меньше энергии. Измеряется эффективность винтомоторной группы в граммах на ватт. На форумах частенько встречаются различные приспособления, состоящие из весов и крепления для мотора плюс какой-нибудь ваттметр. Иногда обходятся чисто весами, чтобы выяснить какую вообще тягу создает ВМГ.
Однако, погрешность измерений обычно весьма высокая, начиная с того, что мы не можем точно определить одновременно и тягу, которая колеблется (мотор постоянно меняет обороты) и мощность, которая тоже плавает достаточно сильно. В итоге ошибка сравнима с разницей между моторами.
Меня такая ситуация не устраивает, учитывая, что моторы и пропеллеры различаются по стоимости до десятка раз, нужно понимать, стоит ли платить больше.
В итоге я построил испытательный стенд, на который крепится ВМГ и замеряются ее параметры:
RThrustLogo-Тяга с точностью до 1г
-Напряжение аккумулятора с точностью до 0.01В
-Ток с точностью до 0.1А-0.2А примерно (зависит от тока)

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

Aerospace и техника безопасности

Reading time2 min
Views83K
Сегодня день космонавтики. Мало кто вспоминает, чего стоят все эти достижения. Начинаются авиация и космос часто с хобби.
Многие из нас увлекаются авиамоделированием, мультикоптерами, ракетами.
Некоторые читатели по моим статьям строили коптеры, однако воспринимают их часто как игрушку.
Говорят, что правила техники безопасности написаны кровью. Я вчера вписал свою кровавую страницу.

Собрали мы гексакоптер на раме S800 с 15" карбоновыми пропеллерами (800мм между осями моторов). Отлично отлетали, приземлил коптер, деактивировал полетный контроллер (disarm), подошел отключить питание и щелкнул выключателем контроллера до того, как отключил батарею. ESC взбесились, дали полный газ, коптер подскочил и ударил прямо в лицо, после первого удара я отвернулся и он еще скакал за спиной несколько секунд.
Последствия

Малиновый маркетинг

Reading time4 min
Views99K
Маркетинг сыграл с Raspberry Pi злую шутку.
Я изложу свой взгляд на эту плату, потому что неоднократно сталкивался с тем, что люди не понимают ее предназначения, пытаются применить ее не по назначению и разочарованно переключаются на другие ARM платы.
А тем временем Raspberry Pi — это очень важный шаг, которого до нее сделать не удавалось никому.

И вот почему

USB-IRPC: Апгрейд модуля розеток

Reading time2 min
Views71K
В прошлый раз в комментариях поступило дельное предложение поставить твердотельные реле вместе обычных электромеханических.
Что я, собственно и сделал.
Неделю назад приехали сами реле SSR-25 DA:

Управляются они напряжением от 3 до 32В. Коммутируют наргузку до 25А от 24В до 380В. То, что нужно.
Бесшумные, на корпусе есть крупный красный светодиод, который горит при замыкании цепи.
Читать дальше →

ИК пульт для ПК и розеток. Часть 2

Reading time15 min
Views66K
Часть 1
Вчера я рассказал, как собрать USB-IRPC на основе Arduino. Зачем? Чтобы показать, как быстро собрать макет и сложности особой тут нет.
Сегодня сделаем все как положено. С самого начала — с принципиальной схемы, PCB, ЛУТ. Кусочек фольгированного стеклотекстолита превратим с помощью кучки деталек в готовое устройство. Разумеется с корпусом, мы же хотим аккуратно, правда?
Вот наша цель:
USB-IRPC Bare Front
«USB-IRPC Bare Front»
USB-IRPC Finished
«USB-IRPC Finished»
делаем USB-IRPC с нуля

ИК пульт для ПК и розеток. Часть 1

Reading time9 min
Views168K
У меня нет телевизора. Совсем. На антресолях где-то лежит старый маленький пузатик, но кабель антенны давно свернут, а телевизор этот — скорее издевательство, разве что на кухне поставить и то маловат.
Поэтому в качестве музыкального центра и телевизора я использую свой ПК. И все бы хорошо, но лень — это не только двигатель прогресса, но и фактор, который портит удовольствие, заставляя встать с дивана, на котором уютно устроился с кружкой чая, чтобы запустить программу или выключить колонки после просмотра фильма перед сном.
Существует множество ИК приемников, практически все они могут управлять компьютером и даже могут его выключить, но не могут его включить. И вот в этот момент компьютер перестает быть столь же удобным сколь телевизор или музыкальный центр. Но и проект Igor HID не порадовал своим софтом. Вроде все умеет, а неудобно. И не влезешь в него, исходников нет. Вот поэтому я собрался и сделал свой проект, открытый и доступный всем.
Сделал я его с нуля до законченного комплекта. А поскольку мой опыт в разработке и программировании электронных девайсов до него можно сказать был нулевым, то я считаю, что повторить это сможет каждый, кому это интересно.
image
Называется он USB-IRPC (USB Infrared Remote Personal Computer Control — «Юэсби-ИРПиСи» или ИРПЦ, кому как больше нравится :). Буква R на самом девайсе — просто сокращение от моего ника.
Важным преимуществом девайса является то, что он программно совместим с Arduino и в случае отсутствия уверенности в своих силах в ЛУТ может быть сделан на основе Arduino на макетной плате. Это, конечно, не так компактно и аккуратно, не так дешево, но зато доступно практически всем, даже навыки пайки особые не потребуются.
Если стремление к комфорту вам не чуждо и идея превратить свой компьютер в медиацентр, а заодно поуправлять электророзетками с пульта вам интересна, тогда вперед.

Просьба, если соберетесь делать устройство после прочтения статьи, задавайте вопросы в комментариях. По опыту предыдущих статей: вас довольно много и вопросы вы задаете одинаковые :)
Я лучше один раз отвечу всем, добавив в статью или в комментариях. Уведомления о комментариях с вопросами я просматриваю и стараюсь отвечать.
поехали, делаем USB-IRPC

Квадрокоптер-R2. Апгрейд

Reading time4 min
Views100K
Весной я писал как построить дешевый и простой коптер за 1 день и $120
Основной его недостаток — довольно примитивный по возможностям контроллер KKmultiсopter — он даже горизонт сам держать не умеет. Что-ж, исправим этот недостаток!
Тех, кто уже построил по предыдущему рецепту, спешу успокоить — бюджет апгрейда всего $40-55. Для тех, кто строить будет с нуля, есть возможность улучшить конструкцию.
Я построил второй коптер, т.к. комплектующие для него были куплены давно.
image
Апгрейдим до R2

Квадрокоптер за 1 день и $120

Reading time8 min
Views350K
Создать квадрокоптер как платформу для летающего робота я планирую уже очень давно. Первые расчеты и заказ деталей я сделал год еще назад. Однако, делать «просто коптер» чтобы полетать, управляя с пультом или даже в FPV режиме конечной задачей не является. Поэтому коптер должен быть максимально гибким и как можно менее дорогим.
По отдельности все детали для коптера есть, но их сопряжение — дело простое только в теории. Нужно быть и программистом и инженером и моделистом — вертолетчиком. Поэтому процесс движется довольно небыстро. А летать хочется :) Ничто так не расхолаживает и не демотивирует как отсутствие видимых результатов, особенно когда прогресс-то вроде есть, но не наглядный. Да и экспериментировать сразу на большом квадракоптере дорого и опасно.
Поэтому я решил собрать для экспериментов миникоптер. Как всегда — задача сделать недорого, просто и гибко.
Мой результат — готовый коптер за 1 день (на сборку и запуск) и $120 (стоимость квадрокоптера включая доставку). А с аппаратурой — $145.
MiniQuadroCopter
«MiniQuadroCopter»
Под катом описание и видео.
Buddy-коды для заказа на HobbyKing
Строим недорогой квадрокоптер

AVRDudeR — встраиваем avrdude в IDE

Reading time4 min
Views60K

Arduino — хорошая платформа для самоделкиных вроде меня.
Удобная, все в ней уже есть.

В чем проблема?

Программная часть мне далеко не всем нравится. Особенно ужасна Arduino IDE. Каждый файл открывается в новом окне, оставляя пустое запущенное окно IDE. И прочие мелкие глупости, которые привыкших к удобству Visual Studio, Borland/Embarcadero RAD IDE расстраивают и вызывают неудовольствие.
К счастью, мы можем использовать любую IDE какая понравится. Для готовых проектов, которые только скомпилировать и прошить или собственных пробных поделок вполне годится тот огрызок Wiring, который компилируется Arduino IDE.
Для удобства работы я использую Visual Micro Arduino — удобство Visual Studio, быстрая компиляция, прошивка стандартными средствами.

Arduino без Arduino IDE

Ступенькой выше стоит прямая работа с микроконтроллером, тут уж в вольны делать что захотите. Часто это удобнее чем разбираться в начинке библиотек Arduino. Но приходится использовать либо AVR Studio либо стороннюю IDE и компилятор от Atmel (благо, он совершенно бесплатный и входит в AVR Tools).
Все бы хорошо, но про Arduino они ничего не знают и прошить ее не могут. И вот тут начинаются неудобства.
Вот их то мы и устраним

Smart KM Link A820

Reading time2 min
Views8.9K
Часто приходится работать за ноутом и ПК одновременно — не весь софт есть и там и там, не весь софт на ноуте работает достаточно быстро, часто нужно прервать работу и ехать на встречу.

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

Строим гусеничного Bluetooth-робота с камерой. Часть 3

Reading time11 min
Views46K
В предыдущих сериях:
Часть 1
Часть 2
Ну что, все уже заказали запчасти и собрали роботов? Пора робота оживить.
Сегодня мы разберем программную начинку.
Вариант, который я предлагаю максимально прост. Не стоит ждать от него уникальных способностей. Его задача — просто ехать работать. Отказоустойчивость, плавность управления и дополнительные функции — это простор для творчества, который я оставляю каждому, чтобы не лишать этого удовольствия. Код весьма простой и оттого далеко не оптимальный и не защищенный и вообще не красивый. Если есть предложения по его улучшению — предлагайте свои варианты, прямо куски кода с пояснением зачем и почему так будет лучше.
Неконструктивная критика того, что сделано плохо — не особо нужна :) Я и так знаю про недостатки. А вот если что-то непонятно- спрашивайте, поясню.
Итак, поехали!

Наша задача - добиться аналогичного результата

Строим гусеничного Bluetooth-робота с камерой. Часть 2

Reading time4 min
Views35K
Часть 1
Часть 3
Продолжаем строить гусеничного робота.
В первой части мы с вами подобрали и, надеюсь, заказали все необходимые детали. Кстати, недавно проверял, все детали Tamiya (гусеницы, площадки, мотор-редукторная коробка) были в наличии в Terraelectronica. Подороже, конечно, чем из Китая, но зато рядом.
Те, кто уже получил детали, наверняка уже собрали шасси.
Теперь займемся бортовой электроникой, видеоподсистемой и питанием.
Читать дальше →

FTBB программатор для minimalist Arduino

Reading time3 min
Views19K
Не так давно я рассказывал, как дешево собрать Arduino-совместимую плату.
Единственное, чего не хватало для полноценного комплекта — это программатора. Денег на полноценный программатор обычно жалко, особенно если он нужен время от времени в основном для прошивки бутлоадера в новый чип.
Большинство схем программаторов не решают проблемы курицы и яица — программатор тоже нужно чем-то прошивать. Свою минимальную Arduino я тоже прошивал имевшейся под рукой другой платой Arduino. Но ведь не у всех же она есть, верно? Значит нужен программатор, не требующий прошивки.
Изобретать велосипед я не стал и изготовил программатор на основе схемы, опубликованной у DIHALT. На самом деле им можно прошить любой AVR микроконтроллер или использовать как USB-UART адаптер. В общем, пригодится.

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

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity