Обзор RPiDuino. Arduino для RaspberryPi.
Давно существует и пользуются большой популярностью всем известные мезонинный контроллер Arduino и одноплатный ARM миникомпьютер RaspberryPi. Они давно полюбились сообществу, в первую очередь за свою простоту и то, что обзавелись огромной комьюнити и бесчисленным числом примеров работы с той или иной задачей и периферией. Но у них есть и недостатки: Arduino ограниченна в вычислительной мощности, а под некоторые задачи нужно что-то помощнее, а малинка ограничена в портах ввода/вывода, на ней нет АЦП и она не очень предназначена для real-time задач. А что если попробовать их объединить? Тогда они смогут компенсировать недостатки друг друга и круг охватывающих ими задач значительно расширится.
RPiDuino установленный на RaspberryPi
Именно такой задачей пару лет назад совместно с Олегом Евсигнеевым, резидентом местного ХакСпейса, мы и задались. Так на свет появился контроллер на основе Arduino, расширяющий возможности обычной RaspberryPi, которому было дано простое название RPiDuino.
RPiDuino с RaspberryPi
Данный контроллер получил основную направленность на мобильную робототехнику, поэтому на своём борту он содержит встроенный драйвер 2-х коллекторных двигателей на основе drv8833 с током до 1А на движок (есть версия без драйвера двигателя). В качестве источника питания был взят старый добрый стабилизатор LM2596, который способен питать контроллер RPiDuino с RaspberryPi и дополнительной периферией током до 2-х А.
RPiDuino вид сверху
RPiDuino вид снизу
Источник питания имеет дополнительную фильтрацию на выходе — в итоге получаем низкий уровень пульсаций, менее 1%. Есть два варианта данного контроллера: с установленным драйвером двигателя и без него. Без драйвера двигателей питаться всё это может или от адаптера 7,5 — 24В со стандартным коннектором 5.5х2.1 или 5.5х2.5мм. Или от 2-4-х баночного Li-Ion / Li-Poly аккумулятора, свинцового или набора Ni-Cd/Mg аккумуляторов соответствующего напряжения, подключенного через клеммник. С установленным драйвером двигателей максимальный уровень входного напряжения снижается до 10.5В или 2-х банок Li-Ion/Li-Poly, 6-7 Ni-Cd. Самое главное, что бы источник питания выдавал требуемый контроллерам ток. Для удобного включения контроллера и малинки плата оснащена специальным удобным тумблером.
Arduino и RaspberryPi связываются через UART. Так же через него происходит прошивка и связь ардуины с внешним компьютером по средством преобразователь USB-UART cp2102 через mini-USB разъём. Связь через этот же разъём ПК с Raspberry и прошивка ардуины с неё невозможна. Но при желании можно подключить ардуино к малинке через USB.
RPiDuino с RaspberryPi, вид со стороны USB
Для удобства подключения различной периферии в виде аналоговых или цифровых датчиков, сервоприводов, различных других исполнителей, контроллер оснащен удобными гребенками под 3-х контактные стандартные разъёмы. Причём аналого/цифровые выводы имеют универсальное расположение, в результате которого к ним можно подключать аналоговые и цифровые датчики со стандартными для них распиновками. Из дополнительной периферии RPiDuino содержит пьезоизлучатель со встроенным генератором.
Подробнее всю имеющеюся периферию, и то как к ней подключиться, можно посмотреть на следующих картинках.
Периферия RPiDuino
Плата контроллера разрабатывалась под RaspberryPi модель A и имеет соответствующее ей расположение крепежных отверстий. При желании её можно поставить на модель B, по выводам они совместимы, но крепежные отверстия не совпадают и требуется изоляционная прокладка на USB разъёмы.
Установка RPiDuino на RaspberryPi модель B
Технические характеристики
Напряжение питания | 7.5-24В (без драйвера двигателей) 7.5-10.5В (с драйвером двигателей) |
Входной ток | От 0,5 до 4А, зависти от нагрузки, напряжения питания, драйвера двигателей |
Выходной напряжение | 5В |
Выходной ток: рабочий/максимальный/пиковый | 1.5А/2А/3А |
Пульсации выходного напряжения | 1% |
Разъём питания | 5.5х2.1мм и клеммник |
Напряжение питания | 2,7-10,5В |
Ток на канал рабочий/пиковый | 1А/2А |
Частота ШИМ | 50кГц |
Размеры | 85х56х22мм 85х56х33мм (с разъёмом для RaspberryPi) |
Вес | 49г |
Для чего может быть использован данный контроллер решать Вам! я лишь приведу несколько примеров. Его можно использовать, как совместно с RaspberryPi, так и без неё. Основная область под которую RPiDuino был разработан – мобильная робототехника.
Робота собранный на основе RPiDuino и RaspberryPi
Так же своё применение он может найти в любительских системах автоматизации, самодельных контроллерах умных домов. На его основе можно построить метеостанцию с аналоговыми и цифровыми датчиками с выходом в интернет. Данный контроллер поможет решить те задачи, с которыми RaspberryPi и Arduino по отдельности справиться раньше не могли.
Alex_EXE | 06.01.2016 | Проекты |
Сергей Грищенко пишет 09.01.2016 в 08:30 #
Отлично! Как всегда все продумано до мелочей!
Будут версии совместимые с другими моделями RPi? Не было мысли подключиться прямо к USB от RPi? Сразу два UART’а освободилось бы.
Сейчас она может быть перепрошита и через RPi и с внешнего компьютера, я правильно понимаю?
Какая будет цена и когда старт продаж?
Alex_EXE пишет 10.01.2016 в 03:55 #
Сначала нужно эту версию выпустить, только потом можно будет задуматься над поддержкой других моделей малинок.
26-ти контактный разъём не содержит выводов для прямого подключения по USB.
За программную часть этого проекта не отвечаю. С ПК прошивать можно, т.к. это классическая ардуина, а вот есть ли средства для прошивки с разбери — не знаю. Так же, при желании, можно попробовать реализовать функционал прошивки ардуины с разбери через UART, техническая возможность есть.
На данный момент стоимость назвать не могу, т.к. во первых нужно определиться с объёмом первой партией, а во вторых доллар постоянно меняет своё значение.
Со своей стороны первый этап завершил. Контроллер разработан и оттестирован. При необходимости организовать производство уже не составит труда. Но в данном проекте я занимаюсь только технической частью и производством. Ещё немаловажную вещь имеет поддержка проекта, готовые примеры и наработки, которые облегчат освоение платформы. Работы над ними ещё не завершены.
Alex_EXE пишет 12.01.2016 в 19:49 #
Приблизительная стоимость 2000р.
Mark пишет 17.01.2016 в 20:14 #
Цена хорошая!
Алексей пишет 01.02.2016 в 21:54 #
А для STM32 такое будет?
Alex_EXE пишет 09.02.2016 в 15:23 #
Сначала нужно с текущими разобраться. Только потом можно будет подумать о расширении серии.