Obsah:

RoboGlove: 12 krokov (s obrázkami)
RoboGlove: 12 krokov (s obrázkami)

Video: RoboGlove: 12 krokov (s obrázkami)

Video: RoboGlove: 12 krokov (s obrázkami)
Video: Установка маяков под штукатурку. Углы 90 градусов. #12 2024, Júl
Anonim
RoboGlove
RoboGlove

Sme skupina študentov ULB, Université Libre de Bruxelles. Náš projekt spočíva vo vývoji robotickej rukavice, ktorá dokáže vytvoriť uchopovaciu silu a pomáha ľuďom chytiť veci.

RUKAVICE

Rukavica má drôtené spojenie, ktoré spája prsty s niektorými servomotormi: k koncu prsta a k servu je pripevnený drôt, takže keď sa servo otáča, drôt sa potiahne a prst sa ohne. Týmto spôsobom, ovládaním úchopu vykonaného užívateľom prostredníctvom niektorých tlakových senzorov v koncoch prstov, sme schopní ovládať motory riadeným spôsobom a pomôcť uchopeniu ohnutím prsta proporcionálne k otáčaniu motorov a takže k navíjaniu drôtov. Týmto spôsobom by sme mali byť schopní buď umožniť slabým ľuďom uchopiť predmety, alebo pomôcť dokonca ľuďom vo fyziologických podmienkach uchopiť predmety a udržať ich bez akejkoľvek námahy.

DIZAJN

Tento model bol vyvinutý tak, aby bol pohyb ruky čo najvoľnejší. V skutočnosti sme 3D vytlačili iba nevyhnutne potrebné diely, ktoré sme potrebovali na pripojenie drôtov, motorov a prstov.

Na každom prste je vytlačená horná kopula v PLA: toto je koncová časť, ku ktorej je potrebné pripojiť vodiče a ktorá musí poskytovať ochranu tlakovému senzoru, ktorý je upevnený vo vnútri. Tlakový senzor je medzi koniec PLA a rukavicu prilepený horúcim lepidlom.

Potom máme dva 3D tlačené prstene na prst, ktoré predstavujú vodítko pre drôty. Palec je jediný prst, ktorý má iba jeden vytlačený krúžok. Na jeden prst je jeden drôt preložený na polovicu na konci prstov. Obe polovice prechádzajú dvoma vodidlami kupolovej časti a v oboch krúžkoch: vložia sa priamo do otvorov, ktoré sme urobili zvonka týchto krúžkov. Potom sa dajú dohromady do kolesa priamo pripojeného k motoru. Koleso bolo zrealizované tak, aby bolo možné omotať drôty: pretože náš motor má neúplné otáčanie (nižšie ako 180 °), realizovali sme koleso, aby sme ťahali drôt za medzeru 6 centimetrov, čo je vzdialenosť. potrebné úplne zavrieť ruku.

Tiež sme vytlačili dve platne na pripevnenie servomotorov a arduina k ramenu. Malo by byť lepšie rezať ho v dreve alebo v pevnom plastu laserovou rezačkou.

Krok 1: Nákupný zoznam

Nákupný zoznam
Nákupný zoznam
Nákupný zoznam
Nákupný zoznam
Nákupný zoznam
Nákupný zoznam

Rukavice a drôty:

1 existujúca rukavica (musí byť ušitá)

Staré rifle alebo iná tuhá tkanina

Nylonové drôty

Polyetylénové hadice s nízkou hustotou (priemer: 4 mm, hrúbka: 1 mm)

Elektronika:

Arduino Uno

1 batéria 9V + 9V držiak batérie

1 elektronický spínač

1 veroboard

3 servomotory (1 na prst)

3 vrtule (dodávané so servom)

4 batérie AA + 4 držiaky batérií AA

3 snímače tlaku (1 na prst)

3 odpory 330 ohmov (1 na prst)

6 elektrických vodičov (2 na senzory)

Skrutky, matice a upevnenia:

4 M3 10 mm dlhé (na opravu Arduina)

2 M2,5, dĺžka 12 mm (na upevnenie držiaka 9V batérie)

6 zodpovedajúcich matíc

6 M2, dĺžka 10 mm (2 na servo na pripevnenie kolies k servám)

