Obsah:

RoboGlove: 12 kroků (s obrázky)
RoboGlove: 12 kroků (s obrázky)

Video: RoboGlove: 12 kroků (s obrázky)

Video: RoboGlove: 12 kroků (s obrázky)
Video: Как устроена IT-столица мира / Russian Silicon Valley (English subs) 2024, Červenec
Anonim
RoboGlove
RoboGlove

Jsme skupina studentů ULB, Université Libre de Bruxelles. Náš projekt spočívá ve vývoji robotické rukavice, která je schopna vytvořit sílu úchopu a pomáhá lidem uchopit věci.

RUKAVICE

Rukavice má drátové spojení, které spojuje prsty s některými servomotory: k končetině prstu a k servu je připojen drát, takže když se servo otočí, je drát zatažen a prst je ohnutý. Tímto způsobem, ovládáním úchopu provedeného uživatelem prostřednictvím některých tlakových senzorů v koncích prstů, jsme schopni ovládat motory řízeným způsobem a pomoci uchopení ohnutím prstu úměrně otáčení motorů a tak k srolování drátů. Tímto způsobem bychom měli být schopni buď umožnit slabým lidem uchopit předměty, nebo pomoci dokonce i lidem ve fyziologických podmínkách uchopit předměty a udržet je bez jakéhokoli úsilí.

DESIGN

Tento model byl vyvinut tak, aby byl pohyb ruky co nejvíce volný. Ve skutečnosti jsme 3D vytiskli pouze nezbytně nutné součásti, které jsme potřebovali pro připojení vodičů, motorů a prstů.

Na každém prstu máme vytištěnou horní kopuli v PLA: toto je koncová část, ke které musí být připojeny vodiče a která musí poskytnout ochranu tlakovému senzoru, který je upevněn uvnitř. Snímač tlaku je mezi končetinu PLA a rukavici přilepen horkým lepidlem.

Pak máme dva 3D tištěné prsteny na prst, které tvoří vodítko pro dráty. Palec je jediný prst, který má pouze jeden potištěný prsten. Na prst je jeden drát, přeložený na polovinu na koncích prstů. Obě poloviny procházejí dvěma vodítky části kupole a v obou prstencích: jsou vloženy přímo do otvorů, které jsme vytvořili na vnější straně těchto prstenů. Poté se spojí do kola přímo spojeného s motorem. Kolo bylo realizováno tak, aby bylo možné omotat dráty: protože náš motor má neúplné otáčení (nižší než 180 °), realizovali jsme kolo, abychom vytáhli drát na mezeru 6 centimetrů, což je vzdálenost potřeboval úplně zavřít ruku.

Vytiskli jsme také dvě desky pro upevnění servomotorů a arduina k rameni. Mělo by být lepší řezat ho do dřeva nebo pevného plastu laserovou řezačkou.

Krok 1: Nákupní seznam

Nákupní seznam
Nákupní seznam
Nákupní seznam
Nákupní seznam
Nákupní seznam
Nákupní seznam

Rukavice a dráty:

1 stávající rukavice (musí být ušitá)

Staré džíny nebo jiný tuhý hadřík

Nylonové dráty

Polyetylenové hadičky s nízkou hustotou (průměr: 4 mm, tloušťka: 1 mm)

Elektronika:

Arduino Uno

1 Baterie 9V + 9V Držák baterie

1 elektronický spínač

1 veroboard

3 servomotory (1 na prst)

3 vrtule (dodávané se servy)

4 baterie AA + 4 AA držák baterií

3 tlakové senzory (1 na prst)

3 odpory 330 ohmů (1 na prst)

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

Šrouby, matice a upevnění:

4 M3 10 mm dlouhý (k opravě Arduina)

2 M2,5, délka 12 mm (k upevnění 9V držáku baterie)

6 odpovídajících matic

6 M2 10 mm dlouhý (2 na servo k upevnění kol na servo)

12 malých stahovacích pásek (k upevnění desek a spínače)

7 velkých stahovacích pásků (2 na motory a 1 na držák 4 baterií AA)

Použité nástroje:

3D tiskárna (Ultimaker 2)

Materiál na šití

Horká lepicí pistole

Volitelně: laserová řezačka

Krok 2: Připravte nositelnou strukturu

Připravte si nositelnou strukturu
Připravte si nositelnou strukturu

Nositelná struktura byla vyrobena s některými oděvy: v našem případě jsme použili normální rukavici pro elektrikáře a džíny pro konstrukci kolem zápěstí. Byli sešity.

Cílem je mít flexibilní nositelnou strukturu.

Struktura musí být silnější než běžné vlněné rukavice, protože musí být ušitá.

Potřebujeme nositelnou strukturu kolem zápěstí, abychom udrželi dodavatele energie a akční členy, a potřebujeme, aby byla stabilní, a proto jsme se rozhodli zavírání upravit tak, že na zápěstí džínů použijeme pásky na suchý zip (samolepicí pásky).

Uvnitř byly všité nějaké tyčky dřeva, aby byly džíny pevnější.

Krok 3: Připravte si funkční části

Připravte si funkční části
Připravte si funkční části

Tuhé části jsou realizovány pomocí 3D tisku v PLA ze souborů.stl v popisu:

Prstový prsten x5 (s různými měřítky: 1x měřítko 100%, 2x měřítko 110%, 2x měřítko 120%);

Extremeity Finger x3 (s různými měřítky: 1x měřítko 100%, 1x měřítko 110%, 1x měřítko 120%);

Kolo pro motor x3

Pro části prstů jsou zapotřebí různé stupnice kvůli různé velikosti každého prstu a každé falangy.

Krok 4: Upevněte senzory na končetiny

Upevněte senzory na končetiny
Upevněte senzory na končetiny

Tlakové snímače jsou nejprve připájeny ke kabelovým vodičům.

Poté jsou slepeny pomocí lepicí pistole uvnitř konců prstů: malé množství lepidla je umístěno uvnitř končetiny, na stranu se dvěma otvory, poté je senzor okamžitě aplikován aktivní (kulatou) částí na lepidlo (mít piezoelektrický povrch uvnitř konstrukce a plastovou část přímo na lepidle). Kabelové dráty musí vést přes horní část prstu dolů na záda, aby elektrická kabeláž vedla na hřbet ruky.

Krok 5: Připevněte 3D vytištěné díly na rukavici

Připevněte 3D vytištěné díly na rukavici
Připevněte 3D vytištěné díly na rukavici

Všechny pevné části (končetiny, prsteny) musí být přišity k rukavici, aby mohly být upevněny.

Pro správné umístění prstenů nejprve noste rukavici a zkuste si nasadit prsteny, jeden na falangu, aniž byste se jich museli dotýkat během zavírání ruky. Přibližně budou prsteny na ukazateli upevněny 5 mm nad základnou prstu a 17 až 20 mm nad prvním. Pokud jde o prostředníček, první prsten bude přibližně 8 až 10 mm nad základnou prstu a druhý asi 20 mm nad prvním prstem. Pokud jde o palec, potřebná přesnost je velmi nízká, protože nehrozí, že by zasahoval do ostatních prstenů, zkuste jej tedy použít na opotřebované rukavici a nakreslit čáru na rukavici tam, kde byste chtěli mít prsten, abyste jej pak mohli ušít.

Pokud jde o šití, není vyžadována žádná zvláštní technika nebo schopnost. S jehlou prochází šicí nit v kruzích kolem prstenů a prochází povrchem rukavice. Krok 3-4 mm mezi dvěma otvory v rukavici již vytváří dostatečně silnou fixaci, není třeba provádět velmi husté šití.

Stejná technika se používá k fixaci končetin: horní část končetiny je děravá, aby jehla snadno procházela, takže na rukavici bude nutné přišít pouze tvary podobné kříži na temeni prstu.

Poté musí být také upevněna polyetylenová vedení podle tří kritérií:

distální konec (směrem k prstu) musí směřovat ve směru prstu, aby se zabránilo vysokému tření s nylonovým drátem, který půjde dovnitř;

distální konec musí být dostatečně daleko, aby nepřekážel při zavírání ruky (přibližně 3 cm níže než spodní část prstu je dost dobré, 4 až 5 cm pro palec);

zkumavky musí procházet přes sebe co nejméně, aby se snížil objem celé rukavice a pohyblivost každé zkumavek

Jsou fixovány přišitím na rukavici a na zápěstí, stejnou technikou jako výše.

Aby se zabránilo jakémukoli riziku klouzání při šití, bylo mezi trubky a rukavice přidáno několik lepidel.

Krok 6: Připravte kola na serva

Připravte si kola na serva
Připravte si kola na serva

Pro tento projekt jsme použili speciálně navržená kola, nakreslená a 3D vytištěná námi (soubor.stl v popisu).

Jakmile jsou kola vytištěna, musíme je připevnit k vrtulím serva zašroubováním (šrouby M2, 10 mm). Protože otvory vrtulí jsou menší než 2 mm v průměru přišroubováním M2, nejsou potřeba žádné matice.

Na každé servo lze použít 3 vrtule.

Krok 7: Upevněte motory k paži

Upevněte motory k paži
Upevněte motory k paži

Tento krok spočívá v upevnění motorů na rameno; Abychom to mohli udělat, museli jsme vytisknout pomocnou plaketu PLA, abychom získali podporu.

Ve skutečnosti motory nemohly být připevněny přímo k paži, protože kola, potřebná pro tahání drátů, mohla být během pohybu zablokována kvůli rukavici. 3D jsme tedy vytiskli plaketu PLA o rozměru 120x150x5 mm.

Poté jsme plaketu připevnili k rukavici pomocí kabelových stahovacích pásek: do rukavice jsme jednoduše udělali nůžkami několik otvorů, pak jsme do plastového plaku vyvrtali otvory pomocí vrtačky a dali vše dohromady. Ve středu, mezi jeho obvodem, jsou pro průchod kabelových svazků zapotřebí čtyři otvory do desky. Vyrábějí se pomocí vrtačky. Ty jsou ve střední části a ne po stranách desky, aby bylo možné zavřít džíny kolem paže, aniž by ji deska blokovala, protože deska není pružná.

Poté jsou do plastové desky vyvrtány další otvory pro upevnění motorů. Motory jsou upevněny dvěma zkříženými stahovacími páskami. Na jejich stranách bylo přidáno nějaké lepidlo, aby byla zajištěna fixace.

Motory musí být umístěny tak, aby se kola navzájem nerušila. Takže jsou oddělené na levé a pravé straně ruky: dvě na straně, přičemž kola se otáčejí v opačných směrech a jedna na druhé straně.

Krok 8: Kódujte na Arduinu

Kód na Arduinu
Kód na Arduinu

Kód byl vyvinut jednoduchým způsobem: k ovládání motorů nebo ne. Serva se aktivují pouze tehdy, když je hodnota vyšší než určitá hodnota (byla opravena pokusy a chybami, protože citlivost každého senzoru není úplně stejná). Existují dvě možnosti ohýbání, nízko pro nízkou sílu a zcela pro silnou sílu. Jakmile je prst ohnutý, není nutná žádná síla uživatele, aby prst zůstal ve skutečné poloze. Důvodem této implementace je, že jinak bylo zmíněno, že prsty musí na senzory nepřetržitě působit silou a rukavice neposkytují žádnou výhodu. Chcete -li uvolnit ohnutí prstu, je třeba na snímač tlaku vyvinout novou sílu, která působí příkazem lež a zastav.

