Колодец        14.06.2019   

Робот манипулятор своими руками чертежи. «Ручное» управление OWI-манипулятором. Программа управления и пояснения к ней

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


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

Перчатка снабжена сенсорами для управления светодиодом и 5-ю моторами
передатчик на Arduino принимает сигналы сенсоров, а затем в виде команд управления по беспроводной связи отправляет их на приемник контроллера робо-руки
приемник контроллера на основе Arduino Uno получает команды и соответственно управляет робо-рукой

Особенности:

Поддержка все 5 степеней свободы (DOF) и подсветки
наличие экстренной красной кнопки которая при необходимости отключает все двигатели робо-руки во избежание поломок и повреждений
портативный модульный дизайн

Шаг 1: Компоненты


Для перчатки:

Шаг 2: Предварительная сборка


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

Сам проект содержит два сложных момента: первый — это настроить два приемника-передатчика nRF24 друг на друга для слаженного взаимодействия. Получается, что ни Nano, ни Uno не обеспечивают стабильные 3.3В для четкой работы модулей. Это решается добавлением конденсаторов 47мФ на выводы питания обоих модулей nRF24. В принципе желательно перед использованием модулей nRF24 ознакомится с их функционированием в IRQ и не-IRQ режимах, да и другими нюансами. И помогут в этом следующие ресурсы. nRF24. и nRF24 lib

И второй — довольно быстро заполняются контакты Uno, но это не удивительно ведь нужно контролировать 5-ь двигателей, подсветку, две кнопки и модуль связи. Поэтому пришлось задействовать сдвиговый регистр. Основываясь на том, что модули nRF24 используют SPI интерфейс, я решил для программирования сдвигового регистра также использовать SPI вместо функции shiftout(). И на удивление набросок кода заработал с первого раза. Вы можете проверить это по назначению контактов и рисункам.

И пусть макетная плата и перемычки станут вашими мозгодрузьями 🙂

Шаг 3: Перчатки


OWI Робо-рука имеет 6 пунктов для управления:

Светодиод подсветки расположенный Захвате
Захват
Запястье
Локоть — это часть манипулятора соединенная с Запястьем
Плечо – часть манипулятора, прикрепленная к Основе
Основа

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

Захват контролируется кнопками на среднем пальце и мизинце, то есть при сведении вместе указательного пальца и среднего захват закрывается, а при сведении мизинца и безымянного открывается.
Запястье управляется гибким сенсором на указательном пальце — сгибание пальца на половину заставляет запястье опускаться, а полное сгибание пальца подниматься.
Локоть управляется акселерометром – наклон ладони вверх или вниз заставляет локоть подниматься или опускаться соответственно.
Плечо так же контролируется акселерометром – поворот ладони вправо или влево заставляет плечо перемещаться вверх или вниз соответственно.
Основа тоже управляется акселерометром – наклон всей ладони (лицевой стороной вверх) вправо или влево заставляет поворачиваться основу в правую или левую стороны соответственно.
Подсветка включается/отключается одновременным нажатием обеих кнопок управляющих захватом.
При этом кнопки срабатывают при удержании в 1/4 секунды, чтобы избежать отклика при случайном касании.

Во время размещения компонентов самоделки на перчатке придется поработать ниткой с иголкой, а именно пришить 2 кнопки, гибкий резистор, модуль с гироскопом и акселерометром, ну и провода, идущие от всего перечисленного к штекерному мозгоразъему .

На плате со штекерным разъемом смонтированы два светодиода: зеленый – индикатор питания, а желтый – индикатор передачи данных на контроллер манипулятора.

Шаг 4: Блок передатчика


Блок передатчика состоит из Arduino Nano, модуля беспроводной связи nRF24, штекерного разъема для ленточного кабеля и трех резисторов: два согласующих резистора по 10кОм для кнопок управления захватом на перчатке и делитель напряжения 20кОм для гибкого сенсора, отвечающего за управление запястьем.

Вся электронные компоненты спаяны на монтажной плате, при этом обратите внимание как модуль nRF24 «висит» над Nano. Я думал, что такое мозгоположение будет вызывать помехи, но нет, все нормально работает.

9В-я батарейка придает браслету громоздкости, но я не хотел «возиться» с литиевым аккумулятором, может быть позже.

Внимание!! Перед пайкой ознакомьтесь с распиновкой контактов!

Шаг 5: Контроллер манипулятора


Основа контроллера робо-руки — Arduino Uno, получающий посредством модулей беспроводной связи nRF24 сигналы от перчатки, и на их основе затем с помощью микросхем 3 L293D управляющий OWI манипулятором.

Так как почти все контакты Uno были задействованы, то мозгопровода, идущие к ним, едва умещаются в корпусе контроллера!

Согласно концепции мозгоподелки , в начале контроллер находится в выключенном состоянии (как если нажата экстренная красная кнопка), это дает возможность надеть перчатку и подготовиться к управлению. Когда оператор готов, нажимается зеленая кнопка и устанавливается связь между перчаткой и контроллером манипулятора (начинают светиться желтый светодиод на перчатке и красный на контроллере).

Подключение OWI

Робо-рука и контроллер соединяются ленточным кабелем с 14 дорожками, см. рисунок.

Светодиоды припаиваются к заземлению (-) и контакту а0 Arduino через резистор 220 Ом.
Все провода от двигателей подсоединяются к микросхеме L293D к выводам 3/6 или 11/14 (+/- соответственно). Каждая L293D поддерживает два двигателя, следовательно, две пары контактов.
Провода питания OWI расположены по краям 7-контактного штекера (левая крайний +6В и правый крайний GND) на задней желтой крышке, см. фото. Эта пара подсоединена к контакту 8 (+) и контактам 4,5,12,13 (GND) на всех трех микросхемах L293D.

Внимание!! Обязательно ознакомьтесь с распиновкой контактов в следующем шаге!

Шаг 6: Назначение контактов (распиновка)


5В — 5В для платы акселерометра, кнопок и гибкого сенсора
а0 – вход гибкого сенсора
а1 – желтый светодиод
а4 – SDA к акселерометру
а5 – SCL к акселерометру
d02 – прерывающий контакт модуля nRF24L01 (контакт 8)
d03 – вход кнопки открытия захвата
d04 – вход кнопки сжатия захвата
d09 — SPI CSN к модулю NRF24L01 (контакт 4)
d10 — SPI CS к модулю NRF24L01 (контакт 3)
d11 — SPI MOSI к модулю NRF24L01 (контакт 6)

d13 — SPI SCK к модулюNRF24L01 (контакт 5)
Vin – «+9В»
GND – масса, заземление

3,3V — 3,3В для модуля NRF24L01 (контакт 2)
5V — 5В к кнопкам
Vin – «+9В»
GND – масса, заземление
а0 – «+» светодиода на запястье
а1 — SPI SS контакт для выбора сдвига регистра – к контакту 12 на сдвиговом регистре
а2 – вход красной кнопки
а3 – вход зеленой кнопки
а4 – движение основы вправо — контакт 15 на L293D
а5 – светодиод
d02 — IRQ вход модуля nRF24L01 (контакт 8)
d03 – включение двигателя основы — контакт 1 или 9 на L293D
d04 – движение основы влево — контакт 10 на соответствующей L293D
d05 – включение двигателя плеча — контакт 1 или 9 на L293D
d06 — включение двигателя локтя — контакт 1 или 9 на L293D
D07 — SPI CSN к модулю NRF24L01 (контакт 4)
d08 — SPI CS к модулю NRF24L01 (вывод 3)
d09 – включение двигателя запястья — контакт 1 или 9 на L293D
d10 – включение двигателя захвата — контакт 1 или 9 на L293D
d11 — SPI MOSI к модулю NRF24L01 (контакт 6) и контакт 14 на сдвиговом регистре
d12 — SPI MISO к модулю NRF24L01 (контакт 7)
d13 — SPI SCK к модулю NRF24L01 (контакт 5) и контакт 11 на сдвиговом регистре

Шаг 7: Связь


Перчатка самоделки посылает 2 байта данных в контроллер манипулятора 10 раз в секунду, или когда получен сигнал от одного из сенсоров. Этих 2 байтов достаточно для 6 пунктов контроля, потому что нужно всего лишь послать:

Включить/выключить подсветку (1 бит) — я на самом деле использую 2 бита совместно с двигателями, но достаточно одного.
выключить/ вправо / влево для всех 5 двигателей – по 2 бита на каждый, то есть всего 10 бит

Получается что 11 или 12 бит достаточно.

Кодировка направлений:
Выкл: 00
Вправо: 01
Влево: 10

По битам управляющий сигнал выглядит так:

Байт 1 может быть удобно направлен непосредственно в регистр сдвига, так как это контроль вправо/влево двигателей с 1 по 4.

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

Шаг 8: Код

Код для перчаток содержит участки из следующих библиотек:

Добавлены еще два байта в структуре связи для отправки запрошенной скорости двигателей Запястья, Локтя, Плеча и Основы, которая определяется 5-битным значением (0..31) пропорционально угловому положению перчатки. Контроллер манипулятора распределяет полученное значение (0..31) на ШИМ значения соответственно для каждого мозгодвигателя . Это обеспечивает согласованное управление скорости оператора, и более точное манипулирование робо-рукой.

Новый набор жестов поделки :

  • Подсветка: Кнопка на среднем пальце – Включение, на мизинце — Выключение.
  • Гибкий сенсор управляет Захватом – полусогнутый палец – Открыть, полностью согнутый – Закрыть.
  • Запястье контролируется отклонением ладони относительно горизонтали Вверх и Вниз соответственно движению, и чем больше отклонение, тем больше скорость.
  • Локоть управляется отклонением ладони относительно горизонтали Вправо и Влево соответственно. Чем больше отклонение, тем больше скорость.
  • Плечо контролируется вращением ладони Вправо и Влево относительно вытянутой ладони лицевой стороной вверх. Вращение ладони относительно оси локтя, вызывает помахивание робо-рукой.
  • Основа контролируется также как и Плечо, но с положением ладони лицевой стороной вниз.

Шаг 9: Что же еще можно доработать?

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

Градиентное увеличение скорости: каждое движение двигателя начинается на минимальной скорости, которая затем постепенно увеличивается с каждой секундой, пока не достигнет необходимого максимума. Это позволит более точно управлять каждым двигателем, особенно двигателями Захвата и Запястья.
Более быстрое торможение: при получении команды остановки от контроллера двигатель еще меняет свое положение в течение примерно 50мс, поэтому «ломка» движения обеспечит более четкое управление.
А что еще?

Возможно, в дальнейшем и более сложные жесты можно будет применить для управления, или даже несколько жестов одновременно.

Но это в будущем, а сейчас удачи в вашем творчестве и надеюсь мое мозгоруководство было вам полезно!

Общие сведения

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

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

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

Как джойстик сделать

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

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

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

Итак, мы видим, что весь узел состоит из трех основных узлов: узла крена, тангажа и качалки.

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

Чтобы воздействовать на качалку болт крепления трубки просверлен в центре, и в него вкручен болт с резьбой М3 без шляпки. Этот болт передает момент на качалку.

Накладки я делал из винипласта толщиной 10 мм. Далее сверлил в центре отверстие, и запрессовывал в нем подшипник (силой вдавливал. Держится превосходно). Сами подшипники извлекаются из 3.5 кулера (бловера), если он на подшипниках качения.

Вот снимок механики:

Сделав узел механики (на это может уйти несколько месяцев), нужно сделать корпус. Тут уж вам полный простор. Я для этого использую винипласт. Применяется он на промышленном производстве при монтаже электрических узлов. Толщина варьируется от 3 мм и до неизвестности. Самый толстый я видел 30 мм. Нам нужен толщиной не менее 8 мм для запаса прочности.

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

Берете отпиленный кусок винипласта нужного размера, намечаете карандашом линии сгибов. Теперь ищете любой электроприбор, который имеет поверхность накаливания порядка 400 и выше градусов (желательно чтобы при прикосновении кусочка винипласта к поверхности нагрева винипласт слегка плавился - тогда температура сойдет). Идеальный вариант - прут тэна, диаметром 8 - 15 мм. У меня есть неопознанный кулинарный электроприбор, у которого есть такая поверхность - круглый прут, который раскаливается до красна. Я использовал его. Держим некоторое время винипласт над этим прутом, чтобы от намеченной полоски карандаша до прута было минимальное расстояние, не позволяющее материалу плавиться. Когда отрезок винипласта достаточно прогревается, он становится эластичным, и легко сгибается на требуемый угол. В нашем случае это 90 градусов. Потом, выдерживая руками угол, охлаждаем сгиб под струей холодной воды из водопроводного крана, винипласт застывает, и это навечно:-). Также поступаем с противоположной поверхностью. Осталось выпилить из винипласта две боковые накладки, плотно подогнать их так, чтобы они без зазоров заходили вовнутрь, и склеить эпоксидной смолой. Далее делаем в верхней поверхности новоиспеченного корпуса требуемое отверстие для штока РУС, выпиливаем нижнюю крышку. Должно получиться примерно так:

Потом монтируем поворотный узел к корпусу, и сам джойстик почти готов.

Если конструкцию покрасить, и дополнить большим пыльником, то выйдет примерно это:

Как видите джойстик напольный. Сама ручка с военного Ми-8 (такие ставились и на Ми-24).

Но почему почти готов? А потому что нет педалей...

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

Технология проста. Берем нужный кусок текстолита, нагреваем ровно посередине, и перегибаем на острый угол (более 90 градусов). Угол нужен такой, чтобы торец педали в среднем положении был на минимальном расстоянии от поверхности, а в крайних положениях расстояние от торца до поверхности было равным. Далее делаем в вертикальной поверхности две вертикальные прорези на требуемый ход педалей. Потом берем две небольшие дверные петли, выпиливаем по их ширине и требуемой длине сами педали, и соединяем петли, педали и остов.

Потом делаем стальные направляющие, прикручиваем их к педалям. Стальные направляющие подвергаются токарной обработке - в нужных местах прослабляются, чтобы с них не спадала резинка (резинка залита синим), а в нужных утолщаются, поскольку сквозь эту толщину пойдет струна (на рисунке залита красным), обеспечивающая обратную связь педалей. Сама струна должна быть прочна и тонка. Я использовал для ее роли прочную матерчатую изоляцию электрического кабеля. Сойдет и бельевая капроновая веревка. Эту веревку нужно протянуть через два блока. Желательно чтобы эти блоки были собраны на шариковых подшипниках, и имели канавки, чтобы струна не спадала. Блоки крепятся на болтах диаметром 6 мм. Меньше нельзя, поскольку это несущий узел, работать будем ногами, и нужна прочность.

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

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

...прошло несколько месяцев...

Вот и пришел тот час, когда я могу приступить к описанию новых педалей.

Изрядно полетав (больше года) на педалетках (так я называю педали вышеприведенного типа, их еще можно обозвать автопедалями), я осознал, что созрел для повышения уровня реализма:-) Педалетки вышли в отставку, и были подарены товарищу.

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

Давайте определимся с сущностью хардкорных авиапедалей.

Хардкорные авиапедали:

  1. Работают по принципу обратной связи (давишь одну педаль от себя - вторая идет к тебе);
  2. Сами педали при нажатии не меняют горизонтальный угол установки;
  3. Расстояние между педалями должно соответствовать аналогичному расстоянию в реальных самолетах;
  4. Педали подпружинены, и имеют отчетливо ощущаемую ногами, нейтральную точку позиционирования.

Для того, чтобы такие педали работали, нужно:

  1. Большая площадь контакта основания педалей с полом для исключения опрокидывания конструкции;
  2. Исключить возможность скольжения основания педалей по полу;

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

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

Сам узел можно изготовить вручную, а можно заказать у токаря/фрезеровщика. В любом случае придется купить два подшипника, внешним диаметром 40 мм.

Сначала я сделал узел сам, из подручных материалов, которые нашел у себя в коробках с хламом. Это было достаточно затруднительно, поскольку невозможно подобрать болт с диаметром резьбы, соответствующему внутреннему диаметру подшипников, что влечет за собой утомительный процесс центровки подшипников на болте. Также непросто в домашних условиях просверлить болт М14 насквозь вдоль. Однако все делается. Сделав, я столкнулся с одной проблемой. Дело в том, что педали я подпаивал к микросхеме трастмастера TOP GUN FOX PRO 2 USB. Опрос резистора «педальной» оси в этом джое рассчитан на жесткую фиксацию полярности резистора. Иными словами - педальный резюк грамотно опрашивается только в том случае, если распайка крайних ног резюка идентична оригинальной. Однако, если резистор расположить под конструкцией (стаканом стойки педалей), то для достижения соответствия воздействия на педали и реакции руля направления в игре, нужно перепаять крайние контакты на резисторе. После перепайки опрос резистора искажается, появляется неравномерность в управлении, постоянно сбивается центровка.

Еще одной проблемой, которую не удалось решить с ходу, оказалась центровка педалей. Я попробовал два варианта. Реализуя первый, я попытался захватить пружинами саму штангу педалей с двух сторон. Однако это был неверный путь, поскольку пружины были тугие, и одна из сторон педалей всегда упиралась в пружину, которая была уже сжата. Во втором случае я просверлил штангу по центру горизонтально, и приделал туда болт, на который накинул пружину. Этот вариант оказался неплохим, разве что не обеспечивал точно ощущаемой нейтральной зоны. Как позже выяснилось, примененный для центровки болт диаметром 6 мм оказался недостаточно прочным, и подгибался.

Также веселая история произошла с ограничителями хода педалей. Я изначально задумал сделать ограничители, и потратил немало времени на их монтаж. Там тоже были свои варианты, свои ошибки и единственно-возможное решение. Однако, когда я однажды снял ограничители и попробовал педали без них, я пришел к выводу о ненужности ограничителей. Это обусловлено тем, что если подпружинить педали в достаточной степени, вывернуть их на критический для резистора угол просто невозможно, применяя разумные усилия на педалях - пружина не дает вывернуть больше, и начинает двигаться вся конструкция. Иными словами, чтобы своротить голову резюку, нужно специально задаться этой целью, и упереться в одну педаль всей массой. Однако в этом случае можно легко сломать и ограничитель, и всю систему подпружинивания. А раз так, то ограничители не нужны. Выглядело все так:

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

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

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

Почему я так категоричен в этом вопросе? Да потому что совершенно не вижу причин для появления отдельного РУДа рядом с настольным джоем. Что может выступить причиной? Необходимость в расширении функциональности? Смешно, поскольку основания современных джойстиков нашпигованы кнопками, расположенными достаточно удобно. А если не хватает, можно ненадолго убрать руку с основания и ткнуть перстом в клавиатуру, расположенную в паре сантиметров от основания джойстика. Кроме того, оперировать в бою большим пальцем левой руки куда сподручнее, нежели шуровать всей конечностью туды-сюды на отдельном руде. Проверено. Но может это благородное стремление к повышению реализма?? Тем более смешно, поскольку реализм в первую очередь заключен в авиапедалях, во вторую очередь в напольной РУС, и только в третью очередь - в отдельном РУД. Используя метафору, можно выразиться, что делать настольный РУД при настольном РУС это все равно, что «проапгрейдить» немощный старый компьютер покупкой нового «пацанского» корпуса баксов за 300:-) Однако это мое мнение, оно субъективно. Может кому-то важнее корпус.

Надеюсь Вы определились с необходимостью для вас отдельного РУД. Если жизнь Ваша без отдельного РУД представляется Вам серой и мрачной, то продолжаем прения:-)

Итак, каковы основные требования к РУД?

  1. Плавный ход без рывков, неравномерности в перемещении;
  2. Тугой ход. Тугой настолько, чтобы РУД удерживался в том положении, в котором Вы его отпустили, и не перемещался от колебаний эфира:-);
  3. Достаточный вес и размер основания, чтобы при манипуляциях РУД основание РУД не ерзало по столу (стулу);
  4. Удобная ручка;
  5. Достаточная амплитуда перемещения РУД.

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

Начнем, по традиции с блока механики.

Первым вопросом тут будет вариант базового крепления узла механики. Возможны следующие варианты:

  1. Верхнее крепление;
  2. Нижнее крепление;
  3. Боковое крепление.

Смотрим на рисунке:

Каждый вариант имеет свои плюсы и минусы.

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

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

Третий вариант обладает всеми плюсами второго (если механизм крепить к нижней крышке). Единственный его крупный минус - необходимость изготавливать ограничители движения РУД (в первых вариантах амплитуда движения РУД ограничивается величиной прорези в корпусе), что касается мелкого минуса, то он заключается в том, что выглядит 2 вариант менее основательно, нежели первые два. Да, чуть не забыл - плюс еще в том, что нет прорези на верхней панели, и грязюка в корпус не попадает.

Я избрал третий вариант. Причина в том, что у меня вышел весь материал для изготовления нормального корпуса. Когда достану материал переделаю по варианту 2. А Вы решайте сами. Как говорится, исходя из способностей и потребностей:-)

Да, кстати, возможен еще один вариант, а именно:

Данный вариант предпочтительней для любителей «ретро»:-), он принципиально похож на РУД Як-3. Однако данная схема имеет один существенный минус - в рукоятках затруднительно разместить кнопки и дополнительные оси. И уж тем более сложно этими осями и кнопками пользоваться. Налицо ограниченная функциональность.

В общем ладно. С этим вроде закончили, выбор делать Вам, а я немножко его облегчил, поскольку указал на плюсы и минусы. Умываю руки:-)

Теперь перейдем к рассмотрению непосредственно блока механики РУД. Потребуются два шариковых подшипника внутренним диаметром 7 мм. Если Вы избрали нижнюю схему, то, соответственно, четыре подшипника. Также советую обзавестись уголком с гранями 70 мм, либо просто пластиной стали, толщиной не менее 5 мм (в этом случае придется при реализации верхней схемы № 3 крепить механику к крышке). Смотрим рисунок, вид сбоку:

Как видно на рисунке, на болт с резьбой М6 надет шток РУД, далее надета металлическая трубка (желательно чтобы ее внутренний диаметр позволял сесть на болт впритирку) длиной 10 мм, потом идет подшипник, снова трубка, но чуть подлиннее (20-30 мм), опять подшипник, и все это накрепко затянуто гайкой. Конец болта предварительно обработан на наждаке, чтобы его диаметр был 3-4 мм.

После сборки системы, на металлической пластине просверливаются четыре отверстия, и к пластине с помощью хомутов крепятся подшипники. Это видно на следующем рисунке:

Устройство тормозящей системы, думаю, очевидно. Сила торможения регулируется затяжкой гайки на шпильке. В качестве тормозящей прокладки я избрал полоски кожи (замши), поскольку кожа не крошится как резина и не замусоривает механизм. Тормоз действует достаточно долго, и не ослабляется.

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

Шток РУД можно сделать как из трубки (стального прута), так и из пластины. Я использовал полоску текстолита, толщиной 8мм, и шириной приблизительно 40 мм. Слегка изогнул ее на конце, и прикрепил к изогнутому концу ручку.

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

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

Напоследок пару слов о непосредственно ручке РУД. Ее можно сделать по-разному. Руководствуйтесь собственными пожеланиями. Я избрал для ручки полый пластмассовый стакан и закручивающейся крышкой. Полый потому, что в нем я разместил кнопки и резистор управления шагом винта. Как это сделать посмотрите рисунок:

Итак, ручка руда - это такой «стакан» из полупрозрачной, белой пластмассы с толстыми стенками. Сей стакан я обнаружил случайно. В нем я у дома сверла хранил:-) Стакан сделан как конус, и в широкой части имеет резьбу, на которую накручивается крышка. Эту крышку я прикрепил (четырьмя болтами М4) к толстой полосе изогнутого текстолита, сделал отверстие чтобы пропустить многожильный провод. На крышку накручивается стакан - вот и весь руд.

В верхней (глухой) части стакан просверлен, и в него вделан резюк (отечественный, 150 кОм, подпаян вместо трастмастеровского к плате. У отечественного большая амплитуда поворота опрашивается, а у родного мизерный угол опроса). Далее на глухую часть с внешней стороны крепится (тремя болтами М4) самодельная шайба из толстого текстолита, призвание которой - скрыть гайку, крепящую резюк к стакану, и убрать зазор между маховичком резистора и торцом стакана. На шток резюка одет маховичок от узла фотоувеличителя, который (счастливое совпадение) подходит по диаметру к стакану. Вживую он выглядит так:

Вот как на нем лежит рука:

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

Kelt (makkov at mail dot ru )

Всем привет!
Пару лет назад на kickstarter появился очень занятный проект от uFactory - настольная робо-рука uArm . Они обещали со временем сделать проект открытым, но я не мог ждать и занялся реверс-инжинирингом по фотографиям.
За эти годы я сделал четыре версии своего виденья этого манипулятора и в итоге разработал вот такую конструкцию:
Это робо-рука с интегрированным контроллером, приводимая в движение пятью сервпоприводами. Основное ее достоинство в том, что все детали либо можно купить, либо дешево и быстро вырязать из оргстекла лазером.
Так как в качестве источника вдохновения я брал open sorce - проект, то всеми своими результатми делюсь полностью. Вы сможете скачать все исходники по ссылкам в конце статьи и, при желании, собрать такую же (все ссылки в конце статьи).

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

Итак, перейдем к описанию.
Технические характеристики

  1. Высота: 300мм.
  2. Рабочая зона (при полностью вытянутом манипуляторе): от 140мм до 300мм вокруг основания
  3. Максимальная грузоподъемность на вытянутой руке, не менее: 200г
  4. Потребляемый ток, не более: 6А
Также мне хочется отметить некоторые особенности конструкции:
  1. Подшипники во всех подвижных частях манипулятора. Всего их одинадцать: 10 штук на вал 3мм и один на вал 30мм.
  2. Простота сборки. Я очень много внимания уделил тому, чтобы была такая последовательность сборки манипулятора при которой все детали прикручивать предельно удобно. Особенно сложно было сделать это для узлов мощных сервоприводов в основании.
  3. Все мощные сервоприводы расположены в основании. То есть "нижние" сервоприводы не таскают "верхние".
  4. За счет параллельных шарниров инструмент всегда остается параллелен или перпендикулярен земле.
  5. Положение манипулятора можно менять на 90 градусов.
  6. Готовое Arduino-совместимое программное обеспечение. Правильно собранная рука может управляться мышкой, а по примерам кода можно составить свои алгоритмы движения
Описание конструкции
Все детали манипулятора режутся из оргстекла толщиной 3 и 5мм:

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

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

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

Управляется все Arduino-совместимой платой и шилдом для нее:

Сборка
Чтобы собрать манипулятор потребуется около двух часов и куча крепежа. Сам процесс сборки я офмил в виде инструкции в фотографиях (осторожно, траффик!) с подробными комментариями по каждой операции. Также я сделал подробную 3D-модель в простой и бесплатной программе SketchUp. Так что всегда можно повертеть ее перед глазами и посмотреть непонятные места:


Электроника и программирование
Я сделал целый шилд, на котором установил, помимо разъемов сервоприводов и питания, переменные резисторы. Для удобства отладки. На самом деле достаточно при помощи макетки подвести сигналы к двигателям. Но у меня в итоге получился вот такой шилд, который (так уж сложилось) я заказал на заводе:

Вообще я сделал три разные программы под Arduino. Одна для управления с компьютера, одна для работы в демо-режиме и одна для управления кнопками и переменными резисторами. Самая интересная из них, конечно, первая. Я не буду приводить здесь код целиком - он доступен в онлайн .
Для управления необходимо скачать программу для компьютера. После ее запуска мышь переходит в режим управления рукой. Движение отвечает за перемещение по XY, колесико изменяет высоту, ЛКМ/ПКМ - захват, ПКМ+колесико - поворот манипулятора. И это на самом деле удобно. Это было на видео в начале статьи.
Исходники проекта

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

Данный товар представлен в виде набора для сборки. Включает в себя следующие части:

  • набор деталей из прозрачного акрила для сборки механического манипулятора;
  • 4 сервопривода;
  • плата управления, на которой расположен микроконтроллер Arduino Pro micro и графический дисплей Nokia 5110;
  • плата джойстиков, содержащая два двухкоординатных аналоговых джойстика;
  • USB кабель питания.


Перед сборкой механического манипулятора необходимо произвести калибровку сервоприводов. Для калибровки будем использовать контроллер Arduino. Подсоединяем сервоприводы к плате Arduino (необходим внешний источник питания 5-6В 2А).

Servo middle, left, right, claw ; // создание 4 объектов Servo

Void setup()
{
Serial.begin(9600);
middle.attach(11); // присоединяет серво на контакт 11 на вращение платформы
left.attach(10); // присоединяет серво на контакт 10 на левое плечо
right.attach(9); // присоединяет серво на контакт 11 на правое плечо
claw.attach(6); // присоединяет серво на контакт 6 claw (захват)
}

Void loop()
{
// устанавливает позицию сервопривода по величине(в градусах)
middle.write(90);
left.write(90);
right.write(90);
claw.write(25);
delay(300);
}
Используя маркер, сделайте линию через корпус серводвигателя и шпиндель. Подключите пластмассовую качалку из комплекта к сервоприводу, как показано ниже с помощью небольшого винта из комплекта креплений к сервоприводу. Мы будем использовать их в этом положении при сборке механической части MeArm. Будьте осторожны, чтобы не переместить положение шпинделя.


Теперь можно производить сборку механического манипулятора.
Возьмём основание и прикрепим ножки к её углам. Затем установим четыре 20 мм болта и накрутим на них гайки (половину от общей длины).

Теперь крепим центральный сервопривод двумя 8-мм болтами к маленькой пластине, и получившуюся конструкцию крепим к основанию с помощью 20 мм болтов.

Собираем левую секцию конструкции.

Собираем правую секцию конструкции.

Теперь необходимо соединить левую и правую секции. Сначала леую к переходной пластине

Потом правую, и получаем

Подсоединяем конструкцию к платформе

И собираем "клешню"

Крепим "клешню"

Для сборки можно использовать следующее руководство (на англ. языке) или руководство по сборке подобного манипулятора (на русском).

Схема расположения выводов

Теперь можно приступать к написанию Arduino кода. Для управления манипуляторм, наряду с возможностью управления управления с помощью джойстика, было бы неплохо направлять манипулятор в какую-то определенную точку декартовых координат (x, y, z). Есть соответствующая библиотека, которую можно скачать с github - https://github.com/mimeindustries/MeArm/tree/master/Code/Arduino/BobStonesArduinoCode .
Координаты измеряются в мм от центра вращения. Исходное положение находится в точке (0, 100, 50), то есть 100 мм вперед от основания и 50 мм от земли.
Пример использования библиотеки для установки манипулятора в определенной точке декартовых координат:

#include "meArm.h"
#include

Void setup() {
arm.begin(11, 10, 9, 6);
arm.openGripper();
}

Void loop() {
// вверх и влево
arm.gotoPoint(-80,100,140);
// захватить
arm.closeGripper();
// вниз, вред и вправо
arm.gotoPoint(70,200,10);
// отпустить захват
arm.openGripper();
// вернуться вт начальную точку
arm.gotoPoint(0,100,50);
}

Методы класса meArm:

void begin (int pinBase , int pinShoulder , int pinElbow , int pinGripper ) - запуск meArm, указываются пины подключения для сервоприводов middle, left, right, claw. Необходимо вызвать в setup();
void openGripper () - открыть захват;
void closeGripper () - захватить;
void gotoPoint (float x , float y , float z ) - переместить манипулятор в позицию декартовых координат (x, y, z);
float getX () - текущая координата X;
float getY () - текущая координата Y;
float getZ () - текущая координата Z.

Руководство по сборке (англ.)

Данный проект представляет собой многоуровневую модульную задачу. Первый этап проекта – сборка модуля роботизованной руки-манипулятора, поставляемой в виде набора деталей. Вторым этапом задачи будет сборка интерфейса IBM PC также из набора деталей. Наконец, третий этап задачи представляет собой создание модуля голосового управления.

Манипулятором робота можно управлять вручную с помощью ручного пульта управления, входящего в комплект набора. Рукой робота можно также управлять либо через собранный из набора интерфейс IBM PC, либо используя модуль голосового управления. Набор интерфейса IBM PC позволяет управлять и программировать действия робота через рабочий компьютер IBM PC. Устройство голосового управления позволит вам управлять рукой робота с помощью голосовых команд.

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

Интерфейс PC позволит вам с помощью персонального компьютера запрограммировать руку-манипулятор на цепь автоматизированных действий или «оживить» ее. Существует также опция, в которой вы можете управлять рукой в интерактивном режиме, используя либо ручной контроллер, либо программу под Windows 95/98. «Оживление» руки представляет собой «развлекательную» часть цепочки запрограммированных автоматизированных действий. Например, если вы наденете на руку-манипцулятор детскую перчаточную куклу и запрограммируете устройство на показ небольшого шоу, то вы запрограммируете «оживление» электронной куклы. Программирование автоматизированных действий находит широкое применение в промышленности и индустрии развлечений.

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

Итак, как мы видим, рука-манипулятор робота выполняет много полезных функций и может служить идеальным инструментом для изучения различных процессов. Однако создание роботизованной руки-манипулятора с «нуля» представляет собой сложную задачу. Гораздо проще собрать руку из деталей готового набора. Компания OWI продает достаточно хорошие наборы руки-манипулятора, которые можно приобрести у многих дистрибьюторов электронных устройств (см. список деталей в конце этой главы). С помощью интерфейса можно подключить собранную руку-манипулятор к порту принтера рабочего компьютера. В качестве рабочего компьютера можно использовать машину серии IBM PC или совместимую, которая поддерживает DOS или Windows 95/98.

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

Программирование цепочки автоматизированных действий также не составляет особого труда. Сперва щелкните по клавише Program, чтобы перейти в программную моду. В этой моде рука функционирует точно так же, как это было описано выше, но при этом в дополнение каждая функция и время ее действия фиксируются в script-файле. Script-файл может содержать до 99 различных функций, включая паузы. Сам script-файл может быть повторно воспроизведен 99 раз. Запись различных script-файлов позволяет производить эксперименты с управляемой компьютером последовательностью автоматизированных действий и «оживлению» руки. Работа с программой под Windows 95/98 более детально описана ниже. Программа под Windows включена в набор интерфейса роботизованной руки-манипулятора или может быть бесплатно загружена из Интернета http://www.imagesco.com .

В дополнение к программе Windows рукой можно управлять, используя BASIC или QBASIC. Программа уровня DOS содержится на дискетах, включенных в комплект набора интерфейса. Однако DOS программа позволяет осуществлять управление только в интерактивном режиме с использованием клавиатуры (см. распечатку BASIC программы на одной из дискет). Программа уровня DOS не позволяет создавать script-файлы. Однако если есть опыт программирования на BASIC, то последовательность движений руки-манипулятора может быть запрограммирована аналогично работе script-файла, используемого в программе под Windows. Последовательность движений может повторяться, как это сделано во многих «одушевленных» роботах.

Роботизованная рука-манипулятор

Рука-манипулятор (см. рис. 15.1) имеет три степени свободы движения. Локтевое сочленение может перемещаться вертикально вверх-вниз по дуге примерно 135°. Плечевой «сустав» перемещает захват вперед и назад по дуге примерно 120°. Рука может поворачиваться на основании по часовой стрелке или против часовой стрелки на угол примерно 350°. Захват руки робота может брать и удерживать объекты до 5 см в диаметре и поворачиваться вокруг в кистевом сочленении примерно на 340°.

Рис. 15.1. Кинематическая схема движений и поворотов руки-робота


Для приведения руки в движение компания OWI Robotic Arm Trainer использовала пять миниатюрных двигателей постоянного тока. Двигатели обеспечивают управление рукой при помощи проводов. Такое «проводное» управление означает, что каждая функция движения робота (т. е. работа соответствующего двигателя) управляется отдельными проводами (подачей напряжения). Каждый из пяти двигателей постоянного тока управляет своим движением руки-манипулятора. Управление по проводам позволяет сделать блок контроллера руки, непосредственно реагирующий на электрические сигналы. Это упрощает схему интерфейса руки робота, который подключается к порту принтера.

Рука изготовлена из легкого пластика. Большинство деталей, несущих основную нагрузку, также выполнены из пластика. Двигатели постоянного тока, использованные в конструкции руки, представляют собой миниатюрные высокооборотные двигатели с низким крутящим моментом. Для увеличения крутящего момента каждый мотор соединен с редуктором. Двигатели вместе с редукторами установлены внутри конструкции руки-манипулятора. Хотя редуктор увеличивает крутящий момент, рука робота не может поднять или нести достаточно тяжелые предметы. Рекомендуемый максимально допустимый вес при поднятии составляет 130 г.

Набор для изготовления руки робота и его компоненты представлены на рисунках 15.2 и 15.3.


Рис. 15.2. Набор для изготовления руки-робота



Рис. 15.3. Редуктор перед сборкой

Принцип управления двигателями

Для того чтобы понять принцип работы управления по проводам, посмотрим, как цифровой сигнал управляет работой отдельного двигателя постоянного тока. Для управления двигателем требуются два комплементарных транзистора. Один транзистор имеет проводимость PNP типа, другой – соответственно проводимость NPN типа. Каждый транзистор работает как электронный ключ, управляя движением тока, протекающего через двигатель постоянного тока. Направления движения тока, управляемые каждым из транзисторов, противоположны. Направление тока определяет направление вращения двигателя соответственно по часовой стрелке или против часовой стрелки. На рис. 15.4 приведена тестовая схема, которую вы можете собрать перед изготовлением интерфейса. Обратите внимание, что когда оба транзистора заперты, то двигатель выключен. В каждый момент времени должен быть включен только один транзистор. Если в какой-то момент оба транзистора случайно окажутся открытыми, то это приведет к короткому замыканию. Каждый двигатель управляется двумя транзисторами интерфейса, работающими аналогичным образом.


Рис. 15.4. Схема устройства проверки

Конструкция интерфейса для PC

Схема PC интерфейса приведена на рис. 15.5. В набор деталей PC интерфейса входит печатная плата, расположение деталей на которой показано на рис. 15.6.


Рис. 15.5. Принципиальная схема интерфейса РС



Рис. 15.6. Схема расположения деталей РС интерфейса


Прежде всего нужно определить сторону монтажа печатной платы. На стороне монтажа прочерчены белые линии, обозначающие резисторы, транзисторы, диоды, ИС и разъем DB25. Все детали вставляются в плату с монтажной стороны.

Общее указание: после пайки детали к проводникам печатной платы необходимо удалить излишне длинные выводы со стороны печати. Очень удобно следовать определенной последовательности при монтаже деталей. Сперва смонтируйте резисторы 100 кОм (цветная маркировка колец: коричневое, черное, желтое, золотое или серебряное), которые обозначены R1-R10. Затем смонтируйте 5 диодов D1-D5, убедившись, что черная полоска на диодах находится напротив разъема DB25, как это показано белыми линиями, нанесенными на монтажную сторону печатной платы. Затем смонтируйте резисторы 15 кОм (цветная маркировка, коричневый, зеленый, оранжевый, золотой или серебряный), обозначенные R11 и R13. В позиции R12 припаяйте к плате красный светодиод. Анод светодиода соответствует отверстию под R12, обозначенному знаком +. Затем смонтируйте 14– и 20-контактные панельки под ИС U1 и U2. Смонтируйте и впаяйте разъем DB25 уголкового типа. Не пытайтесь вставлять ножки разъема в плату с излишним усилием, здесь требуется исключительно точность. При необходимости осторожно покачайте разъем, стараясь не погнуть ножки выводов. Закрепите движковый переключатель и регулятор напряжения типа 7805. Отрежьте четыре куска провода необходимой длины и припаяйте к верхней части переключателя. Придерживайтесь расположения проводов, как показано на рисунке. Вставьте и впаяйте транзисторы TIP 120 и TIP 125. Наконец, впаяйте восьмиконтактный цокольный разъем и соединительный 75 миллиметровый кабель. Цоколь монтируется так, что наиболее длинные выводы смотрят вверх. Вставьте две ИС – 74LS373 и 74LS164 – в соответствующие панельки. Убедитесь, что положение ключа ИС на ее крышке совпадает с ключом, помеченным белыми линиями на печатной плате. Вы могли заметить, что на плате остались места под дополнительные детали. Это место предназначено для сетевого адаптера. На рис. 15.7 показана фотография готового интерфейса со стороны монтажа.


Рис. 15.7. РС интерфейс в сборе. Вид сверху

Принцип работы интерфейса

Рука-манипулятор имеет пять двигателей постоянного тока. Соответственно нам потребуются 10 шин входа/выхода для управления каждым двигателем, включая направление вращения. Параллельный (принтерный) порт IBM PC и совместимых машин содержит только восемь шин ввода/вывода. Для увеличения числа шин управления в интерфейсе руки робота используется ИС 74LS164, которая является преобразователем последовательного кода в параллельный (SIPO). При использовании всего двух шин параллельного порта D0 и D1, по которым посылается последовательный код в ИС, мы можем получить восемь дополнительных шин ввода/вывода. Как уже говорилось, можно создать восемь шин ввода/вывода, но в данном интерфейсе используются пять из них.

Когда последовательный код поступает на вход ИС 74LS164, на выходе ИС появляется соответствующий параллельный код. Если бы выходы ИС 74LS164 были непосредственно подключены к входам управляющих транзисторов, то отдельные функции руки-манипулятора включались и выключались бы в такт посылке последовательного кода. Очевидно, что такая ситуация является недопустимой. Чтобы избежать этого, в схему интерфейса введена вторая ИС 74LS373 – управляемый восьмиканальный электронный ключ.

ИС 74LS373 восьмиканальный ключ имеет восемь входных и восемь выходных шин. Двоичная информация, присутствующая на входных шинах передается на соответствующие выходы ИС только в том случае, если на ИС подан разрешающий сигнал. После выключения разрешающего сигнала текущее состояние выходных шин сохраняется (запоминается). В этом состоянии сигналы на входе ИС не оказывают никакого действия на состояние выходных шин.

После передачи последовательного пакета информации в ИС 74LS164 с вывода D2 параллельного порта подается разрешающий сигнал на ИС 74LS373. Это позволяет передать информацию уже в параллельном коде с входа ИС 74LS174 на ее выходные шины. Состоянием выходных шин управляются соответственно транзисторы TIP 120, которые, в свою очередь, управляют функциями руки-манипулятора. Процесс повторяется при подаче каждой новой команды на руку-манипулятор. Шины параллельного порта D3-D7 управляют непосредственно транзисторами TIP 125.

Подключение интерфейса к руке-манипулятору

Питание роботизованной руки-манипулятора осуществляется от источника питания 6 В, состоящего из четырех D-элементов, расположенных в основании конструкции. Интерфейс PC питается также от этого источника 6 В. Источник питания является биполярным и выдает напряжения ±3 В. Питание на интерфейс подается через восьмиконтактный разъем Molex, присоединенный к основанию манипулятора.

Присоедините интерфейс к руке-манипулятору при помощи восьмижильного кабеля Molex длиной 75 мм. Кабель Molex присоединяется к разъему, расположенному в основании манипулятора (см. рис. 15.8). Проверьте правильность и надежность вставки разъема. Для соединения платы интерфейса с компьютером используется кабель типа DB25 длиной 180 см, имеющийся в наборе. Один конец кабеля присоединяется к порту принтера. Другой конец соединяется с разъемом DB25 на плате интерфейса.


Рис. 15.8. Соединение РС интерфейса с рукой-роботом


В большинстве случаев к порту принтера штатно подключен принтер. Чтобы не заниматься присоединением и отключением разъемов каждый раз, когда вы хотите использовать манипулятор, полезно приобрести двухпозиционный блок переключателя шин принтеров A/B (DB25). Присоедините разъем интерфейса манипулятора к входу А, а принтер – к входу В. Теперь вы можете использовать переключатель для соединения компьютера либо с принтером, либо с интерфейсом.

Установка программы под Windows 95

Вставьте дискету 3,5" с меткой «Disc 1» в дисковод для флоппи-дисков и запустите программу установки (setup.exe). Программа установки создаст директорию с именем «Images» на жестком диске и скопирует необходимые файлы в эту директорию. В Start меню появится иконка Images. Для запуска программы щелкните по иконке Images в стартовом меню.

Работа с программой под Windows 95

Соедините интерфейс с портом принтера компьютера при помощи кабеля DB 25 длиной 180 см. Соедините интерфейс с основанием руки-манипулятора. До определенного времени держите интерфейс в выключенном состоянии. Если в это время включить интерфейс, то сохранившаяся в порту принтера информация может вызвать движения руки-манипулятора.

Щелкнув два раза по иконке Images в стартовом меню, запустите программу. Окно программы показано на рис. 15.9. При работе программы красный светодиод на плате интерфейса должен мигать. Примечание: чтобы светодиод начал мигать, включение питания интерфейса не требуется. Скорость мигания светодиода определяется скоростью работы процессора вашего компьютера. Мерцание светодиода может оказаться очень тусклым; для того чтобы это заметить, вам, возможно, придется уменьшить освещенность в комнате и сложить ладони «колечком» для наблюдения за светодиодом. Если светодиод не мигает, то, возможно, программа обращается по ошибочному адресу порта (порт LPT). Для переключения интерфейса на другой адрес порта (LPT порт), зайдите в окно меню установки адреса порта принтера (Printer Port Options box), расположенного в правом верхнем углу экрана. Выберите другую опцию. Правильная установка адреса порта вызовет мигание светодиода.


Рис. 15.9. Скриншот программы РС интерфейса под Windows


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

Создание script-файла

Для программирования движений и автоматизированных последовательностей действий руки-манипулятора используются script-файлы. Script-файл содержит список временных команд, управляющих движениями руки-манипулятора. Создать script-файл очень просто. Для создания файла кликните по функциональной клавише program. Эта операция позволит войти в моду «программирования» script-файла. Нажимая на функциональные клавиши, мы будем управлять движениями руки, как мы уже делали, но при этом информация команд будет записываться в желтую script-таблицу, расположенную в нижнем левом углу экрана. Номер шага, начиная с единицы, будет указан в левой колонке, а для каждой новой команды он будет увеличиваться на единицу. Тип движения (функции) указан в средней колонке. После повторного щелчка функциональной клавиши выполнение движения прекращается, а в третьей колонке появляется значение времени выполнения движения от его начала до окончания. Время выполнения движения указывается с точностью до четверти секунды. Продолжая таким же образом, пользователь может запрограммировать в script-файл до 99 движений, включая паузы во времени. Затем script-файл можно сохранить, а в дальнейшем загрузить из любой директории. Выполнение команд script-файла можно циклически повторить до 99 раз, для чего необходимо ввести количество повторов в окно Repeat и нажать Start. Для окончания записи в script-файл нажмите клавишу Interactive. Эта команда переведет компьютер обратно в интерактивный режим.

«Оживление» предметов

Script-файлы могут быть использованы для компьютерной автоматизации действий или для «оживления» предметов. В случае «оживления» предметов управляемый роботизованный механический «скелет» обычно покрыт внешней оболочкой и сам не виден. Помните куклу-перчатку, описанную в начале главы? Внешняя оболочка может иметь вид человека (частично или полностью), пришельца, животного, растения, камня и чего-либо еще.

Ограничения области применения

Если вы хотите достичь профессионального уровня выполнения автоматизированных действий или «оживления» предметов, то, так сказать, для поддержания марки, точность позиционирования при выполнении движений в каждый момент времени должна приближаться к 100 %.

Однако вы можете заметить, что по мере повторения последовательности действий, записанных в script-файле, положение руки-манипулятора (паттерн-движения) будет отличаться от первоначального. Это происходит по нескольким причинам. По мере разряда батарей источника питания руки-манипулятора уменьшение мощности, подводимой к двигателям постоянного тока, приводит к снижению крутящего момента и скорости вращения двигателей. Таким образом, длина перемещения манипулятора и высота поднятого груза за один и тот же промежуток времени будет различаться для севших и «свежих» батарей. Но причина не только в этом. Даже при стабилизированном источнике питания частота вращения вала двигателя будет меняться, поскольку отсутствует регулятор частоты вращения двигателя. Для каждого фиксированного отрезка времени количество оборотов каждый раз будет немного отличаться. Это приведет к тому, что каждый раз будет различаться и положение руки-манипулятора. В довершение ко всему, в шестернях редуктора имеется определенный люфт, который также не принимается во внимание. Под влиянием всех этих факторов, которые мы здесь подробно рассмотрели, при выполнении цикла повторяющихся команд script-файла положение руки-манипулятора будет каждый раз немного различаться.

Поиск исходного положения

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

Для этого существует много возможностей. В одном из основных методов позиционный контроль в каждой точке не предусмотрен. Вместо этого используется набор концевых выключателей, которые соответствуют исходной «стартовой» позиции. Концевые выключатели определяют точно только одну позицию – когда манипулятор доходит до положения «старт». Чтобы это сделать, необходимо установить последовательность концевых выключателей (кнопок) таким образом, чтобы они замыкались, когда манипулятор достигает крайнего положения в том или ином направлении. Например, один конечный выключатель можно установить на основании манипулятора. Выключатель должен срабатывать только тогда, когда рука-манипулятор достигнет крайнего положения при вращении по часовой стрелке. Другие конечные выключатели нужно установить на плечевом и локтевом сочленении. Они должны срабатывать при полном разгибании соответствующего сочленения. Еще один выключатель устанавливается на кисти и срабатывает, когда кисть поворачивается до упора по часовой стрелке. Последний концевой выключатель устанавливается на захвате и замыкается при его полном открывании. Чтобы поставить манипулятор в исходное положение, каждое возможное движение манипулятора осуществляется в сторону, необходимую для замыкания соответствующего концевого выключателя до тех пор, пока этот выключатель не замкнется. После того как достигнуто начальное положение для каждого движения, компьютер будет точно «знать» истинное положение руки-манипулятора.

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

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

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

Система ручного управления интерфейсом

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


Рис. 15.10. Подключение ручного управления

Программа DOS управления с клавиатуры

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

B голосовом управлении рукой-манипулятором используется набор распознавания речи (УРР), который был описан в гл. 7. В этой главе мы изготовим интерфейс, связывающий УРР с рукой-манипулятором. Этот интерфейс также предлагается в виде набора компанией Images SI, Inc.

Схема интерфейса для УРР показана на рис. 15.11. В интерфейсе использован микроконтроллер 16F84. Программа для микроконтроллера выглядит следующим образом:


‘Программа интерфейса УРР

Symbol PortA = 5

Symbol TRISA = 133

Symbol PortB = 6

Symbol TRISB = 134

If bit4 = 0 then trigger ‘Если запись в триггер разрешена, читать схе

Goto start ‘Повторение

pause 500 ‘Ожидание 0,5 с

Peek PortB, B0 ‘Чтение кода BCD

If bit5 = 1 then send ‘Выходной код

goto start ‘Повторение

peek PortA, b0 ‘Чтение порта А

if bit4 = 1 then eleven ‘Число есть 11?

poke PortB, b0 ‘Выходной код

goto start ‘Повторение

if bit0 = 0 then ten

goto start ‘Повторение

goto start ‘Повторение



Рис. 15.11. Схема контроллера УРР для руки-робота


Обновление программы под 16F84 можно бесплатно загрузить из http://www.imagesco.com

Программирование интерфейса УРР

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

Таблица 15.1

Список деталей для интерфейса PC

(5) Транзистор NPN TIP120

(5) Транзистор PNP TIP 125

(1) ИС 74164 преобразователь кода

(1) ИС 74LS373 восемь ключей

(1) Светодиод красный

(5) Диод 1N914

(1) Гнездо разъема Molex на 8 контактов

(1) Кабель Molex 8-жильный длиной 75 мм

(1) Двухпозиционный переключатель

(1) Разъем уголковый типа DB25

(1) Кабель DB 25 1,8 м с двумя разъемами М – типа.

(1) Печатная плата

(3) Резистор 15 кОм, 0,25 Вт


Все перечисленные детали входят в комплект набора.

Список деталей для интерфейса распознавания речи

(5) Транзистор NPN TIP 120

(5) Транзистор PNP TIP 125

(1) ИС 4011 логический элемент ИЛИ-НЕ

(1) ИС 4049 – 6 буферов

(1) ИС 741 операционный усилитель

(1) Резистор 5,6 кОм, 0,25 Вт

(1) Резистор 15 кОм, 0,25 Вт

(1) Головная часть разъема Molex 8 контактов

(1) Кабель Molex 8 жил, длина 75 мм

(10) Резистор 100 кОм, 0,25 Вт

(1) Резистор 4,7 кОм, 0,25 Вт

(1) ИС регулятор напряжения 7805

(1) ИС PIC 16F84 микроконтроллер

(1) Кварцевый резонатор 4,0 МГц

Набор интерфейса руки-манипулятора

Набор для изготовления руки манипулятора компании OWI

Интерфейс распознавания речи для руки-манипулятора

Набор устройства распознавания речи


Детали можно заказать в:

Images, SI, Inc.