12 malých káblových úchytiek (na upevnenie plechov a spínača)

7 veľkých káblových zväzkov (2 na motory a 1 na držiak 4 batérií AA)

Použité nástroje:

3D tlačiareň (Ultimaker 2)

Materiál na šitie

Horúca lepiaca pištoľ

Voliteľné: laserová rezačka

Krok 2: Pripravte si nositeľnú štruktúru

Pripravte si nositeľnú štruktúru
Pripravte si nositeľnú štruktúru

Nositeľná štruktúra bola vyrobená z niektorých odevov: v našom prípade sme použili normálnu rukavicu pre elektrikára a rifľovú tkaninu pre štruktúru okolo zápästia. Boli zošité.

Cieľom je mať flexibilnú nositeľnú štruktúru.

Štruktúra musí byť silnejšia ako bežná vlnená rukavica, pretože musí byť ušitá.

Potrebujeme nositeľnú štruktúru okolo zápästia, ktorá by držala dodávateľov energie a akčné členy, a potrebujeme, aby bola stabilná, a preto sme sa rozhodli nastaviť zapínanie tak, že na zápästie džínsov použijeme pásy na suchý zips (samolepiace pásy).

Vnútri boli všité niektoré drevené tyčinky, aby boli rifle tuhšie.

Krok 3: Pripravte si funkčné časti

Pripravte si funkčné časti
Pripravte si funkčné časti

Tuhé časti sú realizované prostredníctvom 3D tlače v PLA zo súborov.stl v popise:

Prstencový prsteň x5 (s rôznymi mierkami: 1x stupnica 100%, 2x mierka 110%, 2x mierka 120%);

Extremity prstov x3 (s rôznymi mierkami: 1x stupnica 100%, 1x mierka 110%, 1x mierka 120%);

Koleso pre motor x3

Pre časti prstov sú potrebné rôzne stupnice kvôli rôznej veľkosti každého prsta a každej falangy.

Krok 4: Upevnite senzory k extrémom

Upevnite senzory k extrémom
Upevnite senzory k extrémom

Tlakové snímače sa najskôr spájkujú s káblami.

Potom sú prilepené pomocou lepiacej pištole na končeky prstov: malé množstvo lepidla je vložené do konca, na stranu s dvoma otvormi, potom sa senzor ihneď aplikuje aktívnou (okrúhlou) časťou na lepidlo (má piezoelektrický povrch vnútornú stranu konštrukcie a plastovú časť priamo na lepidlo). Káblové káble musia prechádzať cez hornú časť prsta až k jeho chrbtu, aby bola elektrická kabeláž vedená na zadnej strane ruky.

Krok 5: Upevnite 3D tlačené diely na rukavicu

Upevnite 3D tlačené diely na rukavicu
Upevnite 3D tlačené diely na rukavicu

Všetky pevné časti (končatiny, krúžky) musia byť prišité k rukavici, aby boli upevnené.

Ak chcete správne umiestniť krúžky, najskôr noste rukavicu a pokúste sa nasadiť prstene, jeden na falangu, bez toho, aby sa ich počas zatvárania ruky dotýkali. Prstene na indexe budú približne 5 mm nad základňou prsta a 17 až 20 mm nad prvým. Pokiaľ ide o stredný prst, prvý prsteň bude približne 8 až 10 mm nad základňou prsta a druhý asi 20 mm nad prvým prstom. Pokiaľ ide o palec, potrebná presnosť je veľmi nízka, pretože nehrozí, že by zasahoval do ostatných krúžkov, preto ho skúste použiť na opotrebovanú rukavicu a na rukavici nakreslite čiaru tam, kde by ste najradšej mali prsteň, aby ste ho potom mohli ušiť.

Pokiaľ ide o šitie, nie sú potrebné žiadne špeciálne techniky ani schopnosti. S ihlou prechádza šijacia niť v kruhoch okolo krúžkov a prechádza povrchom rukavice. Krok 3-4 mm medzi dvoma otvormi v rukavici už robí dostatočne silnú fixáciu, nie je potrebné vykonávať veľmi husté šitie.

Na fixáciu končatín sa používa rovnaká technika: horná časť končatiny je dierkovaná, aby ihla ľahko prechádzala, takže na rukavicu bude potrebné prišiť iba krížové tvary na vrchu prsta.

Potom je tiež potrebné upevniť polyetylénové vodidlá podľa troch kritérií:

distálny koniec (obrátený k prstu) musí smerovať v smere prsta, aby sa zabránilo vysokému treniu s nylonovým drôtom, ktorý pôjde dovnútra;

distálny koniec musí byť dostatočne ďaleko, aby neprekážal pri zatváraní ruky (asi 3 cm nižšie ako základňa prsta je dosť dobré, 4 až 5 cm pre palec);

trubice musia prechádzať cez seba čo najmenej, aby sa znížila veľkosť celej rukavice a pohyblivosť každej skúmavky

Fixujú sa prišitím na rukavicu a na zápästie rovnakou technikou, ako je uvedené vyššie.

Aby sa predišlo akémukoľvek riziku kĺzania pri šití, bolo medzi rúrky a rukavice pridané niekoľko lepidiel.

Krok 6: Pripravte kolesá na serva

Pripravte si kolesá na servá
Pripravte si kolesá na servá

Na tento projekt sme použili špeciálne navrhnuté kolesá, nakreslené a 3D vytlačené nami (súbor.stl v popise).

Akonáhle sa kolesá vytlačia, musíme ich pripevniť na vrtule servomotorom priskrutkovaním (skrutky M2, 10 mm). Pretože otvory vrtúľ sú menšie ako 2 mm v priemere zaskrutkovaním M2, nie sú potrebné žiadne matice.

Na každé servo je možné použiť tri vrtule.

Krok 7: Upevnite motory k ramenu

Upevnite motory k ramenu
Upevnite motory k ramenu

Tento krok spočíva v upevnení motorov k ramenu; aby sme to urobili, museli sme vytlačiť pomocnú plaketu PLA, aby sme získali podporu.

V skutočnosti motory nebolo možné pripevniť priamo k ramenu, pretože kolesá potrebné na ťahanie drôtov mohli byť počas pohybu zablokované kvôli rukavici. 3D sme teda vytlačili PLA plaketu s rozmerom 120x150x5 mm.

Potom sme plaketu pripevnili k našej rukavici pomocou káblových zväzkov: do rukavice sme jednoducho urobili niekoľko nožničiek, potom sme vŕtačkou urobili otvory do plastovej plakety a všetko spojili. Na prechod káblových zväzkov sú v strede, medzi jeho obvodom, potrebné štyri otvory do plaku. Sú vyrobené pomocou vŕtačky. Tieto sú v strednej časti a nie po stranách dosky, aby bolo možné zapnúť džínsy okolo ramena bez toho, aby ju doštička blokovala, pretože doska nie je pružná.

Potom sa do plastovej plakety vyvŕtajú aj ďalšie otvory na upevnenie motorov. Motory sú upevnené dvoma skríženými sťahovacími páskami. Na ich strany bolo pridané trochu lepidla, aby sa zaistila fixácia.

Motory musia byť umiestnené tak, aby sa kolesá navzájom nerušili. Na ľavej a pravej strane ruky sú teda oddelené: dve na boku, pričom kolesá sa otáčajú v opačných smeroch a jedno na druhej strane.

Krok 8: Kódujte na Arduine

Kód na Arduine
Kód na Arduine

Kód bol vyvinutý jednoduchým spôsobom: na pohon alebo nie na pohon motorov. Serva sa aktivujú iba vtedy, ak je hodnota vyššia ako určitá hodnota (bolo to opravené pokusmi a chybami, pretože citlivosť každého senzora nie je úplne rovnaká).. Existujú dve možnosti ohýbania, nízke pre nízku silu a úplne pre silnú silu. Akonáhle je prst ohnutý, nie je potrebná žiadna sila používateľa, aby prst držal v skutočnej polohe. Dôvodom tejto implementácie je, že inak bolo spomenuté, že prsty musia na senzory nepretržite pôsobiť silou a rukavice neposkytujú žiadne výhody. Na uvoľnenie ohybu prsta je potrebné na tlakový senzor vyvinúť novú silu, ktorá spočíva v zastavení.

Kód môžeme rozdeliť na tri časti:

Inicializácia senzorov:

Najprv sme pre každý senzor inicializovali tri celočíselné premenné: čítanie1, čítanie2, čítanie3. Senzory boli vložené do analógových vstupov A0, A2, A4. Každá premenná na čítanie je nastavená takto:

  • čítanie1, kde je zapísaná hodnota načítaná na vstupe A0,
  • reading2, kde je zapísaná hodnota načítaná na vstupe A2,
  • reading3, kde je zapísaná hodnota načítaná na vstupe A4

Dve prahové hodnoty sú upevnené prstom zodpovedajúcim dvom polohám ovládania serv. Tieto prahové hodnoty sú pre každý prst odlišné, pretože použitá sila nie je pre každý prst rovnaká a citlivosť troch senzorov nie je úplne rovnaká.

Počiatočné motory:

Tri premenné char (save1, save2, save3), jedna pre každý motor, sa inicializujú na 0. Potom sme v nastavení špecifikovali kolíky, do ktorých zapojíme motory: pin 9, pin 6 a pin 3 pre servo1, servo2, servo3; všetko inicializované na 0 hodnote.

Potom sa servopohony aktivujú pomocou príkazu servo.write (), ktorý je schopný zafixovať uhol prijatý ako vstup na servo. Tiež pokusmi a omylmi sa zistili dva dobré uhly potrebné na ohnutie prsta v dvoch polohách zodpovedajúcich malému úchopu a veľkému úchopu.

Pretože jeden motor sa kvôli svojej fixácii potrebuje otáčať v opačnom smere, jeho počiatočný bod nie je nulový, ale maximálny uhol a klesá, keď je použitá sila, aby sa mohol otáčať v opačnom smere.

Spojenie medzi snímačmi a motormi:

Voľba save1, save2, save3 a reading1, reading2, reading3 závisí od spájkovania. Ale pre každý prst musí mať snímač a motor súvisiace číslo.

Potom v slučke, ak boli podmienky použité na testovanie, či je prst už v polohe ohýbania alebo nie, a či je na snímače vyvíjaný tlak alebo nie. Keď senzory vrátia hodnotu, je potrebné vyvinúť silu, ale sú možné dva rôzne prípady:

  • Ak prst ešte nie je ohnutý, porovnaním tejto hodnoty vrátenej snímačmi s prahovými hodnotami sa na servo použije príslušný uhol.
  • Ak je prst už ohnutý, znamená to, že používateľ chce uvoľniť ohyb a potom sa na servá použije počiatočný uhol.

To sa robí pre každý motor.

Potom sme pridali oneskorenie 1000 ms, aby sme sa vyhli príliš častému testovaniu hodnôt senzorov. Ak použijete príliš malú hodnotu oneskorenia, hrozí riziko priameho opätovného otvorenia ruky po jej zatvorení v prípade, že sila bude pôsobiť dlhšie, ako je čas oneskorenia.

Celý proces pre jeden senzor je uvedený v postupovom diagramu vyššie.

CELÝ KÓD

#include Servo servo1; Servo servo2; Servo servo3; int čítanie1; int reading2; int reading3; char save1 = 0; // servo začína v stave 0, v stave spánku char save2 = 0; char save3 = 0; void setup (void) {Serial.begin (9600); servo2.attach (9); // servo na digitálnom pine 9 servo2.write (160); // pociatocny bod pre servo servo1.attach (6); // servo na digitálnom pine 6 servo1.write (0); // pociatocny bod pre servo servo3.attach (3); // servo na digitálnom pine 3 servo3.write (0); // pociatocny bod pre servo

}

void loop (void) {reading1 = analogRead (A0); // pripojené k analógu 0 reading2 = analogRead (A2); // pripojené k analógu 2 čítanie3 = analogRead (A4); // pripojené k analógu 4

// if (reading2> = 0) {Serial.print ("Hodnota senzora ="); // Príklad príkazu použitého na kalibráciu prahov prvého senzora

// Serial.println (reading2); } // else {Serial.print ("Hodnota senzora ="); Serial.println (0); }

if (čítanie1> 100 a save1 == 0) {// ak senzor dostane vysokú hodnotu a nie je v stave spánku, save1 = 2; } // choďte do stavu 2 else if (čítanie1> 30 a save1 == 0) {// ak senzor dostane strednú hodnotu a nie je v režime spánku save1 = 1; } // dostal sa do stavu 1 else if (reading1> 0) {// if value is non zero and none of the previous conditions are correcte save1 = 0;} // go to sleep state

if (save1 == 0) {servo1.write (160); } // release else if (save1 == 1) {servo1.write (120); } // stredný uhol ťahania else {servo1.write (90); } // maximálny uhol ťahu

if (reading2> 10 and save2 == 0) {// rovnaké ako servo 1 save2 = 2; } else if (čítanie2> 5 a 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 (čítanie3> 30 a save3 == 0) {// rovnaké ako servo 1 save3 = 2; } else if (čítanie3> 10 a 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); } oneskorenie (1 000); } // Počkaj

Krok 9: Upevnite Arduino, batérie a Veroboard k ramenu

Upevnite Arduino, batérie a Veroboard k ramenu
Upevnite Arduino, batérie a Veroboard k ramenu
Upevnite Arduino, batérie a Veroboard k ramenu
Upevnite Arduino, batérie a Veroboard k ramenu

Ďalší štítok bol vytlačený v PLA, aby bolo možné opraviť držiaky batérií a arduino.

Doska má rozmery: 100 x 145 x 5 mm.

K dispozícii sú štyri otvory na skrutkovanie arduina a dva na skrutkovanie 9V držiaka batérie. V 6V držiaku batérie a v doske bol vytvorený otvor, pomocou ktorého ich pomocou káblovej svorky spojíte. Na zaistenie fixácie tohto držiaka bolo pridané určité množstvo lepidla. Prepínač je upevnený dvoma malými sťahovacími páskami.

K dispozícii sú tiež štyri otvory na upevnenie dosky na džínsoch pomocou sťahovacích pások.

Veroboard je nasadený na arduino ako štít.

Krok 10: Pripojte elektroniku

Pripojte elektroniku
Pripojte elektroniku

Obvod je spájkovaný na veroboarde, ako je uvedené v schéme vyššie.

Arduino má ako napájanie 9V batériu a je medzi nimi zapojený spínač, aby bolo možné Arduino vypnúť. Pre servomotor, ktorý potrebuje veľa prúdu, je potrebná 6V batéria a tretí kolík serva je zapojený na kolíky 3, 6 a 9 na ich ovládanie pomocou PWM.

Každý snímač je na strane spojený 5V Arduina a na druhej strane odporom 330 ohmov pripojeným k zemi a kolíkom A0, A2 a A4 na meranie napätia.

Krok 11: Pridajte nylonové drôty

Pridajte nylonové drôty
Pridajte nylonové drôty

Nylonové drôty sú vyrobené tak, aby prechádzali cez obidva otvory na konci a krúžky, ako je vidieť na obrázku, potom obe polovice drôtu pôjdu dovnútra polyetylénového vedenia a zostanú spolu až do konca vedenia k motoru. V tomto mieste je stanovená dĺžka drôtov, ktoré musia byť dostatočne dlhé na to, aby krúžili po kolese serva rovnými prstami.

Na kolesách sú upevnené uzlom prechádzajúcim dvoma malými otvormi prítomnými na súboroch.stl a horúcim lepidlom na dodatočnú stabilizáciu.

Krok 12: Užite si to

Funguje podľa očakávania.

Pri prvom impulze ohne prst a pri druhom ho uvoľní. Pri ohnutí prstov nie je potrebná žiadna sila.

Napriek tomu zostávajú tri problémy:

- Musíme byť opatrní, aby bol impulz kratší ako 1 sekundu na aktiváciu serv, inak sa vodiče ihneď uvoľnia po vytiahnutí, ako je to vysvetlené v kroku 8 o kóde Arduino.

- Plastové diely sa trochu šmýkajú, preto sme na konci pridali horúce lepidlo, aby sa zvýšilo trenie.

- Ak je na prste veľké zaťaženie, senzor bude mať vždy veľkú hodnotu, a preto sa servo bude nepretržite otáčať.

Odporúča: