Innholdsfortegnelse:

RoboGlove: 12 trinn (med bilder)
RoboGlove: 12 trinn (med bilder)

Video: RoboGlove: 12 trinn (med bilder)

Video: RoboGlove: 12 trinn (med bilder)
Video: Арт игра"КАРТЫ" / совместное раскрашивание 2024, Juli
Anonim
RoboGlove
RoboGlove

Vi er en gruppe studenter ved ULB, Université Libre de Bruxelles. Prosjektet vårt består i å utvikle en robothanske som kan skape en gripekraft som hjelper folk med å ta tak i ting.

HANSKEN

Hansken har en ledningstilkobling som knytter fingrene til noen servomotorer: en ledning er festet til fingerens ende og til servoen, så når servoen snur, trekkes ledningen og fingeren bøyes. På denne måten, ved å kontrollere grepet som brukeren har gjort gjennom noen trykksensorer i ekstremiteten av fingrene, er vi i stand til å aktivere motorene på en kontrollert måte og hjelpe gripingen ved å bøye fingeren proporsjonalt til rotasjonen av motorene og så til rullingen av ledningene. På denne måten bør vi enten kunne la svake mennesker gripe gjenstander eller hjelpe selv mennesker under fysiologiske forhold til å gripe gjenstander og beholde dem uten anstrengelse.

DESIGNET

Modellen er utviklet for å gjøre håndbevegelsen så fri som mulig. Faktisk trykte vi bare 3D de strengt nødvendige delene vi trengte for å koble ledninger, motorer og fingre.

Vi har en topp -kuppel trykt i PLA på hver finger: dette er terminaldelen der ledningene må kobles til, og den må gi beskyttelse til trykksensoren som er festet inne. Trykkføleren er limt, med varmt lim, mellom PLA -ekstremiteten og hansken.

Så har vi to 3D -trykte ringer, per finger, som utgjør en guide for ledningene. Tommelen er den eneste fingeren som bare har én ring. Det er en ledning per finger, brettet i to på ekstremiteten av fingrene. De to halvdelene passerer gjennom de to føringene til kuppeldelen og i begge ringene: de settes rett i hull som vi laget på utsiden av disse ringene. Deretter settes de sammen til et hjul som er direkte koblet til motoren. Hjulet er realisert for å kunne vikle rundt ledningene: siden motoren vår har en ikke fullstendig rotasjon (lavere enn 180 °) innså vi hjulet for å trekke ledningen for et gap på 6 centimeter som er avstanden nødvendig for å lukke hånden helt.

Vi har også skrevet ut to plater for å fikse servomotorene og arduinoen til armen. Det burde være bedre å kutte det i tre eller en stiv plast med en laserskjærer.

Trinn 1: Handleliste

Handleliste
Handleliste
Handleliste
Handleliste
Handleliste
Handleliste

Hanske og ledninger:

1 eksisterende hanske (må kunne sys)

Gamle jeans eller en annen stiv klut

Nylontråder

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

Elektronikk:

Arduino Uno

1 batteri 9V + 9V batteriholder

1 elektronisk bryter

1 veroboard

3 servomotorer (1 per finger)

3 propeller (følger med servoene)

4 batterier AA + 4 AA batterier holder

3 trykksensorer (1 per finger)

3 motstander 330 ohm (1 per finger)

6 elektriske ledninger (2 per sensorer)

Skruer, muttere og fester:

4 M3 10 mm lang (for å fikse Arduino)

2 M2,5 12 mm lang (for å fikse 9V batteriholderen)

6 tilsvarende muttere

6 M2 10 mm lang (2 per servo for å feste hjulene til servoene)

12 små kabelbindere (for å fikse platene og bryteren)

7 store kabelbindere (2 per motorer og 1 for 4 AA -batteriholderen)

Brukte verktøy:

3D -skriver (Ultimaker 2)

Materiale til sying

Varm limpistol

Valgfritt: laserskjærer

Trinn 2: Forbered bærbar struktur

Forbered bærbar struktur
Forbered bærbar struktur

Den bærbare strukturen er laget med noen klær: i vårt tilfelle brukte vi en vanlig hanske for elektriker og en jeansklut for strukturen rundt håndleddet. De ble sydd sammen.

Målet er å ha en fleksibel bærbar struktur.

Strukturen må være sterkere enn en vanlig ullhanske siden den må sys.

Vi trenger en bærbar struktur rundt håndleddet for å holde strømleverandørene og aktuatorene, og vi trenger at den er stabil, så vi valgte å gjøre lukkingen justerbar ved å påføre borrelåsbånd (selvklebende bånd) på jeansens håndledd.

Noen trepinner ble sydd innvendig for å gjøre jeansene mer stive.

Trinn 3: Forbered de funksjonelle delene

Klargjør funksjonelle deler
Klargjør funksjonelle deler

De stive delene realiseres gjennom 3D -utskrift i PLA fra.stl -filene i beskrivelsen:

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

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

Hjul for motor x3

For fingerdelene trengs forskjellige skalaer på grunn av den forskjellige størrelsen på hver finger og hver falang.

Trinn 4: Fest sensorene til ekstremitetene

Fest sensorene til ekstremitetene
Fest sensorene til ekstremitetene

Trykkfølere loddes først til kabeltråder.

De limes deretter med bruk av en limpistol inne i fingerekstremitetene: en liten mengde lim legges inne i ekstremiteten, på siden med de to hullene, deretter påføres sensoren umiddelbart med den aktive (runde) delen på lim (ha den piezoelektriske siden vendt mot innsiden av strukturen og plastdelen direkte på limet). Kabeltrådene må løpe over toppen av fingeren ned til ryggen for å få den elektriske kablingen til å gå på baksiden av hånden.

Trinn 5: Fest de 3D -trykte delene til hansken

Fest de 3D -trykte delene til hansken
Fest de 3D -trykte delene til hansken

Alle de stive delene (ekstremiteter, ringer) må sys i hansken for å kunne festes.

For å plassere ringene riktig, må du først bruke hansken og prøve å ta på ringene, en per falanks, uten at de berøres under hånden. Omtrentlig vil ringene på indeksen bli festet 5 mm over fingeren og 17 til 20 mm over den første. Når det gjelder langfingeren, vil den første ringen være omtrent 8 til 10 mm over fingeren, og den andre rundt 20 mm over den første. Når det gjelder tommelen, er presisjonen som trengs veldig lav, siden det ikke risikerer å forstyrre de andre ringene, så prøv å bruke den på den slitte hansken, tegne en linje på hansken der du foretrekker å ha ring slik at du kan sy den.

Når det gjelder sying, kreves ingen spesiell teknikk eller evne. Med en nål går sytråden i sirkler rundt ringene og passerer gjennom hanskens overflate. Et trinn på 3-4 mm mellom to hull i hansken gjør allerede en sterk nok fiksering, det er ikke nødvendig å lage en veldig tett søm.

Den samme teknikken brukes for å fikse ekstremitetene: toppen av ekstremiteten er hullet for å få nålen til å passere lett, så bare de krysslignende formene på toppen av fingeren må sys til hansken.

Deretter må polyetylenførerne også fikses ved å følge tre kriterier:

den distale enden (vendt mot fingeren) må vende i retning av fingeren, for å unngå høye friksjoner med nylontråden som går inn i den;

den distale enden må være langt nok til ikke å forstyrre lukking av hånden (ca. 3 cm lavere enn fingeren er god nok, 4 til 5 cm for tommelen);

rørene må passere over hverandre så lite som mulig, for å redusere hoveddelen av hele hansken og mobiliteten til hvert rør

De fikseres ved å sy dem til hansken og håndleddet, med samme teknikk som ovenfor.

For å unngå risiko for å gli gjennom sømmen, ble det tilsatt noen lim mellom rørene og hanskene.

Trinn 6: Forbered hjulene for servoene

Forbered hjulene for servoene
Forbered hjulene for servoene

Vi brukte spesialdesignede hjul, tegnet og 3D -trykte av oss selv for dette prosjektet (.stl -fil i beskrivelsen).

Når hjulene er skrevet ut, må vi feste dem til propellene til servoene ved å skru (M2, 10 mm skruer). Siden hullene på propellene er mindre enn 2 mm i diameter ved å skru M2, er det ikke nødvendig med muttere.

De 3 propellene kan brukes på hver servo.

Trinn 7: Fest motorene til armen

Fest motorene til armen
Fest motorene til armen

Dette trinnet består i fiksering av motorene til armen; for å gjøre det måtte vi skrive ut en ekstra PLA -plakett for å få støtte.

Faktisk kunne ikke motorene festes direkte til armen siden hjulene, som trengs for å trekke i ledningene, kan bli blokkert under bevegelsen på grunn av hansken. Så vi 3D -trykte en PLA -plakett med dimensjoner 120x150x5 mm.

Deretter festet vi plaketten til hansken vår med noen kabelbindere: vi lagde noen hull i hansken ganske enkelt ved hjelp av saks, så lagde vi hull i plastplaten med et bor og satte alt sammen. Fire hull i platen er nødvendig i midten, i omkretsen, for å passere kabelbåndene. De er laget med en drill. Disse er i senterdelen og ikke på sidene av platen for å kunne lukke jeansene rundt armen uten at platen blokkerer den siden platen ikke er fleksibel.

Deretter bores det også andre hull i plastplaten for å fikse motorene. Motorene er festet med to kryssede kabelbindere. Litt lim ble tilsatt på sidene for å sikre fiksering.

Motorene må settes på en slik måte at hjulene ikke forstyrrer hverandre. Så det er atskilt i venstre og høyre side av hånden: to på en side, med hjulene som snur i motsatte retninger og ett i den andre siden.

Trinn 8: Kode på Arduino

Kode på Arduino
Kode på Arduino

Koden er utviklet på en enkel måte: å aktivere motorene eller ikke. Servoene aktiveres bare hvis avlesningen er over en viss verdi (den ble løst med forsøk og feil fordi følsomheten til hver sensor ikke er nøyaktig den samme). Det er to muligheter for bøyning, lavt for en lav kraft og fullstendig for en sterk kraft. Når fingeren er bøyd, er det ikke nødvendig med en brukers kraft for å holde fingeren i den faktiske posisjonen. Årsaken til denne implementeringen er at det ellers har blitt nevnt at fingrene trenger å påføre sensorene kontinuerlig, og hansken gir ingen fordel. For å frigjøre bøyningen av fingeren må en ny kraft påtrykkes på trykksensoren, som virker som en stopp -kommando.

Vi kan dele koden i tre deler:

Sensorer init:

Først og fremst initialiserte vi tre heltallsvariabler: lesing1, lesing2, lesing3 for hver sensor. Sensorene ble satt inn i de analoge inngangene A0, A2, A4. Hver variabel for avlesningen er satt som:

  • lesing1 hvor er skrevet verdien som er lest i inngang A0,
  • lese2 hvor er skrevet verdien som er lest i inngang A2,
  • reading3 hvor er skrevet verdien som er lest i input A4

To terskler er festet med fingeren som tilsvarer de to posisjonene for betjening av servoene. Disse tersklene er forskjellige for hver finger siden kraften som påføres ikke er den samme for hver finger og følsomheten til de tre sensorene ikke er nøyaktig den samme.

Motors init:

Tre variabler char (save1, save2, save3), en for hver motor initialiseres til 0. Så inn i oppsettet spesifiserte vi pinnene der vi plugger motorene henholdsvis: pin 9, pin 6 og pin 3 for servo1, servo2, servo3; alt initialisert til 0 -verdi.

Deretter aktiveres servoene via kommandoen servo.write () som er i stand til å fikse vinkelen som mottas som inngang på servoen. Også ved forsøk og feil ble de to gode vinklene, som trengs for å bøye fingeren i to stillinger som tilsvarer et lite grep og et stort grep, funnet.

Siden en motor trenger å snu i motsatt retning på grunn av fikseringen, er utgangspunktet ikke null, men maksimal vinkel og reduksjon når en kraft påføres for å kunne svinge i motsatt retning.

Kobling mellom sensorer og motorer:

Valget av save1, save2, save3 og reading1, reading2, reading3 avhenger av lodding. Men for hver finger må sensoren og motorrelatert ha samme nummer.

Deretter i løkken, hvis forholdene ble brukt for å teste om fingeren allerede er i en bøyestilling eller ikke, og om trykket påføres eller ikke på sensorene. Når sensorene returnerer en verdi, må en kraft påføres, men to forskjellige tilfeller er mulige:

  • Hvis fingeren ennå ikke er bøyd og sammenligner denne verdien som sensorene returnerer til tersklene, blir den tilsvarende vinkelen påført servoen.
  • Hvis fingeren allerede er bøyd, betyr det at brukeren ønsker å slippe bøyningen, og deretter blir startvinkelen påført servoene.

Dette gjøres for hver motor.

Deretter la vi til en forsinkelse på 1000 ms for å unngå å teste sensorene for ofte. Hvis det brukes en for liten forsinkelsesverdi, risikerer det å åpne hånden igjen direkte etter at den er lukket i tilfelle kraften blir påført i lengre tid enn forsinkelsestiden.

All prosessen for en sensor er presentert i flytskjemaet ovenfor.

HELE KODEN

#include Servo servo1; Servo servo2; Servo servo3; int lesing1; int lesing2; int lesing3; røye save1 = 0; // servoen starter ved tilstand 0, sovende tilstand char save2 = 0; røye save3 = 0; void setup (void) {Serial.begin (9600); servo2. fest (9); // servo på digital pin 9 servo2.write (160); // startpunkt for servoservo1.attach (6); // servo på digital pin 6 servo1.write (0); // startpunkt for servo servo3.attach (3); // servo på digital pin 3 servo3.write (0); // utgangspunkt for servo

}

void loop (void) {reading1 = analogRead (A0); // festet til analog 0 lesing2 = analogRead (A2); // festet til analog 2 lesing3 = analogRead (A4); // festet til analog 4

// if (reading2> = 0) {Serial.print ("Sensor verdi ="); // Eksempel på kommando som brukes til kalibrering av terskler for den første sensoren

// Serial.println (lesing2); } // else {Serial.print ("Sensorverdi ="); Serial.println (0); }

hvis (lesing1> 100 og save1 == 0) {// hvis sensoren får en høy verdi og ikke er i hvilemodus save1 = 2; } // gå til tilstand 2 ellers hvis (lesing1> 30 og lagre1 == 0) {// hvis sensoren får en middels verdi og ikke er i hvilemodus save1 = 1; } // fikk oppgitt 1 annet hvis (lesing1> 0) {// hvis verdien ikke er null og ingen av de tidligere betingelsene er korrigert save1 = 0;} // gå til hvilemodus

if (save1 == 0) {servo1.write (160); } // slipp annet hvis (save1 == 1) {servo1.write (120); } // middels trekkvinkel annet {servo1.write (90); } // maksimal trekkvinkel

if (reading2> 10 og save2 == 0) {// samme enn servo 1 save2 = 2; } annet hvis (reading2> 5 og save2 == 0) {save2 = 1; } annet hvis (reading2> 0) {save2 = 0;}

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

if (reading3> 30 og save3 == 0) {// samme enn servo 1 save3 = 2; } annet hvis (reading3> 10 og save3 == 0) {save3 = 1; } annet hvis (reading3> 0) {save3 = 0;}

if (save3 == 0) {servo3.write (0); } annet hvis (save3 == 1) {servo3.write (40); } annet {servo3.write (70); } forsinkelse (1000); } // vent litt

Trinn 9: Fest Arduino, batteriene og Veroboardet til armen

Fest Arduino, batteriene og Veroboardet til armen
Fest Arduino, batteriene og Veroboardet til armen
Fest Arduino, batteriene og Veroboardet til armen
Fest Arduino, batteriene og Veroboardet til armen

En annen plate ble skrevet ut i PLA for å kunne fikse batteriholderne og arduinoen.

Platen har dimensjonene: 100x145x5mm.

Fire hull er til stede for å skru arduinoen og to for å skru 9V batteriholderen. Det ble laget et hull i 6V batteriholderen og i platen for å feste dem sammen med en kabelbinder. Litt lim ble tilsatt for å sikre fiksering av denne holderen. Bryteren er festet med to små kabelbindere.

Det er også fire hull som brukes til å feste platen på jeansen ved hjelp av kabelbinder.

Veroboardet er satt på arduinoen som et skjold.

Trinn 10: Koble til elektronikken

Koble til elektronikken
Koble til elektronikken

Kretsen er loddet på veroboardet som rapportert i skjemaet ovenfor.

Arduino har et 9V batteri som forsyning og en bryter er koblet mellom disse for å kunne slå av Arduino. Et 6V batteri er nødvendig for servomotoren som trenger mye strøm og den tredje pinnen på servoen er koblet til pinne 3, 6 og 9 for å kontrollere dem med PWM.

Hver sensor er koblet på en side ved 5V på Arduino og på den andre siden med en 330 ohm motstand koblet til bakken og pinnene A0, A2 og A4 for å måle spenningen.

Trinn 11: Legg til nylontrådene

Legg til nylontrådene
Legg til nylontrådene

Nylontrådene er laget for å passere gjennom begge hullene på ekstremiteten og ringene som vist på bildet, så går de to halvdelene av ledningen inne i polyetylenføringen og forblir sammen til slutten av guiden, til motoren. Lengden på ledningene bestemmes på dette tidspunktet, de må være lange nok til å sirkle når hjulet på servoen med de rette fingrene.

De er festet på hjulene med en knute som går gjennom to små hull på.stl -filene og med varmt lim for ytterligere stabilisering.

Trinn 12: Kos deg

Det fungerer som forventet.

Ved den første impulsen bøyer den fingeren og ved den andre slipper den den. Ingen kraft er nødvendig når fingrene bøyes.

Likevel gjenstår tre problemer:

- Vi må være forsiktige med å lage en impuls kortere enn 1 sekund for å aktivere servoene, ellers slipper ledningene umiddelbart etter trekking som forklart i trinn 8 om Arduino -koden.

- Plastdelene sklir litt, så vi har tilsatt litt varmt lim i ekstremiteten for å tilføre friksjon.

- Hvis det er en tung belastning på fingeren, vil sensoren hele tiden ha en stor verdi, og servoen roterer kontinuerlig.

Anbefalt: