Em::Blocks 1.31 patch

Вышла Em::Blocks 1.31, и я как обычно выпустил для нее патч. Функционал тот же, но с учетом изменений в новой версии. Ничего не ломает, только добавляет те же плюшки, что и обычно. Немного заодно обновил шаблоны проектов.

Установка

Ставится как обычно:

  • Устанавливаем EmBlocks 1.31
  • Копируем содержимое архива с патчем в папку к EmBlocks с заменой файлов
  • Запускаем один раз среду, чтобы она создала свой профиль
  • Запускаем REmBlocksToolsPatch.exe, жмем Save Updated Config, чтобы добавить пункты меню для прошивки с помощью ST-Link, ST-Link /V2 и CoLinkEx.

Готово, можно пользоваться.

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

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

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

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

Em::Blocks 1.30

Вышла Em::Blocks 1.30, и я как обычно выпустил для нее патч. Функционал тот же, но с учетом изменений в новой версии. Ничего не ломает, только добавляет те же плюшки, что и обычно. Немного заодно обновил шаблоны проектов.

Обновления собственно версии 1.30

  • Live watch variables ( ‘L’ ive and ‘U’ pdate as shortcuts)
  • Compiler options on file level
  • Debug session saving in .eds file (option)
  • GDB 7.6 as debugger (fixes macro loop -g3 )
  • STLinkGDB supports F429/F439
  • Fix: EmBlocks Bare-metal size reports
  • Fix: Long time before mixed mode assembler view is loaded
  • Fix: Switch frame in callstack is working ( ‘alt-‘ mouse click)
  • Fix: Crash new project while debug session is active
  • Fix: Adding watches dialog appears after OK.
  • Fix: Debugger memory window first line without address field

Установка

Ставится как обычно:

  • Устанавливаем EmBlocks 1.30
  • Копируем содержимое архива с патчем в папку к EmBlocks с заменой файлов
  • Запускаем один раз среду, чтобы она создала свой профиль
  • Запускаем REmBlocksToolsPatch.exe, жмем Save Updated Config, чтобы добавить пункты меню для прошивки с помощью ST-Link, ST-Link /V2 и CoLinkEx.

Готово, можно пользоваться.

Магазинчик

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

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

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

Оно умеет заряжать

  • Литий-полимерный LiPo и литий-ионные LiIon аккумуляторы
  • Никель-кадмиевые NiCd, столь любимые производителями электродрелей
  • Никель-металлогидридные Ni-Mh, идущие в комплекте с недорогими радиуправляемыми моделями
  • Свинцовые Pb, которые можно найти в автомобиле, мото, UPS и много где еще.

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

STM32 Flight controller

Сегодня большая веха на пути моего увлечения мультикоптерами. 2 с лишним года назад я заинтересовался мультикоптерами всерьез и с тех пор с другом проектировали и закупали запчасти, был почти годовой перерыв, затем эксперименты с различными полетными контроллерами и рамами, винтомоторными группами, куча побочных проектов.
Весной я всерьез взялся за STM32, поняв, что с Atmega328 как планировалось изначально каши не сварить.
И вот сегодня я наконец-то собрал полетный контроллер на основе платы на STM32F103VE и отдельной платы сенсоров.
Стоимость электроники примерно $35. На борту 32битный контроллер с поддержкой USB, CAN, SPI, I2C, UART, PWM, причем не по одной штуке.
Софт на основе проекта Naze32 я адаптировал к своей плате. Он поддерживает все виды имеющихся у меня сенсоров:

  • Акселерометр ADXL345
  • Гироскоп L3G4200D
  • Комбинированный акселерометр с гироскопом MPU6050
  • Барометр BMP085 и MS6511
  • Магнитометр HMC5883L
STM32FC

STM32 Flight Controller

Светодиоды-индикаторы работоспособны.

Софт полностью поддерживается софтинками MultiWiiConf и MultiWii WinGUI. Телеметрия исправно работает, настройки сохраняются и проект полностью адаптирован к EmBlocks.
Вес двух плат с МК и сенсорами всего 55г.

STM32FC

Телеметрия с работающей платы. Все сенсоры работают

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

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

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

Em::Blocks 1.20

Вышла 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
Читать далее

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

Сегодня я покажу от начала и до конца как создать в EmBlocks простой проект для мигания парой светодиодов.
В качестве отладочной платы мы будем использовать кроху на STM32F103C8.
Вот наш стенд:STM32F103C8-Blink
Подключаем аноды светодиодов к пинам PB5 и PB6, катоды через резсторы в 390 Ом к земле.
Поехали

EmBlocks — IDE для STM32

Что нужно для разработки на основе микроконтроллера?

Как минимум сам микроконтроллер. А лучше какую-нибудь плату с минимальной обвязкой к этому микроконтроллеру.
Но МК без программы — это просто кусочек кремния с вкраплениями металла. А для программирования микроконтроллера нужна среда разработки. Можно, конечно, обойтись набором утилит в стиле Unix-way, когда в командной строке запускаются компилятор, линковщик, вручную пишется скрипт make, а редактирование исходных текстов выполняется в каком-нибудь текстовом редакторе. Но лично я предпочитаю работать с комфортом. Поэтому я стал искать интегрированную среду разработки. Она должна:

  • Иметь удобный редактор с подсветкой синтаксиса С/С++
  • Уметь находить объявления функций, переменных и констант в других файлах.
  • Автоматически генерировать шаблон проекта.
  • Иметь возможность настраивать горячие клавиши для различных действий.
  • Иметь интерфейс к отладчику.
  • Быть быстрой, чтобы комфортно работать на ноутбуке.
  • Очень желательно быть бесплатной или недорогой.

Я выбрал Em::Blocks — это IDE, построенная на основе Code::Blocks, но адаптированная для embedded разработки. То есть изначально предназначенная для разработки встраиваемых систем.

EmBlocks
Она бесплатная, удовлетворяет всем перечисленным требованиям и очень гибко настраивается.
Описание и архив настроенной IDE

Удобства

Заметка

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

Тегов нет.