INHOUDSOPGAWE:

RoboGlove: 12 stappe (met foto's)
RoboGlove: 12 stappe (met foto's)

Video: RoboGlove: 12 stappe (met foto's)

Video: RoboGlove: 12 stappe (met foto's)
Video: ТАКОГО ЕЩЕ НИКТО НЕ ВИДЕЛ! Узнав это СЕКРЕТ, ты никогда не выбросишь пластиковую бутылку! 2024, Julie
Anonim
RoboGlove
RoboGlove

Ons is 'n groep studente van die ULB, Université Libre de Bruxelles. Ons projek bestaan uit die ontwikkeling van 'n robothandskoen wat 'n greepkrag kan skep wat mense help om dinge te gryp.

DIE HANDSKYN

Die handskoen het 'n draadverbinding wat die vingers met 'n paar servomotore verbind: 'n draad word aan die uiteinde van die vinger en aan die servo vasgemaak, dus as die servo draai, word die draad getrek en die vinger word gebuig. Op hierdie manier kan ons die motors op 'n beheerde manier deur die greep wat die gebruiker deur 'n paar druksensors in die uiterste van die vingers beheer, beheer en die gryp help deur die vinger proporsioneel te buig tot die rotasie van die motors en so tot die oprol van die drade. Op hierdie manier moet ons in staat wees om swak mense toe te laat om voorwerpe vas te gryp, of om selfs mense in fisiologiese toestande te help om voorwerpe vas te gryp en dit sonder moeite te hou.

DIE ONTWERP

Die model is ontwikkel om die handbeweging so vry as moontlik te maak. Trouens, ons het slegs die streng onderdele wat ons nodig gehad het om drade, motors en vingers aan te sluit, in 3D gedruk.

Ons het 'n boonste koepel gedruk in PLA op elke vinger: dit is die eindpunt waar die drade verbind moet word en dit moet die druksensor wat daarbinne vasgemaak is, beskerm. Die druksensor word met warm gom tussen die PLA -ekstremiteit en die handskoen vasgeplak.

Dan het ons twee 3D -gedrukte ringe per vinger, wat 'n gids vir die drade vorm. Die duim is die enigste vinger met slegs een gedrukte ringe. Daar is een draad per vinger, in die helfte van die vingers gevou. Die twee helftes gaan deur die twee gidse van die koepeldeel en in albei ringe: hulle word reguit in gate gemaak wat ons aan die buitekant van hierdie ringe gemaak het. Dan word hulle saamgevoeg in 'n wiel wat direk aan die motor gekoppel is. Die wiel is gerealiseer om om die drade te kan draai: aangesien ons motor nie volledig draai nie (laer as 180 °), het ons die wiel besef om die draad te trek vir 'n gaping van 6 sentimeter, dit is die afstand nodig om die hand heeltemal toe te maak.

Ons het ook twee plate gedruk om die servomotors en die arduino aan die arm vas te maak. Dit moet beter wees om dit met 'n lasersnyer in hout of 'n stewige plastiek te sny.

Stap 1: Inkopielys

Inkopielys
Inkopielys
Inkopielys
Inkopielys
Inkopielys
Inkopielys

Handskoen en drade:

1 bestaande handskoen (moet naaldbaar wees)

Ou jeans of 'n ander stywe lap

Nylon drade

Lae digtheid poliëtileen buis (deursnee: 4 mm dikte: 1 mm)

Elektronika:

Arduino Uno

1 Battery 9V + 9V Batteryhouer

1 elektroniese skakelaar

1 verobord

3 servomotors (1 per vinger)

3 propellers (saam met die servo's)

4 batterye AA + 4 AA batterye houer

3 druksensors (1 per vinger)

3 weerstande 330 ohm (1 per vinger)

6 elektriese drade (2 per sensor)

Skroewe, moere en bevestigings:

4 M3 10 mm lank (om die Arduino reg te maak)

2 M2,5 12 mm lank (om die 9V -batteryhouer reg te maak)

6 ooreenstemmende neute

6 M2 10 mm lank (2 per servo om die wiele aan die servo's vas te maak)

12 klein kabelbinders (om die plate en die skakelaar vas te maak)

7 groot kabelbinders (2 per motor en 1 vir die 4 AA -batteryhouers)

Gebruikte gereedskap:

3D -drukker (Ultimaker 2)

Materiaal vir naaldwerk

Warm gom pistool

Opsioneel: lasersnyer

Stap 2: Berei 'n drabare struktuur voor

Berei 'n drabare struktuur voor
Berei 'n drabare struktuur voor

Die drabare struktuur is gemaak met 'n paar klere: in ons geval het ons 'n gewone handskoen vir 'n elektrisiën en 'n jeansdoek vir die struktuur om die pols gebruik. Hulle is aanmekaar vasgewerk.

Die doel is om 'n buigsame drabare struktuur te hê.

Die struktuur moet sterker wees as 'n gewone wolhandskoen, aangesien dit genaaid moet word.

Ons benodig 'n drabare struktuur om die pols om die kragverskaffers en die aandrywers vas te hou, en ons moet dit stabiel hou; daarom het ons besluit om die sluiting verstelbaar te maak deur klittenbandjies (outomatiese kleefbande) aan die pols van die jeans aan te bring.

'N Paar houtstokkies is binne vasgewerk om die jeans stewiger te maak.

Stap 3: Berei die funksionele dele voor

Berei die funksionele dele voor
Berei die funksionele dele voor

Die rigiede dele word realiseer deur 3D -druk in PLA uit die.stl -lêers in die beskrywing:

Vingerring x5 (met verskillende skale: 1x skaal 100%, 2x skaal 110%, 2x skaal 120%);

Vinger -ekstremiteit x3 (met verskillende skale: 1x skaal 100%, 1x skaal 110%, 1x skaal 120%);

Wiel vir motor x3

Vir die vingerdele is verskillende skubbe nodig as gevolg van die verskillende grootte van elke vinger en van elke falanks.

Stap 4: Bevestig die sensors aan die uiterste

Bevestig die sensors aan die uiterstes
Bevestig die sensors aan die uiterstes

Die druksensors word eers aan kabeldrade gesoldeer.

Hulle word dan vasgeplak met behulp van 'n gompistool in die vingerpunte: 'n klein hoeveelheid gom word in die ekstremiteit geplaas, aan die kant met die twee gate, dan word die sensor onmiddellik met die aktiewe (ronde) deel op die gom (laat die piëzo -elektriese binnekant van die struktuur en die plastiekdeel direk op die gom wees). Die kabeldrade moet oor die bokant van die vinger tot by sy rug loop, sodat die elektriese bekabeling aan die agterkant van die hand kan loop.

Stap 5: Maak die 3D -gedrukte onderdele aan die handskoen vas

Maak die 3D -gedrukte onderdele aan die handskoen vas
Maak die 3D -gedrukte onderdele aan die handskoen vas

Al die stewige dele (ledemate, ringe) moet aan die handskoen vasgewerk word om vasgemaak te word.

Om die ringe korrek te plaas, dra eers die handskoen en probeer om die ringe, een per phalanx, aan te trek sonder om aan te raak tydens die sluiting van die hand. Die ringe op die indeks sal ongeveer 5 mm bo die onderkant van die vinger en 17 tot 20 mm bo die eerste vasgemaak word. Wat die middelvinger betref, sal die eerste ring ongeveer 8 tot 10 mm bo die basis van die vinger wees, en die tweede ring ongeveer 20 mm bo die eerste. Wat die duim betref, die presisie wat nodig is, is baie laag, aangesien dit nie die risiko loop om met die ander ringe in te meng nie, dus probeer dit op die verslete handskoen aanbring, trek 'n streep op die handskoen waar u verkies om die lui sodat u dit kan naai.

Met betrekking tot die naaldwerk is geen spesifieke tegniek of vaardigheid nodig nie. Met 'n naald gaan die naalddraad in sirkels om die ringe en gaan deur die oppervlak van die handskoen. 'N Treetjie van 3-4 mm tussen twee gate in die handskoen maak reeds 'n sterk genoeg bevestiging; dit is nie nodig om 'n baie digte naaldwerk te maak nie.

Dieselfde tegniek word toegepas om die ledemate vas te maak: die bokant van die ekstremiteit is gatvol om die naald maklik te laat deurloop, sodat slegs die kruisagtige vorms aan die bokant van die vinger aan die handskoen vasgewerk moet word.

Dan moet die poliëtileengidse ook vasgemaak word deur drie kriteria te volg:

die distale einde (na die vinger gerig) moet in die rigting van die vinger wys, om hoë wrywing te vermy met die nylondraad wat daarin gaan;

die distale einde moet ver genoeg wees om nie die sluiting van die hand te belemmer nie (ongeveer 3 cm laer as die onderkant van die vinger is goed genoeg, 4 tot 5 cm vir die duim);

die buise moet so min as moontlik oor mekaar beweeg om die grootste deel van die handskoen en die mobiliteit van elke buis te verminder

Hulle word vasgemaak deur dit aan die handskoen en aan die pols vas te maak, met dieselfde tegniek as hierbo.

Om die risiko van gly deur die naaldwerk te vermy, is 'n paar gom tussen die buise en die handskoene bygevoeg.

Stap 6: Berei die wiele voor vir die servo's

Berei die wiele voor vir die servo's
Berei die wiele voor vir die servo's

Ons gebruik spesiaal ontwerpte wiele, geteken en 3D gedruk deur ons vir hierdie projek (.stl lêer in die beskrywing).

Nadat die wiele gedruk is, moet ons dit aan die propellers van die servo's bevestig deur dit te skroef (M2, 10 mm skroewe). Aangesien die gate van die propellers kleiner as 2 mm in deursnee is deur die M2 te skroef, is geen moere nodig nie.

Die 3 propellers kan op elke servo aangebring word.

Stap 7: Maak die motors aan die arm vas

Bevestig die motors aan die arm
Bevestig die motors aan die arm

Hierdie stap bestaan uit die bevestiging van die motors aan die arm; Om dit te kon doen, moes ons 'n PLA -gedenkplaat druk om ondersteuning te kry.

Die motors kon eintlik nie direk aan die arm vasgemaak word nie, aangesien die wiele wat nodig was om aan die drade te trek, tydens die beweging geblokkeer kon word weens die handskoen. Ons het dus 'n PLA -gedenkplaat met 'n afmeting van 120 x 150 x 5 mm in 3D gedruk.

Daarna het ons die gedenkplaat met 'n paar kabelbinders aan ons handskoen vasgemaak: ons het 'n paar gate in die handskoen gemaak met 'n skêr, dan het ons gate in die plastiekplaat gemaak met 'n boor en alles aanmekaar gesit. Vier gate in die gedenkplaat is in die middel, tussen sy omtrek, nodig om die kabelbande te kan deurvoer. Hulle word gemaak met 'n boor. Dit is in die middelste deel en nie aan die kante van die bord nie, om die jeans om die arm te kan sluit sonder dat die plaat dit blokkeer, aangesien die bord nie buigbaar is nie.

Dan word daar ook ander gate in die plastiekplaat geboor om die motors reg te maak. Die motors word vasgemaak met twee gekruiste kabelbinders. 'N Paar gom is aan die kante bygevoeg om dit vas te maak.

Die motors moet so geplaas word dat die wiele mekaar nie belemmer nie. Die linker en regterkant van die hand is dus geskei: twee aan 'n kant, met die wiele in teenoorgestelde rigtings en een aan die ander kant.

Stap 8: Kode op die Arduino

Kode op die Arduino
Kode op die Arduino

Die kode is op 'n eenvoudige manier ontwikkel: om die motors al dan nie in te skakel. Die servo's word slegs geaktiveer as die meting oor 'n sekere waarde is (dit is reggestel deur proewe en foute omdat die gevoeligheid van elke sensor nie presies dieselfde is nie). Daar is twee moontlikhede om te buig, laag vir 'n lae krag en heeltemal vir 'n sterk krag. Sodra die vinger gebuig is, is geen gebruiker se krag nodig om die vinger in die werklike posisie te hou nie. Die rede vir hierdie implementering is dat andersins genoem is dat die vingers voortdurend 'n krag op die sensors moet uitoefen en die handskoen geen voordeel bied nie. Om die buiging van die vinger vry te laat, moet 'n nuwe krag op die druksensor uitgeoefen word.

Ons kan die kode in drie dele verdeel:

Sensors begin:

Eerstens het ons drie heelgetal veranderlikes geïnitialiseer: lees1, lees2, lees3 vir elke sensor. Die sensors is in die analoog insette A0, A2, A4 geplaas. Elke veranderlike vir die lesing is soos volg gestel:

  • lees1 waar word die waarde gelees in die invoer A0 geskryf,
  • lees2 waar word die waarde gelees in die invoer A2,
  • lees3 waar word die waarde gelees in die invoer A4 geskryf

Twee drempels word met die vinger vasgemaak wat ooreenstem met die twee posisies van die bediening van die servo's. Hierdie drempels verskil vir elke vinger, aangesien die toegepaste krag nie vir elke vinger dieselfde is nie en die sensitiwiteit van die drie sensors nie presies dieselfde is nie.

Motors begin:

Drie veranderlikes char (save1, save2, save3), een vir elke motor word geïnisialiseer op 0. Daarna het ons in die opstelling die penne gespesifiseer waar ons die motors onderskeidelik aansluit: pen 9, pen 6 en pen 3 vir servo1, servo2, servo3; alles geïnisialiseer teen 0 waarde.

Dan word die servo's geaktiveer deur die opdrag servo.write () wat die hoek wat as invoer op die servo ontvang is, kan herstel. Ook deur proewe en foute is die twee goeie hoeke gevind wat nodig was om die vinger te buig in twee posisies wat ooreenstem met 'n klein greep en 'n groot greep.

Aangesien een motor as gevolg van sy bevestiging in die teenoorgestelde rigting moet draai, is die beginpunt nie nul nie, maar die maksimum hoek en afname wanneer 'n krag toegepas word om in die teenoorgestelde rigting te kan draai.

Skakel tussen sensors en motors:

Die keuse van save1, save2, save3 en lees1, lees2, lees3 hang af van die soldeer. Maar vir elke vinger moet die sensor en die motorverwante dieselfde nommer hê.

Dan in die lus, as toestande gebruik is om te toets of die vinger reeds in 'n buigende posisie is of nie en of die druk op die sensors uitgeoefen word of nie. As die sensors 'n waarde gee, moet 'n krag toegepas word, maar twee verskillende gevalle is moontlik:

  • As die vinger nog nie gebuig is nie, en die waarde wat deur die sensors teruggekeer word na die drumpels vergelyk, word die ooreenstemmende hoek op die servo toegepas.
  • As die vinger al gebuig is, beteken dit dat die gebruiker die buiging wil loslaat en dan word die beginhoek op die servo's toegepas.

Dit word vir elke motor gedoen.

Daarna het ons 'n vertraging van 1000 ms bygevoeg om te voorkom dat die waardes van die sensors te gereeld getoets word. As 'n te klein vertragingswaarde toegepas word, loop dit die risiko om die hand direk weer oop te maak nadat dit gesluit is, ingeval die krag gedurende 'n langer tyd as die vertragingstyd toegepas word.

Die hele proses vir een sensor word in die vloeidiagram hierbo aangebied.

DIE HELE KODE

#sluit Servo servo1 in; Servo servo2; Servo servo3; int lees1; int lees2; int lees3; char save1 = 0; // die servo begin by toestand 0, slaap toestand char save2 = 0; char save3 = 0; leemte opstel (leeg) {Serial.begin (9600); servo2.aanheg (9); // servo by digitale pen 9 servo2.write (160); // beginpunt vir servo servo1.attach (6); // servo by digitale pen 6 servo1.write (0); // beginpunt vir servo servo3.attach (3); // servo by digitale pen 3 servo3.write (0); // beginpunt vir servo

}

leemte -lus (leegte) {lees1 = analogRead (A0); // aangeheg aan analoog 0 lesing2 = analogRead (A2); // geheg aan analoog 2 lesing3 = analogRead (A4); // geheg aan analoog 4

// if (reading2> = 0) {Serial.print ("Sensorwaarde ="); // Voorbeeld van opdrag wat gebruik word vir die kalibrasie van die drempels van die eerste sensor

// Serial.println (lees2); } // anders {Serial.print ("Sensorwaarde ="); Serial.println (0); }

if (lees1> 100 en save1 == 0) {// as die sensor 'n hoë waarde kry en nie in slaaptoestand is nie save1 = 2; } // gaan na toestand 2 anders as (lees1> 30 en save1 == 0) {// as die sensor 'n gemiddelde waarde kry en nie in slaaptoestand is save1 = 1; } // moet nog 1 verklaar as (lees1> 0) {// as die waarde nie nul is nie en geen van die vorige voorwaardes reggestel is nie save1 = 0;} // gaan na slaaptoestand

as (save1 == 0) {servo1.write (160); } // los anders as (save1 == 1) {servo1.write (120); } // medium trekhoek anders {servo1.write (90); } // maksimum trekhoek

if (lees2> 10 en save2 == 0) {// dieselfde as servo 1 save2 = 2; } anders as (lees2> 5 en save2 == 0) {save2 = 1; } anders as (lees2> 0) {save2 = 0;}

as (save2 == 0) {servo2.write (0); } anders as (save2 == 1) {servo2.write (40); } anders {servo2.write (60); }

if (lees3> 30 en save3 == 0) {// dieselfde as servo 1 save3 = 2; } anders as (lees3> 10 en save3 == 0) {save3 = 1; } anders as (lees3> 0) {save3 = 0;}

as (save3 == 0) {servo3.write (0); } anders as (save3 == 1) {servo3.write (40); } anders {servo3.write (70); } vertraging (1000); } // wag 'n oomblik

Stap 9: Bevestig die Arduino, die batterye en die Veroboard aan die arm

Bevestig die Arduino, die batterye en die Veroboard aan die arm
Bevestig die Arduino, die batterye en die Veroboard aan die arm
Bevestig die Arduino, die batterye en die Veroboard aan die arm
Bevestig die Arduino, die batterye en die Veroboard aan die arm

'N Ander bord is in PLA gedruk om die batteryhouers en die arduino te kan regmaak.

Die plaat het die afmetings: 100x145x5mm.

Daar is vier gate om die arduino te skroef en twee om die 9V -batteryhouer te skroef. 'N Paar gom is bygevoeg om die houer vas te maak. Die skakelaar is vasgemaak met twee klein kabelbinders.

Daar word ook vier gate gebruik om die bord met kabelbinders op die jeans vas te maak.

Die verobord word soos 'n skild op die arduino gesit.

Stap 10: Koppel die elektronika aan

Koppel die elektronika aan
Koppel die elektronika aan

Die kring word op die verobord gesoldeer soos in die skema hierbo gerapporteer.

Die Arduino het 'n 9V -battery as toevoer, en 'n skakelaar is aangeskakel om die Arduino uit te skakel. 'N 6V -battery is nodig vir die servomotor wat baie stroom benodig en die derde pen van die servo's word aan die penne 3, 6 en 9 om dit met PWM te beheer.

Elke sensor is aan die een kant verbind deur die 5V van die Arduino en aan die ander kant deur 'n 330 ohm weerstand wat aan die grond gekoppel is en die penne A0, A2 en A4 om die spanning te meet.

Stap 11: Voeg die nylon drade by

Voeg die nylon drade by
Voeg die nylon drade by

Die nylondrade gaan deur beide gate op die uiteinde en die ringe, soos op die foto gesien, en dan gaan die twee helftes van die draad binne -in die poliëtileengeleiding en bly saam tot aan die einde van die gids na die motor. Die lengte van die drade word op hierdie punt bepaal; hulle moet lank genoeg wees om sodra die wiel van die servo met die reguit vingers omring kan word.

Hulle word op die wiele vasgemaak met 'n knoop wat deur twee klein gaatjies op die.stl -lêers kom en met warm gom vir ekstra stabilisering.

Stap 12: Geniet dit

Dit werk soos verwag.

By die eerste impuls buig dit die vinger en by die tweede een laat dit dit los. Geen krag is nodig as die vingers gebuig word nie.

Tog bly daar drie probleme oor:

- Ons moet versigtig wees om 'n impuls korter as 1 sekonde te maak om die servo's te aktiveer, anders los die drade onmiddellik na die trek, soos verduidelik in stap 8 oor die Arduino -kode.

- Die plastiekdele gly effens, so ons het 'n bietjie warm gom by die rand aangebring om wrywing by te voeg.

- As 'n swaar las op die vinger is, sal die sensor altyd 'n groot waarde hê, en die servo sal dus voortdurend draai.

Aanbeveel: