Оглавление:

Помашите рукой, чтобы управлять роботизированной рукой OWI Без привязки: 10 шагов (с изображениями)
Помашите рукой, чтобы управлять роботизированной рукой OWI Без привязки: 10 шагов (с изображениями)

Видео: Помашите рукой, чтобы управлять роботизированной рукой OWI Без привязки: 10 шагов (с изображениями)

Видео: Помашите рукой, чтобы управлять роботизированной рукой OWI Без привязки: 10 шагов (с изображениями)
Видео: Прототип 4-х осевого робота-манипулятора 2024, Ноябрь
Anonim
Image
Image
Запчасти
Запчасти

ИДЕЯ:

На Instructables.com есть как минимум 4 других проекта (по состоянию на 13 мая 2015 г.), посвященных модификации или управлению роботизированной рукой OWI. Неудивительно, ведь это отличный и недорогой робот-набор, с которым можно поиграть. Этот проект похож по духу (то есть управление роботизированной рукой с помощью Arduino), но отличается подходом. [видео]

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

Звучит просто.

В итоге получился проект из трех частей:

  1. Перчатка с достаточным количеством датчиков для управления светодиодом и 5 моторами.
  2. Устройство-передатчик на базе Arduino Nano для приема управляющих команд от перчатки и отправки их по беспроводной сети на контроллер Arm.
  3. Беспроводной приемник на базе Arduino Uno и устройство управления двигателем, подключенное к роботизированной руке OWI.

ОСОБЕННОСТИ

  1. Поддержка всех 5 степеней свободы (DOF) и светодиода
  2. Большая красная кнопка - для немедленной остановки двигателей на руке, предотвращая повреждение
  3. Портативный модульный дизайн

Для мобильных пользователей: «Промо-ролик» этого проекта находится на YouTube здесь.

Шаг 1: Детали

ПЕРЧАТКА:

Для создания контроллера перчаток вам понадобится следующее:

  1. Isotoner Smartouch Tech Stretch Stitched Glove (или аналогичный) - на Amazon.com
  2. Spectra Symboflex Sensor 2.2 "- на Amazon.com
  3. GY-521 6DOF MPU6050 3-осевой гироскоп + модуль акселерометра - на Fasttech.com
  4. ПРЯМАЯ ЖАТКА КОРОБКИ 2X5 - на Phoenixent.com
  5. РОЗЕТКА-РОЗЕТКА 2X5 IDC - на Phoenixent.com
  6. ПЛОСКИЙ ЛЕНТОЧНЫЙ КАБЕЛЬ 10 проводников с шагом 0,050 дюйма - на Phoenixent.com
  7. 2 светодиода по 5 мм - зеленый и желтый
  8. 2 х маленькие кнопки
  9. Резисторы, провода, игла, черная нить, клеевой пистолет, паяльник, припой и т. Д.

КОРОБКА ПЕРЕДАЧИ:

  1. Плата ATmega328P-20AU, совместимая с Arduino Nano v3.0 - на Fasttech.com
  2. nRF24L01 + беспроводной трансивер 2,4 ГГц, совместимый с Arduino - на Amazon.com
  3. БРАСЛЕТ Gymboss - на Amazon.com
  4. Корпус держателя батареи 9 В с переключателем включения / выключения провода - на Amazon.com
  5. ПРЯМАЯ ЖАТКА КОРОБКИ 2X5 - на Phoenixent.com
  6. Батарея 9v
  7. Конденсатор 47 мкФ (50 В)
  8. Резисторы, провода, клеевой пистолет, паяльник, припой и т. Д.

БЛОК КОНТРОЛЛЕРА РОБОТИЧЕСКОЙ РУКИ OWI:

  1. Плата для разработки Uno R3 Rev3, совместимая с Arduino - на Fasttech.com
  2. Комплект для сборки Prototype Shield DIY KIT для Arduino (или аналогичного) - на Amazon.com
  3. nRF24L01 + беспроводной трансивер 2,4 ГГц, совместимый с Arduino - на Amazon.com
  4. 3 x L293D 16-контактный драйвер двигателя с интегральной схемой IC - на Fasttech.com
  5. 1 x SN74HC595 74HC595 8-битный регистр сдвига с 3-мя выходными регистрами DIP16 - на Amazon.com
  6. Конденсатор 47 мкФ (50 В)
  7. Коробка для Arduino - на Amazon.com
  8. Переключатель вкл. / Выкл.
  9. 2 кнопки 13 мм (одна красная и одна зеленая колпачки)
  10. ПРЯМАЯ ПОДГОТОВКА КОРОБКИ 2 x 2X7 - то же, что и выше на Phoenixent.com
  11. ПЛОСКИЙ ЛЕНТОЧНЫЙ КАБЕЛЬ 14 Проводник с шагом 0,050 дюйма - то же, что указано выше на Phoenixent.com
  12. Аккумулятор 9в + клипсовый разъем
  13. Резисторы, провода, клеевой пистолет, паяльник, припой и т. Д.

… И конечно:

OWI Robotic Arm Edge - Робот-манипулятор - OWI-535 - на Adafruit.com

Шаг 2: ПРОТОТИПИРОВАНИЕ

ПРОТОТИПИРОВАНИЕ
ПРОТОТИПИРОВАНИЕ
ПРОТОТИПИРОВАНИЕ
ПРОТОТИПИРОВАНИЕ

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

В этом проекте используется несколько сложных аппаратных средств:

nRF24L01

Мне потребовалось время, чтобы заставить два nRF24 разговаривать друг с другом. Судя по всему, ни Nano, ни Uno не обеспечивают достаточного стабилизированного питания 3,3 В для стабильной работы модулей. Решением в моем случае был конденсатор емкостью 47 мкФ на выводах питания на обоих модулях nRF24. Также есть несколько причуд при использовании библиотеки RF24 в режимах IRQ и без IRQ, поэтому я рекомендую внимательно изучить примеры.

Пара замечательных ресурсов:

nRF24L01 Страница продукта ИС ВЧ-трансивера со сверхнизким энергопотреблением 2,4 ГГц

Страница библиотеки драйверов RF24

Просто поиск в Google nRF24 + arduino выдаст много ссылок. Стоит исследовать

74HC595 РЕГИСТРАТОР СМЕЩЕНИЯ

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

Макетная плата и перемычки - ваши друзья.

Шаг 3: ПЕРЧАТКА

ПЕРЧАТКА
ПЕРЧАТКА
ПЕРЧАТКА
ПЕРЧАТКА
ПЕРЧАТКА
ПЕРЧАТКА
ПЕРЧАТКА
ПЕРЧАТКА

У OWI Robotic ARM есть 6 элементов для управления (изображение края робота OWI)

  1. Светодиод, расположенный на ЗАТЯЖКЕ устройства.
  2. ГРИППЕР
  3. ЗАПЯСТЬЯ
  4. КОЛЕНО - часть руки робота, прикрепленная к ЗАПЯСТЬЮ.
  5. ПЛЕЧО - это часть роботизированной руки, прикрепленная к ОСНОВАНИЮ.
  6. БАЗА

Перчатка предназначена для управления светодиодом манипулятора робота и всеми 5 двигателями (степени свободы).

У меня есть отдельные датчики, отмеченные на фотографиях, а также описание ниже:

  1. GRIPPER управляется кнопками, расположенными на среднем пальце и мизинце. Захват закрывается путем сжатия вместе указательного и среднего пальцев. Захват открывается, прижимая кольцо и мизинец вместе.
  2. WRIST управляется гибким резистором искателя индекса. Сгибание пальца наполовину заставляет запястье опускаться, а сгибание пальца до упора заставляет запястье подниматься. Удерживая указательный палец прямо, запястье останавливается.
  3. КОЛЕНО контролируется акселерометром - наклон ладони вверх и вниз перемещает локоть вверх и вниз соответственно.
  4. ПЛЕЧО контролируется акселерометром - наклон ладони вправо и влево (но не вверх ногами!) Перемещает плечо вверх и вниз соответственно.
  5. BASE также контролируется акселерометром, аналогично плечу - наклон ладони вправо и влево полностью вверх ногами (ладонь обращена вверх) перемещает основание вправо и влево соответственно
  6. Светодиод на захвате включается / выключается одновременным нажатием обеих кнопок управления захватом.

Все реакции кнопок задерживаются на 1/4 секунды, чтобы избежать дрожания.

Сборка перчатки требует пайки и большого количества шитья. В основном это просто прикрепление 2 кнопок, гибкого резистора, модуля Accel / Gyro к ткани перчатки и прокладки проводов к соединительной коробке.

Два светодиода на соединительной коробке:

  1. ЗЕЛЕНЫЙ - питание включено
  2. ЖЕЛТЫЙ - мигает, когда данные передаются в блок управления рычагом.

Шаг 4: КОРОБКА ПЕРЕДАТЧИКА

КОРОБКА ПЕРЕДАТЧИКА
КОРОБКА ПЕРЕДАТЧИКА
КОРОБКА ПЕРЕДАТЧИКА
КОРОБКА ПЕРЕДАТЧИКА
КОРОБКА ПЕРЕДАТЧИКА
КОРОБКА ПЕРЕДАТЧИКА

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

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

Использование батареи 9 В делает ремешок немного громоздким, но я не хотел связываться с LiPo батареями. Может быть позже.

Пожалуйста, ознакомьтесь с инструкциями по пайке на этапе назначения контактов

Шаг 5: БЛОК УПРАВЛЕНИЯ РУКОЯТКОЙ

БЛОК УПРАВЛЕНИЯ РУКОЯТКОЙ
БЛОК УПРАВЛЕНИЯ РУКОЯТКОЙ
БЛОК УПРАВЛЕНИЯ РУКОЯТКОЙ
БЛОК УПРАВЛЕНИЯ РУКОЯТКОЙ
БЛОК УПРАВЛЕНИЯ РУКОЯТКОЙ
БЛОК УПРАВЛЕНИЯ РУКОЯТКОЙ
БЛОК УПРАВЛЕНИЯ РУКОЯТКОЙ
БЛОК УПРАВЛЕНИЯ РУКОЯТКОЙ

Блок управления Arm основан на Arduino Uno. Он получает команды от перчатки по беспроводной сети через модуль nRF24 и управляет OWI Robotoc Arm через 3 чипа драйвера L293D.

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

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

ПОДКЛЮЧЕНИЕ К OWI

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

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

См. Остальную информацию о назначении контактов на следующем шаге

Шаг 6: НАЗНАЧЕНИЕ ПИН-кода

НАЗНАЧЕНИЕ ПИН-кода
НАЗНАЧЕНИЕ ПИН-кода
НАЗНАЧЕНИЕ ПИН-кода
НАЗНАЧЕНИЕ ПИН-кода
НАЗНАЧЕНИЕ ПИН-кода
НАЗНАЧЕНИЕ ПИН-кода

НАНО:

  • 3.3В - 3.3В на микросхему nRF24L01 (контакт 2)
  • 5–5 В на плату акселерометра, кнопки, гибкий датчик
  • a0 - вход гибкого резистора
  • a1 - управление желтым светодиодом «comms»
  • a4 - ПДД на акселерометр
  • a5 - SCL к акселерометру
  • d02 - вывод прерывания микросхемы nRF24L01 (вывод 8)
  • d03 - ввод кнопки открытого захвата
  • d04 - ввод кнопки закрытия захвата
  • d09 - вывод SPI CSN на микросхему nRF24L01 (вывод 4)
  • d10 - вывод SPI CS на микросхему nRF24L01 (вывод 3)
  • d11 - SPI MOSI для микросхемы nRF24L01 (вывод 6)
  • d12 - SPI MISO к микросхеме nRF24L01 (вывод 7)
  • d13 - SPI SCK на микросхему nRF24L01 (вывод 5)
  • Вин - 9v +
  • GND - общая земля

ООН:

  • 3.3В - 3.3В на микросхему nRF24L01 (контакт 2)
  • 5в - 5в на кнопки
  • Вин - 9v +
  • GND - общая земля
  • a0 - Светодиод на запястье +
  • a1 - вывод SPI SS для выбора регистра сдвига - к выводу 12 регистра сдвига
  • a2 - вход КРАСНОЙ кнопки
  • a3 - ЗЕЛЕНАЯ кнопка ввода
  • а4 - направление основания вправо - пин 15 на L293D
  • a5 - светодиод связи
  • d02 - nRF24L01 вход IRQ (контакт 8)
  • d03 - включить штырь 1 или 9 базового сервопривода (ШИМ) на L293D
  • d04 - основание направления влево - вывод 10 на соответствующем L293D
  • d05 - включить штырь 1 или 9 сервопривода плеча (pwm) на 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 в регистре сдвига

СМЕНА РЕГИСТРАТОРА И L293D:

  • контакт QA (15) 74HC595 к контакту 2 L293D # 1
  • вывод QB (1) 74HC595 к выводу 7 L293D # 1
  • контакт QC (2) 74HC595 к контакту 10 L293D # 1
  • контакт QD (3) 74HC595 к контакту 15 L293D # 1
  • контакт QE (4) 74HC595 к контакту 2 L293D # 2
  • контакт QF (5) 74HC595 к контакту 7 L293D # 2
  • контакт QG (6) 74HC595 к контакту 10 L293D # 2
  • контакт QH (7) 74HC595 к контакту 15 L293D # 2

Шаг 7: СВЯЗЬ

КОММУНИКАЦИЯ
КОММУНИКАЦИЯ

Glove отправляет 2 байта данных в блок управления 10 раз в секунду или всякий раз, когда получен сигнал от одного из датчиков.

2 байта достаточно для 6 элементов управления, потому что нам нужно только отправить:

  • ВКЛ / ВЫКЛ для светодиода (1 бит) - на самом деле я использовал 2 бита для согласования с двигателями, но одного достаточно
  • ВЫКЛ / ВПРАВО / ВЛЕВО для 5 двигателей: по 2 бита = 10 бит

Всего 11 или 12 бит достаточно.

Коды направлений:

  • ВЫКЛ: 00
  • ВПРАВО: 01
  • СЛЕВА: 10

Управляющее слово выглядит так (поразрядно):

Байт 2 ---------------- Байт 1 ----------------

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 LED - M5 - M4 - M3 - M2 - M1 -

  • М1 - захват
  • M2 - запястье
  • М3 - локоть
  • M4 - плечо
  • М5 - база

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

Для связи включен тайм-аут в 2 секунды. В случае тайм-аута все двигатели останавливаются, как если бы была нажата КРАСНАЯ кнопка.

Шаг 8: Эскизы и многое другое…

Эскизы и многое другое…
Эскизы и многое другое…

ПЕРЧАТКА

В эскизе перчатки используются следующие библиотеки:

  • DirectIO - доступно на Github
  • I2Cdev - доступен на Github
  • Wire - часть Arduino IDE
  • MPU6050 - доступен на Github
  • SPI - часть Arduino IDE
  • RF24 - доступен на Github

и три библиотеки, разработанные мной:

  • AvgFilter - доступен на Github
  • DhpFilter - доступен на Github
  • TaskScheduler - доступен на Github

Эскиз перчатки доступен здесь: Эскиз перчатки v1.3

БЛОК УПРАВЛЕНИЯ РУКОЯТКОЙ

Эскиз руки использует следующие библиотеки:

  • DirectIO - доступно на Github
  • PinChangeInt - доступен на Github
  • SPI - часть Arduino IDE
  • RF24 - доступен на Github

и разработанная мной библиотека:

TaskScheduler - доступен на Github

Эскиз руки доступен здесь: Эскиз руки v1.3

Таблицы данных на используемое оборудование

  • 74HC595 сдвиговый регистр - технический паспорт
  • Драйвер двигателя L293D - технический паспорт
  • Беспроводной модуль nRF24 - техническое описание
  • Модуль акселерометра / гироскопа MPU6050 - техническое описание

ОБНОВЛЕНИЕ 31 мая 2015 г.:

Новая версия эскизов блока управления перчатками и руками доступна здесь: Эскизы перчаток и рук v1.5

Они также находятся здесь на гитхабе.

Изменения

  • В структуру связи добавлены еще два байта для отправки запрошенной скорости двигателя для двигателей запястья, локтя, плеча и основания в виде 5-битного значения (0.. 31) из перчатки, пропорционального углу управляющего жеста (см. Ниже). Arm Control Box сопоставляет значения [0.. 31] с соответствующими значениями PWM для каждого из двигателей. Это позволяет оператору постепенно регулировать скорость и более точно управлять рукой.
  • Новый набор жестов:

1. Светодиод: светодиодный индикатор управления кнопками - кнопка среднего пальца - ВКЛ, кнопка мизинца - ВЫКЛ.

2. GRIPPER: гибкие элементы управления полосой Gripper - полусогнутый палец - ОТКРЫТЫЙ, полностью согнутый палец - ЗАКРЫТО

3. ЗАПЯСТЬЯ: запястье управляется наклоном ладони из полностью горизонтального положения ВВЕРХ и ВНИЗ соответственно. Чем больше наклон, тем выше скорость

4. РУКА: Рука управляется путем наклона ладони из полностью горизонтального положения ВЛЕВО и ВПРАВО. Чем больше наклон, тем выше скорость

5. ПЛЕЧО: Плечо управляется вращением ладони ВПРАВО и ВЛЕВО от ладони, направленной прямо вверх. Ладонь поворачивается вдоль оси локтя (как машет рукой)

6. БАЗА: База управляется так же, как и плечо, ладонь направлена прямо вниз.

Шаг 9: ЧТО ЕЩЕ?

ЧТО ЕЩЕ?
ЧТО ЕЩЕ?

ВООБРАЖЕНИЕ НА РАБОТЕ

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

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

  • Постепенное увеличение скорости: каждое движение двигателя запускается с заранее определенной минимальной скоростью, которая постепенно увеличивается каждую 1 секунду до достижения максимальной скорости. Это позволяет более точно контролировать каждый из двигателей (особенно запястье и захват).
  • Более быстрая отмена движения: когда Arm Box получает команду на остановку двигателя, он мгновенно реверсирует двигатель примерно на 50 мс, таким образом «прерывая» движение и обеспечивая более точное управление.

ЧТО ЕЩЕ?

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

Если у вас есть идея, как перепрограммировать перчатку, или у вас есть версия скетча, который вы хотите, чтобы я протестировал - дайте мне знать: [email protected]

Шаг 10: *** МЫ ВЫИГРАЛИ !!! ***

*** МЫ ВЫИГРАЛИ !!! ***
*** МЫ ВЫИГРАЛИ !!! ***

Этот проект получил первую премию в конкурсе Coded Creations, спонсируемом Microsoft.

Проверьте это! У-У-У !!!

Закодированные творения
Закодированные творения
Закодированные творения
Закодированные творения

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

Рекомендуемые: