Построение Лего-роботов с использованием конструкторов Robolab.

Ю. И. Разумов


    В статье рассматривается вопросы по созданию конструкции и программного управления мобильного Lego-робота, идущего по линии. Робот построен на основе микрокомпьютера RCX Mindstorms. Также рассматривается конструкция и программное управление мобильного Lego-робота c одним электрическим микродвигателем для эффективного перемещения по оригинальной Lego-трассе, представляющей замкнутую кривую с минимальными радиусами поворота.

    LEGO роботы строятся на основе микрокомпьютера RCX, который представляет собой программируемый микропроцессорный блок с памятью, жидкокристаллическим дисплеем и инфракрасным интерфейсом, обеспечивающим связь с персональным компьютером, из которого загружается программа. Из опыта преподавания в Центре образования № 345 и Центре образования "Технологии обучения" города Москвы, школьникам вполне по плечу составить программу для разработанной ими самими конструкции LEGO-робота в среде программирования Роболаб. Конечно, возможности такого робота довольно скромны: микрокомпьютер RCX снабжен тремя портами для подключения датчиков - таких, как датчик освещенности, датчик угла поворота и тремя портами для подключения исполнительных устройств: моторов и лампочек. Тем не менее и на элементах LEGO можно собрать немало интересного. В подтверждение опишем конструкцию робота идущего по линии. На примере этой конструкции можно познакомиться и с принципами программирования LEGO-роботов.

Робот идущий по линии.
    Рассмотрим для примера вариант колёсной схемы "два ведущих сзади и одно двойное колесо спереди". Каждое ведущее колесо работает от своего мотора, расположенных симметрично. Естественно, ведущие колеса должны находиться на разных независимых осях для возможности управления по двум каналам управления.
    У робота может быть одно свободно вращающееся колесо, либо их может быть два. Колесо может стоять, как спереди, так и сзади. Если их два, надо обеспечить такое расстояние между ними, чтобы они не могли друг о друга задевать.
    Для лучшей управляемости робота, важно соотношение " расстоянние между ведущими колесами / расстояние от передних до задниx". Чем это отношение больше, тем модель легче поворачивает. С другой стороны, тем сложнее заставить ее ехать прямолинейно.
    Общий конструкторский принцип: чем меньше деталей, тем лучше. Если можно сменить две детали одной (сохранив прочность) - надо это сделать. Еще один принцип - чем меньше габариты модели, тем лучше. Тогда она получится более управляемой. Правда, здесь надо не перестараться и не проиграть в устойчивости и не заваливалась на бок.

    Проще всего собрать из балок и пластин прямоугольный плоский каркас - платформу. Размеры его должны быть таковы, чтобы поместились моторы и RСХ избранной компоновке, а спереди ось двойного колеса. Балки можно соединить непосредственно либо же с помощью штифтов (штифтами, пожалуй, прочнее.) Перекрестие балок не должно быть слишком маленьким (наверное, можно рекомендовать от половины до трети длины меньшей балки, в зависимости от нагрузки и способа крепления).
    Центр тяжести желательно располагать как можно ниже, иначе при поворотах или на горке модель может опрокинуться. На практике это значит, что как можно ниже надо поместить RС. А это значит - хорошо бы не класть его сверху на моторы. При этом RСХ желательно встраивать так, чтобы для замены батареек не пришлось разбирать всю машину. Отсюда два основных варианта: либо RСХ между моторами, либо впереди них.
    Как соединить колеса с моторами? Заманчиво насадить колесо прямо на ось мотора: и компактно, и КПД без шестеренок выше. Однако так моторы часто отваливаются от основания. Вообще Лего-моторы крепятся к основанию довольно плохо, поэтому требуется снижать эти нагрузки, направленные на выламывание мотора. Например, можно прижать моторы "спинами" друг к другу и соединить их и сверху, и снизу едиными пластинами. Еще полезно удлинить ось мотора втулкой и провести удлиняющую ось через отверстие в балке. Правда, так неминуемо возрастет ширина машины. Если RСХ помещаем перед моторами, это ещё приемлемо. Если между - уже скорее нет.
    Если не сажать колесо на ось мотора, придется передавать момент вращение с одной оси мотора на другую ось колеса. Обычно это делается с помощью имеющихся разных размеров шестеренок, хотя можно воспользоваться ременной либо цепной передачей.
    Обычно хочется, чтобы оси колес шестерёнок вращались в одной и той же балке - это гарантирует их надёжное сцепление. Но ось мотора коротка, необходимо ее удлиняй и за счет низкого размещения моторов при таком варианте уменьшается клиренс, усложняется каркас
    Пожалуй, самый распространенный вариант: непосредственно на ось мотора насаживается шестеренка, вторая - на ось (полуось) колеса. Ось колеса вставляем в одно из последних отверстий крайней из балок, образующих каркас. Моторы ставим па платформу каркаса. Так легче всего добиться компактности, простоты и нужного передаточного числа. Но мотор на каркасе нужно дополнительно укрепить.

Рисунок 2 : Описанный выше вариант -заднего моста



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


Рисунок 3. Пример переднего моста.


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

Управляемый робот с одним мотором
    Чтобы построить робот, который может проехать некую нелинейную трассу, например овал или восьмерку, желательно иметь два мотора (и, соответственно, два раздельных канала управления). Однако в принципе можно обойтись одним. Известны принципа движения "управляемого одномоторника". Первый заключается в том, что при вращении мотора в одну сторону автомобиль едет вперед, при вращении в другую - назад с поворотом. Комбинируя такие движения, можно проехать любую трассу и достичь любой точки - лишь бы дорога была не слишком узкая. Второй способ заключается в том, что при вращении мотора в одну сторону модель едет вперед-вправо, а в другую - вперед-влево. Сочетая вращение туда и обратно, можно заставить модель ехать вперед дугами, как бы в лавируя и, естественно, поворачивать в любую сторону. То есть она также может преодолеть замкнутую трассу произвольной формы.
    Какой способ лучше? Трудно сказать. Видимо, ответ могут дать соревнования, в которых участвовали бы машины обоих типов. Возможно, для каких-то трасс лучше один способ, для каких-то другой. Но для каких какой - интересно выяснить, и мы постараемся это сделать.
    Как практически реализовать такие способы, как должны быть сконструированы модели?
    Допустим, есть два ведущих колеса. Видимо, для способа №1 нужно, чтобы одно из ведущих колес при реверсе (обратном движении) выходило из зацепления с мотором. Тогда вперед они тянут оба, а назад - тянет только одно, и модель начинает ехать назад с поворотом. Как сделать, чтобы усилие на колесо в одном направлении передавалось, а в другом нет? Один из возможных способов такой. На вал мотора насаживается шестеренка Ш1, еще одна шестерня Ш2 крепится на откидном рычаге. На оси вращения рычага - шестерня ШЗ, которая зацеплена с Ш2. На ту же ось может быть насажено колесо. Ш2 просто лежит сверху на Ш1 (но не совсем сверху, а сверху-сбоку, см. рисунок). Тогда при вращении в одну сторону усилие с Ш2 на Ш1 передается, а в другую - Ш2 выдавливается вверх и вращающее усилие не принимает.


Рис. 4 Кинематическая схема привода.


    Ось вращения второго колеса можно совместить с осью мотора, или посредством дополнительных шестерен отнести в сторону. Для удобства компоновки можно использовать корончатые шестерни. Для способа №2, очевидно, нужно сделать два откидывающихся механизма, опирающихся на "моторную" Ш1 с разных сторон.
    Более подробно рассмотрим робота с одним мотором на примере конструкции представленной на фотографии ниже:
      


Рис. 5. Примеры конструкций.


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


Рис. 6.
      


Рис. 7. Храповики из деталей светло-серого цвета и двух малых шестеренок


    Здесь приведены три разные программы управления роботов:


Рис. 8. Программа №1

Робот, управляемой данной программы №1 будет двигаться прямо.



Рис. 9. При помощи этой программы робот будет двигаться прямо до того пока не будет двух или более сообщений, то при этом условии робот повернет.




Рис. 10. Движение робота за источником света.



Список литературы:
  1. RoboLab перечень оборудования
    http://mbvas.narod.ru/nomen/oborudov.htm
  2. RCX 1.0 - программируемый микрокомпьютер
    http://mbvas.narod.ru/nomen/oborud/rcx/rcx.htm
  3. LEGO - конструирование
    http://www.home-edu.ru/user/uatml/00000011/oneurok/docum/vved.htm
  4. Конструкторы LEGO DACTA в курсе информационных технологий‚ведение в робототехнику. Москва, ИНТ -2001
  5. Разовый набор Lego Dacta (книга учителя) ИНТ, 2009780RM
  6. Серворобот. Город и транспортные средства, Институт новых технологий (книга учителя)