Роботизированная платформа на Raspbery Pi

  • Автор
Я занимаюсь проектированием и разработкой макетов для отработки математического программного обеспечения. Макеты — это мобильные платформы (тележки) различных конфигураций. Как правило, тележки выполняют одну единственную функцию — являются носителем целевого оборудования (сканирующий дальномер, видеокамера, ноутбук с системой управления и т. д.). Все тележки имеют законченное решение и представляют собой конструкцию из металла или пластика и имеют на борту систему управления нижнего уровня, отвечающую за управление двигателями и сбор различной информации с датчиков.


 6f11764490ac18b0c649f7e01f16266e.jpg144857cd6aeead79931bad320dccf3ac.jpg С готовыми тележками есть ряд существенных проблем:Сложно установить необходимое для выполнения целевой задачи оборудование. Зачастую в процессе работы может измениться номенклатура используемого оборудования и его место расположения. Сверлить, пилить и видоизменять металлический корпус весьма трудоемкий процесс. Скотч обычный и двухсторонний — «наше всё», со всеми вытекающими последствиями.Каждая тележка имеет свою систему управления, что привязывает разработчика к аппаратной части и системе управления и занимает значительную часть драгоценного времени программиста.Дороговизна тележек и их комплектующих. Невозможность быстрой закупки готовых решений и запчастей.Все это натолкнуло на вполне естественную мысль, что нужна универсальная и не очень дорогая платформа из комплектующих, как говориться, из соседнего магазина, с возможностью безболезненной установки произвольного оборудования с простым и единым интерфейсом управления. Тележка должна быть простой в производстве и легкой в сборке. Как правило к макету не предъявляется жестких требований, на то он и макет.

Концепция.

В результате мозгового штурма родилась концепция будущей платформы:Колесная формула 6 колес, все ведущие. Для упрощение конструкции активная подвеска не требуется. При этом все двигатели борта соединены параллельно, что позволит в будущем делать тележки с меньшим количеством колес используя единую систему управления.Корпус тележки из материала легкого в обработке, позволяющего относительно быстро установить необходимое оборудование и провести коммуникации.Управление тележкой по UART или по USB (виртуальный компорт) — можно подключить ноутбук, одноплатную ЭВМ, радиомодуль.Мотор-редукторы, колеса, электроника, элементы питания из ближайшего подходящего магазина.Отдельно хочется упомянуть готовую платформу от POLOLU Dagu Wild Thumper All-Terrain Chassis.04dd3b02d58ceb87075417fb2b1ec610.jpgПод нашу концепцию данная платформа подходила как нельзя лучше, даже наличие металлического корпуса компенсировалось большим количеством монтажных отверстий, установка оборудования не вызывала никаких проблем. Но при более близком знакомстве проявились существенные недостатки конструкции. Основной и ключевой момент — это сочленение колеса и мотор-редуктора, которое не выдерживает никакой критики.66a70d766348cd9d3e32ea21d6d8d610.jpgОсновная нагрузка приходится на подшипник скольжения в котором вращается выходной вал мотор-редуктора и при длительном использовании и интенсивных нагрузках этот узел гарантированно выйдет из строя.6634bdfda0d635cebfce2f3f99cbc782.jpgВторой момент — это адаптер вал-колесо, данный элемент выполнен из латуни и сидит на валу с большим люфтом, не редко при тестах, одно из колес слетало с вала в процессе движения. В качестве резюме хочу сказать, что как платформа для решения наших задач Dagu Wild Thumper не подходит. Но, как говорится, нет худа без добра. Мотор-редукторы и сами колеса у данной тележки вполне подходят в качестве комплектующих, надо только спроектировать и изготовить надежный подшипниковый блок c осью, который и будет на себя брать всю нагрузку.

Платформа.

Моторколесо.
Подшипниковый блок изготавливали на производственной базе института.bbee901867194b8896bf3db634f2b826.jpgДва подшипника запресованны в корпус блока, ось с кольцевым фиксатором, адаптер мотор-редуктора.5332a7383ce922e47419d2f4038c7564.jpg959e700042b756919fc4ad8b55c6c345.jpg107b6037372625cafc125e3597213d22.jpg1d0d6bd451db24354cbd85a46b3f4df4.jpgКолесо и мотор-редуктор от тележки родителя Dagu Wild Thumper.Блок получился весьма надежным узлом способным выдерживать серьезные нагрузки. Единственное и наверно весьма существенное но: изготовление данного узла требует наличия фрезерного станка с ЧПУ и квалифицированного специалиста. На фотографиях двигатель имеет на валу инкрементный энкодер.
Корпус.
Оптимальным материалом для корпуса, после недолгих раздумий, оказалась (сюрприз, сюрприз) фанера. Чертеж, обильно снабженный ребрами жесткости, спустя некоторое время обрел материальный облик.f661bd1a83f1bd6ae94353ce1026f1cd.jpg0e274697873b477d057a5fb01677e2b5.jpgПри доступности лазерного раскроя листовых материалов изготовление целой партии подобных корпусов не составило особого труда и затрат. Сверление, пиление, прикручивание разнообразного оборудования и прочие модификации данного корпуса (да здравствует клей ПВА и шурупы саморезы) не представляют никаких трудностей.
Платформа в сборе.
b4621186ad4aae37364cc2635224a0aa.jpgКорпус покрашен краской из баллончика. Средние двигатели имеют в составе инкрементные энкодеры для подсчета количества оборотов. Разъемы двигателей стандартные для радиоуправляемых моделей.

Система управления нижнего уровня.

К системе управления предъявляются те же требования, что и к тележке: доступность компонентов и простота изготовления. Готовых решений по управлению коллекторными моторами масса. У того же POLOLU есть много подходящих вариантов, но есть важный момент — нужен один «USB шнурок» на всю систему.С контроллерами ATMEL и ассемблером я дружу давно, изготовление небольшой печатной платы тоже не проблема. Для упрощения проектирования и изготовления платы я использую готовые микропроцессорные модули. В качестве модуля был использован ARDUINO Mini Atmega328. Модуль имеет небольшие размеры и на его борту помимо процессора имеется микросхема FT232RL, которая обеспечивает связь по USB, так называемый виртуальный ком-порт. Из внутренностей стерто все что его связывало с прежней жизнью (да простят меня ардуинщики) и изготовлена печатная плата с необходимой обвязкой и залита новая прошивка.a3223ddab3ba9969925a84491a35c2ec.jpgВ схему включены:Микропроцессорный модуль ARDUINO Mini Atmega328 c USB интерфейсом.Два Н-моста на силовых транзисторах с ШИМ управлением.Датчик тока и датчик напряжения для контроля разряда Li-Po аккумуляторов.Светодиоды для индикации режимов работы системы.Разъемы для подключения внешнего питания и двигателей.Разъемы для инкрементных энкодеров двигателей.Разъемы для подключения аналоговых датчиков соединенные со входами АЦП контроллера.Разъем UART интерфейса.Прошивка написана на ассемблере и представляет из себя командный процессор, т. е. по UART (USB) приходит текстовая команда с параметрами, контроллер её обрабатывает и выполняет (например: дать напряжение на двигатели правого борта 25% от номинала), в обратном направлении контроллер отправляет значения энкодеров, напряжение АКБ, показания АЦП и т.д.В результате имеем UART (USB) канал управления тележкой по которому посылаются текстовые команды управления и получаем ответные строчки, включающие телеметрию и служебные данные. С данным интерфейсом стыкуется широкий спектр устройств, начиная от радио-модемов (X-Bee) и заканчивая планшетными компьютерами. Более подробно на системе управления я останавливаться не буду, т. к. это тема отдельной статьи. А вот об одном из устройств подключаемых по UART в качестве системы управления верхнего уровня, я расскажу далее. 

Малина, она же система управления верхнего уровня.

Конечно же речь о Raspberry Pi. Доступно, недорого, компактно, Linux же. На борту есть все, а чего нет подключается по USB.Алгоритмы управления тележкой можно программировать непосредственно на самой тележке используя современный графический интерфейс. Просто подключи монитор и клавиатуру. Скрипач компьютер не нужен! При этом можно с малины программировать и контроллер нижнего уровня, достаточно подключить программатор, соответствующие компиляторы и среда разработки в наличии.
Стыкуем малину и ардуину.
На GPIO разъеме малины есть UART, I2C, SPI, питание +5В и просто ноги.1725e3682f122313d5f8ccd38b05c4ad.jpgК UART пинам малины подключаем нашу Arduino систему управления нижнего уровня. Единственное но: малина 3.3 вольта, а микроконтроллер выдает логику 5 вольт, без переходника с согласованием логических уровней не обойтись. А раз надо городить некую плату-переходник, то есть смысл задействовать и другие пины GPIO. Шину i2c оставлять на свободе верх расточительства, когда в природе существует огромное количество датчиков с подключением по данной шине. В результате на плату переходника установлен замечательный девайс с гироскопом и акселерометром — полноценный навигационный модуль. Питание малины осуществляется через разъем Micro USB, что не совсем удобно, т. к. сам разъем хлипковат и не всегда есть под рукой, как следствие на переходник выведен разъем внешнего питания +5в.0e61d8ebe3e5b2a29a62f7de9b73357f.jpg0ccacd6f5eb81fe694a3ff7aff0c3f12.jpgПлата переходника выполнена таким образом, чтобы все помещалось в пластиковый корпус, а наружу выведены пины UART и питания +5в5532f62b6dd46e2565e2e574a7ed9066.jpgОтдельно хочу упомянуть про питание малины, оно жестко ограничено 5-ю вольтами поступающими от USB разъема, решение спорное, но ничего не поделаешь. Я для этой цели использую стабилизатор BEC применяемый в любительских радиомоделях, он имеет небольшой размер, мощности (3А) хватает с большим запасом и полностью отвечает нашим требованиям.703ee5ed3a89cd9ad6c15e88e1b01360.jpg

Полный обвес.

bbe483e471e86f6a302c6b6a4ec38fb6.jpgСистема управления нижнего уровня на базе контроллера Atmega328.Мотор-редукторы с инкрементными энкодерами (левый и правый борт)ИК-датчики расстояния SHARP GP2Y0A02YK0F с аналоговым выходомLi-Po аккумулятор 7.4ВСтабилизатор питания 5В.Система управления верхнего уровня на базе Raspberry PiUART переходник и i2c навигационный модуль в составе Raspberry Pi.USB Wi-Fi модуль.USB WEB камера.Рассказ о том какая наступает свобода для творчества имея Wi-Fi тележку с линуксом на борту и кучей всевозможных плюшек явно выходит за рамки данной статьи. С этой частью я думаю все понятно.

Результат.

8aa17f51a65740c9d9177f8fc596802f.jpgВ завершение хочу сказать, что поставленная задача была решена. Имеем тележку с корпусом который «не жалко» из недорогих комплектующих. Единственное исключение — это подшипниковый блок, но это цена за надежность и грузоподъемность, телега может таскать весьма тяжелое оборудование. Система управления нижнего уровня легко масштабируется по количеству двигателей и номенклатуре подключаемых датчиков, а так же легко интегрируется с высокоуровневой системой: Raspberry Pi (UART) или ноутбук (USB). Raspberry Pi может все в качестве системы управления верхнего уровня позволяет подключать целую кучу полезного оборудования иреально может все с этим оборудованием работать, компилятор языка Си и графическая оболочка для гурманов в комплекте.
 Источник: http://habrahabr.ru/post/175889/

Комментарии:

RomanNV5
У кого нет возможности возиться с железом, или кому в лом, есть готовая платформа 4х4, отечественного производства, ценой в 2000р. При чём в комплекте есть всё, чтобы подцепить RPi напрямую.
http://www.znatok.ru/vezdehod_lider.html
Lord12
Решил сегодня пересмотреть все опубликованные проекты-статьи-заметки в блоге за прошлый год да и вообще, свяжитесь с Artemka, он занимается именно роботами. Ещё делали что интересное?

Для написания комментариев необходимо зарегистрироваться