Поиск:  
  
Технологии робототехники
Фотогалерея
Книжная полка
Доска объявлений
Форумы
Контакты

  






  ***

Приключения робота Билла и Рона.


РобоКлуб/Проекты/Мобильные/Приключения робота Билла и Рона.



Приключения робота Билла и Рона

Перевод статьи Билла Бойерса и Рона Бранденбурга о созданном ими роботе, опубликованной на сайте Dallas Personal Robotics Group.

Возьмите двух байкеров, занимающихся собственным делом, один из которых увлекается компьютерами и электроникой, а другой – механик. Добавьте машинный цех, Basic Stamp и поездку в магазин Wal-Mart и вот, что вы получите…

В начале…

Сначала мы и понятия не имели, что у нас получится. Рик работал над созданием робота и попросил меня сделать несколько ступиц для его колес. Когда они были готовы, я сказал: “Черт возьми, я тоже хочу сделать робота…” И пошло-поехало.

Мы плохо представляли себе, что из этого выйдет, поэтому я заказал моторы и батареи Jameco и зашел в магазин Wally World за колесами для скутера. Съездив на местный склад металлолома, я добыл большой лист алюминия толщиной 0,190’’ (0,475 см) для шасси.

Согласно первоначальному плану мы хотели сделать некую штуку с фиксированным центром, чтобы можно было вырезать круг из листа алюминия с помощью ленточной пилы. Просто сделать дырку в середине листа и вращать его, так чтобы лезвие пилы вырезало круг. Это было хорошо на бумаге, однако из-за того, что лист металла был толстым, у нас ничего не получилось. В конце концов, мы решили разметить круг на листе и вручную вырезать его ленточной пилой. Используя просверленную ранее дырку, с помощью токарного станка мы добились нужного размера диска.

Со ступицами колес все было просто. Мы вытащили из колес подшипники и встроили ступицу в колесо и установили его на 1/4’’(0,625 см) вал электродвигателя. Ступица крепилась к колесу с помощью тонкой шайбы и болта. С той стороны от ступицы, с которой располагался двигатель, находился большой выступ для датчика положения колеса. К валу электродвигателя ступица крепилась с помощью установочного болта.

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

Смонтировать двигатель оказалось труднее, поскольку чертёж был нарисован в метрической системе, и мы знали только приблизительные его размеры. Местоположение вала и установочных отверстий также не облегчало процесс измерений. Мы выбрали алюминиевый уголок размером примерно 1 1/2" x 1 1/2" x 1/8" (3.75 см х 3.75 см х 0.3125 см) в магазине металлоизделий, чтобы установить двигатели так, как это было задумано производителем. Не буду говорить, о попытках найти трехмиллиметровые шурупы и шайбы, и о том, как мы обрезали их до нужной длины.

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

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

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

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

Усвоенные уроки:

  • В следующий раз надо использовать более тонкий металл для корпуса.
  • Прежде чем начинать сборку и установку деталей надо изучить технические характеристики колес *и* колесиков.
  • Щелевые отверстия позволят вам компенсировать несоответствие размеров – как своих, так и чужих.
  • Алюминий, продающийся в магазинах металлоизделий, очень мягкий, поэтому его трудно обрабатывать, особенно, когда надо это делать дважды.

Несколько фотографий шасси робота на ранних этапах конструирования.

robot-1.jpg robot-2.jpg robot-3.jpg robot-4.jpg robot-6.jpg robot-7.jpg robot-8.jpg

Шаг 2…

Когда работа над шасси была завершена, мы установили оптическую систему на датчики положения колес, а также контроллер и блок управления двигателем.

Каким образом надо устанавливать оптическую систему я понял во сне. На самом деле мы решили, что хорошо обработанная на станке деталь смотрелась бы лучше, чем кронштейн, и мы смогли бы установить ее в щелевое отверстие, чтобы при необходимости ее легко можно было убрать. И вот мы снова обрабатываем этот кусок алюминия на станке. Надеюсь, я не загублю торцевую фрезу. Бац! @#&'*!! Оптическую систему и кабель я притащил с работы из ящика с разным хламом.

Не имея ни малейшего представления о контроллерах, и, уж тем более не желая учить С или ассемблер, обнаружив огромное количество информации на сайте компании Parallax, мы выбрали микроконтроллер BS2sx, плату Activity Board и пару модулей MotorMind В. Мы планировали собрать все это воедино и посмотреть как оно будет работать лучше всего.

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

Поиграв с несколькими вариантами, я решил вставить модули MotorMind B в стандартный разъем и закрепить их с помощью кусочка нейлона и поликарбонатного листа Lexan подогнанного к верхней части платы. Для простоты схему оптической системы датчиков положения я тоже собрал на этой плате.

На следующем этапе, пока мы не разобрались с аккумулятором и не начали окончательную сборку, необходимо было временно смонтировать всю электронную аппаратуру робота. Местный магазин, в котором продавался пластик, закрылся и уехал в неизвестном направлении незадолго до того, как мы в него заглянули. Обнаружив, что перед отъездом они избавились от всего своего мусора, мы начали раздумывать над тем, где еще можно добыть пластик. В конце концов, в поисках материала мы натолкнулись на долларовый магазинчик "Aladdin's Cave". Разделочная доска за $1 идеально отвечала всем требованиям.

В это же время мы пришли к выводу, что не плохо было бы сделать пару выключателей – для контроллера и двигателя – на случай, если что-то неправильно сработает или загорится. Мы установили платы и выключатели на разделочную доску и включили то, что у нас получилось. Загадочным образом оно заработало, хотя модули MotorMind B не всегда реагировали на команды или посылали подтверждение приема.

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

В какой-то момент у меня закончились свободные порты, и я подумал, что Activity Board не подходит для робота. Получше приглядевшись к схеме, я обнаружил, что половина портов привязана к конкретным вещам, таким образом, ограничивая возможность внешних подключений. Именно поэтому модули MotorMind B не всегда реагировали на посылаемые команды.

После того, как робот “встал на ноги” мы обнаружили, что стандартные колеса для скутера не очень хорошо ездят по ковру или по гладкому полу. В процессе поиска других колес, я натолкнулся на колеса скутеров-внедорожников и заказал набор таких колес. Удачный выбор.

Также я начал подумывать о другой плате для процессора. Я посмотрел на сайте компании Parallax и решил, что $50 за разъем DB9, регулятор и макетную плату – это очень дорого.

Усвоенные уроки:

  • Алюминий из магазина металлических изделий все-таки слишком мягкий и поэтому его трудно обрабатывать.
  • Когда при попытке обработать магазинный алюминий у вас ломается последняя 1/8'' торцевая фреза, у поставщика они тоже закончатся.
  • Если вы хотите поиграть со звуком, светом, кнопками и прочей ерундой, то плата Activity Board – это то, что вам нужно, но для робота она не подходит.

Несколько фотографий с шага 2:

sensor-1.jpg sensor-2.jpg chassis-2.jpg motormind-1.jpg motormind-2.jpg chassis.jpg bot_platform.jpg bot_wheel.jpg

Шаг 3 . . .

Итак, теперь робот может перемещаться, самостоятельно контролируя свое движение, что дальше? На этом этапе я потратил довольно много времени, просматривая в Интернете различные датчики и варианты монтажа, чтобы решить, что лучше использовать. В то же время, мы собрали группу контактных усиков, чтобы закрепить их на шасси и дальше работать над кодом.

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

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

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

Полагая, что проблема в серводвигателях, я купил пару два двигателя Futaba 148, поскольку мне казалось, что они популярны среди роботов. Новые серводвигатели вели себя точно так же. Я отложил эту задачу в сторону и начал размышлять о том, как бы снизить энергопотребление и использовать только один аккумулятор для питания всего, поскольку аккумуляторы составляли большую часть массы робота.

На этом этапе двигатели и плата Stamp питались от 12-вольтового гелевого аккумулятора, а модули MotorMind B и серводвигатели работали от 4х сеточных аккумуляторов – они и составляли основной вес. Я решил избавиться от сеточных элементов питания, поэтому я собрал регулирующую плату, чтобы осуществлять питание контроллеров двигателя и серводвигателей.

Несмотря на сомнения многих людей, все работало хорошо от одного аккумулятора, а проблема с серводвигателями чудесным образом испарилась. Похоже, что причиной флуктуаций в серводвигателях был шум, который генерировали модули MotorMind B, питающиеся от одного с серводвигателем источника. Скорее всего, использование регулятора и фильтрации подавляет шумы.

Следующей задачей было установить аккумуляторы. Мы выбрали один гелевый аккумулятор 4 А-ч для питания, что было довольно много. Оказалось, что если положить аккумулятор на бок, то он как раз поместится в центре робота между двигателями. При этом с обеих сторон остается небольшой запас свободного места. Иногда отсутствие планирования можно заменить слепой удачей.

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

После того, как было сделано нескольких "образцов" деталей, мы, в конце концов, поняли, как определить, где надо делать V-образный надрез на клеммах. В дальнейшем две клеммы были изменены, чтобы обеспечить допуск для коннекторов аккумулятора, и вмонтированы в шасси. Электронные схемы снова были подключены к клеммам батареи, и провода были немного приведены в порядок.

Снова атаковав каталог Jameco, мы заказали и получили еще два двигателя того же типа, но с большим крутящим моментом и меньшей скоростью. После того, как мы поменяли старые двигатели и припаянные к ним провода на новые, я понял, что они были разной длины. Коробки передач были одинаковых размера и формы, но сам двигатель был примерно на 1/4''(0,625 см) длиннее. Вот блин!

Снова повезло. Новые двигатели пришлись тик в тик. Если кто-нибудь спросит, скажу, что так и было задумано.

Усвоенные уроки:

  • Тяжелый робот не может быстро остановиться.
  • Быстрые двигатели не могут двигать тяжелого робота.
  • Никакое планирование не заменит слепое везение.
  • Иногда действительно приходится разрабатывать что-то на бумаге, а не вытаскивать это из сами знаете какого места.

Несколько фотографии, которые были сделаны на 3-ем шаге:

battery-1.jpg battery-3.jpg battery-2.jpg battery-4.jpg battery-5.jpg battery-6.jpg

План Б . . .

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

Магазин Radio Shack продавал проектную плату, которая отвечала всем моим требованиям – достаточно места для размещения элементов, а также наличие большого числа дорожек питания и заземления.. Это, конечно, не так хорошо, как сделать собственную плату, но зато гораздо быстрее. Мы нашли несколько коннекторов с защёлками и разъемов в каталоге Mouser и поехали в город.

Создавая новую плату, я потратил некоторое время на обдумывание того, каким образом монтировать датчики и саму плату. Идея с разделочной доской работала хорошо, но она была непрочной и выглядела несколько по-дурацки – не говоря уже о том, что она закрывала большую часть полезного пространства на шасси.

Мы закончили работу над новой платой и для проверки установили ее на разделочную доску. Все работало хорошо и с модулями MotorMind B никаких проблем не возникало. Пока мы устанавливали датчики и кое-как делали программу, я продолжал обдумывать, каким образом установить плату. В порыве вдохновения (похоже, это была еще одна слепая удача) я обнаружил, что новая плата как раз помещается на передней стороне аккумулятора – все, что мне оставалось сделать – это придумать способ установить ее.

Этот проект создания робота был отложен в сторону, на время моей работы над роботом, который следовал по указанному пути, на базе маленького RC-автомобиля – подробности расскажу позже. Я снова собрал все вместе в конце недели и провел пятницу 13-ое очень продуктивно, устанавливая платы и датчики. По каким-то причинам пятница 13-ое всегда была для меня удачным днем.

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

Теперь все что мне надо сделать – это установить выключатель питания и разобраться с проводами, идущими от аккумулятора.

Усвоенные уроки:

  • Все шло слишком хорошо – мои измерения были точными, установочные отверстия подобраны и все работало без сучка, без задоринки.
  • Обработка на станках, особенно на фрезерном, – это на 95% настройка и измерения и только 5% реальной работы.

Несколько фотографий, сделанных во время работы над планом Б:

cpu-1.jpg planb-1.jpg planb-5.jpg planb-2.jpg planb-3.jpg planb-4.jpg

Загрузка завершена

Ну, вот он готовый продукт. Сейчас мы не собираемся вносить какие-либо значительные изменения в шасси и электронные схемы. Дальнейшее усовершенствование коснется датчиков, серводвигателей и прочих деталей по мере необходимости.

Нам осталось только соединить все детали с кусками программы, которые мы написали, тестируя двигатели, датчики и все остальное, и получить что-нибудь полезное.

Несколько фотографий готового робота:

fin-1.jpg fin-2.jpg fin-3.jpg fin-4.jpg fin-5.jpg



 


Автор конструкции: Bill Boyers и Ron Brandenburg
gale
Dallas Personal Robotics Group

Комментарии

Добавить комментарий к мобильным
Wulf [email protected]
Много тут посмотрел!Одно но. Все эти тележки прикольно, только какой от них прок, коли они только бегают и всё. Хочу понять смысл постройки бегающей тележки!!!???

Cjabn [email protected]
Очень толковый перевод. Я читал статью в подлиннике. Замечательно!