Kód můžeme rozdělit na tři části:

Inicializace senzorů:

Nejprve jsme inicializovali tři celočíselné proměnné: čtení1, čtení2, čtení3 pro každý senzor. Senzory byly vloženy do analogových vstupů A0, A2, A4. Každá proměnná pro čtení je nastavena jako:

  • reading1 kde je zapsána hodnota načtená na vstupu A0,
  • reading2, kde je zapsána hodnota načtená na vstupu A2,
  • reading3 kde je zapsána hodnota načtená na vstupu A4

Dvě prahové hodnoty jsou upevněny prstem odpovídajícím dvěma polohám ovládání serv. Tyto prahové hodnoty jsou pro každý prst odlišné, protože použitá síla není pro každý prst stejná a citlivost tří senzorů není úplně stejná.

Motory start:

Tři proměnné char (save1, save2, save3), jedna pro každý motor, jsou inicializovány na 0. Poté jsme v nastavení specifikovali piny, kam zapojíme motory: pin 9, pin 6 a pin 3 pro servo1, servo2, servo3; vše inicializováno na 0 hodnotě.

Poté se servopohony aktivují pomocí příkazu servo.write (), který je schopen zafixovat přijímaný úhel jako vstup na servo. Také pokusy a omyly našly dva dobré úhly, potřebné k ohnutí prstu ve dvou polohách odpovídajících malému úchopu a velkému úchopu.

Protože se jeden motor potřebuje kvůli své fixaci otáčet v opačném směru, jeho počáteční bod není nula, ale maximální úhel a zmenšuje se při působení síly, aby se mohl otáčet v opačném směru.

Spojení mezi senzory a motory:

Volba save1, save2, save3 a reading1, reading2, reading3 závisí na pájení. Ale pro každý prst musí mít snímač a motor související stejné číslo.

Pak ve smyčce, pokud byly použity podmínky pro testování, zda je prst již v ohybové poloze nebo ne a zda je na senzory vyvíjen tlak nebo ne. Když senzory vrátí hodnotu, je třeba použít sílu, ale jsou možné dva různé případy:

  • Pokud prst ještě není ohnutý, porovnáním této hodnoty vrácené senzory s prahovými hodnotami se na servo použije odpovídající úhel.
  • Pokud je prst již ohnutý, znamená to, že uživatel chce uvolnit ohyb a poté se na serva aplikuje počáteční úhel.

To se provádí pro každý motor.

Poté jsme přidali zpoždění 1000 ms, abychom se vyhnuli příliš častému testování hodnot senzorů. Pokud použijete příliš malou hodnotu zpoždění, riskujete přímé opětovné otevření ruky po jejím zavření v případě, že síla bude působit déle než je doba zpoždění.

Veškerý proces pro jeden senzor je uveden na vývojovém diagramu výše.

CELÝ KÓD

#include Servo servo1; Servo servo2; Servo servo3; int čtení1; int čtení2; int čtení3; char save1 = 0; // servo začíná ve stavu 0, spící stav char save2 = 0; char save3 = 0; void setup (void) {Serial.begin (9600); servo2.attach (9); // servo na digitálním pinu 9 servo2.write (160); // počáteční bod pro servo servo1.attach (6); // servo na digitálním pinu 6 servo1.write (0); // počáteční bod pro servo servo3.attach (3); // servo na digitálním pinu 3 servo3.write (0); // počáteční bod pro servo

}

void loop (void) {reading1 = analogRead (A0); // připojeno k analogu 0 reading2 = analogRead (A2); // připojeno k analogovému 2 čtení3 = analogRead (A4); // připojeno k analogu 4

// if (reading2> = 0) {Serial.print ("Sensor value ="); // Příklad příkazu použitého pro kalibraci prahových hodnot prvního senzoru

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

if (čtení1> 100 a save1 == 0) {// pokud senzor získá vysokou hodnotu a není ve spánkovém stavu save1 = 2; } // přejít do stavu 2 else if (čtení1> 30 a save1 == 0) {// pokud senzor získá střední hodnotu a není ve spánkovém stavu save1 = 1; } // dostal se do stavu 1 else if (čtení1> 0) {// pokud hodnota není nenulová a žádná z předchozích podmínek není správná save1 = 0;} // přejít do režimu spánku

if (save1 == 0) {servo1.write (160); } // release else if (save1 == 1) {servo1.write (120); } // střední úhel tažení else {servo1.write (90); } // maximální úhel tahu

if (reading2> 10 and save2 == 0) {// stejné jako servo 1 save2 = 2; } else if (čtení2> 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 (reading3> 30 and save3 == 0) {// stejné jako servo 1 save3 = 2; } else if (čtení3> 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); } zpoždění (1000); } // Počkej

Krok 9: Připevněte Arduino, baterie a Veroboard k paži

Připevněte Arduino, baterie a Veroboard k paži
Připevněte Arduino, baterie a Veroboard k paži
Připevněte Arduino, baterie a Veroboard k paži
Připevněte Arduino, baterie a Veroboard k paži

Další deska byla vytištěna v PLA, aby bylo možné opravit držáky baterií a arduino.

Deska má rozměry: 100x145x5mm.

K přišroubování arduina jsou k dispozici čtyři otvory a dva k přišroubování držáku baterie 9 V. V držáku baterie 6 V a v desce byl vytvořen otvor pro jejich upevnění pomocí kabelového svazku. Bylo přidáno nějaké lepidlo, aby byla zajištěna fixace tohoto držáku. Přepínač je upevněn dvěma malými stahovacími páskami.

K upevnění desky na džíny pomocí stahovacích pásek slouží také čtyři otvory.

Veroboard je nasazen na arduino jako štít.

Krok 10: Připojte elektroniku

Připojte elektroniku
Připojte elektroniku

Obvod je připájen na veroboard, jak je uvedeno ve schématu výše.

Arduino má jako napájení 9V baterii a mezi nimi je připojen spínač, aby bylo možné vypnout Arduino. Pro servomotor, který potřebuje hodně proudu, je zapotřebí 6V baterie a třetí pin serva je připojen na piny 3, 6 a 9 k jejich ovládání pomocí PWM.

Každý senzor je na straně spojen 5V Arduina a na druhé straně odporem 330 ohmů připojeným k zemi a kolíky A0, A2 a A4 pro měření napětí.

Krok 11: Přidejte nylonové dráty

Přidejte nylonové dráty
Přidejte nylonové dráty

Nylonové dráty jsou navrženy tak, aby procházely oběma otvory na konci a prstenci, jak je vidět na obrázku, poté obě poloviny drátu půjdou dovnitř polyetylenového vedení a zůstanou pohromadě až do konce vedení k motoru. V tomto bodě je určena délka vodičů, které musí být dostatečně dlouhé, aby kroužily po kolečku serva rovnými prsty.

Jsou upevněny na kolech pomocí uzlu procházejícího dvěma malými otvory přítomnými na souborech.stl a horkým lepidlem pro další stabilizaci.

Krok 12: Užijte si to

Funguje podle očekávání.

Při prvním impulsu ohne prst a při druhém ho uvolní. Při ohnutí prstů není potřeba žádná síla.

Přesto zůstávají tři problémy:

- Musíme dávat pozor, abychom pro aktivaci serva udělali impuls kratší než 1 sekundu, jinak se vodiče uvolní okamžitě po vytažení, jak je vysvětleno v kroku 8 o kódu Arduino.

- Plastové díly trochu kloužou, takže jsme na konci přidali horké lepidlo, abychom zvýšili tření.

- Pokud je na prstu velká zátěž, senzor bude mít vždy velkou hodnotu, a tak se servo bude nepřetržitě otáčet.

Doporučuje: