Оглавление:
- Шаг 1: Детали
- Шаг 2: ПРОТОТИПИРОВАНИЕ
- Шаг 3: ПЕРЧАТКА
- Шаг 4: КОРОБКА ПЕРЕДАТЧИКА
- Шаг 5: БЛОК УПРАВЛЕНИЯ РУКОЯТКОЙ
- Шаг 6: НАЗНАЧЕНИЕ ПИН-кода
- Шаг 7: СВЯЗЬ
- Шаг 8: Эскизы и многое другое…
- Шаг 9: ЧТО ЕЩЕ?
- Шаг 10: *** МЫ ВЫИГРАЛИ !!! ***
Видео: Помашите рукой, чтобы управлять роботизированной рукой OWI Без привязки: 10 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
ИДЕЯ:
На Instructables.com есть как минимум 4 других проекта (по состоянию на 13 мая 2015 г.), посвященных модификации или управлению роботизированной рукой OWI. Неудивительно, ведь это отличный и недорогой робот-набор, с которым можно поиграть. Этот проект похож по духу (то есть управление роботизированной рукой с помощью Arduino), но отличается подходом. [видео]
Идея состоит в том, чтобы иметь возможность управлять роботизированной рукой по беспроводной сети с помощью жестов. Кроме того, я старался свести к минимуму модификации робота-манипулятора, чтобы его можно было использовать с исходным контроллером.
Звучит просто.
В итоге получился проект из трех частей:
- Перчатка с достаточным количеством датчиков для управления светодиодом и 5 моторами.
- Устройство-передатчик на базе Arduino Nano для приема управляющих команд от перчатки и отправки их по беспроводной сети на контроллер Arm.
- Беспроводной приемник на базе Arduino Uno и устройство управления двигателем, подключенное к роботизированной руке OWI.
ОСОБЕННОСТИ
- Поддержка всех 5 степеней свободы (DOF) и светодиода
- Большая красная кнопка - для немедленной остановки двигателей на руке, предотвращая повреждение
- Портативный модульный дизайн
Для мобильных пользователей: «Промо-ролик» этого проекта находится на YouTube здесь.
Шаг 1: Детали
ПЕРЧАТКА:
Для создания контроллера перчаток вам понадобится следующее:
- Isotoner Smartouch Tech Stretch Stitched Glove (или аналогичный) - на Amazon.com
- Spectra Symboflex Sensor 2.2 "- на Amazon.com
- GY-521 6DOF MPU6050 3-осевой гироскоп + модуль акселерометра - на Fasttech.com
- ПРЯМАЯ ЖАТКА КОРОБКИ 2X5 - на Phoenixent.com
- РОЗЕТКА-РОЗЕТКА 2X5 IDC - на Phoenixent.com
- ПЛОСКИЙ ЛЕНТОЧНЫЙ КАБЕЛЬ 10 проводников с шагом 0,050 дюйма - на Phoenixent.com
- 2 светодиода по 5 мм - зеленый и желтый
- 2 х маленькие кнопки
- Резисторы, провода, игла, черная нить, клеевой пистолет, паяльник, припой и т. Д.
КОРОБКА ПЕРЕДАЧИ:
- Плата ATmega328P-20AU, совместимая с Arduino Nano v3.0 - на Fasttech.com
- nRF24L01 + беспроводной трансивер 2,4 ГГц, совместимый с Arduino - на Amazon.com
- БРАСЛЕТ Gymboss - на Amazon.com
- Корпус держателя батареи 9 В с переключателем включения / выключения провода - на Amazon.com
- ПРЯМАЯ ЖАТКА КОРОБКИ 2X5 - на Phoenixent.com
- Батарея 9v
- Конденсатор 47 мкФ (50 В)
- Резисторы, провода, клеевой пистолет, паяльник, припой и т. Д.
БЛОК КОНТРОЛЛЕРА РОБОТИЧЕСКОЙ РУКИ OWI:
- Плата для разработки Uno R3 Rev3, совместимая с Arduino - на Fasttech.com
- Комплект для сборки Prototype Shield DIY KIT для Arduino (или аналогичного) - на Amazon.com
- nRF24L01 + беспроводной трансивер 2,4 ГГц, совместимый с Arduino - на Amazon.com
- 3 x L293D 16-контактный драйвер двигателя с интегральной схемой IC - на Fasttech.com
- 1 x SN74HC595 74HC595 8-битный регистр сдвига с 3-мя выходными регистрами DIP16 - на Amazon.com
- Конденсатор 47 мкФ (50 В)
- Коробка для Arduino - на Amazon.com
- Переключатель вкл. / Выкл.
- 2 кнопки 13 мм (одна красная и одна зеленая колпачки)
- ПРЯМАЯ ПОДГОТОВКА КОРОБКИ 2 x 2X7 - то же, что и выше на Phoenixent.com
- ПЛОСКИЙ ЛЕНТОЧНЫЙ КАБЕЛЬ 14 Проводник с шагом 0,050 дюйма - то же, что указано выше на Phoenixent.com
- Аккумулятор 9в + клипсовый разъем
- Резисторы, провода, клеевой пистолет, паяльник, припой и т. Д.
… И конечно:
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)
- Светодиод, расположенный на ЗАТЯЖКЕ устройства.
- ГРИППЕР
- ЗАПЯСТЬЯ
- КОЛЕНО - часть руки робота, прикрепленная к ЗАПЯСТЬЮ.
- ПЛЕЧО - это часть роботизированной руки, прикрепленная к ОСНОВАНИЮ.
- БАЗА
Перчатка предназначена для управления светодиодом манипулятора робота и всеми 5 двигателями (степени свободы).
У меня есть отдельные датчики, отмеченные на фотографиях, а также описание ниже:
- GRIPPER управляется кнопками, расположенными на среднем пальце и мизинце. Захват закрывается путем сжатия вместе указательного и среднего пальцев. Захват открывается, прижимая кольцо и мизинец вместе.
- WRIST управляется гибким резистором искателя индекса. Сгибание пальца наполовину заставляет запястье опускаться, а сгибание пальца до упора заставляет запястье подниматься. Удерживая указательный палец прямо, запястье останавливается.
- КОЛЕНО контролируется акселерометром - наклон ладони вверх и вниз перемещает локоть вверх и вниз соответственно.
- ПЛЕЧО контролируется акселерометром - наклон ладони вправо и влево (но не вверх ногами!) Перемещает плечо вверх и вниз соответственно.
- BASE также контролируется акселерометром, аналогично плечу - наклон ладони вправо и влево полностью вверх ногами (ладонь обращена вверх) перемещает основание вправо и влево соответственно
- Светодиод на захвате включается / выключается одновременным нажатием обеих кнопок управления захватом.
Все реакции кнопок задерживаются на 1/4 секунды, чтобы избежать дрожания.
Сборка перчатки требует пайки и большого количества шитья. В основном это просто прикрепление 2 кнопок, гибкого резистора, модуля Accel / Gyro к ткани перчатки и прокладки проводов к соединительной коробке.
Два светодиода на соединительной коробке:
- ЗЕЛЕНЫЙ - питание включено
- ЖЕЛТЫЙ - мигает, когда данные передаются в блок управления рычагом.
Шаг 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.
Проверьте это! У-У-У !!!
Вторая премия в области закодированных произведений
Рекомендуемые:
Игра с роботизированной рукой - контроллер смартфона: 6 шагов
Игра с роботизированной рукой - контроллер смартфона: Здравствуйте! Здесь веселая летняя игра: роботизированная рука, управляемая смартфоном! Как вы можете видеть на видео, вы можете управлять рукой с помощью некоторых джойстиков на своем смартфоне. Вы также можете сохранить рисунок, что робот будет воспроизводить в цикле, чтобы
Управляйте роботизированной рукой с помощью Zio с помощью контроллера PS2: 4 шага
Управляйте роботизированной рукой с помощью Zio с помощью контроллера PS2: эта запись в блоге является частью серии Zio Robotics. Введение Это последняя часть публикации «Управление роботизированной рукой с помощью Zio». В этом уроке мы добавим еще одну деталь к нашей роботизированной руке. Предыдущие руководства не включают основы для
Управление роботизированной рукой с помощью модулей Zio, часть 1: 8 шагов
Управление роботизированной рукой с помощью модулей Zio. Часть 1: Эта запись в блоге является частью серии Zio Robotics. Введение В этом руководстве мы создадим проект, в котором мы будем использовать модули Zio для управления роботизированной рукой. Этот проект научит вас, как заставить вашу роботизированную руку открываться и закрываться. Это н
Доступное решение для машинного зрения с роботизированной рукой на базе Arduino: 19 шагов (с изображениями)
Доступное решение для машинного зрения с роботизированной рукой на базе Arduino: когда мы говорим о машинном зрении, оно всегда кажется нам недоступным. В то время как мы сделали демонстрацию видения с открытым исходным кодом, которую было бы очень легко сделать для всех. В этом видео с камерой OpenMV, где бы ни находился красный куб, робот
Как управлять рукой робота с помощью 6-канального сервоплеера без программирования: 5 шагов
Как управлять манипулятором робота с помощью 6-канального сервоплеера без кодирования: в этом руководстве показано, как управлять манипулятором робота с помощью 6-канального сервоплеера без кодирования