Kazalo:

RoboGlove: 12 korakov (s slikami)
RoboGlove: 12 korakov (s slikami)

Video: RoboGlove: 12 korakov (s slikami)

Video: RoboGlove: 12 korakov (s slikami)
Video: Как проверить генератор. За 3 минуты, БЕЗ ПРИБОРОВ и умений. 2024, Julij
Anonim
Robo rokavice
Robo rokavice

Smo skupina študentov ULB, Université Libre de Bruxelles. Naš projekt temelji na razvoju robotske rokavice, ki lahko ustvari oprijem, ki ljudem pomaga pri prijemanju stvari.

ROKAVICA

Rokavica ima žično povezavo, ki prste poveže z nekaterimi servo motorji: žica je pritrjena na skrajni del prsta in na servo, zato se ob obračanju servo žice potegne in prst upogne. Na ta način lahko z nadzorom oprijema, ki ga opravi uporabnik, preko nekaterih senzorjev tlaka na koncu prstov, upravljamo motorje na nadzorovan način in pomagamo pri prijemanju s upogibanjem prsta sorazmerno z vrtenjem motorjev in torej do zvijanja žic. Na ta način bi morali biti sposobni bodisi dovoliti šibkim ljudem, da primejo predmete, bodisi ljudem v fizioloških razmerah pomagati, da objeme prijemajo in jih obdržijo brez napora.

DIZAJN

Model je bil razvit za čim bolj svobodno gibanje roke. Pravzaprav smo 3D natisnili le strogo potrebne dele, ki smo jih potrebovali za povezavo žic, motorjev in prstov.

Na vsakem prstu imamo zgornjo kupolo, natisnjeno v PLA: to je priključni del, kjer je treba priključiti žice, in mora zagotoviti zaščito senzorju tlaka, ki je pritrjen v notranjosti. Senzor tlaka je z vročim lepilom prilepljen med konico PLA in rokavico.

Nato imamo na prst dva 3D natisnjena obroča, ki predstavljata vodilo za žice. Palec je edini prst, ki ima samo en natisnjen prstan. Na prst je ena žica, prepognjena na polovici na koncu prstov. Obe polovici prehajata skozi dve vodili dela kupole in v obeh obročih: postavljeni sta naravnost v luknje, ki smo jih naredili na zunanji strani teh obročev. Nato se združijo v kolo, ki je neposredno povezano z motorjem. Kolo je bilo izvedeno, da se lahko ovije okoli žic: ker ima naš motor nepopolno vrtenje (nižje od 180 °), smo uresničili kolo, da potegnemo žico za razmik 6 centimetrov, to je razdalja potrebno popolnoma zapreti roko.

Natisnili smo tudi dve plošči za pritrditev servo motorjev in arduina na roko. Bolje je, da ga razrežete v les ali trdo plastiko z laserskim rezalnikom.

1. korak: Seznam nakupov

Nakupovalni seznam
Nakupovalni seznam
Nakupovalni seznam
Nakupovalni seznam
Nakupovalni seznam
Nakupovalni seznam

Rokavice in žice:

1 obstoječa rokavica (mora biti šivna)

Stare kavbojke ali drugo trdo krpo

Najlonske žice

Polietilenske cevi z nizko gostoto (premer: 4 mm, debelina: 1 mm)

Elektronika:

Arduino Uno

1 Baterija 9V + 9V Nosilec baterije

1 elektronsko stikalo

1 veroboard

3 servo motorji (1 na prst)

3 propelerji (priloženi servomotorjem)

4 baterije AA + 4 AA držalo za baterije

3 senzorji tlaka (1 na prst)

3 upori 330 ohmov (1 na prst)

6 električnih žic (2 na senzor)

Vijaki, matice in pritrdilni elementi:

4 M3 dolžine 10 mm (za pritrditev Arduina)

2 M2,5 dolžine 12 mm (za pritrditev 9V držala za baterijo)

6 ustreznih matic

6 M2 dolžine 10 mm (2 na servo za pritrditev koles na servomotorje)

12 majhnih kabelskih vezic (za pritrditev plošč in stikala)

7 velikih kabelskih vezic (2 na motorje in 1 za držalo za 4 baterije AA)

Uporabljena orodja:

3D tiskalnik (Ultimaker 2)

Material za šivanje

Pištola z vročim lepilom

Opcijsko: laserski rezalnik

2. korak: Pripravite nosljivo strukturo

Pripravite nosljivo strukturo
Pripravite nosljivo strukturo

Nosljiva struktura je narejena z nekaj oblačili: v našem primeru smo uporabili običajno rokavico za električarja in kavbojko za strukturo okoli zapestja. Šivali so jih skupaj.

Cilj je imeti prilagodljivo nosljivo strukturo.

Struktura mora biti močnejša od običajne volnene rokavice, saj jo je treba sešiti.

Okrog zapestja potrebujemo nosljivo konstrukcijo, ki bo držala napajalnike in aktuatorje, zato moramo biti stabilni, zato smo se odločili, da je zapiranje nastavljivo tako, da na zapestje kavbojk nanesemo Velcro trakove (samolepilne trakove).

V notranjost je bilo prišitih nekaj lesenih palic, da bi bile kavbojke bolj toge.

3. korak: Pripravite funkcionalne dele

Pripravite funkcionalne dele
Pripravite funkcionalne dele

Togi deli se realizirajo s 3D -tiskanjem v PLA iz datotek.stl v opisu:

Prstni prstan x5 (z različnimi lestvicami: 1x lestvica 100%, 2x lestvica 110%, 2x lestvica 120%);

Ekstremnost prstov x3 (z različnimi lestvicami: 1x lestvica 100%, 1x lestvica 110%, 1x lestvica 120%);

Kolo za motor x3

Za prstne dele so potrebne različne lestvice zaradi različne velikosti vsakega prsta in vsake falange.

4. korak: Senzorje pritrdite na okončine

Senzorje pritrdite na okončine
Senzorje pritrdite na okončine

Senzorji tlaka so najprej spajkani na kabelske žice.

Nato se zlepijo z uporabo pištole za lepilo v okončinah prstov: majhna količina lepila se položi v okončino, na strani z dvema luknjama, nato se senzor takoj nanese z aktivnim (okroglim) delom na lepilo (piezoelektrično stran naj bo v notranjosti konstrukcije, plastični del pa neposredno na lepilo). Kabelske žice morajo potekati od vrha prsta navzdol do hrbta, da električni kabli vodijo na zadnji strani roke.

5. korak: pritrdite 3D natisnjene dele na rokavico

3D natisnjene dele pritrdite na rokavico
3D natisnjene dele pritrdite na rokavico

Vsi trdi deli (okončine, obroči) morajo biti pritrjeni na rokavico, da jih pritrdimo.

Če želite prstane pravilno namestiti, najprej nosite rokavico in poskusite obleči obroče, enega na falango, ne da bi se morali med zapiranjem roke dotakniti. Približno bodo obroči na indeksu pritrjeni 5 mm nad dnom prsta in 17 do 20 mm nad prvim. Kar zadeva srednji prst, bo prvi obroč približno 8 do 10 mm nad dnom prsta, drugi pa okoli 20 mm nad prvim. Kar zadeva palec, je potrebna zelo nizka natančnost, saj ne tvega poseganja v druge obroče, zato ga poskusite nanesti na obrabljeno rokavico, na rokavici potegnite črto, kjer bi raje imeli prstan, da ga potem lahko zašijete.

Kar zadeva šivanje, ni potrebna posebna tehnika ali sposobnost. Šivalna nit z iglo kroži okoli obročev in poteka skozi površino rokavice. Korak 3-4 mm med dvema luknjama v rokavici že naredi dovolj močno fiksacijo, ni potrebe po zelo gostem šivanju.

Ista tehnika se uporablja za pritrditev okončin: vrh okončine je luknjast, da igla zlahka preide, zato je treba na rokavico prišiti le križasto obliko na vrhu prsta.

Nato je treba pritrditi tudi polietilenska vodila po treh merilih:

distalni konec (obrnjen proti prstu) mora biti obrnjen v smeri prsta, da se izognemo visokim trenjem z najlonsko žico, ki bo šla v notranjost;

distalni konec mora biti dovolj daleč, da ne ovira zapiranja roke (približno 3 cm nižje od dna prsta je dovolj dobro, 4 do 5 cm za palec);

cevi morajo prehajati čim manj drug čez drugega, da se zmanjša obseg celotne rokavice in gibljivost vsake cevi

Pritrdijo se tako, da jih prišijemo na rokavico in zapestje z isto tehniko kot zgoraj.

Da bi se izognili nevarnosti drsenja po šivanju, smo med cevi in rokavice dodali nekaj lepila.

6. korak: Pripravite kolesa za servomotorje

Pripravite kolesa za servomotorje
Pripravite kolesa za servomotorje

Za ta projekt smo uporabili posebej oblikovana kolesa, ki smo jih sami narisali in 3D natisnili (datoteka.stl v opisu).

Ko so kolesa natisnjena, jih moramo z vijaki pritrditi na propelerje servomotorjev (vijaki M2, 10 mm). Ker so luknje propelerjev s privijanjem M2 manjše od 2 mm v premeru, matice niso potrebne.

Na vsak servomotor lahko namestite 3 propelerje.

7. korak: motorje pritrdite na roko

Motorje pritrdite na roko
Motorje pritrdite na roko

Ta korak je pritrditev motorjev na roko; za to smo morali natisniti pomožno ploščo PLA, da smo dobili podporo.

Dejansko motorjev ni bilo mogoče pritrditi neposredno na roko, saj so lahko kolesa, potrebna za vlečenje žic, med gibanjem blokirana zaradi rokavice. Tako smo 3D natisnili ploščo PLA dimenzije 120x150x5 mm.

Nato smo ploščo pritrdili na rokavico z nekaj kabelskimi vezicami: v rokavico smo naredili nekaj lukenj preprosto s škarjami, nato pa smo s svedrom naredili luknje v plastični plošči in vse skupaj sestavili. Štiri luknje v plošči so potrebne na sredini, vzdolž njenega oboda, za prehod kabelskih sponk. Izdelane so z vrtalnikom. Ti so v osrednjem delu in ne na straneh plošče, da bi lahko zaprli kavbojke okoli roke, ne da bi jih plošča blokirala, ker plošča ni prilagodljiva.

Nato se v plastično ploščo izvrtajo tudi druge luknje za pritrditev motorjev. Motorji so pritrjeni z dvema križanima vezicama. Na njihovih straneh je bilo dodano nekaj lepila, da se zagotovi fiksacija.

Motorje je treba postaviti tako, da kolesa ne vplivajo drug na drugega. Tako sta ločeni na levi in desni strani roke: dve na stran, pri čemer se kolesa obračata v nasprotnih smereh in eno na drugi strani.

8. korak: Koda na Arduinu

Koda na Arduinu
Koda na Arduinu

Koda je bila razvita na preprost način: aktivirati ali ne motorje. Servomotorji se aktivirajo le, če je odčitek nad določeno vrednostjo (popravljeno je bilo s poskusi in napakami, ker občutljivost vsakega senzorja ni povsem enaka). Obstajata dve možnosti upogibanja, nizko za majhno silo in popolnoma za močno silo. Ko je prst upognjen, uporabnikova sila ni potrebna za ohranjanje dejanskega položaja prsta. Razlog za to izvedbo je, da je bilo sicer omenjeno, da morajo prsti na senzorje nenehno pritiskati in rokavica ne daje nobene prednosti. Za sprostitev upogibanja prsta je treba na senzor tlaka uporabiti novo silo, ki deluje kot ukaz za zaustavitev.

Kodo lahko razdelimo na tri dele:

Začetni senzorji:

Najprej smo inicializirali tri celoštevilske spremenljivke: branje1, branje2, branje3 za vsak senzor. Senzorji so bili vstavljeni v analogne vhode A0, A2, A4. Vsaka spremenljivka za odčitavanje je nastavljena tako:

  • branje1, kjer je zapisana vrednost, prebrana na vhodu A0,
  • branje2, kjer je zapisana vrednost, prebrana na vhodu A2,
  • branje3, kjer je zapisana vrednost, prebrana na vhodu A4

Dva praga sta pritrjena s prstom, ki ustrezata dvema položajema aktiviranja servomotorjev. Ti pragovi so različni za vsak prst, saj uporabljena sila ni enaka za vsak prst in občutljivost treh senzorjev ni povsem enaka.

Začetni motorji:

Tri spremenljivke char (save1, save2, save3), ena za vsak motor se inicializira na 0. Nato smo v nastavitvi določili nožice, kamor priključimo motorje: pin 9, pin 6 in pin 3 za servo1, servo2, servo3; vse inicializirano pri vrednosti 0.

Nato se servomotorji aktivirajo z ukazom servo.write (), ki lahko določi kot, sprejet kot vhod na servo. Tudi s poskusi in napakami sta bila ugotovljena dva dobra kota, potrebna za upogibanje prsta v dveh položajih, ki ustrezata majhnemu in velikemu oprijemu.

Ker se mora en motor zaradi pritrditve obrniti v nasprotno smer, njegovo izhodišče ni nič, ampak največji kot in se pri uporabi sile zmanjša, da se lahko obrne v nasprotno smer.

Povezava med senzorji in motorji:

Izbira shranjevanja1, shranjevanja2, shranjevanja3 in branja1, branja2, branja3 je odvisna od spajkanja. Toda za vsak prst morata imeti senzor in povezani motor enako številko.

Nato v zanki, če so bili uporabljeni pogoji za preverjanje, ali je prst že v upognjenem položaju ali ne in ali je pritisnjen ali ne na senzorje. Ko senzorji vrnejo vrednost, je treba uporabiti silo, vendar sta možna dva različna primera:

  • Če prst še ni upognjen, če primerjamo to vrednost, ki jo senzorji vrnejo s pragom, se ustrezen kot uporabi za servo.
  • Če je prst že upognjen, to pomeni, da želi uporabnik upogniti, nato pa se začetni kot uporabi za servomotorje.

To se naredi za vsak motor.

Nato smo dodali zakasnitev 1000 ms, da se izognemo prepogostom testiranju vrednosti senzorjev. Če je uporabljena premajhna vrednost zamude, obstaja nevarnost, da po odprtju roke znova odprete roko, če sila deluje dlje kot čas zamika.

Vsi postopki za en senzor so predstavljeni v diagramu poteka zgoraj.

CELOTNA KODA

#include Servo servo1; Servo servo2; Servo servo3; int branje1; int branje2; int branje3; char save1 = 0; // servo se začne pri stanju 0, stanje spanja char save2 = 0; char save3 = 0; void setup (void) {Serial.begin (9600); servo2.priključek (9); // servo na digitalnem zatiču 9 servo2.write (160); // začetna točka za servo servo1.attach (6); // servo na digitalnem zatiču 6 servo1.write (0); // začetna točka za servo servo3.attach (3); // servo na digitalnem zatiču 3 servo3.write (0); // začetna točka za servo

}

void zanka (void) {branje1 = analogRead (A0); // priključeno na analogno 0 branje2 = analogRead (A2); // priključeno na analogno 2 branje3 = analogRead (A4); // priključeno na analogni 4

// if (branje2> = 0) {Serial.print ("Vrednost senzorja ="); // Primer ukaza, uporabljenega za kalibracijo pragov prvega senzorja

// Serial.println (branje2); } // else {Serial.print ("Vrednost senzorja ="); Serial.println (0); }

if (branje1> 100 in shranjevanje1 == 0) {// če senzor dobi visoko vrednost in ni v stanju spanja save1 = 2; } // pojdite v stanje 2 else if (branje1> 30 in shranite1 == 0) {// če senzor dobi srednjo vrednost in ni v stanju spanja save1 = 1; } // prišel v stanje 1 else if (branje1> 0) {// če vrednost ni nič in noben od prejšnjih pogojev ni popravljen save1 = 0;} // pojdi v stanje spanja

if (save1 == 0) {servo1.write (160); } // sprosti else if (save1 == 1) {servo1.write (120); } // srednji kot vlečenja else {servo1.write (90); } // največji kot vlečenja

if (branje2> 10 in save2 == 0) {// enako kot servo 1 save2 = 2; } else if (branje2> 5 in save2 == 0) {save2 = 1; } else if (branje2> 0) {save2 = 0;}

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

if (branje3> 30 in save3 == 0) {// enako kot servo 1 save3 = 2; } else if (branje3> 10 in save3 == 0) {save3 = 1; } else if (branje3> 0) {save3 = 0;}

if (save3 == 0) {servo3.write (0); } else if (save3 == 1) {servo3.write (40); } else {servo3.write (70); } zakasnitev (1000); } // počakaj malo

9. korak: Arduino, baterije in veroboard pritrdite na roko

Arduino, baterije in veroboard pritrdite na roko
Arduino, baterije in veroboard pritrdite na roko
Arduino, baterije in veroboard pritrdite na roko
Arduino, baterije in veroboard pritrdite na roko

Druga plošča je bila natisnjena v PLA, da bi lahko pritrdila držala za baterije in arduino.

Plošča ima dimenzije: 100x145x5mm.

Obstajajo štiri luknje za privijanje arduina in dve za vijačenje nosilca akumulatorja 9 V. V držalu za baterijo 6V in v plošči je bila narejena luknja za pritrditev kabelske vezice. Za pritrditev tega držala je bilo dodano nekaj lepila. Stikalo je pritrjeno z dvema majhnima kabelskima vezicama.

Obstajajo tudi štiri luknje za pritrditev plošče na kavbojke s pomočjo kabelskih vezi.

Veroboard je nameščen na arduino kot ščit.

10. korak: Priključite elektroniko

Priključite elektroniko
Priključite elektroniko

Vezje je spajkano na veroboard, kot je navedeno v zgornji shemi.

Arduino ima za napajanje 9V baterijo in med njimi je priključeno stikalo, da lahko izklopite Arduino. Za servo motor, ki potrebuje veliko toka, je potreben 6V akumulator, tretji zatič servomotorjev pa je priključen na zatiči 3, 6 in 9 za njihovo krmiljenje s PWM.

Vsak senzor je na eni strani povezan s 5V Arduina, na drugi strani pa z 330 ohmskim uporom, povezanim s tlemi, in z zatiči A0, A2 in A4 za merjenje napetosti.

11. korak: Dodajte najlonske žice

Dodajte najlonske žice
Dodajte najlonske žice

Najlonske žice so narejene tako, da prehajajo skozi obe luknji na okončini in obroče, kot je prikazano na sliki, nato pa obe polovici žice gredo v polietilensko vodilo in ostaneta skupaj do konca vodila do motorja. Na tej točki je določena dolžina žic, ki morajo biti dovolj dolge, da obkrožijo kolo servomotorja z ravnimi prsti.

Na kolesih so pritrjeni z vozlom, ki poteka skozi dve majhni luknji na datotekah.stl, in z vročim lepilom za dodatno stabilizacijo.

12. korak: Uživajte

Deluje po pričakovanjih.

Pri prvem impulzu upogne prst, pri drugem pa ga sprosti. Pri upogibanju prstov ni potrebna nobena sila.

Kljub temu ostajajo tri težave:

- Za aktiviranje servomotorjev moramo biti previdni, da naredimo impulz krajši od 1 sekunde, sicer se žice po vlečenju takoj sprostijo, kot je razloženo v koraku 8 o kodi Arduino.

- Plastični deli rahlo zdrsnejo, zato smo na koncu dodali nekaj vročega lepila, da bi povečali trenje.

- Če je na prstu velika obremenitev, bo imel senzor ves čas veliko vrednost, zato se bo servo nenehno vrtelo.

Priporočena: