Indholdsfortegnelse:

RoboGlove: 12 trin (med billeder)
RoboGlove: 12 trin (med billeder)

Video: RoboGlove: 12 trin (med billeder)

Video: RoboGlove: 12 trin (med billeder)
Video: seeing wife face for first time #shorts 2024, Juli
Anonim
RoboGlove
RoboGlove

Vi er en gruppe studerende på ULB, Université Libre de Bruxelles. Vores projekt består i at udvikle en robothandske, der er i stand til at skabe en grebskraft, der hjælper folk med at få fat i ting.

HANDSKEN

Handsken har en ledningsforbindelse, der forbinder fingrene med nogle servomotorer: en ledning er fastgjort til fingerens yderkant og til servoen, så når servoen drejer, trækkes tråden, og fingeren bøjes. På denne måde er vi i stand til at aktivere motorerne på en kontrolleret måde og hjælpe grebet ved at bøje fingeren proportionalt i forhold til rotationen af motorerne og ved at kontrollere grebet, der foretages af brugeren gennem nogle trykfølere i ekstremiteterne på fingrene. så til oprulning af ledningerne. På denne måde burde vi være i stand til enten at tillade svage mennesker at gribe objekter eller hjælpe selv mennesker under fysiologiske forhold med at gribe objekter og beholde dem uden anstrengelse.

DESIGNET

Modellen er udviklet for at gøre håndbevægelsen så fri som muligt. Faktisk har vi kun 3D printet de strengt nødvendige dele, vi havde brug for for at forbinde ledninger, motorer og fingre.

Vi har en top -kuppel trykt i PLA på hver finger: dette er terminaldelen, hvor ledningerne skal tilsluttes, og den skal beskytte tryksensoren, der er fastgjort indeni. Tryksensoren limes med varm lim mellem PLA -ekstremiteten og handsken.

Så har vi to 3D -trykte ringe pr. Finger, der udgør en vejledning til ledningerne. Tommelfingeren er den eneste finger, der kun har en trykt ring. Der er en ledning pr. Finger, foldet i halve ved ekstremiteten af fingrene. De to halvdele passerer gennem de to guider i kuppeldelen og i begge ringe: de sættes lige i huller, som vi lavede på ydersiden af disse ringe. Derefter sættes de sammen til et hjul, der er direkte forbundet med motoren. Hjulet er blevet realiseret for at kunne vikle rundt om ledningerne: da vores motor har en ikke -fuldstændig rotation (lavere end 180 °), realiserede vi hjulet for at trække tråden i et hul på 6 centimeter, der er afstanden nødvendig for at lukke hånden helt.

Vi har også trykt to plader til fastgørelse af servomotorer og arduino til armen. Det burde være bedre at skære det i træ eller en stiv plastik med en laserskærer.

Trin 1: Indkøbsliste

Indkøbsliste
Indkøbsliste
Indkøbsliste
Indkøbsliste
Indkøbsliste
Indkøbsliste

Handske og ledninger:

1 eksisterende handske (skal kunne syes)

Gamle jeans eller en anden stiv klud

Nylontråde

Lavdensitets polyethylenrør (Diameter: 4 mm Tykkelse: 1 mm)

Elektronik:

Arduino Uno

1 Batteri 9V + 9V Batteriholder

1 elektronisk kontakt

1 veroboard

3 servomotorer (1 pr. Finger)

3 propeller (følger med servoerne)

4 batterier AA + 4 AA batterier holder

3 tryksensorer (1 pr. Finger)

3 modstande 330 ohm (1 pr. Finger)

6 elektriske ledninger (2 pr. Sensor)

Skruer, møtrikker og fikseringer:

4 M3 10 mm lang (til fastgørelse af Arduino)

2 M2,5 12 mm lang (til fastgørelse af 9V batteriholderen)

6 tilsvarende møtrikker

6 M2 10 mm lang (2 pr. Servo for at fastgøre hjulene til servoerne)

12 små kabelbindere (til fastgørelse af pladerne og kontakten)

7 store kabelbindere (2 pr. Motor og 1 til 4 AA -batteriholderen)

Brugte værktøjer:

3D -printer (Ultimaker 2)

Materiale til syning

Varm limpistol

Valgfrit: laserskærer

Trin 2: Forbered bærbar struktur

Forbered bærbar struktur
Forbered bærbar struktur

Den bærbare struktur er lavet med noget tøj: i vores tilfælde brugte vi en normal handske til elektriker og en jeansklud til strukturen omkring håndleddet. De blev syet sammen.

Målet er at have en fleksibel bærbar struktur.

Strukturen skal være stærkere end en almindelig uldhandske, da den skal syes.

Vi har brug for en bærbar struktur omkring håndleddet for at holde strømleverandørerne og aktuatorerne, og vi skal have den til at være stabil, så vi valgte at gøre lukningen justerbar ved at påføre velcrobånd (auto-klæbende bånd) på jeansens håndled.

Nogle træpinde blev syet indvendigt for at gøre jeansene mere stive.

Trin 3: Forbered de funktionelle dele

Forbered funktionelle dele
Forbered funktionelle dele

De stive dele realiseres gennem 3D -print i PLA fra.stl -filerne i beskrivelsen:

Fingerring x5 (med forskellige skalaer: 1x skala 100%, 2x skala 110%, 2x skala 120%);

Fingerekstremitet x3 (med forskellige skalaer: 1x skala 100%, 1x skala 110%, 1x skala 120%);

Hjul til motor x3

Til fingerdelene er der brug for forskellige skalaer på grund af den forskellige størrelse på hver finger og hver falang.

Trin 4: Fix sensorerne til ekstremiteterne

Fastgør sensorerne til ekstremiteterne
Fastgør sensorerne til ekstremiteterne

Tryksensorerne loddes først til kabeltråde.

De limes derefter ved hjælp af en limpistol inde i fingerekstremiteterne: en lille mængde lim placeres inde i ekstremiteten, på siden med de to huller, derefter påføres sensoren straks med den aktive (runde) del på lim (lad den piezoelektriske side vende indvendigt i strukturen og plastdelen direkte på limen). Kabeltrådene skal løbe hen over toppen af fingeren ned til ryggen for at få den elektriske kabling til at køre på bagsiden af hånden.

Trin 5: Fastgør 3D -printede dele til handsken

Fastgør de 3D -udskrevne dele til handsken
Fastgør de 3D -udskrevne dele til handsken

Alle de stive dele (ekstremiteter, ringe) skal syes til handsken for at blive repareret.

Hvis du vil placere ringene korrekt, skal du først bære handsken og prøve at sætte ringene på, en pr. Falanks, uden at de skal røre ved håndens lukning. Cirka vil ringene på indekset blive fastgjort 5 mm over fingerens bund og 17 til 20 mm over den første. Med hensyn til langfingeren vil den første ring være cirka 8 til 10 mm over bunden af fingeren, og den anden omkring 20 mm over den første. Hvad angår tommelfingeren, er den nødvendige præcision meget lav, da det ikke risikerer at forstyrre de andre ringe, så prøv at anvende det på den slidte handske, træk en streg på handsken, hvor du foretrækker at have ring, så du derefter kan sy den.

Med hensyn til syningen kræves ingen særlig teknik eller evne. Med en nål går sytråden i cirkler omkring ringene og passerer gennem handskens overflade. Et trin på 3-4 mm mellem to huller i handsken gør allerede en stærk nok fiksering, det er ikke nødvendigt at lave en meget tæt syning.

Den samme teknik anvendes til at fastsætte ekstremiteterne: toppen af ekstremiteten er hul for at få nålen til at passere let, så kun de krydslignende former på toppen af fingeren skal syes til handsken.

Derefter skal polyethylenførerne også fastgøres ved at følge tre kriterier:

den distale ende (vendt mod fingeren) skal vende i fingerens retning for at undgå høje gnidninger med nylontråden, der vil gå inden i den;

den distale ende skal være langt nok til ikke at forstyrre lukningen af hånden (ca. 3 cm lavere end bunden af fingeren er god nok, 4 til 5 cm for tommelfingeren);

rørene skal passere over hinanden så mindre som muligt for at reducere hovedparten af hele handsken og mobiliteten af hvert rør

De fikseres ved at sy dem til handsken og til håndleddet med samme teknik som ovenfor.

For at undgå enhver risiko for at glide gennem syningen blev der tilføjet et par lim mellem rørene og handskerne.

Trin 6: Forbered hjulene til servoerne

Forbered hjulene til servoerne
Forbered hjulene til servoerne

Vi brugte specialdesignede hjul, tegnet og 3D -printet af os selv til dette projekt (.stl -fil i beskrivelsen).

Når hjulene er trykt, skal vi fastgøre dem til propellerne på servoerne ved at skrue (M2, 10 mm skruer). Da propellernes huller er mindre end 2 mm i diameter ved at skrue M2, er der ikke brug for møtrikker.

De 3 propeller kan påføres på hver servo.

Trin 7: Fastgør motorerne til armen

Fastgør motorerne til armen
Fastgør motorerne til armen

Dette trin består i fastgørelse af motorerne til armen; for at gøre det, var vi nødt til at udskrive en ekstra PLA -plak for at få en støtte.

Faktisk kunne motorerne ikke fastgøres direkte til armen, da hjulene, der var nødvendige for at trække i ledningerne, kunne blokeres under bevægelsen på grund af handsken. Så vi 3D -printede en PLA -plakette i størrelsen 120x150x5 mm.

Derefter fikserede vi plaketten til vores handske med nogle kabelbindere: vi lavede nogle huller i handsken simpelthen ved hjælp af en saks, derefter lavede vi huller i plastpladen med en boremaskine og satte alt sammen. Fire huller i pladen er nødvendige i midten blandt omkredsen for at passere kabelbåndene. De er lavet med en boremaskine. Disse er i midterdelen og ikke på siderne af pladen for at kunne lukke jeansene rundt om armen uden at pladen blokerer den, da pladen ikke er fleksibel.

Derefter bores der også andre huller i plastpladen for at fikse motorerne. Motorerne er fastgjort med to krydsede kabelbindere. Noget lim blev tilføjet på deres sider for at sikre fiksering.

Motorerne skal sættes på en sådan måde, at hjulene ikke forstyrrer hinanden. Så der er adskilt i venstre og højre side af hånden: to i en side, hvor hjulene drejer i modsatte retninger og et i den anden side.

Trin 8: Kode på Arduino

Kode på Arduino
Kode på Arduino

Koden er udviklet på en enkel måde: at aktivere eller ej motorerne. Servoerne aktiveres kun, hvis aflæsningen er over en bestemt værdi (den blev rettet ved forsøg og fejl, fordi følsomheden for hver sensor ikke er nøjagtig den samme). Der er to muligheder for bøjning, lavt for en lav kraft og fuldstændig for en stærk kraft. Når først fingeren er bøjet, er det ikke nødvendigt med en brugers kraft for at holde fingeren i den aktuelle position. Grunden til denne implementering er, at det ellers er blevet nævnt, at fingrene kontinuerligt skal anvende en kraft på sensorerne, og handsken giver ingen fordel. For at frigøre bøjningen af fingeren skal der påtrykkes en ny kraft på tryksensoren, der virker lig en stopkommando.

Vi kan dele koden i tre dele:

Sensorer init:

Først og fremmest initialiserede vi tre heltalsvariabler: læsning1, læsning2, læsning3 for hver sensor. Sensorerne blev sat i de analoge indgange A0, A2, A4. Hver variabel til aflæsningen er indstillet som:

  • læsning1 hvor er skrevet værdien læst i input A0,
  • læsning2 hvor er skrevet værdien læst i input A2,
  • læsning3 hvor er skrevet værdien læst i input A4

To tærskler fastgøres med fingeren svarende til servoernes to aktiveringspositioner. Disse tærskler er forskellige for hver finger, da den påførte kraft ikke er den samme for hver finger, og følsomheden for de tre sensorer ikke er nøjagtig den samme.

Motors init:

Tre variabler char (save1, save2, save3), en for hver motor initialiseres med 0. Derefter specificerede vi i opsætningen benene, hvor vi tilslutter motorerne henholdsvis: pin 9, pin 6 og pin 3 for servo1, servo2, servo3; alle initialiseret til 0 -værdi.

Derefter aktiveres servoerne via kommandoen servo.write (), der er i stand til at fastsætte den modtagne vinkel som input på servoen. Også ved forsøg og fejl fandt man de to gode vinkler, der var nødvendige for at bøje fingeren i to positioner svarende til et lille greb og et stort greb.

Da en motor skal dreje i den modsatte retning på grund af dens fiksering, er dens udgangspunkt ikke nul, men den maksimale vinkel og fald, når en kraft påføres for at kunne dreje i den modsatte retning.

Forbindelse mellem sensorer og motorer:

Valget af save1, save2, save3 og læsning1, læsning2, læsning3 afhænger af lodningen. Men for hver finger skal sensoren og den motorrelaterede have samme nummer.

Så i sløjfen, hvis betingelser blev brugt til at teste, om fingeren allerede er i en bøjningsposition eller ej, og om trykket påføres eller ikke på sensorerne. Når sensorerne returnerer en værdi, skal der anvendes en kraft, men to forskellige tilfælde er mulige:

  • Hvis fingeren endnu ikke er bøjet og sammenligner denne værdi, der returneres af sensorerne til tærsklerne, påføres den tilsvarende vinkel på servoen.
  • Hvis fingeren allerede er bøjet, betyder det, at brugeren ønsker at slippe bøjningen, og derefter påføres startvinklen på servoerne.

Dette gøres for hver motor.

Derefter tilføjede vi en forsinkelse på 1000 ms for at undgå at teste sensorernes værdier for ofte. Hvis der anvendes en for lille værdi af forsinkelse, risikerer det at genåbne hånden direkte efter at have lukket den, hvis kraften påføres i længere tid end forsinkelsestiden.

Hele processen for en sensor er præsenteret i flowdiagrammet her ovenfor.

HELE KODEN

#include Servo servo1; Servo servo2; Servo servo3; int læsning1; int læsning2; int læsning3; char save1 = 0; // servoen starter ved tilstand 0, sovende tilstand char save2 = 0; char save3 = 0; void setup (void) {Serial.begin (9600); servo2. vedhæfte (9); // servo ved digital pin 9 servo2.write (160); // startpunkt for servoservo1.attach (6); // servo ved digital pin 6 servo1.write (0); // startpunkt for servo servo3.attach (3); // servo ved digital pin 3 servo3.write (0); // startpunkt for servo

}

void loop (void) {reading1 = analogRead (A0); // knyttet til analog 0 læsning2 = analogRead (A2); // vedhæftet analog 2 læsning3 = analogRead (A4); // vedhæftet analog 4

// if (reading2> = 0) {Serial.print ("Sensorværdi ="); // Eksempel på kommando, der bruges til kalibrering af tærsklerne for den første sensor

// Serial.println (læsning2); } // else {Serial.print ("Sensorværdi ="); Serial.println (0); }

hvis (læsning1> 100 og save1 == 0) {// hvis sensoren får en høj værdi og ikke er i slumretilstand save1 = 2; } // gå til tilstand 2 ellers hvis (læsning1> 30 og save1 == 0) {// hvis sensoren får en mellemværdi og ikke er i slumretilstand save1 = 1; } // fik angivet 1 andet, hvis (læsning1> 0) {// hvis værdien er ikke nul, og ingen af de tidligere betingelser er korrigeret save1 = 0;} // gå til dvaletilstand

hvis (save1 == 0) {servo1.write (160); } // slip andet hvis (save1 == 1) {servo1.write (120); } // medium trækvinkel andet {servo1.write (90); } // maksimal trækvinkel

hvis (læsning2> 10 og save2 == 0) {// samme end servo 1 save2 = 2; } ellers hvis (læsning2> 5 og save2 == 0) {save2 = 1; } ellers hvis (læsning2> 0) {save2 = 0;}

hvis (save2 == 0) {servo2.write (0); } ellers hvis (save2 == 1) {servo2.write (40); } andet {servo2.write (60); }

hvis (læsning3> 30 og save3 == 0) {// samme end servo 1 save3 = 2; } ellers hvis (læsning3> 10 og save3 == 0) {save3 = 1; } ellers hvis (læsning3> 0) {save3 = 0;}

hvis (save3 == 0) {servo3.write (0); } ellers hvis (save3 == 1) {servo3.write (40); } andet {servo3.write (70); } forsinkelse (1000); } // vent lige lidt

Trin 9: Fastgør Arduino, batterierne og Veroboardet til armen

Fastgør Arduino, batterierne og Veroboardet til armen
Fastgør Arduino, batterierne og Veroboardet til armen
Fastgør Arduino, batterierne og Veroboardet til armen
Fastgør Arduino, batterierne og Veroboardet til armen

En anden plade blev trykt i PLA for at kunne reparere batteriholdere og arduino.

Pladen har målene: 100x145x5mm.

Fire huller er til stede for at skrue arduinoen og to for at skrue 9V batteriholderen. Der blev lavet et hul i 6V batteriholderen og i pladen for at bruge en kabelbinder til at fastgøre dem sammen. Noget lim blev tilføjet for at sikre fikseringen af denne holder. Kontakten er fastgjort med to små kabelbindere.

Der er også fire huller, der bruges til at fastgøre pladen på jeansene ved hjælp af kabelbindere.

Veroboardet sættes på arduinoen som et skjold.

Trin 10: Tilslut elektronikken

Tilslut elektronikken
Tilslut elektronikken

Kredsløbet er loddet på veroboardet som rapporteret i skemaet ovenfor.

Arduino har et 9V batteri som forsyning, og der er tilsluttet en switch mellem disse for at kunne slukke Arduinoen. Et 6V batteri er nødvendigt til servomotoren, der har brug for meget strøm, og den tredje pin af servoerne er forbundet på ben 3, 6 og 9 for at styre dem med PWM.

Hver sensor er forbundet på en side med 5V på Arduino og på den anden side med en 330 ohm modstand forbundet til jorden og stifterne A0, A2 og A4 for at måle spændingen.

Trin 11: Tilføj nylontrådene

Tilføj nylontråde
Tilføj nylontråde

Nylontrådene er lavet til at passere gennem begge huller på ekstremiteten og ringene som vist på billedet, så vil de to halvdele af tråden begge gå inde i polyethylenstyret og forblive sammen indtil enden af guiden til motoren. Ledningernes længde bestemmes på dette tidspunkt, de skal være lange nok til at cirkulere, når servoens hjul har lige fingre.

De er fastgjort på hjulene med en knude, der passerer gennem to små huller på.stl -filerne og med varm lim til yderligere stabilisering.

Trin 12: God fornøjelse

Det fungerer som forventet.

Ved den første impuls bøjer den fingeren, og ved den anden frigiver den den. Ingen kraft er nødvendig, når fingrene er bøjet.

Ikke desto mindre er der tre problemer tilbage:

- Vi skal være forsigtige med at lave en impuls kortere end 1 sekund for at aktivere servoerne, ellers slipper ledningerne straks efter trækningen som forklaret i trin 8 om Arduino -koden.

- Plastikdelene glider lidt, så vi har tilføjet lidt varm lim i ekstremiteten for at tilføje friktion.

- Hvis en tung belastning er på fingeren, vil sensoren hele tiden have en stor værdi, og servoen vil derfor kontinuerligt rotere.

Anbefalede: