Мы разработали первую версию универсальной платы, которая может служить, как простым блоком питания с изменяемым напряжением и током, так и продвинутым контроллером для разного рода устройств, начиная со светодиодных лампочек, шаговых моторов, и термодатчиков до полноценных полностью автономных роботов! Рабочее название — Grambo Pi (Grambo — это английский Громозека, а Pi — это от Raspberry Pi).
Grambo Pi — программируемая плата управления на базе микроконтроллера ARM Cortex M3. Она может служить для разнообразных задач, связанных с управлением устройствами и автоматическим получением показаний датчиков. Плата может служить источником напряжения, работать как зарядное устройство для аккумуляторов разных типов, может управлять электродвигателями с максимальным длительным током до 600мА и кратковременным — до 1200мА, имеет схему управления осветительным светодиодом. При проектировании платы была заложена возможность служить источником питания для одноплатного компьютера Raspberry Pi. Плата имеет набор датчиков: термометр, акселерометр и компас, что позволяет использовать плату как систему ориентации для движущихся устройств. С внешними устройствами плата может общаться, используя набор стандартных интерфейсов обмена данными: USB, последовательный порт, I2C (мастер и слейв). Функциональность платы может расширяться за счёт подключения плат расширения!
В плату встроена виртуальная машина, исполняющая байт код, получаемый после компиляции программ, написанных на языке Pawn. Байт код записывается во FLASH память и начинает исполняться каждый раз при подаче питания на плату. Поведение платы и обмен данными с внешними устройствами определяется той программой, которая в неё загружена.
Предусмотрено три основных способа использования платы:
- как автономного устройства, работающего самостоятельно;
- как устройства, управляемого от компьютера через шину USB;
- в связке с одноплатным компьютером Raspberry Pi.
В последнем случае плата не только может управляться компьютером Raspberry Pi, но и служить для него умным источником питания. Например, плата может быть настроена (программой на Pawn, загруженном во внутреннюю FLASH память) как ATX подобный источник питания, включающий и выключающий компьютер по нажатию кнопки или как источник питания, включающийся по расписанию.
На плате установлены программно настраиваемые преобразователи напряжения. Для каждого преобразователя есть возможность задания желаемого выходного напряжения и ограничения максимального входного тока. Для повышающего преобразователя также есть возможность задания минимального входного напряжения. Последнее позволяет использовать плату для получения энергии от солнечных батарей в точке с максимальной мощностью на I-V характеристике батареи.
Возможность подключения перезаряжаемого аккумулятора и солнечной батареи даёт возможность получать решения, не зависящие от стационарных источников энергии. В этом случае плата и подключенные устройства могут работать в любом месте, где есть солнечный свет. Требовательный к энергии компьютер может включаться время от времени, когда в аккумуляторе достаточно энергии для его питания.
Плата предусматривает три способа подачи питания:
- через вход понижающего преобразователя;
- через вход повышающего преобразователя;
- через разъём 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 программы.
Использование Raspberry Pi вместе с Grambo Pi позволяет разрабатывать решения практически любой сложности. Начиная с систем включения и выключения по заранее заданному расписанию с целью экономии потребления энергии и кончая системами, которые требуют полной компьютерной мощности для выполнения таких задач, как обработка видео в реальном времени и поддержка веб приложений!
Функциональность платы Grambo Pi может быть увеличена с помощью специально разработанных плат расширения, которые также просто стыкуются друг c другом. Можно подключать несколько плат одновременно.
Платы расширения могут быть разными. Представленная на рисунке имеет следующие устройства:
- 8 разъёмов ШИМ, совместимых с разъёмами аналоговых сервомашинок;
- контроллер 4-х двигателей постоянного тока, либо 2-х биполярных шаговых двигателей;
- 8 аналоговых входов АЦП с диапазоном от 0В до 3.3В;
- 8 цифровых входов (например, для детектирования нажатий на кнопку);
Для простоты отладки в каждой плате предусмотрено несколько программно управляемых индикаторных светодиодов, которые могут быть использованы для визуальной отладки или для оповещения о состоянии.
Существует несколько вариантов программного взаимодействия с платой Grambo Pi:
- Библиотека C++;
- Модуль Python для взаимодействия через порт USB;
- Модуль Python для взаимодействия через порт I2C (в случае подключение к Raspberry Pi);
Со стороны платы коммуникация с компьютером и управление периферийными устройствами осуществляется виртуальной Pawn машиной.
Вопросы к хабражителям
Ценители робототехники, интересен ли был бы вам такой модуль? Купили бы вы экземпляр для тестирования? Или собрали бы лучше свое устройство на платформе Arduino?
Автор: ysasha