Përmbajtje:

RoboGlove: 12 hapa (me fotografi)
RoboGlove: 12 hapa (me fotografi)

Video: RoboGlove: 12 hapa (me fotografi)

Video: RoboGlove: 12 hapa (me fotografi)
Video: Обзор Deek-Robot BL-02 100 В постоянного тока, 10 А, Амперметр - Robojax 2024, Korrik
Anonim
RoboGlove
RoboGlove

Ne jemi një grup studentësh të ULB, Université Libre de Bruxelles. Projekti ynë konsiston në zhvillimin e një doreze roboti të aftë për të krijuar një forcë shtrëngimi duke ndihmuar njerëzit të kapin gjërat.

DASHURIA

Doreza ka një lidhje teli që lidh gishtat me disa servo motorë: një tel është ngjitur në skajin e gishtit dhe në servo, kështu që kur servo kthehet, tela tërhiqet dhe gishti përkulet. Në këtë mënyrë, duke kontrolluar rrokjen e bërë nga përdoruesi përmes disa sensorëve të presionit në skajin e gishtërinjve, ne jemi në gjendje të aktivizojmë motorët në një mënyrë të kontrolluar dhe të ndihmojmë kapjen duke përkulur gishtin proporcionalisht me rrotullimin e motorëve dhe pra deri te mbështjellja e telave. Në këtë mënyrë ne duhet të jemi në gjendje ose t'i lejojmë njerëzit e dobët të kapin objektet ose t'i ndihmojmë edhe njerëzit në kushte fiziologjike të kapin objektet dhe t'i mbajnë ato pa asnjë përpjekje.

DIZAJNI

Modeli është zhvilluar në mënyrë që të bëjë lëvizjen e dorës sa më të lirë të jetë e mundur. Në fakt, ne printuam 3D vetëm pjesët rreptësisht të nevojshme që na duheshin për të lidhur telat, motorët dhe gishtat.

Ne kemi një kupolë të lartë të shtypur në PLA në secilin gisht: kjo është pjesa terminale ku telat duhet të lidhen dhe duhet t'i japë mbrojtje sensorit të presionit që është fiksuar brenda. Sensori i presionit është ngjitur, me zam të nxehtë, midis ekstremitetit PLA dhe dorezës.

Pastaj kemi dy unaza të printuara 3D, për gisht, që përbëjnë një udhëzues për telat. Gishti i madh është gishti i vetëm që ka vetëm një unazë të shtypur. Ekziston një tel për gisht, i palosur në gjysmë në skajin e gishtërinjve. Të dy gjysmat po kalojnë përmes dy udhëzuesve të pjesës së kupolës dhe në të dy unazat: ato vendosen drejt në vrimat që kemi bërë në pjesën e jashtme të këtyre unazave. Pastaj ato bashkohen në një rrotë të lidhur drejtpërdrejt me motorin. Rrota është realizuar në mënyrë që të jetë në gjendje të mbështillet rreth telave: meqenëse motori ynë ka një rrotullim jo të plotë (më të ulët se 180 °) ne e kuptuam rrotën në mënyrë që të tërheqim tela për një hendek prej 6 centimetra që është distanca e nevojshme për të mbyllur plotësisht dorën.

Ne gjithashtu kemi shtypur dy pllaka për të rregulluar motorët servo dhe arduino në krah. Duhet të jetë më mirë ta prerë atë në dru ose një plastikë të ngurtë me një prestar lazer.

Hapi 1: Lista e blerjeve

Listë pazar
Listë pazar
Listë pazar
Listë pazar
Listë pazar
Listë pazar

Doreza dhe tela:

1 dorezë ekzistuese (duhet të jetë e qepshme)

Xhinse të vjetra ose një leckë tjetër të ngurtë

Tela najloni

Tub polietileni me densitet të ulët (Diametri: 4mm Trashësia: 1mm)

Elektronikë:

Arduino Uno

1 Bateri 9V + 9V Mbajtëse baterie

1 ndërprerës elektronik

1 veroboard

3 servo motorë (1 për gisht)

3 helika (të pajisura me servos)

4 Bateri AA + 4 AA Mbajtëse baterish

3 sensorë presioni (1 për gisht)

3 rezistencë 330 ohms (1 për gisht)

6 tela elektrikë (2 për sensorë)

Vida, arra dhe fiksime:

4 M3 10 mm e gjatë (për të rregulluar Arduino)

2 M2.5 12 mm e gjatë (për të rregulluar mbajtësen e baterisë 9V)

6 arra përkatëse

6 M2 10 mm e gjatë (2 për servo për të rregulluar rrotat në servos)

12 lidhje të vogla kabllo (për të rregulluar pllakat dhe ndërprerësin)

7 lidhje të mëdha kabllo (2 për motorë dhe 1 për mbajtësen e 4 baterive AA)

Mjetet e përdorura:

Printer 3D (Ultimaker 2)

Material për qepje

Pistoletë me zam të nxehtë

Opsionale: prestar lazer

Hapi 2: Përgatitni strukturën e veshshme

Përgatitni një strukturë të veshshme
Përgatitni një strukturë të veshshme

Struktura e veshur është bërë me disa rroba: në rastin tonë ne përdorëm një dorezë normale për elektricist dhe një leckë xhinse për strukturën rreth kyçit të dorës. Ata ishin të qepur së bashku.

Qëllimi është të kemi një strukturë fleksibël të veshshme.

Struktura duhet të jetë më e fortë se një dorezë e zakonshme leshi pasi ajo duhet të qepet.

Ne kemi nevojë për një strukturë të veshshme rreth kyçit të dorës për të mbajtur furnizuesit e energjisë dhe aktivizuesit, dhe ne kemi nevojë që ajo të jetë e qëndrueshme, kështu që ne zgjodhëm ta bëjmë mbylljen të rregullueshme duke aplikuar shirita Velcro (shirita auto-ngjitës) në kyçin e xhinseve.

Disa shkopinj druri u qepën brenda për t'i bërë xhinset më të ngurtë.

Hapi 3: Përgatitni pjesët funksionale

Përgatitni pjesët funksionale
Përgatitni pjesët funksionale

Pjesët e ngurta realizohen përmes printimit 3D në PLA nga skedarët.stl në përshkrimin:

Unaza e gishtit x5 (me shkallë të ndryshme: shkallë 1x 100%, shkallë 2x 110%, shkallë 2x 120%);

Ekstremiteti i Gishtit x3 (me shkallë të ndryshme: 1x shkallë 100%, 1x shkallë 110%, 1x shkallë 120%);

Rrota për motorin x3

Për pjesët e gishtërinjve nevojiten peshore të ndryshme për shkak të madhësisë së ndryshme të secilit gisht dhe të secilës falangë.

Hapi 4: Fiksoni Sensorët në Ekstremitetet

Fiksoni Sensorët në Ekstremitetet
Fiksoni Sensorët në Ekstremitetet

Sensorët e presionit së pari ngjiten në telat e kabllove.

Më pas ato ngjiten me përdorimin e një pistoletë zam brenda ekstremiteteve të gishtërinjve: një sasi e vogël zam vendoset brenda ekstremitetit, në anën me dy vrimat, pastaj sensori aplikohet menjëherë me pjesën aktive (të rrumbullakët) në zam (keni fytyrën piezoelektrike në brendësi të strukturës dhe pjesën plastike direkt në zam). Telat e kabllit duhet të kalojnë në pjesën e sipërme të gishtit deri në pjesën e pasme të tij, në mënyrë që kabllot elektrike të kalojnë në anën e pasme të dorës.

Hapi 5: Fiksoni Pjesët e Shtypura 3D në Dorezë

Fiksoni Pjesët e Shtypura 3D në Dorezë
Fiksoni Pjesët e Shtypura 3D në Dorezë

Të gjitha pjesët e ngurta (ekstremitetet, unazat) duhet të qepen në dorezë në mënyrë që të fiksohen.

Për t'i vendosur unazat në mënyrë korrekte, së pari vishni dorezën dhe përpiquni t'i vendosni unazat, një për falangë, pa i prekur ato gjatë mbylljes së dorës. Përafërsisht, unazat në indeks do të fiksohen 5 mm mbi bazën e gishtit dhe 17 deri 20 mm mbi atë të parë. Sa i përket gishtit të mesëm, unaza e parë do të jetë afërsisht 8 deri në 10 mm mbi bazën e gishtit, dhe e dyta rreth 20 mm mbi të parën. Për atë që ka të bëjë me gishtin e madh, saktësia e nevojshme është shumë e ulët, pasi nuk rrezikon të ndërhyjë në unazat e tjera, kështu që përpiquni ta aplikoni në dorezën e veshur, vizatoni një vijë në dorezë aty ku dëshironi të keni unazë në mënyrë që pastaj ta qepni.

Sa i përket qepjes, nuk kërkohet ndonjë teknikë ose aftësi e veçantë. Me një gjilpërë, filli i qepjes shkon në qarqe rreth unazave, duke kaluar nëpër sipërfaqen e dorezës. Një hap prej 3-4 mm midis dy vrimave në dorezë tashmë bën një fiksim mjaft të fortë, nuk ka nevojë të bëni një qepje shumë të dendur.

E njëjta teknikë zbatohet për të rregulluar ekstremitetet: maja e ekstremitetit është e vrimë në mënyrë që gjilpëra të kalojë lehtë, kështu që vetëm format e ngjashme me kryqin në pjesën e sipërme të gishtit do të duhet të qepen në dorezë.

Pastaj udhëzuesit e polietilenit gjithashtu duhet të fiksohen, duke ndjekur tre kritere:

përfundimi distal (përballë gishtit) duhet të përballet në drejtim të gishtit, për të shmangur fërkimet e larta me tela najloni që do të hyjnë brenda tij;

përfundimi distal duhet të jetë aq larg sa të mos ndërhyjë në mbylljen e dorës (rreth 3 cm më e ulët se baza e gishtit është mjaft e mirë, 4 deri në 5 cm për gishtin e madh);

tubat duhet të kalojnë njëri -tjetrin sa më pak të jetë e mundur, për të zvogëluar pjesën më të madhe të të gjithë dorezës dhe lëvizshmërinë e secilit tub

Ato fiksohen duke i qepur në dorezë dhe në dore, me të njëjtën teknikë si më sipër.

Për të shmangur çdo rrezik të rrëshqitjes përmes qepjes, disa zam u shtuan midis tubave dhe dorezave.

Hapi 6: Përgatitni Rrotat për Servos

Përgatitni Rrotat për Servos
Përgatitni Rrotat për Servos

Ne përdorëm rrota të dizajnuara posaçërisht, të vizatuara dhe të printuara 3D nga vetja për këtë projekt (skedari.stl në përshkrim).

Pasi të jenë shtypur rrotat, ne duhet t'i fiksojmë ato në helikat e servos duke vidhosur (M2, vida 10mm). Meqenëse vrimat e helikave janë më të vogla se 2 mm në diametër duke vidhosur M2, nuk nevojiten arra.

3 helikat mund të aplikohen në secilin servo.

Hapi 7: Fiksoni Motorët në Krah

Fiksoni motorët në krah
Fiksoni motorët në krah

Ky hap konsiston në fiksimin e motorëve në krah; për ta bërë këtë, na u desh të shtypnim një pllakë PLA ndihmëse për të marrë një mbështetje.

Në fakt motorët nuk mund të fiksoheshin direkt në krah pasi rrotat, të nevojshme për tërheqjen e telave, mund të bllokoheshin gjatë lëvizjes për shkak të dorezës. Pra, ne printuam 3D një pllakë PLA të dimensionit 120x150x5 mm.

Pastaj e fiksuam pllakën në dorezën tonë me disa lidhje kabllo: ne bëmë disa vrima në dorezë thjesht duke përdorur gërshërë, pastaj bëmë vrima në pllakën plastike me një stërvitje dhe i bashkuam të gjitha. Katër vrima në pllakë nevojiten në qendër, midis perimetrit të saj, për të kaluar lidhjet e kabllove. Ato janë bërë me një stërvitje. Këto janë në pjesën qendrore dhe jo në anët e pjatës për të qenë në gjendje të mbyllni xhinse rreth krahut pa e bllokuar pllakën pasi pjata nuk është fleksibël.

Pastaj të tjera vrima janë shpuar gjithashtu në pllakën plastike për të rregulluar motorët. Motorët janë të fiksuar me dy lidhje kabllo të kryqëzuara. Disa zam u shtuan në anët e tyre për të siguruar fiksimin.

Motorët duhet të vendosen në mënyrë të tillë që rrotat të mos ndërhyjnë me njëri -tjetrin. Pra, janë të ndara në anën e majtë dhe të djathtë të dorës: dy në një anë, me rrotat që kthehen në drejtime të kundërta dhe një në anën tjetër.

Hapi 8: Kodi në Arduino

Kodi në Arduino
Kodi në Arduino

Kodi është zhvilluar në një mënyrë të thjeshtë: për të aktivizuar ose jo motorët. Servo -të aktivizohen vetëm nëse leximi është mbi një vlerë të caktuar (është fiksuar nga provat dhe gabimet sepse ndjeshmëria e secilit sensor nuk është saktësisht e njëjtë) Me Ekzistojnë dy mundësi të përkuljes, të ulëta për një forcë të ulët dhe plotësisht për një forcë të fortë. Pasi gishti është i përkulur, nuk nevojitet forcë e përdoruesit për ta mbajtur gishtin në pozicionin aktual. Arsyeja e këtij zbatimi është se përndryshe është përmendur se gishtat duhet të aplikojnë vazhdimisht një forcë në sensorë dhe dorashka nuk jep ndonjë avantazh. Për të liruar lakimin e gishtit, një forcë e re duhet të aplikohet në sensorin e presionit, duke vepruar si një urdhër ndalimi.

Kodin mund ta ndajmë në tri pjesë:

Fillimi i sensorëve:

Para së gjithash kemi inicializuar tre ndryshore të plota: leximi1, leximi2, leximi3 për secilin sensor. Sensorët u vendosën në hyrjet analoge A0, A2, A4. Çdo ndryshore për leximin është vendosur si më poshtë:

  • leximi1 ku shkruhet vlera e lexuar në hyrjen A0,
  • leximi2 ku shkruhet vlera e lexuar në hyrjen A2,
  • leximi3 ku shkruhet vlera e lexuar në hyrjen A4

Dy pragje fiksohen me gisht që korrespondojnë me dy pozicionet e aktivizimit të servos. Këto pragje janë të ndryshme për secilin gisht pasi forca e aplikuar nuk është e njëjtë për secilin gisht dhe ndjeshmëria e tre sensorëve nuk është saktësisht e njëjtë.

Motorët fillestarë:

Tre variabla char (save1, save2, save3), një për secilin motor inicializohen në 0. Pastaj në konfigurim kemi specifikuar kunjat ku i lidhim motorët përkatësisht: pin 9, pin 6 dhe pin 3 për servo1, servo2, servo3; të gjitha të inicializuara me vlerën 0.

Pastaj servot aktivizohen përmes komandës servo.write () e cila është në gjendje të rregullojë këndin e marrë si hyrje në servo. Gjithashtu nga provat dhe gabimet u gjetën dy kënde të mira, të nevojshme për të përkulur gishtin në dy pozicione që korrespondojnë me një dorezë të vogël dhe një dorezë të madhe.

Meqenëse një motor duhet të kthehet në drejtim të kundërt për shkak të fiksimit të tij, pika e tij e fillimit nuk është zero, por këndi maksimal dhe zvogëlohet kur aplikohet një forcë për të qenë në gjendje të kthehet në drejtim të kundërt.

Lidhja midis sensorëve dhe motorëve:

Zgjedhja e save1, save2, save3 dhe leximit1, leximit2, leximit3 varet nga saldimi. Por për secilin gisht, sensori dhe motori i lidhur duhet të kenë të njëjtin numër.

Pastaj në lak, nëse janë përdorur kushtet për të provuar nëse gishti është tashmë në një pozicion përkulës ose jo dhe nëse presioni është aplikuar ose jo në sensorë. Kur sensorët kthejnë një vlerë, një forcë duhet të aplikohet, por dy raste të ndryshme janë të mundshme:

  • Nëse gishti nuk është ende i përkulur, duke e krahasuar këtë vlerë të kthyer nga sensorët në pragjet, këndi përkatës zbatohet në servo.
  • Nëse gishti është tashmë i përkulur, do të thotë që përdoruesi dëshiron të lëshojë lakimin dhe pastaj këndi i fillimit aplikohet në servos.

Kjo bëhet për secilin motor.

Pastaj shtuam një vonesë prej 1000 ms për të shmangur testimin shumë shpesh të vlerave të sensorëve. Nëse aplikohet një vlerë shumë e vogël e vonesës, rrezikon të rihapë dorën pasi ta mbyllni në rast se forca aplikohet gjatë një kohe më të gjatë se koha e vonesës.

I gjithë procesi për një sensor është paraqitur në tabelën e rrjedhës këtu më lart.

KODI I GJITH

#përfshi Servo servo1; Servo servo2; Servo servo3; leximi int1; int lexim2; int lexim3; ruaj karin1 = 0; // servo fillon në gjendjen 0, gjendja e fjetjes char save2 = 0; char save3 = 0; void setup (void) {Serial.begin (9600); servo2.attach (9); // servo në pinin dixhital 9 servo2.write (160); // pika fillestare për servo servo1.attach (6); // servo dhe pin dixhital 6 servo1.write (0); // pika fillestare për servo servo3.tash (3); // servo dhe kunj dixhital 3 servo3.shkruaj (0); // pika fillestare për servo

}

lak void (i pavlefshëm) {leximi1 = analogRead (A0); // bashkangjitur në analog 0 leximi2 = analogRead (A2); // bashkangjitur në analog 2 leximi3 = analogRead (A4); // bashkangjitur në analog 4

// if (leximi2> = 0) {Serial.print ("Vlera e sensorit ="); // Shembull i komandës i përdorur për kalibrimin e pragjeve të sensorit të parë

// Serial.println (leximi2); } // else {Serial.print ("Vlera e sensorit ="); Serial.println (0); }

nëse (leximi1> 100 dhe ruaj1 == 0) {// nëse sensori merr një vlerë të lartë dhe nuk është në gjendje gjumi ruani1 = 2; } // shkoni në gjendjen 2 tjetër nëse (leximi1> 30 dhe ruani1 == 0) {// nëse sensori merr një vlerë mesatare dhe nuk është në gjendje gjumi ruani1 = 1; } // arriti në gjendjen 1 tjetër nëse (leximi1> 0) {// nëse vlera nuk është zero dhe asnjë nga kushtet e mëparshme nuk është korrigjuar ruaj1 = 0;} // shkoni në gjendje gjumi

if (ruaj1 == 0) {servo1.vrite (160); } // lëshoni else if (ruani1 == 1) {servo1.write (120); } // këndi mesatar i tërheqjes tjetër {servo1.write (90); } // këndi maksimal i tërheqjes

nëse (leximi2> 10 dhe ruaj2 == 0) {// njësoj se servo 1 ruaj2 = 2; } else if (leximi2> 5 dhe ruaj2 == 0) {ruaj2 = 1; } tjetër nëse (leximi2> 0) {ruaj2 = 0;}

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

nëse (leximi3> 30 dhe ruaj3 == 0) {// njësoj se servo 1 ruaj3 = 2; } else if (leximi3> 10 dhe ruaj3 == 0) {ruaj3 = 1; } tjetër nëse (leximi3> 0) {ruaj3 = 0;}

nëse (ruaj3 == 0) {servo3.shkruaj (0); } tjetër if (ruaj3 == 1) {servo3.shkruaj (40); } tjetër {servo3.shkruaj (70); } vonesa (1000); } // prit një sekondë

Hapi 9: Fiksoni Arduino, Bateritë dhe Veroboard në krah

Rregulloni Arduino, Bateritë dhe Veroboard në krah
Rregulloni Arduino, Bateritë dhe Veroboard në krah
Rregulloni Arduino, Bateritë dhe Veroboard në krah
Rregulloni Arduino, Bateritë dhe Veroboard në krah

Një pllakë tjetër u shtyp në PLA për të qenë në gjendje të rregullonte mbajtësit e baterive dhe arduino.

Pllaka ka dimensionet: 100x145x5mm.

Katër vrima janë të pranishme për të vidhosur arduinon dhe dy për të vidhosur mbajtësen e baterisë 9V. Një vrimë u bë në mbajtësen e baterisë 6V dhe në pjatë për të përdorur një lidhëse kabllo për t'i rregulluar ato së bashku. Disa zam u shtuan për të siguruar fiksimin e këtij mbajtësi. Çelësi është i fiksuar me dy lidhje të vogla kabllo.

Ekzistojnë gjithashtu katër vrima të përdorura për të rregulluar pllakën në xhinse duke përdorur lidhëse kabllo.

Veroboardi vihet në arduino si një mburojë.

Hapi 10: Lidhni Elektronikën

Lidhni Elektronikën
Lidhni Elektronikën

Qarku është ngjitur në veroboard siç raportohet në skemën e mësipërme.

Arduino ka një bateri 9V si furnizim dhe një ndërprerës është i lidhur mes tyre për të qenë në gjendje të fikni Arduino. Një bateri 6V nevojitet për motorin servo që ka nevojë për shumë rrymë dhe kunja e tretë e servos është e lidhur në kunjat 3, 6 dhe 9 për t'i kontrolluar ato me PWM.

Çdo sensor është i lidhur nga njëra anë me 5V e Arduino dhe në anën tjetër me një rezistencë 330 ohm të lidhur me tokën dhe kunjat A0, A2 dhe A4 për të matur tensionin.

Hapi 11: Shtoni telat e najlonit

Shtoni telat e najlonit
Shtoni telat e najlonit

Telat najloni janë bërë që të kalojnë nëpër të dy vrimat në ekstremitet dhe unazat siç shihet në foto, atëherë të dy gjysmat e telit do të hyjnë të dyja brenda në udhëzuesin e polietilenit dhe do të qëndrojnë së bashku deri në fund të udhëzuesit, në motor. Gjatësia e telave përcaktohet në këtë pikë, ato duhet të jenë mjaft të gjata për të rrethuar një herë timonin e servo me gishtat e drejtë.

Ato janë të fiksuara në rrota me një nyjë që kalon nëpër dy vrima të vogla të pranishme në skedarët.stl dhe me zam të nxehtë për stabilizim shtesë.

Hapi 12: Shijoni

Punon ashtu siç pritej.

Në impulsin e parë ai përkul gishtin dhe në të dytin e lëshon atë. Asnjë forcë nuk është e nevojshme kur gishtat janë të përkulur.

Sidoqoftë, tre probleme mbeten:

- Ne duhet të jemi të kujdesshëm për të bërë një impuls më të shkurtër se 1 sekondë për të aktivizuar servot përndryshe telat lëshohen menjëherë pas tërheqjes siç shpjegohet në hapin 8 në lidhje me kodin Arduino.

- Pjesët plastike po rrëshqasin pak kështu që ne kemi shtuar disa zam të nxehtë në ekstremitet për të shtuar fërkimin.

- Nëse një ngarkesë e madhe është në gisht, sensori do të ketë gjatë gjithë kohës një vlerë të madhe dhe kështu servo do të rrotullohet vazhdimisht.

Recommended: