Альтернативный контроллер для роботов

в 14:53, , рубрики: arduino, Raspberry Pi, Блог компании Грамбо, метки: ,

Мы разработали первую версию универсальной платы, которая может служить, как простым блоком питания с изменяемым напряжением и током, так и продвинутым контроллером для разного рода устройств, начиная со светодиодных лампочек, шаговых моторов, и термодатчиков до полноценных полностью автономных роботов! Рабочее название — Grambo Pi (Grambo — это английский Громозека, а Pi — это от Raspberry Pi).


Grambo Pi — программируемая плата управления на базе микроконтроллера ARM Cortex M3. Она может служить для разнообразных задач, связанных с управлением устройствами и автоматическим получением показаний датчиков. Плата может служить источником напряжения, работать как зарядное устройство для аккумуляторов разных типов, может управлять электродвигателями с максимальным длительным током до 600мА и кратковременным — до 1200мА, имеет схему управления осветительным светодиодом. При проектировании платы была заложена возможность служить источником питания для одноплатного компьютера Raspberry Pi. Плата имеет набор датчиков: термометр, акселерометр и компас, что позволяет использовать плату как систему ориентации для движущихся устройств. С внешними устройствами плата может общаться, используя набор стандартных интерфейсов обмена данными: USB, последовательный порт, I2C (мастер и слейв). Функциональность платы может расширяться за счёт подключения плат расширения!

В плату встроена виртуальная машина, исполняющая байт код, получаемый после компиляции программ, написанных на языке Pawn. Байт код записывается во FLASH память и начинает исполняться каждый раз при подаче питания на плату. Поведение платы и обмен данными с внешними устройствами определяется той программой, которая в неё загружена.

Предусмотрено три основных способа использования платы:

  1. как автономного устройства, работающего самостоятельно;
  2. как устройства, управляемого от компьютера через шину USB;
  3. в связке с одноплатным компьютером Raspberry Pi.

В последнем случае плата не только может управляться компьютером Raspberry Pi, но и служить для него умным источником питания. Например, плата может быть настроена (программой на Pawn, загруженном во внутреннюю FLASH память) как ATX подобный источник питания, включающий и выключающий компьютер по нажатию кнопки или как источник питания, включающийся по расписанию.

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

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

Плата предусматривает три способа подачи питания:

  1. через вход понижающего преобразователя;
  2. через вход повышающего преобразователя;
  3. через разъём USB.

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

Полный список периферийных устройств на плате:

  • 3-х координатный акселерометр;
  • 3-х координатный компас;
  • цифровой и аналоговый термометры;
  • контроллер 2-х двигателей постоянного тока (или одного биполярного шагового или 4 независимых индуктивных нагрузок) со встроенными защитными диодами;
  • step down преобразователь на 3.3V для питания периферии;
  • настраиваемый понижающий преобразователь с диапазоном выходного напряжения от 0В до 16В, ограничение входного тока от 0А до 3А;
  • настраиваемый повышающий преобразователь с диапазоном выходного напряжения до 16В, входной ток может быть ограничен от 0А до 3А.
  • USB;
  • аппаратный ограничитель тока через USB до 400мА;
  • последовательный порт UART;
  • I2C master;
  • I2C slave;
  • схема питания осветительного светодиода;
  • разъём совмещения с Raspberry Pi;
  • разъём подключения плат расширения;

Все периферийные устройства могут использоваться из внутренней Pawn программы.
image
Использование Raspberry Pi вместе с Grambo Pi позволяет разрабатывать решения практически любой сложности. Начиная с систем включения и выключения по заранее заданному расписанию с целью экономии потребления энергии и кончая системами, которые требуют полной компьютерной мощности для выполнения таких задач, как обработка видео в реальном времени и поддержка веб приложений!
image
Функциональность платы Grambo Pi может быть увеличена с помощью специально разработанных плат расширения, которые также просто стыкуются друг c другом. Можно подключать несколько плат одновременно.
image
image
Платы расширения могут быть разными. Представленная на рисунке имеет следующие устройства:

  • 8 разъёмов ШИМ, совместимых с разъёмами аналоговых сервомашинок;
  • контроллер 4-х двигателей постоянного тока, либо 2-х биполярных шаговых двигателей;
  • 8 аналоговых входов АЦП с диапазоном от 0В до 3.3В;
  • 8 цифровых входов (например, для детектирования нажатий на кнопку);

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

Существует несколько вариантов программного взаимодействия с платой Grambo Pi:

  • Библиотека C++;
  • Модуль Python для взаимодействия через порт USB;
  • Модуль Python для взаимодействия через порт I2C (в случае подключение к Raspberry Pi);

Со стороны платы коммуникация с компьютером и управление периферийными устройствами осуществляется виртуальной Pawn машиной.

Вопросы к хабражителям

Ценители робототехники, интересен ли был бы вам такой модуль? Купили бы вы экземпляр для тестирования? Или собрали бы лучше свое устройство на платформе Arduino?

Автор: ysasha

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js