Turinys:

„RoboGlove“: 12 žingsnių (su nuotraukomis)
„RoboGlove“: 12 žingsnių (su nuotraukomis)

Video: „RoboGlove“: 12 žingsnių (su nuotraukomis)

Video: „RoboGlove“: 12 žingsnių (su nuotraukomis)
Video: ROBO GLOVE滑り止め試験 2024, Liepa
Anonim
RoboGlove
RoboGlove

Esame grupė ULB, Université Libre de Bruxelles. Mūsų projekto tikslas - sukurti roboto pirštinę, galinčią sukurti sukibimo jėgą, padedančią žmonėms griebtis daiktų.

PIRŠTINĖ

Pirštinė turi vielos jungtį, jungiančią pirštus su kai kuriais servo varikliais: viela yra pritvirtinta prie piršto galūnės ir prie servo, todėl, kai servo sukasi, viela traukiama ir pirštas sulenkiamas. Tokiu būdu, valdydami naudotojo sukibimą per kai kuriuos slėgio jutiklius pirštų galuose, mes galime valdyti variklius įjungti ir padėti sugriebti, sulenkdami pirštą proporcingai variklių sukimui ir taigi į laidų suvyniojimą. Tokiu būdu turėtume sugebėti leisti silpniems žmonėms suimti daiktus arba padėti net fiziologinėmis sąlygomis esantiems žmonėms suimti daiktus ir be jokių pastangų juos išlaikyti.

DIZAINAS

Modelis buvo sukurtas taip, kad rankų judesiai būtų kuo laisvesni. Tiesą sakant, 3D spausdinome tik būtinas dalis, kurių mums reikėjo prijungti laidus, variklius ir pirštus.

Turime viršutinį kupolą, atspausdintą PLA ant kiekvieno piršto: tai yra gnybtų dalis, prie kurios reikia prijungti laidus, ir ji turi apsaugoti viduje esantį slėgio jutiklį. Slėgio jutiklis yra priklijuotas karštais klijais tarp PLA galo ir pirštinės.

Tada mes turime du 3D spausdintus žiedus kiekvienam pirštui, kurie yra laidų vadovas. Nykštis yra vienintelis pirštas, turintis tik vieną atspausdintą žiedą. Viename piršte yra viena viela, perlenkta per pusę pirštų galuose. Abi pusės eina per du kupolo dalies kreiptuvus ir abiejuose žieduose: jie dedami tiesiai į skylutes, kurias padarėme šių žiedų išorėje. Tada jie yra sujungti į ratą, tiesiogiai prijungtą prie variklio. Ratas buvo suprastas, kad būtų galima apvynioti laidus: kadangi mūsų variklio sukimasis nevisiškai (žemesnis nei 180 °), ratą supratome tam, kad ištrauktume vielą 6 cm atstumu. reikia visiškai uždaryti ranką.

Mes taip pat išspausdinome dvi plokštes, kad pritvirtintume servo variklius ir arduino prie rankos. Reikėtų geriau jį pjauti iš medžio arba standaus plastiko lazeriniu pjaustytuvu.

1 žingsnis: pirkinių sąrašas

Prekių sąrašas
Prekių sąrašas
Prekių sąrašas
Prekių sąrašas
Prekių sąrašas
Prekių sąrašas

Pirštinės ir laidai:

1 esanti pirštinė (turi būti siuvama)

Senus džinsus ar kitą standų audinį

Nailoniniai laidai

Mažo tankio polietileno vamzdžiai (skersmuo: 4 mm storis: 1 mm)

Elektronika:

Arduino Uno

1 Baterija 9V + 9V Baterijos laikiklis

1 elektroninis jungiklis

1 lentelė

3 servo varikliai (1 pirštui)

3 sraigtai (pridedami prie servo)

4 baterijos AA + 4 AA baterijų laikiklis

3 slėgio jutikliai (1 pirštui)

3 rezistoriai 330 omų (1 pirštui)

6 elektros laidai (2 jutikliams)

Varžtai, veržlės ir tvirtinimai:

4 M3 10 mm ilgio („Arduino“tvirtinimui)

2 M2,5 12 mm ilgio (9 V baterijos laikikliui pritvirtinti)

6 atitinkami riešutai

6 M2 10 mm ilgio (po 2 servo, kad ratai būtų pritvirtinti prie servo)

12 mažų kabelių jungčių (plokštėms ir jungikliui pritvirtinti)

7 dideli kabelių raiščiai (2 varikliams ir 1 4 AA baterijų laikikliui)

Naudoti įrankiai:

3D spausdintuvas („Ultimaker 2“)

Medžiaga siuvimui

Karštas klijų pistoletas

Neprivaloma: lazerinis pjaustytuvas

2 žingsnis: Paruoškite nešiojamą struktūrą

Paruoškite nešiojamą struktūrą
Paruoškite nešiojamą struktūrą

Nešiojama konstrukcija buvo pagaminta iš kai kurių drabužių: mūsų atveju mes naudojome įprastą pirštinę elektrikui ir džinsų audinį struktūrai aplink riešą. Jie buvo siuvami kartu.

Tikslas yra turėti lanksčią nešiojamą struktūrą.

Konstrukcija turi būti tvirtesnė nei įprastos vilnos pirštinės, nes ji turi būti siuvama.

Mums reikia nešiojamos konstrukcijos aplink riešą, kad galėtume laikyti maitinimo šaltinius ir pavaras, ir kad ji būtų stabili, todėl nusprendėme, kad uždarymas būtų reguliuojamas, džinsų riešui uždedant Velcro juostas (automatiškai klijuojamas juostas).

Kad džinsai būtų standesni, viduje buvo siuvamos kai kurios medžio lazdelės.

3 žingsnis: Paruoškite funkcines dalis

Paruoškite funkcines dalis
Paruoškite funkcines dalis

Standžios dalys realizuojamos naudojant 3D spausdinimą PLA iš aprašo.stl failų:

Pirštų žiedas x5 (su skirtingomis skalėmis: 1x skalė 100%, 2x skalė 110%, 2x skalė 120%);

Pirštų galūnės x3 (su skirtingomis skalėmis: 1x skalė 100%, 1x skalė 110%, 1x skalė 120%);

Ratas varikliui x3

Pirštų dalims reikalingos skirtingos svarstyklės dėl skirtingo kiekvieno piršto ir falangos dydžio.

4 žingsnis: pritvirtinkite jutiklius prie galūnių

Pritvirtinkite jutiklius prie galūnių
Pritvirtinkite jutiklius prie galūnių

Slėgio jutikliai pirmiausia lituojami prie kabelių laidų.

Tada jie klijuojami naudojant klijų pistoletą pirštų galūnių viduje: nedidelis kiekis klijų dedamas į galūnės vidų, šone su dviem skylutėmis, tada jutiklis nedelsiant uždedamas su aktyvia (apvalia) dalimi ant klijai (pjezoelektrinis paviršius turi būti nukreiptas į konstrukcijos vidų, o plastikinė dalis - tiesiai ant klijų). Kabelio laidai turi eiti per piršto viršutinę dalį iki nugaros, kad elektros kabeliai būtų tiesiami rankos gale.

5 žingsnis: pritvirtinkite 3D spausdintas dalis prie pirštinės

Pritvirtinkite 3D spausdintas dalis prie pirštinės
Pritvirtinkite 3D spausdintas dalis prie pirštinės

Visos tvirtos dalys (galūnės, žiedai) turi būti prisiūtos prie pirštinės, kad būtų pritvirtintos.

Norėdami teisingai uždėti žiedus, pirmiausia mūvėkite pirštinę ir pabandykite uždėti žiedus po vieną falange, neliesdami jų rankos uždarymo metu. Apytiksliai rodyklės žiedai bus pritvirtinti 5 mm virš piršto pagrindo ir 17–20 mm virš pirmojo. Kalbant apie vidurinį pirštą, pirmasis žiedas bus maždaug 8–10 mm virš piršto pagrindo, o antrasis - maždaug 20 mm virš pirmojo. Kalbant apie nykštį, reikalingas labai mažas tikslumas, nes nerizikuoja trukdyti kitiems žiedams, todėl pabandykite jį uždėti ant susidėvėjusios pirštinės, ant pirštinės nubrėžkite liniją ten, kur norėtumėte žiedą, kad galėtumėte jį siūti.

Kalbant apie siuvimą, nereikia jokios ypatingos technikos ar sugebėjimų. Su adata siuvimo siūlai eina apskritimais aplink žiedus, eina per pirštinės paviršių. 3-4 mm žingsnis tarp dviejų pirštinės skylių jau yra pakankamai stiprus fiksavimas, nereikia siūti labai tankaus siuvimo.

Ta pati technika taikoma galūnių tvirtinimui: galūnės viršutinė dalis yra skylėta, kad adata lengvai praeitų, todėl prie pirštinės reikės prisiūti tik kryžiaus formos piršto viršuje.

Tada polietileno kreiptuvai taip pat turi būti pritvirtinti pagal tris kriterijus:

distalinis galas (nukreiptas į pirštą) turi būti nukreiptas piršto kryptimi, kad būtų išvengta didelių trinties su nailono viela, kuri pateks į jo vidų;

distalinė galas turi būti pakankamai toli, kad netrukdytų uždaryti rankos (maždaug 3 cm žemiau piršto pagrindo yra pakankamai gera, 4–5 cm nykščiui);

mėgintuvėliai turi kuo mažiau kirsti vienas kitą, kad sumažėtų visos pirštinės masė ir kiekvieno vamzdelio judumas

Jie tvirtinami siuvant juos prie pirštinės ir riešo ta pačia technika, kaip aprašyta aukščiau.

Kad išvengtumėte jokios slydimo per siuvimą rizikos, tarp vamzdelių ir pirštinių buvo pridėta keletas klijų.

6 žingsnis: Paruoškite ratus servams

Paruoškite ratus servams
Paruoškite ratus servams

Šiam projektui mes panaudojome specialiai sukurtus ratus, nupieštus ir 3D atspausdintus patys (apraše.stl failas).

Kai ratai atspausdinti, mes turime juos pritvirtinti prie servo sraigtų atsukdami (M2, 10 mm varžtai). Kadangi sraigtų angos yra mažesnės nei 2 mm skersmens, įsukant M2, veržlių nereikia.

3 sraigtus galima uždėti ant kiekvieno servo.

7 žingsnis: pritvirtinkite variklius prie rankos

Pritvirtinkite variklius prie rankos
Pritvirtinkite variklius prie rankos

Šis žingsnis susideda iš variklių tvirtinimo prie rankos; Norėdami tai padaryti, turėjome atspausdinti papildomą PLA plokštelę, kad gautume paramą.

Tiesą sakant, varikliai negalėjo būti tvirtinami tiesiai prie rankos, nes ratai, reikalingi traukiant laidus, judėjimo metu gali būti užblokuoti dėl pirštinės. Taigi 3D spausdinome PLA plokštelę, kurios matmenys yra 120x150x5 mm.

Tada pritvirtinome apnašą prie pirštinės tam tikrais kabeliais: į pirštinę padarėme keletą skylių tiesiog žirklėmis, tada gręžtuvu padarėme skyles į plastikinę plokštelę ir viską sudėjome. Centre, tarp jos perimetro, reikia keturių skylių į plokštelę, kad praeitų kabelių raiščiai. Jie pagaminti su gręžtuvu. Jie yra centrinėje dalyje, o ne plokštelės šonuose, kad būtų galima uždaryti džinsus aplink ranką, kad plokštelė jos neužstotų, nes plokštė nėra lanksti.

Tada į plastikinę plokštelę taip pat išgręžiamos kitos skylės varikliams pritvirtinti. Varikliai tvirtinami dviem sukryžiuotomis kabelių jungtimis. Šonuose buvo pridėta šiek tiek klijų, kad būtų užtikrinta fiksacija.

Varikliai turi būti sumontuoti taip, kad ratai netrukdytų vienas kitam. Taigi jie yra atskirti kairėje ir dešinėje rankos pusėje: du šone, ratai sukasi priešingomis kryptimis ir vienas kitoje pusėje.

8 žingsnis: „Arduino“kodas

„Arduino“kodas
„Arduino“kodas

Kodas buvo sukurtas paprastu būdu: paleisti variklius arba ne. Servos įjungiamos tik tuo atveju, jei rodmenys viršija tam tikrą vertę (ją nustatė bandymai ir klaidos, nes kiekvieno jutiklio jautrumas nėra visiškai vienodas). Yra dvi lenkimo galimybės: menka mažai jėgai ir visiškai stipriai jėgai. Kai pirštas sulenktas, vartotojo jėgos nereikia, kad pirštas išliktų tikroje padėtyje. Šio įgyvendinimo priežastis yra ta, kad priešingu atveju buvo paminėta, kad pirštai turi nuolat veikti jėgą, o pirštinė nesuteikia jokio pranašumo. Norėdami atleisti piršto lenkimą, slėgio jutikliui reikia taikyti naują jėgą, veikiančią sustoti.

Kodą galime padalyti į tris dalis:

Jutiklių iniciatyva:

Pirmiausia mes inicijavome tris sveiko skaičiaus kintamuosius: kiekvieno jutiklio skaitymas1, skaitymas2, skaitymas3. Jutikliai buvo įdėti į analoginius įėjimus A0, A2, A4. Kiekvienas rodmens kintamasis nustatomas taip:

  • skaitymas1, kur parašyta įvesties A0 vertė,
  • Read2, kur parašyta įvesties A2 vertė,
  • skaitymas3, kur parašyta įvesties A4 vertė

Pirštu fiksuojami du slenksčiai, atitinkantys dvi servo įjungimo pozicijas. Šie slenksčiai yra skirtingi kiekvienam pirštui, nes kiekvienam pirštui taikoma jėga nėra vienoda, o trijų jutiklių jautrumas nėra visiškai vienodas.

Variklio iniciatyva:

Trys kintamieji char (išsaugoti1, išsaugoti2, išsaugoti3), vienas kiekvienam varikliui, inicijuojami ties 0. Tada į sąranką nurodėme kaiščius, kuriuose atitinkamai prijungiame variklius: kaištis 9, kaištis 6 ir kaištis 3 servo1, servo2, servo3; visi inicijuoti 0 reikšme.

Tada servos paleidžiamos per komandą servo.write (), kuri gali nustatyti kampą, gautą kaip įvestis servo sistemoje. Taip pat bandymų ir klaidų metu buvo rasti du geri kampai, reikalingi pirštui sulenkti į dvi pozicijas, atitinkančias mažą ir didelį sukibimą.

Kadangi vienas variklis dėl savo fiksavimo turi suktis priešinga kryptimi, jo pradinis taškas yra ne nulis, o didžiausias kampas ir sumažėja, kai veikia jėga, kad būtų galima pasukti priešinga kryptimi.

Ryšys tarp jutiklių ir variklių:

Išsaugoti1, išsaugoti2, išsaugoti3 ir skaityti1, skaityti2, skaityti3 pasirinkimas priklauso nuo litavimo. Tačiau kiekvieno piršto jutiklis ir variklis turi turėti tą patį numerį.

Tada kilpoje, jei buvo naudojamos sąlygos, kad būtų galima patikrinti, ar pirštas jau yra lenkimo padėtyje, ar ne, ir ar jutikliai yra spaudžiami. Kai jutikliai grąžina vertę, reikia taikyti jėgą, tačiau galimi du skirtingi atvejai:

  • Jei pirštas dar nesulenktas, palyginus šią jutiklių grąžintą vertę su slenksčiais, atitinkamas kampas taikomas servo.
  • Jei pirštas jau sulenktas, tai reiškia, kad vartotojas nori atleisti lenkimą, o tada servo varikliams taikomas pradinis kampas.

Tai daroma kiekvienam varikliui.

Tada pridėjome 1000 ms vėlavimą, kad būtų išvengta pernelyg dažno jutiklių verčių tikrinimo. Jei taikoma per maža uždelsimo vertė, gresia pavojus tiesiogiai atidaryti ranką ją uždarius, jei jėga bus taikoma ilgiau nei atidėjimo laikas.

Visas vieno jutiklio procesas pateiktas aukščiau esančioje schemoje.

VISAS KODAS

#įtraukti „Servo servo1“; Servo servo2; Servo servo3; int skaitymas1; int skaitymas2; int skaitymas3; char išsaugoti1 = 0; // servo prasideda būsena 0, miego būsena char save2 = 0; char save3 = 0; void setup (void) {Serial.begin (9600); servo2.attach (9); // servo prie skaitmeninio kaiščio 9 servo2.write (160); // pradinis servo servo1.attach taškas (6); // servo prie skaitmeninio kaiščio 6 servo1.write (0); // pradinis servo servo3.attach taškas (3); // servo prie skaitmeninio kaiščio 3 servo3.write (0); // pradinis servo taškas

}

void loop (void) {reading1 = analogRead (A0); // prijungtas prie analoginio 0 skaitymo2 = analogRead (A2); // prijungtas prie 2 analoginio skaitymo3 = analogRead (A4); // prijungtas prie analogo 4

// if (reading2> = 0) {Serial.print ("Jutiklio vertė ="); // Komandos, naudojamos pirmojo jutiklio slenksčiams kalibruoti, pavyzdys

// Serial.println (skaitymas2); } // else {Serial.print ("Jutiklio vertė ="); Serijinis.println (0); }

if (skaitymas1> 100 ir išsaugojimas1 == 0) {// jei jutiklis gauna didelę vertę ir nėra miego būsenoje, išsaugokite1 = 2; } // eikite į 2 būseną kitaip, jei (skaitymas1> 30 ir išsaugokite1 == 0) {// jei jutiklis gauna vidutinę vertę ir nėra miego būsenoje, išsaugokite1 = 1; } // gavo būseną 1 else, jei (skaitymas1> 0) {// jei reikšmė nėra nulis ir nė viena iš ankstesnių sąlygų nėra teisinga, išsaugokite1 = 0;}

if (issaugoti1 == 0) {servo1.write (160); } // atleisti else if (išsaugoti1 == 1) {servo1.write (120); } // vidutinis traukimo kampas else {servo1.write (90); } // didžiausias traukimo kampas

if (skaitymas2> 10 ir išsaugoti2 == 0) {// tas pats, kaip 1 servo, išsaugoti2 = 2; } else if (skaitymas2> 5 ir išsaugojimas2 == 0) {išsaugoti2 = 1; } else if (skaitymas2> 0) {išsaugoti2 = 0;}

jei (išsaugoti2 == 0) {servo2.rašyti (0); } else if (išsaugoti2 == 1) {servo2.write (40); } else {servo2.write (60); }

if (skaitymas3> 30 ir išsaugoti3 == 0) {// tas pats kaip 1 servo servas išsaugoti3 = 2; } else if (skaitymas3> 10 ir išsaugojimas3 == 0) {išsaugoti3 = 1; } else if (skaitymas3> 0) {išsaugoti3 = 0;}

jei (išsaugoti3 == 0) {servo3.rašyti (0); } else if (išsaugoti3 == 1) {servo3.write (40); } else {servo3.write (70); } uždelsimas (1000); } // palaukite sekundę

9 žingsnis: pritvirtinkite „Arduino“, baterijas ir „Veroboard“prie rankos

Pritvirtinkite „Arduino“, baterijas ir „Veroboard“prie rankos
Pritvirtinkite „Arduino“, baterijas ir „Veroboard“prie rankos
Pritvirtinkite „Arduino“, baterijas ir „Veroboard“prie rankos
Pritvirtinkite „Arduino“, baterijas ir „Veroboard“prie rankos

Kita plokštė buvo atspausdinta PLA, kad būtų galima pritvirtinti baterijų laikiklius ir arduino.

Plokštės matmenys: 100x145x5mm.

Yra keturios skylės, skirtos prisukti arduino, ir dvi, norint prisukti 9V akumuliatoriaus laikiklį. 6V akumuliatoriaus laikiklyje ir plokštėje buvo padaryta skylė, kad juos būtų galima pritvirtinti kabeliu. Siekiant užtikrinti šio laikiklio fiksavimą, buvo pridėta šiek tiek klijų. Jungiklis tvirtinamas dviem mažais kabelių raiščiais.

Taip pat yra keturios skylės, naudojamos plokštelei pritvirtinti prie džinsų, naudojant kabelių kaklaraiščius.

Verbooard yra uždėtas ant arduino kaip skydas.

10 veiksmas: prijunkite elektroniką

Prijunkite elektroniką
Prijunkite elektroniką

Grandinė yra lituojama ant lentos, kaip nurodyta aukščiau pateiktoje schemoje.

„Arduino“tiekia 9 V bateriją ir tarp jų yra prijungtas jungiklis, kad būtų galima išjungti „Arduino“. 6 V baterija reikalinga servo varikliui, kuriam reikia daug srovės, o trečiasis servo kaištis yra prijungtas prie 3, 6 ir 9 kaiščiai, skirti juos valdyti naudojant PWM.

Kiekvienas jutiklis iš vienos pusės yra prijungtas prie „Arduino“5 V, o iš kitos pusės - 330 omų rezistorius, prijungtas prie žemės ir kaiščių A0, A2 ir A4 įtampai matuoti.

11 veiksmas: pridėkite nailono laidus

Pridėkite nailono laidus
Pridėkite nailono laidus

Nailoniniai laidai turi praeiti per abi galūnės angas ir žiedus, kaip parodyta paveikslėlyje, tada abi vielos pusės pateks į polietileno kreiptuvo vidų ir liks kartu iki kreiptuvo pabaigos iki variklio. Laidų ilgis nustatomas šiuo metu, jie turi būti pakankamai ilgi, kad suktų vieną kartą servo ratą tiesiais pirštais.

Jie pritvirtinami prie ratų mazgu, einančiu per dvi mažas skyles, esančias.stl rinkmenose, ir karštais klijais papildomam stabilizavimui.

12 žingsnis: Mėgaukitės

Jis veikia kaip tikėtasi.

Pirmuoju impulsu jis sulenkia pirštą, o antrąjį - atleidžia. Pirštų lenkimo metu jėga nereikalinga.

Vis dėlto lieka trys problemos:

- Turime būti atsargūs, kad impulsas būtų trumpesnis nei 1 sekundė, kad įjungtų servos, kitaip laidai iškart ištraukiami po traukimo, kaip paaiškinta 8 žingsnyje apie „Arduino“kodą.

- Plastikinės dalys šiek tiek slysta, todėl galūnėje pridėjome šiek tiek karštų klijų, kad padidėtų trintis.

- Jei pirštui tenka didelė apkrova, jutiklis visą laiką turės didelę vertę, todėl servo sistema nuolat sukasi.

Rekomenduojamas: