Taula de continguts:

RoboGlove: 12 passos (amb imatges)
RoboGlove: 12 passos (amb imatges)

Vídeo: RoboGlove: 12 passos (amb imatges)

Vídeo: RoboGlove: 12 passos (amb imatges)
Vídeo: NASA's Space Suit RoboGlove Webinar 2024, Juliol
Anonim
RoboGlove
RoboGlove

Som un grup d'estudiants de la ULB, Université Libre de Bruxelles. El nostre projecte consisteix en el desenvolupament d’un guant robot capaç de crear una força d’adherència ajudant a les persones a agafar coses.

EL GUANT

El guant té una connexió de cable que uneix els dits a alguns servomotors: un cable s’uneix a l’extremitat del dit i al servo, de manera que quan el servo gira, es tira el cable i es flexiona el dit. D’aquesta manera, controlant l’adherència realitzada per l’usuari a través d’uns sensors de pressió a l’extremitat dels dits, podem accionar els motors d’una manera controlada i ajudar a la subjecció doblegant el dit proporcionalment a la rotació dels motors i així fins a l’enrotllament dels cables. D’aquesta manera hauríem de ser capaços de permetre que les persones dèbils agafessin objectes o fins i tot ajudar a les persones en condicions fisiològiques a agafar objectes i conservar-los sense cap esforç.

EL DISSENY

El model ha estat desenvolupat per tal de fer el moviment de la mà el més lliure possible. De fet, vam imprimir en 3D només les parts estrictament necessàries que necessitàvem per connectar cables, motors i dits.

Tenim una cúpula superior impresa en PLA a cada dit: aquesta és la part terminal on s'han de connectar els cables i ha de protegir el sensor de pressió fixat a l'interior. El sensor de pressió està enganxat, amb cola calenta, entre l’extremitat del PLA i el guant.

Després tenim dos anells impresos en 3D, per dit, que constitueixen una guia per als cables. El polze és l'únic dit que només té un anell imprès. Hi ha un fil per dit, plegat per la meitat a l’extrem dels dits. Les dues meitats passen per les dues guies de la part de la cúpula i en els dos anells: es col·loquen directament en els forats que hem fet a l'exterior d'aquests anells. Després es posen en una roda connectada directament al motor. La roda s’ha realitzat per poder enrotllar els cables: ja que el nostre motor té una rotació no completa (inferior a 180 °) ens hem adonat de la roda per tal d’estirar el cable per obtenir un espai de 6 centímetres que és la distància necessitava tancar completament la mà.

També hem imprès dues plaques per fixar els servomotors i l’arduino al braç. Hauria de ser millor tallar-lo amb fusta o plàstic rígid amb un tallador làser.

Pas 1: llista de la compra

Llista de la compra
Llista de la compra
Llista de la compra
Llista de la compra
Llista de la compra
Llista de la compra

Guants i cables:

1 guant existent (ha de ser cosible)

Texans vells o un altre drap rígid

Filats de niló

Tubs de polietilè de baixa densitat (diàmetre: 4 mm gruix: 1 mm)

Electrònica:

Arduino Uno

1 suport de bateria de 9V + 9V

1 commutador electrònic

1 veroboard

3 servomotors (1 per dit)

3 hèlixs (subministrades amb els servos)

4 bateries AA + 4 portabateries AA

3 sensors de pressió (1 per dit)

3 resistències de 330 ohms (1 per dit)

6 cables elèctrics (2 per sensor)

Cargols, femelles i fixacions:

4 M3 de 10 mm de longitud (per arreglar l'Arduino)

2 M2,5 de 12 mm de llargada (per fixar el suport de la bateria de 9V)

6 fruits secs corresponents

6 M2 de 10 mm de llarg (2 per servo per fixar les rodes als servos)

12 lligadures petites (per fixar les plaques i l'interruptor)

7 lligadures de cable grans (2 per motor i 1 per al suport de 4 piles AA)

Eines usades:

Impressora 3D (Ultimaker 2)

Material per cosir

Pistola de cola calenta

Opcional: tall làser

Pas 2: prepareu l'estructura portable

Prepareu una estructura portable
Prepareu una estructura portable

L’estructura portable s’ha fet amb algunes peces de roba: en el nostre cas hem utilitzat un guant normal per a electricista i un drap de texans per a l’estructura al voltant del canell. Es cosien.

L’objectiu és tenir una estructura flexible i usable.

L’estructura ha de ser més resistent que un guant de llana normal, ja que s’ha de cosir.

Necessitem una estructura portàtil al voltant del canell per subjectar els subministradors d’energia i els actuadors, i necessitem que sigui estable, de manera que vam optar per ajustar el tancament aplicant bandes de velcro (bandes autoadhesives) al canell dels texans.

Alguns pals de fusta es cosien a l'interior per fer els texans més rígids.

Pas 3: prepareu les parts funcionals

Prepareu les parts funcionals
Prepareu les parts funcionals

Les parts rígides es realitzen mitjançant la impressió 3D en PLA a partir dels fitxers.stl de la descripció:

Anell de dit x5 (amb diferents escales: escala 1x 100%, escala 2x 110%, escala 2x 120%);

Finger Extremity x3 (amb diferents escales: 1x escala 100%, 1x escala 110%, 1x escala 120%);

Roda per a motor x3

Per a les parts dels dits, es necessiten escates diferents a causa de la mida diferent de cada dit i de cada falange.

Pas 4: Fixeu els sensors a les extremitats

Fixeu els sensors a les extremitats
Fixeu els sensors a les extremitats

Els sensors de pressió primer es solden a cables de cables.

A continuació, s’enganxen amb l’ús d’una pistola de cola dins de les extremitats dels dits: es col·loca una petita quantitat de cola dins de l’extremitat, al costat amb els dos forats, i després s’aplica immediatament el sensor amb la part activa (rodona) a la cola (té la cara piezoelèctrica a l'interior de l'estructura i la part de plàstic directament a la cola). Els cables dels cables han de recórrer la part superior del dit fins a la seva part posterior, per tal de fer funcionar el cablejat elèctric a la part posterior de la mà.

Pas 5: fixeu les peces impreses en 3D al guant

Fixeu les peces impreses en 3D al guant
Fixeu les peces impreses en 3D al guant

Totes les parts rígides (extremitats, anells) s’han de cosir al guant per poder ser fixades.

Per col·locar els anells correctament, primer utilitzeu el guant i intenteu posar-hi els anells, un per falange, sense que es toquin durant el tancament de la mà. Aproximadament, els anells de l'índex es fixaran 5 mm per sobre de la base del dit i de 17 a 20 mm per sobre de la primera. Pel que fa al dit mig, el primer anell estarà aproximadament de 8 a 10 mm per sobre de la base del dit i el segon a uns 20 mm per sobre del primer. Pel que fa al polze, la precisió necessària és molt baixa, ja que no corre el risc d’interferir amb els altres anells, així que intenteu aplicar-lo al guant desgastat, dibuixeu una línia al guant on preferiu tenir anella perquè pugueu cosir-la.

Pel que fa a la costura, no es requereix cap tècnica ni habilitat particular. Amb una agulla, el fil de cosir fa cercles al voltant dels anells, passant per la superfície del guant. Un pas de 3-4 mm entre dos forats del guant ja fa una fixació prou forta, no cal fer una costura molt densa.

La mateixa tècnica s’aplica per fixar les extremitats: la part superior de l’extremitat és foradada per fer passar l’agulla fàcilment, de manera que només s’hauran de cosir les formes en forma de creu a la part superior del dit.

A continuació, també s’han de fixar les guies de polietilè seguint tres criteris:

l’extrem distal (cap al dit) ha d’estar orientat en la direcció del dit, per evitar friccions elevades amb el fil de niló que hi anirà;

el final distal ha de ser prou lluny per no interferir amb el tancament de la mà (uns 3cm més baix que la base del dit és prou bo, de 4 a 5cm per al polze);

els tubs han de passar els uns als altres el menys possible, per reduir la major part del guant sencer i la mobilitat de cada tub

Es fixen cosint-los al guant i al canell, amb la mateixa tècnica que l’anterior.

Per evitar qualsevol risc de lliscament a través de la costura, es va afegir una mica de cola entre els tubs i els guants.

Pas 6: prepareu les rodes per als servos

Prepareu les rodes per als servos
Prepareu les rodes per als servos

Hem utilitzat rodes dissenyades específicament, dibuixades i impreses en 3D per nosaltres mateixos per a aquest projecte (fitxer.stl a la descripció).

Un cop impreses les rodes, les hem de fixar a les hèlixs dels servos cargolant-les (cargols M2, 10 mm). Com que els forats de les hèlixs són inferiors a 2 mm de diàmetre cargolant el M2, no calen femelles.

Les 3 hèlixs es poden aplicar a cada servo.

Pas 7: Fixeu els motors al braç

Fixeu els motors al braç
Fixeu els motors al braç

Aquest pas consisteix en la fixació dels motors al braç; per fer-ho vam haver d'imprimir una placa auxiliar de PLA per obtenir un suport.

En realitat, els motors no es podien fixar directament al braç ja que les rodes, necessàries per estirar els cables, es podrien bloquejar durant el moviment a causa del guant. Per tant, vam imprimir en 3D una placa PLA de 120x150x5 mm.

Després vam fixar la placa al guant amb unes brides de cable: vam fer uns forats al guant simplement amb unes tisores, després vam fer forats a la placa de plàstic amb un trepant i vam ajuntar-ho tot. Es necessiten quatre forats a la placa al centre, entre el seu perímetre, per passar els tirants. Es fan amb un trepant. Aquests es troben a la part central i no als costats de la placa per poder tancar els texans al voltant del braç sense que la placa la bloquegi, ja que la placa no és flexible.

A continuació, es perforen altres forats a la placa de plàstic per fixar els motors. Els motors es fixen amb dos tirants de cable creuats. Es va afegir una mica de cola als costats per assegurar la fixació.

Els motors s’han de col·locar de manera que les rodes no interfereixin entre elles. Per tant, hi ha separats al costat esquerre i dret de la mà: dos en un costat, amb les rodes girant en direccions oposades i una en l'altre costat.

Pas 8: Codi a l'Arduino

Codi a l'Arduino
Codi a l'Arduino

El codi s’ha desenvolupat d’una manera senzilla: per accionar o no els motors. Els servos només s’actuen si la lectura supera un determinat valor (es va solucionar mitjançant proves i errors perquè la sensibilitat de cada sensor no és exactament la mateixa). Hi ha dues possibilitats de flexió, humil per a una força baixa i completament per a una força forta. Un cop doblegat el dit, no cal la força de l'usuari per mantenir el dit a la posició real. El motiu d'aquesta implementació és que, en cas contrari, s'ha esmentat que els dits han d'aplicar contínuament una força sobre els sensors i que el guant no dóna cap avantatge. Per alliberar la flexió del dit, cal aplicar una nova força sobre el sensor de pressió, actuant com a ordre de parada.

Podem dividir el codi en tres parts:

Sensors d'inici:

Primer de tot, vam inicialitzar tres variables senceres: lectura1, lectura2, lectura3 per a cada sensor. Els sensors es van col·locar a les entrades analògiques A0, A2, A4. Cada variable per a la lectura es defineix com:

  • reading1 on s'escriu el valor llegit a l'entrada A0,
  • reading2 on s'escriu el valor llegit a l'entrada A2,
  • reading3 on s'escriu el valor llegit a l'entrada A4

Es fixen dos llindars amb el dit corresponents a les dues posicions d'actuació dels servos. Aquests llindars són diferents per a cada dit, ja que la força aplicada no és la mateixa per a cada dit i la sensibilitat dels tres sensors no és exactament la mateixa.

Motors init:

Tres variables char (save1, save2, save3), una per a cada motor, s’inicialitzen a 0. Després, a la configuració vam especificar els pins on connectem els motors respectivament: pin 9, pin 6 i pin 3 per a servo1, servo2, servo3; tot inicialitzat amb un valor 0.

A continuació, els servos s’actuen mitjançant l’ordre servo.write () que és capaç de fixar l’angle rebut com a entrada al servo. També per proves i errors es van trobar els dos bons angles, necessaris per doblegar el dit en dues posicions corresponents a una petita adherència i una gran adherència.

Com que un motor ha de girar en sentit contrari a causa de la seva fixació, el seu punt de partida no és zero, sinó l'angle màxim i disminueix quan s'aplica una força per poder girar en sentit contrari.

Enllaç entre sensors i motors:

L’elecció de save1, save2, save3 i reading1, reading2, reading3 depèn de la soldadura. Però per a cada dit, el sensor i el motor relacionats han de tenir el mateix nombre.

A continuació, al bucle, si s’utilitzaven condicions per provar si el dit ja està en posició de flexió o no i si s’aplica o no pressió sobre els sensors. Quan els sensors retornen un valor, cal aplicar una força però són possibles dos casos diferents:

  • Si el dit encara no està doblegat, comparant aquest valor retornat pels sensors amb els llindars, s'aplica l'angle corresponent al servo.
  • Si el dit ja està doblegat, vol dir que l'usuari vol alliberar la flexió i que després s'apliqui l'angle inicial als servos.

Això es fa per a cada motor.

Després vam afegir un retard de 1000 ms per evitar provar massa sovint els valors dels sensors. Si s'aplica un valor de retard massa petit, corre el risc de tornar a obrir directament la mà després de tancar-la en cas que la força s'apliqui durant un temps més llarg que el temps de retard.

Tot el procés d'un sensor es presenta al diagrama de flux aquí anterior.

TOT EL CODI

#include Servo servo1; Servo servo2; Servo servo3; int reading1; int reading2; int reading3; char save1 = 0; // el servo comença a l'estat 0, estat de repòs char save2 = 0; char save3 = 0; configuració de buit (buit) {Serial.begin (9600); servo2.attach (9); // servo al pin digital 9 servo2.write (160); // punt inicial del servo servo1.attach (6); // servo al pin digital 6 servo1.write (0); // punt inicial del servo servo3.attach (3); // servo al pin digital 3 servo3.write (0); // punt inicial del servo

}

bucle buit (buit) {lectura1 = analògicLlegir (A0); // adjunt a la lectura analògica 0 = analogRead (A2); // adjunt a la lectura analògica 2 = analogRead (A4); // adjunt a l'analògic 4

// if (reading2> = 0) {Serial.print ("Valor del sensor ="); // Exemple d’ordre utilitzat per al calibratge dels llindars del primer sensor

// Serial.println (lectura2); } // else {Serial.print ("Valor del sensor ="); Serial.println (0); }

if (lectura1> 100 i save1 == 0) {// si el sensor obté un valor alt i no està en estat de repòs save1 = 2; } // aneu a l'estat 2 else if (llegint1> 30 i save1 == 0) {// si el sensor obté un valor mitjà i no està en estat de repòs save1 = 1; } // he estat a l'estat 1 més si (llegint1> 0) {// si el valor no és zero i cap de les condicions anteriors és correcte guarda1 = 0;} // passa a l'estat de repòs

if (save1 == 0) {servo1.write (160); } // allibera else if (save1 == 1) {servo1.write (120); } // angle mitjà de tirar else {servo1.write (90); } // angle màxim de tracció

if (reading2> 10 i save2 == 0) {// igual que el servo 1 save2 = 2; } else if (reading2> 5 i save2 == 0) {save2 = 1; } else if (reading2> 0) {save2 = 0;}

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

if (lectura3> 30 i save3 == 0) {// igual que el servo 1 save3 = 2; } else if (reading3> 10 i save3 == 0) {save3 = 1; } else if (reading3> 0) {save3 = 0;}

if (save3 == 0) {servo3.write (0); } else if (save3 == 1) {servo3.write (40); } else {servo3.write (70); } retard (1000); } // espera un segon

Pas 9: Fixeu l'Arduino, les bateries i el Veroboard al braç

Fixeu l'Arduino, les bateries i el Veroboard al braç
Fixeu l'Arduino, les bateries i el Veroboard al braç
Fixeu l'Arduino, les bateries i el Veroboard al braç
Fixeu l'Arduino, les bateries i el Veroboard al braç

Es va imprimir una altra placa en PLA per poder arreglar els suports de les bateries i l’arduino.

La placa té les mides: 100x145x5mm.

Hi ha quatre forats per cargolar l’arduino i dos per cargolar el suport de la bateria de 9 V. Es va fer un forat al suport de la bateria de 6V i a la placa per fer servir un llaç de cables per fixar-los. Es va afegir una mica de cola per garantir la fixació d’aquest suport. L'interruptor es fixa amb dues petites amarres de cable.

També hi ha quatre forats que s’utilitzen per fixar la placa als texans mitjançant tirants de cable.

El veroboard es posa a l’arduino com un escut.

Pas 10: connecteu l'electrònica

Connecteu l'electrònica
Connecteu l'electrònica

El circuit es solda a la placa base tal com s’informa a l’esquema anterior.

L'Arduino té una bateria de 9V com a subministrament i hi ha un interruptor connectat per poder apagar l'Arduino. Es necessita una bateria de 6V per al servomotor que necessita molta corrent i el tercer pin dels servos està connectat al pins 3, 6 i 9 per controlar-los amb PWM.

Cada sensor està connectat d'un costat pels 5V de l'Arduino i de l'altre costat per una resistència de 330 ohm connectada a terra i als pins A0, A2 i A4 per mesurar la tensió.

Pas 11: afegiu els cables de niló

Afegiu els cables de niló
Afegiu els cables de niló

Es fa que els cables de niló passin pels dos forats de l’extremitat i dels anells tal i com es veu a la imatge, i les dues meitats del fil entraran dins de la guia de polietilè i romandran juntes fins al final de la guia, fins al motor. La longitud dels cables es determina en aquest punt, han de ser prou llargs per encerclar una vegada la roda del servo amb els dits rectes.

Es fixen a les rodes amb un nus que passa per dos petits forats presents als fitxers.stl i amb cola calenta per a una estabilització addicional.

Pas 12: gaudiu

Funciona com s’esperava.

Al primer impuls, doblega el dit i, al segon, l’allibera, sense necessitat de força quan els dits es doblegen.

No obstant això, queden tres problemes:

- Hem d’anar amb compte de fer un impuls inferior a 1 segon per accionar els servos, en cas contrari els cables s’alliberen immediatament després de tirar, tal com s’explica al pas 8 sobre el codi Arduino.

- Les parts de plàstic es llisquen una mica, de manera que hem afegit una mica de cola calenta a l'extrem per afegir fregament.

- Si hi ha una càrrega pesada al dit, el sensor tindrà tot un valor molt gran i, per tant, el servo girarà contínuament.

Recomanat: