Съдържание:

Махнете с ръка, за да контролирате роботизираната ръка на OWI Без прикачени низове: 10 стъпки (със снимки)
Махнете с ръка, за да контролирате роботизираната ръка на OWI Без прикачени низове: 10 стъпки (със снимки)

Видео: Махнете с ръка, за да контролирате роботизираната ръка на OWI Без прикачени низове: 10 стъпки (със снимки)

Видео: Махнете с ръка, за да контролирате роботизираната ръка на OWI Без прикачени низове: 10 стъпки (със снимки)
Видео: ВСЕ белые карты в Magic The Gathering: Innistrad Scarlet Wedding Edition 2024, Юли
Anonim
Image
Image
Части
Части

ИДЕЯТА:

Има поне 4 други проекта на Instructables.com (към 13 май 2015 г.) около модифициране или контролиране на OWI Robotic Arm. Не е изненадващо, тъй като това е толкова страхотен и евтин роботизиран комплект за игра. Този проект е сходен по дух (т.е. управление на роботизираната ръка с Arduino), но различен в подхода. [видео]

Идеята е да можете да управлявате безжично роботизираната ръка с жестове. Също така се опитах да сведа до минимум модификациите на роботизираната ръка, така че тя все още може да се използва с оригиналния контролер.

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

В крайна сметка това е проект от три части:

  1. Ръкавица, снабдена с достатъчно сензори за управление на LED и 5 двигателя
  2. Предавателно устройство, базирано на Arduino Nano, за да приема командите за управление от ръкавицата и да ги изпраща безжично до устройството за управление на ръцете
  3. Безжичен приемник на базата на Arduino Uno и устройство за управление на двигателя, прикрепени към OWI Robotic Arm

ХАРАКТЕРИСТИКА

  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 Диригент.050 "Височина - на Phoenixent.com
  7. 2 x 5 мм светодиода - зелен и жълт
  8. 2 x малки копчета
  9. Резистори, проводници, игла, черен конец, пистолет за лепило, пистолет за запояване, спойка и др.

КОРОБКА ЗА ПРЕДАВАНЕ:

  1. Arduino съвместима платка Nano v3.0 ATmega328P -20AU - на Fasttech.com
  2. nRF24L01+ 2.4GHz безжичен трансивър Arduino съвместим - на Amazon.com
  3. Gymboss WRISTBAND - на Amazon.com
  4. 9V кутия за държач на батерията с превключвател за включване/изключване на проводник - на Amazon.com
  5. 2X5 КУТИЯ ХИДЪР ПРАВ - на Phoenixent.com
  6. 9v батерия
  7. 47uF (50v) кондензатор
  8. Резистори, проводници, пистолет за лепило, запояващ пистолет, спойка и др.

OWI РОБОТНА КОНТРОЛЕРА ЗА РЪКОВА РЪКА:

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

… и разбира се:

OWI Robotic Arm Edge - Роботска ръка - OWI -535 - на Adafruit.com

Стъпка 2: ПРОТОТИПИРАНЕ

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

Силно препоръчвам прототипирането на всяко от контролерните устройства преди запояване на всички компоненти заедно.

Този проект използва няколко предизвикателни хардуера:

nRF24L01

Отне ми известно време, за да накарам двата nRF24 да си говорят. Очевидно нито Nano, нито Uno осигуряват достатъчно стабилизирано 3.3v захранване, за да могат модулите да работят последователно. Решение в моя случай беше 47uF кондензатор през захранващите щифтове на двата модула nRF24. Има и няколко странности при използването на библиотеката RF24 в IRQ и не-IRQ режими, така че препоръчвам да изучите примерите наистина внимателно.

Няколко страхотни ресурса:

nRF24L01 Страница с продукти на IC радиочестотен трансивър с ултра ниска мощност 2,4 GHz

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

Само с гугъл nRF24 + arduino ще се получат много връзки. Струва си да се проучи

74HC595 РЕГИСТЪР НА ПРОМЕН

Не е изненадващо, че се налага да управлявам 5 двигателя, светодиод, два бутона и безжичен модул. Свърших сравнително бързо щифтовете на Uno. Добре известният начин да "удължите" броя на своите пинове е да използвате регистър за смяна. Тъй като nRF24 вече използваше SPI интерфейса, реших да използвам SPI и за програмиране на регистъра за смяна (за скорост и за запазване на щифтове) вместо функцията shiftout (). За моя изненада, това заработи като чар от първия път. Можете да го проверите в присвояването на щифтове и в скиците.

Електронната платка и джъмперните кабели са вашите приятели.

Стъпка 3: РЪКАВИЦА

РЪКАВИЦА
РЪКАВИЦА
РЪКАВИЦА
РЪКАВИЦА
РЪКАВИЦА
РЪКАВИЦА
РЪКАВИЦА
РЪКАВИЦА

OWI Robotic ARM има 6 елемента за контрол (OWI Robotic Arm Edge Picture)

  1. Светодиод, разположен на ГРИПЕРА на устройството
  2. СРЕДКА
  3. КИТКА
  4. КОЛЕН - е частта от роботизираната ръка, прикрепена към WRIST
  5. РАМКА е частта от роботизираната ръка, прикрепена към БАЗАТА
  6. БАЗА

Ръкавицата е предназначена за управление на светодиода на Robotic Arm и всичките 5 двигателя (Степени на свобода).

Имам отделни сензори, маркирани на снимките, както и описание по -долу:

  1. ГРИПЕРЪТ се управлява от бутоните, разположени на средния пръст и розови. Грайферът се затваря чрез притискане на показалеца и средния пръст заедно. Gripper се отваря чрез натискане на ринг и pinky заедно.
  2. WRIST се управлява от гъвкавия резистор на индексатора. Свиването на пръста наполовина кара китката да се спуска надолу, а извиването й докрай кара китката да се издига нагоре. Поддържането на показалеца изправено спира китката.
  3. КОЛЕНЕТО се управлява от акселерометър - накланянето на дланта нагоре и надолу премества лакътя съответно нагоре и надолу
  4. РАМОТО се управлява от акселерометър - накланянето на дланта надясно и наляво (но не с главата надолу!) Движи рамото съответно нагоре и надолу
  5. BASE се управлява и от акселерометър, подобно на накланянето на рамото наляво надясно и наляво докрай с главата надолу (дланта нагоре) премества съответно основата надясно и наляво
  6. Светодиодът на грайфера се включва/изключва чрез едновременно натискане на двата бутона за управление на грайфера.

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

Сглобяването на ръкавицата изисква известно запояване и много шиене. По принцип това е просто прикрепване на 2 бутона, гъвкав резистор, модул Accel/Gyro към тъканта на ръкавицата и прокарване на проводници към кутията за съединители.

Два светодиода на кутията за свързване са:

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

Стъпка 4: ПРЕДАВАТЕЛНА КУТИЯ

ПРЕДАВАТЕЛНА КУТИЯ
ПРЕДАВАТЕЛНА КУТИЯ
ПРЕДАВАТЕЛНА КУТИЯ
ПРЕДАВАТЕЛНА КУТИЯ
ПРЕДАВАТЕЛНА КУТИЯ
ПРЕДАВАТЕЛНА КУТИЯ

Предавателната кутия е по същество Arduino Nano, безжичен модул nRF24, гъвкав проводник и 3 резистора: 2 издърпващи се 10 резистора 10 kOhm за бутоните за управление на грайфера на ръкавицата и резистор за разделяне на напрежението 20 kOhm за гъвкавия сензор, управляващ китката.

Всичко е споено заедно на веро-дъска. Обърнете внимание, че nRF24 "виси" над Nano. Притеснявах се, че това може да причини смущения, но работи.

Използването на 9v батерия прави частта за закачане малко обемиста, но не исках да се забърквам с LiPo батериите. Може би по-късно.

Моля, вижте стъпката за определяне на щифтове за инструкции за запояване

Стъпка 5: КОНТРОЛ ЗА РЪКОВОДСТВО

КОНТРОЛ ЗА РЪКА
КОНТРОЛ ЗА РЪКА
КОНТРОЛ ЗА РЪКА
КОНТРОЛ ЗА РЪКА
КУТИЯ ЗА УПРАВЛЕНИЕ НА РЪКА
КУТИЯ ЗА УПРАВЛЕНИЕ НА РЪКА
КУТИЯ ЗА УПРАВЛЕНИЕ НА РЪКА
КУТИЯ ЗА УПРАВЛЕНИЕ НА РЪКА

Кутията за управление на ръката е базирана на Arduino Uno. Той получава команди от ръкавицата безжично чрез nRF24 модул и контролира OWI Robotoc Arm чрез 3 чипа L293D драйвер.

Тъй като са използвани почти всички щифтове на Uno, вътре в кутията има много проводници - тя едва се затваря!

По дизайн кутията стартира в режим OFF (сякаш е натиснат бутон за червено спиране), което дава време на оператора да сложи ръкавицата и да се подготви. След като е готов, операторът натиска зеления бутон и връзката между ръкавицата и контролната кутия трябва незабавно да се установи (както е посочено от жълтия светодиод на ръкавицата и червения светодиод на контролната кутия).

СВЪРЗВАНЕ С OWI

Връзката с роботизираното рамо се осъществява чрез 14 -пинов двуредов хедър (според снимката по -горе) чрез 14 -жичен плосък кабел.

  • Светодиодните връзки са към обща земя (-) и arduino щифт A0 чрез резистор 220 Ohm
  • Всички проводници на двигателя са свързани към L293D щифтове 3/6 или 11/14 (+/- съответно). Всеки L293D поддържа 2 двигателя, следователно два чифта щифтове.
  • OWI захранващите линии са най -левият (+6v) и най -десният (GND) щифт на 7 -пиновия конектор на гърба на жълтия връх. (Можете да видите включените проводници на снимката по -горе). Тези два са свързани към щифтове 8 (+) и 4, 5, 12, 13 (GND) и на трите L293D.

Моля, вижте останалата част от присвояването на щифтове на следващата стъпка

Стъпка 6: Присвояване на ПИН

ЗАДАВАНЕ НА ПИН
ЗАДАВАНЕ НА ПИН
ЗАДАВАНЕ НА ПИН
ЗАДАВАНЕ НА ПИН
ЗАДАВАНЕ НА ПИН
ЗАДАВАНЕ НА ПИН

NANO:

  • 3.3v - 3.3v към nRF24L01 чип (щифт 2)
  • 5v - 5v към платка за акселерометър, бутони, гъвкав сензор
  • a0 - вход за гъвкав резистор
  • a1 - жълто LED управление "comms"
  • a4 - SDA към акселерометър
  • 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)
  • Vin - 9v +
  • GND - общ език

UNO:

  • 3.3v - 3.3v към nRF24L01 чип (щифт 2)
  • Бутони 5v - 5v към
  • Vin - 9v +
  • GND - общ език
  • a0 - LED за китката +
  • a1 - SPI SS пин за регистър Shift Изберете - за закрепване 12 на регистър Shift
  • a2 - вход с ЧЕРВЕН бутон
  • a3 - ВХОД ЗЕЛЕН бутон
  • a4 - посока на основата вдясно - щифт 15 на L293D
  • a5 - комуникационен светодиод
  • d02 - nRF24L01 IRQ вход (щифт 8)
  • d03 - активирайте базовия серво (pwm) щифт 1 или 9 на L293D
  • d04 - посока на основата вляво - щифт 10 на съответния L293D
  • d05 - разрешете рамо серво (pwm) щифт 1 или 9 на L293D
  • d06 - активиране на ламелен серво (pwm) щифт 1 или 9 на L293D
  • d07 - SPI CSN щифт към чип nRF24L01 (щифт 4)
  • d08 - SPI CS щифт към чип nRF24L01 (щифт 3)
  • d09 - активирайте щифт 1 или 9 на серво за китката (pwm) на L293D
  • d10 - активирайте щифт 1 или 9 на серво (pwm) на грайфера на L293D
  • d11 - SPI MOSI към чип nRF24L01 (щифт 6) и щифт 14 в регистъра за смяна
  • d12 - SPI MISO към чип nRF24L01 (щифт 7)
  • d13 - SPI SCK към чип nRF24L01 (щифт 5) и щифт 11 на Shift Register

РЕГИСТЪР НА SHIFT И 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 контроли, защото трябва само да изпратим:

  • ON/OFF за LED (1 бит) - Всъщност използвах 2 бита, за да съответствам на двигателите, но един е достатъчен
  • OFF/НАДЯСНО/НАЛЯВО за 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-

  • M1 - грайфер
  • M2 - китка
  • М3 - лакът
  • М4 - рамо
  • M5 - основа

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

Времето за изчакване от 2 секунди е разрешено за комуникации. Ако настъпи таймаут, всички двигатели се спират, сякаш е натиснат ЧЕРВЕН бутон.

Стъпка 8: СКИЧИ и още …

СКИЧИ и още …
СКИЧИ и още …

РЪКАВИЦА

Скицата на ръкавици използва следните библиотеки:

  • DirectIO - наличен в Github
  • I2Cdev - наличен в Github
  • Wire - част от IDE на Arduino
  • MPU6050 - налично в Github
  • SPI - част от IDE на Arduino
  • RF24 - наличен в Github

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

  • AvgFilter - наличен от Github
  • DhpFilter - наличен в Github
  • TaskScheduler - наличен в Github

Скица за ръкавици е достъпна тук: Скица за ръкавици v1.3

КУТИЯ ЗА УПРАВЛЕНИЕ НА РЪКА

Скицата на ръката използва следните библиотеки:

  • DirectIO - наличен в Github
  • PinChangeInt - наличен в Github
  • SPI - част от IDE на Arduino
  • RF24 - наличен в Github

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

TaskScheduler - наличен в Github

Скицата на ръката е достъпна тук: Arm Sketch v1.3

Информационни листове за използвания хардуер

  • 74HC595 регистър на смяна - лист с данни
  • L293D драйвер на двигателя - технически лист
  • безжичен модул nRF24 - лист с данни
  • Акселерометър/модул на жироскоп MPU6050 - лист с данни

31 май 2015 г. АКТУАЛИЗИРАНЕ:

Нова версия на скици на контролни кутии за ръкавици и ръце е достъпна тук: Скици за ръкавици и ръце v1.5

Те също се намират на github тук.

Промени

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

1. LED: Бутони за управление на LED - бутон за среден пръст - ON, бутон за малки пръсти - OFF

2. ГРИПЕР: Гъвкав контрол на лентата Грайфер - полуизвит пръст - ОТВОРЕН, напълно огънат пръст - ЗАТВОРИ

3. КИТКА: Китката се контролира чрез накланяне на дланта от напълно хоризонтално положение НАГОРЕ и НАДОЛУ съответно. Повече наклон произвежда по -голяма скорост

4. ARM: Ръката се контролира чрез накланяне на дланта от напълно хоризонтално положение НАЛЯВО и НАДЯСНО. Повече наклон произвежда по -голяма скорост

5. РАМО: Рамото се контролира чрез завъртане на дланта НАДЯСНО и НАЛЯВО от дланта, насочена право нагоре. Дланта се завърта по оста на лакътя (както и махането с ръка)

6. БАЗА: Основата се контролира по същия начин като рамото с длан насочена право надолу.

Стъпка 9: КАКВО ОЩЕ?

КАКВО ДРУГО?
КАКВО ДРУГО?

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

Както обикновено с такива системи, те биха могли да бъдат програмирани да правят много повече.

Например настоящият дизайн вече включва допълнителни възможности, които не са възможни със стандартното дистанционно:

  • Постепенно увеличаване на скоростта: всяко движение на двигателя се инициира с предварително определена минимална скорост, която се увеличава постепенно на всеки 1 секунда, докато се достигне максимална скорост. Това позволява по -прецизен контрол на всеки от двигателите (особено на китката и грайфера)
  • По -бързо отмяна на движение: когато командата за подаване на рамото получи команда за спиране на двигателя, тя за момент обръща двигателя за около 50 ms, като по този начин "прекъсва" движението и позволява по -прецизен контрол.

КАКВО ДРУГО?

Може би биха могли да бъдат приложени по -сложни контролни жестове. Или едновременни жестове могат да се използват за сложни контроли. Може ли Ръката да танцува?

Ако имате идея как да програмирате отново ръкавицата или имате версия на скица, която искате да тествам - моля, уведомете ме: [email protected]

Стъпка 10: *** ПОБЕДИМ !!! ***

*** СПЕЧЕЛИХМЕ !!! ***
*** СПЕЧЕЛИХМЕ !!! ***

Този проект спечели първа награда в конкурса Coded Creations, спонсориран от Microsoft.

Виж това! У-У-У !!!

Кодирани творения
Кодирани творения
Кодирани творения
Кодирани творения

Втора награда в кодираните творения

Препоръчано: