Mundarija:

RoboGlove: 12 qadam (rasmlar bilan)
RoboGlove: 12 qadam (rasmlar bilan)

Video: RoboGlove: 12 qadam (rasmlar bilan)

Video: RoboGlove: 12 qadam (rasmlar bilan)
Video: ЖИЗЗАХ ШАХРИ КАСАЛХОНАСИДА КАРОВСИЗ КУРТЛАБ ЁТГАН ОДАМ 2024, Iyul
Anonim
RoboGlove
RoboGlove

Biz ULB, Libre de Bruxelles Universiteti talabalaridan iborat guruhmiz. Bizning loyihamiz odamlarga narsalarni ushlab olishda yordam beradigan kuchni yaratadigan robot qo'lqopini ishlab chiqishdan iborat.

Qo'lqop

Qo'lqopda barmoqlarni ba'zi servo dvigatellar bilan bog'laydigan simli aloqa mavjud: sim barmoq uchiga va servoga bog'langan, shuning uchun servo aylanganda sim tortiladi va barmoq egiladi. Shunday qilib, barmoqlarning chekkasidagi ba'zi bosim sensori orqali foydalanuvchi qo'lini ushlab turish orqali biz dvigatellarni boshqariladigan usulda ishga tushiramiz va barmog'imizni dvigatellarning aylanishiga mutanosib bukamiz. simlarning yig'ilishiga qadar. Shunday qilib, biz kuchsiz odamlarga narsalarni ushlashga ruxsat bera olamiz yoki hatto fiziologik sharoitda bo'lgan odamlarga narsalarni ushlashga va hech qanday harakat qilmasdan saqlashga yordam berishimiz kerak.

DIZAYN

Model qo'l harakatini iloji boricha erkinroq qilish uchun ishlab chiqilgan. Aslida, biz simlarni, dvigatellar va barmoqlarni ulash uchun zarur bo'lgan qismlarni faqat 3D formatida chop etdik.

Bizda har bir barmog'imizda PLA bosilgan yuqori gumbaz bor: bu simlarni ulash kerak bo'lgan terminal qismi va uning ichida o'rnatilgan bosim sensori himoyalanishi kerak. Bosim sensori PLA ekstremitasi va qo'lqop o'rtasida issiq elim bilan yopishtirilgan.

Keyin bizda barmog'i uchun ikkita 3D bosilgan halqalar bor, ular simlar uchun qo'llanma bo'ladi. Bosh barmog'i faqat bitta bosilgan halqalarga ega bo'lgan yagona barmoqdir. Barmoqlarning uchida yarmiga bukilgan bitta barmoq bor. Ikkala yarmi gumbaz qismining ikkita yo'riqchisidan va ikkala halqadan o'tadi: ular to'g'ridan -to'g'ri biz halqalar tashqarisida qilingan teshiklarga joylashtiriladi. Keyin ular to'g'ridan -to'g'ri dvigatelga ulangan g'ildirakka o'rnatiladi. G'ildirak simlarni o'rab olish uchun qilingan: bizning dvigatelimiz to'liq aylanmagan (180 ° dan past), biz simni 6 santimetr bo'shliqqa tortish uchun g'ildirakni amalga oshirdik, bu masofa qo'lni to'liq yopish kerak.

Shuningdek, biz servo dvigatellarni va arduino qo'lini mahkamlash uchun ikkita plastinka bosdik. Uni yog'ochdan yoki qattiq plastmassadan lazer bilan kesish yaxshiroq bo'lishi kerak.

1 -qadam: xaridlar ro'yxati

Xaridlar ro'yxati
Xaridlar ro'yxati
Xaridlar ro'yxati
Xaridlar ro'yxati
Xaridlar ro'yxati
Xaridlar ro'yxati

Qo'lqop va simlar:

1 ta qo'lqop (tikiladigan bo'lishi kerak)

Eski jinsi yoki boshqa qattiq mato

Neylon simlar

Past zichlikli polietilen quvurlar (diametri: 4 mm qalinligi: 1 mm)

Elektronika:

Arduino Uno

1 Batareya 9V + 9V Batareya ushlagichi

1 elektron kalit

1 ta velosiped

3 ta servo dvigatel (barmog'iga 1 tadan)

3 ta pervanel (servo bilan ta'minlangan)

4 ta AA + 4 ta AA batareyasi ushlagichi

3 ta bosim sensori (barmog'iga 1 tadan)

3 rezistor 330 ohm (barmog'iga 1 ta)

6 ta elektr simlari (har bir datchik uchun 2 ta)

Vintlar, yong'oqlar va fiksajlar:

Uzunligi 10 mm bo'lgan 4 M3 (Arduino -ni o'rnatish uchun)

2 M2,5 12 mm uzunlikdagi (9V batareya ushlagichini mahkamlash uchun)

6 ta mos keladigan yong'oq

10 mm uzunlikdagi 6 M2 (g'ildiraklarni servolarga mahkamlash uchun har bir servo uchun 2 ta)

12 ta kichik kabel aloqasi (plitalar va kalitni mahkamlash uchun)

7 ta katta kabel aloqasi (har bir dvigatel uchun 2 ta va 4 ta AA batareyasi ushlagichi uchun 1 ta)

Ishlatilgan asboblar:

3D printer (Ultimaker 2)

Tikuv uchun material

Issiq yopishtiruvchi to'pponcha

Variant: lazerni kesuvchi

2 -qadam: taqiladigan tuzilmani tayyorlang

Kiyiladigan tuzilmani tayyorlang
Kiyiladigan tuzilmani tayyorlang

Kiyiladigan tuzilma ba'zi kiyimlardan yasalgan: bizning holatimizda biz elektrchi uchun oddiy qo'lqop va bilak atrofidagi tuzilish uchun jinsi matodan foydalanardik. Ular bir -biriga tikilgan.

Maqsad moslashuvchan kiyiladigan tuzilishga ega bo'lishdir.

Tuzilishi oddiy jun qo'lqopdan kuchliroq bo'lishi kerak, chunki uni tikish kerak.

Quvvat etkazib beruvchilar va aktuatorlarni ushlab turish uchun bizga bilagining atrofida taqiladigan tuzilma kerak va biz uning barqaror bo'lishini xohlaymiz, shuning uchun biz jinsi bilagiga Velcro tasmalarini (avtomatik yopishtiruvchi bantlar) qo'llash orqali yopilishini sozlashni tanladik.

Jinsini qattiqroq qilish uchun bir nechta yog'och tayoqlar ichkariga tikilgan.

3 -qadam: Funktsional qismlarni tayyorlang

Funktsional qismlarni tayyorlang
Funktsional qismlarni tayyorlang

Qattiq qismlar tavsifdagi.stl fayllaridan PLAda 3D bosib chiqarish orqali amalga oshiriladi:

Barmoq uzuk x5 (har xil tarozi bilan: 1x shkalasi 100%, 2x shkalasi 110%, 2x shkalasi 120%);

Finger Extremity x3 (har xil tarozilar bilan: 1x shkalasi 100%, 1x shkalasi 110%, 1x shkalasi 120%);

Dvigatel x3 uchun g'ildirak

Barmoq qismlari uchun har bir barmoq va har bir falanksning kattaligi har xil bo'lgani uchun har xil tarozilar kerak.

4 -qadam: Sensorlarni haddan tashqari holatga keltiring

Sensorlarni haddan tashqari holatlarga mahkamlang
Sensorlarni haddan tashqari holatlarga mahkamlang

Bosim sezgichlari birinchi navbatda simi simlariga lehimlanadi.

Keyin ular barmoq uchlari ichiga yopishtiruvchi to'pponcha yordamida yopishtiriladi: oz miqdordagi elim ekstremitaning ichiga, ikki teshigi bo'lgan tomonga joylashtiriladi, so'ngra datchik darhol faol (dumaloq) qismi bilan qo'llaniladi. elim (piezoelektrik yuzasi strukturaning ichki tomoniga va plastik qismi to'g'ridan -to'g'ri elim ustida bo'lsin). Kabel simlari qo'lning orqa tomonida elektr kabelini o'tkazishi uchun barmoqning yuqori qismidan uning orqa qismigacha o'tishi kerak.

5 -qadam: 3D bosilgan qismlarni qo'lqopga mahkamlang

3D bosilgan qismlarni qo'lqopga mahkamlang
3D bosilgan qismlarni qo'lqopga mahkamlang

Barcha qattiq qismlarni (ekstremitalar, halqalarni) mahkamlash uchun qo'lqopga tikish kerak.

Uzuklarni to'g'ri joylashtirish uchun avval qo'lqop kiying va halqalarni qo'lni yopayotganda tekkizmasdan, har bir falanksga taqishga harakat qiling. Taxminan, indeksdagi uzuklar barmoq tagidan 5 mm balandlikda va birinchisidan 17-20 mm balandlikda o'rnatiladi. O'rta barmoqqa kelsak, birinchi uzuk barmoq tagidan taxminan 8-10 mm balandlikda, ikkinchisi esa birinchisidan 20 mm balandlikda bo'ladi. Bosh barmog'i bilan bog'liq holda, aniqlik juda past, chunki boshqa halqalarga xalaqit berish xavfi yo'q, shuning uchun uni eskirgan qo'lqopga surtishga harakat qiling, qo'lqopga o'zingiz xohlagan joyni chizib qo'ying. qo'ng'iroq qiling, shunda siz uni tikishingiz mumkin.

Tikuvchilikka kelsak, maxsus texnika yoki mahorat talab etilmaydi. Igna bilan tikuv ipi halqalar atrofida aylana bo'lib, qo'lqop yuzasidan o'tadi. Qo'lqopdagi ikkita teshik o'rtasida 3-4 mm bo'lgan qadam allaqachon etarlicha mustahkam o'rnatadi, juda zich tikuv qilishning hojati yo'q.

Xuddi shu usul ekstremitalarni tuzatish uchun ham qo'llaniladi: ignaning oson o'tishi uchun ekstremitaning yuqori qismi holeydir, shuning uchun qo'lqopga faqat barmoq ustidagi xoch shaklidagi shakllarni tikish kerak bo'ladi.

Keyin polietilen qo'llanmalari uchta mezonga muvofiq tuzatilishi kerak:

distal uchi (barmoqqa qaragan holda) barmoq tomon yo'nalishi kerak, uning ichida neylon sim bilan yuqori ishqalanish bo'lmasligi uchun;

qo'lning yopilishiga xalaqit bermaslik uchun distal uchi etarlicha uzoq bo'lishi kerak (barmoq tagidan taxminan 3 sm pastroq, bosh barmog'i uchun 4-5 sm);

Qo'lqopning asosiy qismini va har bir trubaning harakatchanligini kamaytirish uchun quvurlar bir -biridan iloji boricha kamroq o'tishi kerak

Ularni qo'lqop va bilakka tikib, yuqoridagi usulda o'rnatiladi.

Tikuv jarayonida sirg'alib ketish xavfini oldini olish uchun naychalar va qo'lqoplar orasiga bir necha elim qo'shilgan.

6 -qadam: Servo uchun g'ildiraklarni tayyorlang

G'ildiraklarni servo uchun tayyorlang
G'ildiraklarni servo uchun tayyorlang

Biz ushbu loyiha uchun o'zimiz chizgan va 3D bosilgan maxsus mo'ljallangan g'ildiraklardan foydalanardik (tavsifdagi.stl fayli).

G'ildiraklar bosilgandan so'ng, biz ularni vintlar bilan (M2, 10 mm vintlardek) servo pervanellariga mahkamlashimiz kerak. Pervanellarning teshiklari M2 vidalanib, diametri 2 mm dan kichikroq bo'lgani uchun, yong'oq kerak emas.

Har bir servoda 3 ta pervanel qo'llanilishi mumkin.

7 -qadam: Dvigatellarni bilagiga mahkamlang

Dvigatellarni bilagiga mahkamlang
Dvigatellarni bilagiga mahkamlang

Bu qadam motorlarni qo'lga mahkamlashdan iborat; Buning uchun biz qo'llab -quvvatlash uchun PLA yordamchi plakatini chop etishimiz kerak edi.

Aslida, dvigatellarni to'g'ridan -to'g'ri qo'l bilan mahkamlash mumkin emas, chunki qo'lqop tufayli simlarni tortish uchun zarur bo'lgan g'ildiraklar tiqilib qolishi mumkin edi. Shunday qilib, biz 120x150x5 mm o'lchamdagi PLA plastinkasini 3D bosdik.

Keyin biz qo'lqopga blyashka o'rnatdik: biz qo'lqopga qaychi yordamida bir nechta teshik qildik, keyin plastmassa plastinkaga burg'ulash yordamida teshik qildik va hamma narsani birlashtirdik. Kabel bog'lamlarini o'tkazish uchun markazda, uning perimetri orasida, blyashka uchun to'rtta teshik kerak. Ular matkap yordamida qilingan. Ular plastinkaning yon tomonlarida emas, markazida joylashganki, plastinka egilmasligi sababli, qo'lini atrofidagi jinsini yopib qo'yishi mumkin.

Keyin plastmassa plastinkada dvigatellarni tuzatish uchun boshqa teshiklar ochiladi. Dvigatellar ikkita o'zaro bog'langan simi rishtalari bilan o'rnatiladi. Fiksatsiyani ta'minlash uchun yon tomonlariga ozgina elim qo'shilgan.

Dvigatellarni g'ildiraklar bir -biriga to'sqinlik qilmaydigan qilib qo'yish kerak. Shunday qilib, qo'lning chap va o'ng tomonlari ajratilgan: ikkitasi yonma -yon, g'ildiraklar qarama -qarshi tomonga, biri esa boshqa tomonga buriladi.

8 -qadam: Arduino kodi

Arduino uchun kod
Arduino uchun kod

Kod oddiy tarzda ishlab chiqilgan: dvigatellarni ishga tushirish yoki qilmaslik. Servo faqat o'qish ma'lum qiymatdan oshib ketganda ishga tushiriladi (u har bir sensorning sezuvchanligi bir xil emasligi uchun sinovlar va xatolar bilan aniqlangan).. Kam kuch uchun va to'liq kuchli kuch uchun egilishning ikkita imkoniyati mavjud. Barmoq büküldükten so'ng, barmoqni haqiqiy holatini saqlab qolish uchun hech qanday kuch ishlatilmaydi. Amalga oshirilishining sababi shundaki, aks holda barmoqlar doimiy ravishda datchiklarga ta'sir qilishi kerak va qo'lqop hech qanday afzallik bermaydi. Barmoqning egilishini bo'shatish uchun bosim sensori to'xtash buyrug'ini bajarishi kerak.

Biz kodni uch qismga bo'lishimiz mumkin:

Sensorlarning boshlanishi:

Birinchidan, biz uchta butun o'zgaruvchini ishga tushirdik: o'qish1, o'qish2, o'qish3 har bir sensor uchun. Datchiklar A0, A2, A4 analogli kirishga joylashtirildi. O'qish uchun har bir o'zgaruvchi quyidagicha o'rnatiladi:

  • o'qish1 bu erda A0 kirishda o'qilgan qiymat yoziladi,
  • read2 bu erda A2 kirishda o'qilgan qiymat yoziladi,
  • read3 bu erda A4 kirishda o'qilgan qiymat yoziladi

Ikkita chegara servolarning ikkita harakatlanish pozitsiyasiga mos keladigan barmoq bilan o'rnatiladi. Bu chegaralar har bir barmoq uchun har xil, chunki har bir barmoq uchun qo'llaniladigan kuch bir xil emas va uchta sensorning sezuvchanligi bir xil emas.

Dvigatellar:

Har bir dvigatel uchun bittadan char (save1, save2, save3) uchta o'zgaruvchi 0 da ishga tushiriladi. Keyin sozlashda biz motorlarni mos keladigan pinlarni belgiladik: pin 9, pin 6 va servo1, servo2, servo3 uchun pin 3; barchasi 0 qiymatida ishga tushirildi.

Keyin servolarni servo.write () buyrug'i orqali ishga tushiriladi, bu servoga kirish sifatida olingan burchakni to'g'rilaydi. Shuningdek, sinovlar va xatolar natijasida barmoqni kichik ushlash va katta ushlashga mos keladigan ikkita holatda egilishi kerak bo'lgan ikkita yaxshi burchak topildi.

Fikslash tufayli bitta dvigatel teskari yo'nalishda burilishi kerak, uning boshlanish nuqtasi nol emas, balki maksimal burchak va teskari tomonga burilish uchun kuch ishlatilganda kamayadi.

Datchiklar va motorlar o'rtasidagi aloqa:

Save1, save2, save3 va reading1, reading2, reading3 ni tanlash lehimga bog'liq. Ammo har bir barmoq uchun sensor va dvigatel bir xil raqamga ega bo'lishi kerak.

Keyin, agar barmoq bükme holatida yoki yo'qligini va sensorlar ustida bosim yoki yo'qligini tekshirish uchun sharoit ishlatilgan bo'lsa. Sensorlar qiymatni qaytarganda, kuch ishlatish kerak, lekin ikki xil holat bo'lishi mumkin:

  • Agar barmoq hali egilmagan bo'lsa, sensorlar tomonidan qaytarilgan bu qiymatni eshiklar bilan taqqoslaganda, servoga mos burchak qo'llaniladi.
  • Agar barmoq allaqachon egilgan bo'lsa, demak, foydalanuvchi egilishni qo'yib yubormoqchi bo'ladi va keyin servolarga boshlang'ich burchak qo'llaniladi.

Bu har bir dvigatel uchun amalga oshiriladi.

Keyin biz sensorlar qiymatlarini tez -tez sinab ko'rmaslik uchun 1000 milodiy kechiktirdik. Agar kechikishning juda kichik qiymati qo'llanilsa, kuch kechikish vaqtidan ko'ra ko'proq vaqt davomida qo'llanilsa, qo'lni yopgandan so'ng uni to'g'ridan -to'g'ri qayta ochish xavfi tug'iladi.

Bir sensor uchun barcha jarayonlar yuqoridagi oqim jadvalida keltirilgan.

BUTUN KOD

#servo servo1 ni qo'shing; Servo servo2; Servo servo3; int o'qish1; int o'qish 2; int read3; char saqlash1 = 0; // servo 0 holatidan boshlanadi, uxlash holati char save2 = 0; char saqlash3 = 0; void setup (void) {Serial.begin (9600); servo2.attach (9); // 9 -raqamli pinli servo servo2.write (160); // servo servo1.attach uchun boshlang'ich nuqta (6); // raqamli pimdagi servo 6 servo1.write (0); // servo servo3.attach uchun boshlang'ich nuqta (3); // servo raqamli pin 3 servo3.write (0); // servo uchun boshlang'ich nuqta

}

void loop (void) {o'qish1 = analogRead (A0); // analogga biriktirilgan 0 o'qish2 = analogRead (A2); // analog 2 o'qishga biriktirilgan3 = analogRead (A4); // analog 4 ga biriktirilgan

// agar (o'qish2> = 0) {Serial.print ("Sensor qiymati ="); // Birinchi sensorning chegaralarini kalibrlash uchun ishlatiladigan buyruq misoli

// Serial.println (o'qish2); } // boshqa {Serial.print ("Sensor qiymati ="); Serial.println (0); }

if (o'qish1> 100 va saqlash1 == 0) {// agar sensor yuqori qiymatga ega bo'lsa va uxlash holatida bo'lmasa, saqlash1 = 2; } // boshqa 2 holatiga o'ting, agar (o'qish1> 30 va saqlash1 == 0) {// agar sensor o'rtacha qiymatga ega bo'lsa va uxlash holatida bo'lmasa save1 = 1; } // boshqa 1 holatini ko'rsatish kerak, agar (o'qish1> 0) {// agar qiymat nolga teng bo'lmasa va oldingi shartlarning hech biri to'g'rilanmagan bo'lsa save1 = 0;} // uyqu holatiga o'tish

if (save1 == 0) {servo1.write (160); } // boshqa holatni chiqaring, agar (save1 == 1) {servo1.write (120); } // boshqa tortishning o'rta burchagi {servo1.write (90); } // tortishning maksimal burchagi

if (o'qish2> 10 va saqlash2 == 0) {// servo 1 bilan bir xil saqlash2 = 2; } else if (o'qish2> 5 va saqlash2 == 0) {saqlash2 = 1; } if if (read2> 0) {save2 = 0;}

if (save2 == 0) {servo2.write (0); } else if (save2 == 1) {servo2.write (40); } boshqa {servo2.write (60); }

if (o'qish3> 30 va saqlash3 == 0) {// servo 1 bilan bir xil saqlash3 = 2; } else if (o'qish3> 10 va saqlash3 == 0) {saqlash3 = 1; } if if (read3> 0) {save3 = 0;}

if (save3 == 0) {servo3.write (0); } else if (save3 == 1) {servo3.write (40); } boshqa {servo3.write (70); } kechikish (1000); } // bir soniya kuting

9 -qadam: Arduino, Batareyalar va Veroboardni qo'lingizga mahkamlang

Arduino, Batareyalar va Veroboardni qo'lingizga mahkamlang
Arduino, Batareyalar va Veroboardni qo'lingizga mahkamlang
Arduino, Batareyalar va Veroboardni qo'lingizga mahkamlang
Arduino, Batareyalar va Veroboardni qo'lingizga mahkamlang

PLA -da batareyalar ushlagichlari va arduino -ni tuzatish uchun yana bir plastinka bosildi.

Plitaning o'lchamlari: 100x145x5 mm.

Arduino -ni burab qo'yish uchun to'rtta teshik, 9Vli akkumulyator ushlagichini burab qo'yish uchun ikkita teshik bor. 6Vli akkumulyator ushlagichida va plastinkada ularni bir -biriga mahkamlash uchun simi bog'lagichi yordamida teshik qilingan. Bu ushlagichning mahkamlanishini ta'minlash uchun ozgina elim qo'shilgan. Kalit ikkita kichik kabel aloqasi bilan o'rnatiladi.

Shuningdek, jinsi jinsida plastinkani simi rishtalari yordamida mahkamlash uchun to'rtta teshik ishlatiladi.

Verbord qalqon kabi arduino ustiga qo'yilgan.

10 -qadam: Elektronikani ulang

Elektronni ulang
Elektronni ulang

Yuqoridagi sxemada aytilganidek, sxema veroboardda lehimlanadi.

Arduino 9V akkumulyatorga ega, ular Arduino -ni o'chirish uchun ulangan. 6V akkumulyator katta oqimga muhtoj bo'lgan servo dvigatel uchun kerak bo'ladi va servolarning uchinchi pimi tarmoqqa ulangan. 3, 6 va 9 -pinlar ularni PWM yordamida boshqaradi.

Har bir sensor bir tomondan Arduino -ning 5V tarmog'i bilan, ikkinchi tomoni esa kuchlanishni o'lchash uchun erga va A0, A2 va A4 pimlariga ulangan 330 ohmli rezistor bilan ulanadi.

11 -qadam: Neylon simlarni qo'shing

Neylon simlarni qo'shing
Neylon simlarni qo'shing

Neylon simlar rasmda ko'rinib turganidek, ikkala teshikdan va halqalardan o'tishi uchun qilingan, keyin simning ikkala yarmi ham polietilen yo'riqchining ichiga kiradi va yo'riqnoma oxirigacha dvigatelgacha qoladi. Simlarning uzunligi shu nuqtada aniqlanadi, ular servo g'ildiragini tekis barmoqlari bilan aylana oladigan darajada uzun bo'lishi kerak.

Ular g'ildiraklarga.stl fayllaridagi ikkita kichik teshikdan tugun o'tib, qo'shimcha stabilizatsiya qilish uchun issiq elim bilan o'rnatiladi.

12 -qadam: Xursand bo'ling

Bu kutilganidek ishlaydi.

Birinchi impulsda u barmog'ini bukadi, ikkinchisida esa uni qo'yib yuboradi.

Shunga qaramay, uchta muammo qolmoqda:

- Biz servolarni ishga tushirish uchun 1 soniyadan qisqa impuls qilishimiz uchun ehtiyot bo'lishimiz kerak, aks holda Arduino kodining 8 -bosqichida aytilganidek, simlar tortilgandan so'ng darhol bo'shatiladi.

- Plastik qismlar biroz siljiydi, shuning uchun biz ishqalanish qo'shish uchun chetiga issiq elim qo'shdik.

- Agar barmoqqa og'ir yuk tushsa, sensor har doim katta qiymatga ega bo'ladi va servo uzluksiz aylanadi.

Tavsiya: