Однажды фанера, atmega, да малина

в 12:16, , рубрики: Atmega, diy или сделай сам, Raspberry Pi, Железо, робототехника, метки: , , ,

Введение.

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

Однажды фанера, atmega, да малина Однажды фанера, atmega, да малина


С готовыми тележками есть ряд существенных проблем:

  1. Сложно установить необходимое для выполнения целевой задачи оборудование. Зачастую в процессе работы может измениться номенклатура используемого оборудования и его место расположения. Сверлить, пилить и видоизменять металлический корпус весьма трудоемкий процесс. Скотч обычный и двухсторонний — «наше всё», со всеми вытекающими последствиями.
  2. Каждая тележка имеет свою систему управления, что привязывает разработчика к аппаратной части и системе управления и занимает значительную часть драгоценного времени программиста.
  3. Дороговизна тележек и их комплектующих. Невозможность быстрой закупки готовых решений и запчастей.

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

Концепция.

В результате мозгового штурма родилась концепция будущей платформы:

  1. Колесная формула 6 колес, все ведущие. Для упрощение конструкции активная подвеска не требуется. При этом все двигатели борта соединены параллельно, что позволит в будущем делать тележки с меньшим количеством колес используя единую систему управления.
  2. Корпус тележки из материала легкого в обработке, позволяющего относительно быстро установить необходимое оборудование и провести коммуникации.
  3. Управление тележкой по UART или по USB (виртуальный компорт) — можно подключить ноутбук, одноплатную ЭВМ, радиомодуль.
  4. Мотор-редукторы, колеса, электроника, элементы питания из ближайшего подходящего магазина.

Отдельно хочется упомянуть готовую платформу от POLOLU Dagu Wild Thumper All-Terrain Chassis.
Однажды фанера, atmega, да малина
Под нашу концепцию данная платформа подходила как нельзя лучше, даже наличие металлического корпуса компенсировалось большим количеством монтажных отверстий, установка оборудования не вызывала никаких проблем. Но при более близком знакомстве проявились существенные недостатки конструкции. Основной и ключевой момент — это сочленение колеса и мотор-редуктора, которое не выдерживает никакой критики.

Однажды фанера, atmega, да малина

Основная нагрузка приходится на подшипник скольжения в котором вращается выходной вал мотор-редуктора и при длительном использовании и интенсивных нагрузках этот узел гарантированно выйдет из строя.

Однажды фанера, atmega, да малина

Второй момент — это адаптер вал-колесо, данный элемент выполнен из латуни и сидит на валу с большим люфтом, не редко при тестах, одно из колес слетало с вала в процессе движения.

В качестве резюме хочу сказать, что как платформа для решения наших задач Dagu Wild Thumper не подходит.

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

Платформа.

Моторколесо.

Подшипниковый блок изготавливали на производственной базе института.

Однажды фанера, atmega, да малина

Два подшипника запресованны в корпус блока, ось с кольцевым фиксатором, адаптер мотор-редуктора.

Однажды фанера, atmega, да малина

Однажды фанера, atmega, да малина

Однажды фанера, atmega, да малина

Однажды фанера, atmega, да малина

Колесо и мотор-редуктор от тележки родителя Dagu Wild Thumper.

Блок получился весьма надежным узлом способным выдерживать серьезные нагрузки. Единственное и наверно весьма существенное но: изготовление данного узла требует наличия фрезерного станка с ЧПУ и квалифицированного специалиста. На фотографиях двигатель имеет на валу инкрементный энкодер.

Корпус.

Оптимальным материалом для корпуса, после недолгих раздумий, оказалась (сюрприз, сюрприз) фанера. Чертеж, обильно снабженный ребрами жесткости, спустя некоторое время обрел материальный облик.

Однажды фанера, atmega, да малина

Однажды фанера, atmega, да малина

При доступности лазерного раскроя листовых материалов изготовление целой партии подобных корпусов не составило особого труда и затрат. Сверление, пиление, прикручивание разнообразного оборудования и прочие модификации данного корпуса (да здравствует клей ПВА и шурупы саморезы) не представляют никаких трудностей.

Платформа в сборе.

Однажды фанера, atmega, да малина

Корпус покрашен краской из баллончика. Средние двигатели имеют в составе инкрементные энкодеры для подсчета количества оборотов. Разъемы двигателей стандартные для радиоуправляемых моделей.

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

К системе управления предъявляются те же требования, что и к тележке: доступность компонентов и простота изготовления. Готовых решений по управлению коллекторными моторами масса. У того же POLOLU есть много подходящих вариантов, но есть важный момент — нужен один «USB шнурок» на всю систему.

С контроллерами ATMEL и ассемблером я дружу давно, изготовление небольшой печатной платы тоже не проблема. Для упрощения проектирования и изготовления платы я использую готовые микропроцессорные модули. В качестве модуля был использован ARDUINO Mini Atmega328. Модуль имеет небольшие размеры и на его борту помимо процессора имеется микросхема FT232RL, которая обеспечивает связь по USB, так называемый виртуальный ком-порт. Из внутренностей стерто все что его связывало с прежней жизнью (да простят меня ардуинщики) и изготовлена печатная плата с необходимой обвязкой и залита новая прошивка.

Однажды фанера, atmega, да малина

В схему включены:

  1. Микропроцессорный модуль ARDUINO Mini Atmega328 c USB интерфейсом.
  2. Два Н-моста на силовых транзисторах с ШИМ управлением.
  3. Датчик тока и датчик напряжения для контроля разряда Li-Po аккумуляторов.
  4. Светодиоды для индикации режимов работы системы.
  5. Разъемы для подключения внешнего питания и двигателей.
  6. Разъемы для инкрементных энкодеров двигателей.
  7. Разъемы для подключения аналоговых датчиков соединенные со входами АЦП контроллера.
  8. Разъем UART интерфейса.

Прошивка написана на ассемблере и представляет из себя командный процессор, т. е. по UART (USB) приходит текстовая команда с параметрами, контроллер её обрабатывает и выполняет (например: дать напряжение на двигатели правого борта 25% от номинала), в обратном направлении контроллер отправляет значения энкодеров, напряжение АКБ, показания АЦП и т.д.

В результате имеем UART (USB) канал управления тележкой по которому посылаются текстовые команды управления и получаем ответные строчки, включающие телеметрию и служебные данные. С данным интерфейсом стыкуется широкий спектр устройств, начиная от радио-модемов (X-Bee) и заканчивая планшетными компьютерами. Более подробно на системе управления я останавливаться не буду, т. к. это тема отдельной статьи. А вот об одном из устройств подключаемых по UART в качестве системы управления верхнего уровня, я расскажу далее.

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

Конечно же речь о Raspberry Pi. Доступно, недорого, компактно, Linux же. На борту есть все, а чего нет подключается по USB.

Алгоритмы управления тележкой можно программировать непосредственно на самой тележке используя современный графический интерфейс. Просто подключи монитор и клавиатуру. Скрипач компьютер не нужен! При этом можно с малины программировать и контроллер нижнего уровня, достаточно подключить программатор, соответствующие компиляторы и среда разработки в наличии.

Стыкуем малину и ардуину.

На GPIO разъеме малины есть UART, I2C, SPI, питание +5В и просто ноги.

Однажды фанера, atmega, да малина

К UART пинам малины подключаем нашу Arduino систему управления нижнего уровня. Единственное но: малина 3.3 вольта, а микроконтроллер выдает логику 5 вольт, без переходника с согласованием логических уровней не обойтись. А раз надо городить некую плату-переходник, то есть смысл задействовать и другие пины GPIO.
Шину i2c оставлять на свободе верх расточительства, когда в природе существует огромное количество датчиков с подключением по данной шине. В результате на плату переходника установлен замечательный девайс с гироскопом и акселерометром — полноценный навигационный модуль. Питание малины осуществляется через разъем Micro USB, что не совсем удобно, т. к. сам разъем хлипковат и не всегда есть под рукой, как следствие на переходник выведен разъем внешнего питания +5в.

Однажды фанера, atmega, да малина

Однажды фанера, atmega, да малина

Плата переходника выполнена таким образом, чтобы все помещалось в пластиковый корпус, а наружу выведены пины UART и питания +5в

Однажды фанера, atmega, да малина

Отдельно хочу упомянуть про питание малины, оно жестко ограничено 5-ю вольтами поступающими от USB разъема, решение спорное, но ничего не поделаешь. Я для этой цели использую стабилизатор BEC применяемый в любительских радиомоделях, он имеет небольшой размер, мощности (3А) хватает с большим запасом и полностью отвечает нашим требованиям.

Однажды фанера, atmega, да малина

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

Однажды фанера, atmega, да малина

  1. Система управления нижнего уровня на базе контроллера Atmega328.
  2. Мотор-редукторы с инкрементными энкодерами (левый и правый борт)
  3. ИК-датчики расстояния SHARP GP2Y0A02YK0F с аналоговым выходом
  4. Li-Po аккумулятор 7.4В
  5. Стабилизатор питания 5В.
  6. Система управления верхнего уровня на базе Raspberry Pi
  7. UART переходник и i2c навигационный модуль в составе Raspberry Pi.
  8. USB Wi-Fi модуль.
  9. USB WEB камера.

Рассказ о том какая наступает свобода для творчества имея Wi-Fi тележку с линуксом на борту и кучей всевозможных плюшек явно выходит за рамки данной статьи. С этой частью я думаю все понятно.

Результат.

Однажды фанера, atmega, да малина

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

Автор: MaxAlekseev

Источник

Поделиться

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