RoboGlove: 12 lépés (képekkel)
RoboGlove: 12 lépés (képekkel)
Anonim
RoboGlove
RoboGlove

Az ULB, az Université Libre de Bruxelles hallgatói vagyunk. Projektünk egy robotkesztyű kifejlesztésén alapul, amely képes megfogóerőt létrehozni, hogy segítsen az embereknek megragadni a dolgokat.

A KESZTYŰ

A kesztyű huzalcsatlakozóval rendelkezik, amely egyes szervomotorokhoz köti az ujjakat: huzal van rögzítve az ujj végéhez és a szervóhoz, így amikor a szervó elfordul, a huzalt meghúzzák és az ujjat meghajlítják. Ily módon, a felhasználó által az ujjak végtagjain lévő nyomásérzékelőkön keresztül történő tapadás szabályozásával képesek vagyunk a motorokat szabályozott módon működtetni, és elősegíteni a megfogást azáltal, hogy az ujjakat a motorok forgásával arányosan meghajlítjuk. tehát a vezetékek feltekerésére. Ily módon lehetővé kell tennünk, hogy a gyenge emberek megragadhassák a tárgyakat, vagy akár fiziológiás körülmények között élő embereknek is segíthessünk a tárgyak megfogásában, és minden erőfeszítés nélkül megtarthassuk azt.

A DIZÁJN

A modellt azért fejlesztették ki, hogy a kéz szabadon mozogjon. Valójában 3D -ben csak a szigorúan szükséges alkatrészeket nyomtattuk ki, amelyekre szükségünk volt a vezetékek, motorok és ujjak csatlakoztatásához.

Minden ujjunkra PLA -ban nyomtatott felső kupola van: ez a terminálrész, ahová a vezetékeket csatlakoztatni kell, és védelmet kell biztosítania a belül rögzített nyomásérzékelőnek. A nyomásérzékelő forró ragasztóval van ragasztva a PLA végtag és a kesztyű közé.

Ezután ujjunkonként két 3D nyomtatott gyűrűnk van, amelyek útmutatót jelentenek a vezetékekhez. A hüvelykujj az egyetlen ujj, amelyen csak egy nyomtatott gyűrű található. Ujjonként egy huzal van, az ujjak szélén félbehajtva. A két fél áthalad a kupola rész két vezetőjén és mindkét gyűrűben: egyenesen lyukakba kerülnek, amelyeket ezeken a gyűrűkön kívül készítettünk. Ezután egy kerékbe állítják őket, amely közvetlenül a motorhoz van csatlakoztatva. A kereket azért alakítottuk ki, hogy körbe tudjuk tekerni a vezetékeket: mivel a motorunk nem teljesen forog (180 ° -nál alacsonyabb), a kereket úgy valósítottuk meg, hogy 6 cm -es résig húzzuk a drótot, ami a távolság teljesen le kell zárni a kezet.

Két lapot is kinyomtattunk a szervomotorok és az arduino rögzítéséhez a karhoz. Jobb, ha fába vagy merev műanyagba vágja lézervágóval.

1. lépés: Bevásárló lista

Bevásárló lista
Bevásárló lista
Bevásárló lista
Bevásárló lista
Bevásárló lista
Bevásárló lista

Kesztyű és vezetékek:

1 meglévő kesztyű (varrhatónak kell lennie)

Régi farmer vagy más merev kendő

Nylon vezetékek

Kis sűrűségű polietilén cső (átmérő: 4 mm vastagság: 1 mm)

Elektronika:

Arduino Uno

1 Akkumulátor 9V + 9V Elemtartó

1 db elektronikus kapcsoló

1 veroboard

3 szervomotor (1 ujjonként)

3 légcsavar (szervóval együtt)

4 elem AA + 4 AA elemtartó

3 nyomásérzékelő (1 ujjonként)

3 ellenállás 330 ohm (1 ujjonként)

6 elektromos vezeték (érzékelőnként 2)

Csavarok, anyák és rögzítések:

4 M3 10 mm hosszú (az Arduino rögzítéséhez)

2 M2,5 12 mm hosszú (a 9 V -os elemtartó rögzítéséhez)

6 megfelelő anya

6 M2 10 mm hosszú (szervónként 2, hogy a kerekeket a szervókhoz rögzítse)

12 kis kábelköteg (a lemezek és a kapcsoló rögzítéséhez)

7 nagy kábelköteg (2 motoronként és 1 a 4 AA elemtartóhoz)

Használt eszközök:

3D nyomtató (Ultimaker 2)

Anyag varráshoz

Forró ragasztó pisztoly

Opcionális: lézervágó

2. lépés: Viselhető szerkezet előkészítése

Viselhető szerkezet előkészítése
Viselhető szerkezet előkészítése

A hordható szerkezet néhány ruhával készült: a mi esetünkben normál villanyszerelő kesztyűt és egy farmer ruhát használtunk a csukló körüli szerkezethez. Összevarrtak.

A cél egy rugalmas hordható szerkezet.

A szerkezetnek erősebbnek kell lennie, mint a szokásos gyapjúkesztyűnek, mivel varrni kell.

Viselhető szerkezetre van szükségünk a csukló körül, hogy megtartsuk az áramellátókat és a működtetőket, és stabilnak is kell lennünk, ezért úgy döntöttünk, hogy a zárást állíthatóvá tesszük úgy, hogy tépőzáras szalagokat (öntapadós szalagokat) alkalmazunk a farmer csuklójára.

Néhány farúd belsejében varrt, hogy a farmer merevebb legyen.

3. lépés: Készítse elő a funkcionális részeket

Készítse elő a funkcionális részeket
Készítse elő a funkcionális részeket

A merev részek 3D nyomtatással valósulnak meg PLA -ban a leírás.stl fájljaiból:

Ujjgyűrű x5 (különböző skálákkal: 1x 100%skála, 2x skála 110%, 2x skála 120%);

Finger Extremity x3 (különböző skálákkal: 1x 100%skála, 1x skála 110%, 1x skála 120%);

Kerék a motorhoz x3

Az ujjrészekhez különböző mérlegekre van szükség az ujjak és a falanxok eltérő mérete miatt.

4. lépés: Rögzítse az érzékelőket a végtagokhoz

Rögzítse az érzékelőket a végtagokhoz
Rögzítse az érzékelőket a végtagokhoz

A nyomásérzékelőket először kábelvezetékekhez forrasztják.

Ezután ragasztópisztollyal ragasztják őket az ujjvégtagok belsejébe: kis mennyiségű ragasztót helyeznek a végtag belsejébe, a két lyukkal ellátott oldalra, majd az érzékelőt azonnal felviszik az aktív (kerek) résszel a ragasztó (a piezoelektromos felület legyen a szerkezet belseje, a műanyag rész pedig közvetlenül a ragasztón). A kábelvezetékeknek végig kell húzniuk az ujjuk felső részét lefelé a hátáig, hogy az elektromos kábelezés a kéz hátán legyen.

5. lépés: Rögzítse a 3D nyomtatott alkatrészeket a kesztyűhöz

Rögzítse a 3D nyomtatott alkatrészeket a kesztyűhöz
Rögzítse a 3D nyomtatott alkatrészeket a kesztyűhöz

Az összes merev alkatrészt (végtagokat, gyűrűket) a kesztyűhöz kell varrni, hogy rögzítsék.

A gyűrűk helyes elhelyezéséhez először viselje a kesztyűt, és próbálja felhelyezni a gyűrűket, falanxonként egyet, anélkül, hogy hozzáérne a kéz zárása során. Az indexen lévő gyűrűk hozzávetőleg 5 mm -rel az ujj alapja fölött, 17-20 mm -rel az első felett lesznek rögzítve. Ami a középső ujjat illeti, az első gyűrű körülbelül 8-10 mm -rel az ujj alja felett lesz, a második pedig 20 mm -rel az első felett. Ami a hüvelykujját illeti, a szükséges pontosság nagyon alacsony, mivel nem kockáztatja, hogy zavarja a többi gyűrűt, ezért próbálja felvinni a kopott kesztyűre, húzzon vonalat a kesztyűre, ahol szeretné gyűrű, hogy aztán varrni tudja.

Ami a varrást illeti, nincs szükség különleges technikára vagy képességre. Tűvel a varrócérna körkörösen halad a gyűrűk körül, áthaladva a kesztyű felületén. A kesztyű két lyuka közötti 3-4 mm-es lépés már elég erős rögzítést tesz lehetővé, nincs szükség nagyon sűrű varrásra.

Ugyanezt a technikát alkalmazzák a végtagok rögzítésére is: a végtag teteje lyukas annak érdekében, hogy a tű könnyen áthaladjon, így csak az ujj tetején lévő keresztszerű formákat kell varrni a kesztyűre.

Ezután a polietilén vezetőket is rögzíteni kell, három kritérium szerint:

a disztális végnek (az ujjal szemben) az ujja irányába kell néznie, hogy elkerülje a nagy súrlódást a nejlonhuzalral, amely be fog menni;

a távolabbi végnek elég messze kell lennie ahhoz, hogy ne zavarja a kéz zárását (körülbelül 3 cm -rel alacsonyabb, mint az ujj töve, 4–5 cm a hüvelykujjnál);

a csöveknek a lehető legkevésbé kell átmenniük egymáson, hogy csökkentsék a kesztyű nagy részét és az egyes csövek mobilitását

Rögzítésre kerül, ha a kesztyűre és a csuklóra varrják, ugyanazzal a technikával, mint fent.

Annak elkerülése érdekében, hogy a varráson keresztül elcsússzon, néhány ragasztót adtak a csövek és a kesztyűk közé.

6. lépés: Készítse elő a kerekeket a szervókhoz

Készítse elő a kerekeket a szervókhoz
Készítse elő a kerekeket a szervókhoz

Ehhez a projekthez kifejezetten saját tervezésű és 3D -s nyomtatású kerekeket használtunk (.stl fájl a leírásban).

A kerekek kinyomtatása után csavarokkal kell rögzíteni őket a szervók propellereihez (M2, 10 mm -es csavarok). Mivel a propellerek furatai kisebbek, mint 2 mm átmérőjűek az M2 csavarozásával, nincs szükség anyákra.

A 3 légcsavar minden szervóra felszerelhető.

7. lépés: Rögzítse a motorokat a karhoz

Rögzítse a motorokat a karhoz
Rögzítse a motorokat a karhoz

Ez a lépés a motorok karhoz való rögzítéséből áll; ehhez egy PLA segédtáblát kellett kinyomtatni, hogy támogatást kapjunk.

Valójában a motorokat nem lehetett közvetlenül a karhoz rögzíteni, mivel a vezetékek húzásához szükséges kerekek a kesztyű miatt a mozgás során blokkolódhatnak. Így 3D -ben kinyomtattunk egy 120x150x5 mm méretű PLA -táblát.

Ezután néhány kábelkötéssel rögzítettük a plakettet a kesztyűnkhöz: néhány lyukat lyukasztottunk a kesztyűbe egyszerűen ollóval, majd fúróval lyukakat készítettünk a műanyag plakettbe, és mindent összeraktunk. Az emléktábla négy lyukára van szükség a közepén, a kerülete között a kábelkötegek átvezetéséhez. Fúróval készülnek. Ezek a középső részen vannak, és nem a tányér oldalain, hogy le tudják zárni a farmert a kar körül anélkül, hogy a lemez elzárná, mivel a lemez nem rugalmas.

Ezután más lyukakat is fúrnak a műanyag táblába a motorok rögzítéséhez. A motorokat két keresztezett kábelköteg rögzíti. Az oldalukhoz adtak némi ragasztót a rögzítés biztosítása érdekében.

A motorokat úgy kell elhelyezni, hogy a kerekek ne zavarják egymást. Tehát a kéz bal és jobb oldalán elválasztottak: kettő az egyik oldalon, a kerekek ellentétes irányba fordulnak, az egyik a másik oldalon.

8. lépés: Kód az Arduino -n

Kód az Arduino -n
Kód az Arduino -n

A kódot egyszerű módon fejlesztették ki: a motorok működtetésére vagy sem. A szervókat csak akkor működtetik, ha a leolvasott érték egy bizonyos érték fölött van (ezt próbák és hibák javították, mert az egyes érzékelők érzékenysége nem teljesen azonos). Két lehetőség van a hajlításra, alacsony erő alacsony és teljesen erős erő esetén. Az ujj behajlítása után nincs szükség felhasználói erőre ahhoz, hogy az ujját a tényleges helyzetben tartsa. Ennek a megvalósításnak az az oka, hogy egyébként megemlítettük, hogy az ujjaknak folyamatosan erőt kell kifejteniük az érzékelőkön, és a kesztyű nem ad előnyt. Az ujj hajlításának feloldásához új erőt kell kifejteni a nyomásérzékelőre, amely egy stop stop parancs.

A kódot három részre oszthatjuk:

Érzékelők:

Először három egész változót inicializáltunk: olvasás1, olvasás2, leolvasás3 minden érzékelő számára. Az érzékelőket az A0, A2, A4 analóg bemenetekbe helyezték. Az olvasás minden változója a következőképpen van beállítva:

  • olvasás1 ahol az A0 bemenetben olvasott érték van írva,
  • olvasás2 ahol az A2 bemenetben olvasott érték van írva,
  • olvasás3 ahol az A4 bemenetben olvasott érték van írva

Két küszöböt rögzítenek ujjakkal, amelyek a szervók két működési helyzetének felelnek meg. Ezek a küszöbértékek minden ujj esetében eltérőek, mivel az alkalmazott erő nem mindegyik ujjra vonatkozik, és a három érzékelő érzékenysége nem teljesen azonos.

Motors init:

Három változó char (mentés1, mentés2, mentés3), egy -egy motoronként 0 -ra inicializálódik. Ezután a beállításban megadtuk azokat a csapokat, ahová a motorokat csatlakoztatjuk: 9 -es, 6 -os és 3 -as csap a szervo1, szervo2, servo3; mind 0 értéken inicializálva.

Ezután a szervókat a servo.write () paranccsal működtetik, amely képes rögzíteni a szervóra bemenetként kapott szöget. Szintén a kísérletek és a hibák alapján találták meg azt a két jó szöget, amelyek az ujj két helyzetben történő hajlításához szükségesek, egy kis fogásnak és egy nagy fogásnak megfelelően.

Mivel az egyik motornak rögzítése miatt az ellenkező irányba kell fordulnia, a kiindulási pontja nem nulla, hanem a maximális szög és csökken, ha erőt fejt ki, hogy képes legyen az ellenkező irányba fordulni.

Kapcsolat az érzékelők és a motorok között:

A mentés1, mentés2, mentés3 és olvasás1, olvasás2, olvasás3 választása a forrasztástól függ. De minden ujj esetében az érzékelőnek és a motornak azonos számot kell tartalmaznia.

Ezután a hurokban, ha feltételeket használtak annak tesztelésére, hogy az ujj már hajlított helyzetben van -e vagy sem, és hogy a nyomást az érzékelőkre gyakorolják -e vagy sem. Amikor az érzékelők értéket adnak vissza, erőt kell alkalmazni, de két különböző eset lehetséges:

  • Ha az ujj még nincs hajlítva, akkor összehasonlítva az érzékelők által visszaadott értéket a küszöbértékekkel, a megfelelő szöget alkalmazzák a szervóra.
  • Ha az ujj már hajlított, az azt jelenti, hogy a felhasználó ki akarja oldani a hajlítást, majd a kezdőszög a szervókra kerül.

Ez minden motor esetében megtörténik.

Ezután 1000 ms késleltetést adtunk hozzá, hogy elkerüljük az érzékelők értékeinek túl gyakori tesztelését. Ha túl kicsi késleltetési értéket alkalmaznak, fennáll annak a kockázata, hogy a lezárás után közvetlenül újra kinyitja a kezét, ha az erőt hosszabb ideig alkalmazzák, mint a késleltetési idő.

Az egy érzékelőre vonatkozó összes folyamat a fenti folyamatábrán látható.

A TELJES KÓD

#include Servo servo1; Szervo szervo2; Szervo szervo3; int olvasás1; int olvasás2; int olvasás3; char mentés1 = 0; // a szervó 0 állapotból indul, alvó állapot char save2 = 0; char save3 = 0; void setup (void) {Serial.begin (9600); servo2.attach (9); // szervo a 9. digitális csapnál servo2.write (160); // kezdőpont szervo szervo1.attach (6); // szervo a 6. digitális csapnál servo1.write (0); // kezdőpont szervo servo3.attach (3); // szervo a 3. digitális tűn servo3.write (0); // a szervó kezdőpontja

}

void loop (void) {olvasás1 = analógRead (A0); // csatolva az analóg 0 olvasáshoz2 = analogRead (A2); // csatolva az analóg 2 olvasáshoz3 = analogRead (A4); // az analóg 4 -hez csatolva

// if (olvasás2> = 0) {Serial.print ("Érzékelő értéke ="); // Példa az első érzékelő küszöbértékének kalibrálására használt parancsra

// Serial.println (olvasás2); } // else {Serial.print ("Érzékelő értéke ="); Soros.println (0); }

if (olvasás1> 100 és mentés1 == 0) {// ha az érzékelő magas értéket kap, és nincs alvó állapotban mentés1 = 2; } // lépjen a 2 -es állapotba más if (olvasás1> 30 és mentés1 == 0) {// ha az érzékelő közepes értéket kap, és nincs alvó állapotban mentés1 = 1; } // az 1 -es állapotba került, ha (olvasás1> 0) {// ha az érték nem nulla, és az előző feltételek egyike sem helyes mentés1 = 0;} // alvó állapotba lép

if (mentés1 == 0) {servo1.write (160); } // release else if (mentés1 == 1) {servo1.write (120); } // közepes húzási szög else {servo1.write (90); } // maximális húzási szög

if (olvasás2> 10 és mentés2 == 0) {// ugyanaz, mint a szervo 1 mentés2 = 2; } else if (olvasás2> 5 és mentés2 == 0) {mentés2 = 1; } else if (olvasás2> 0) {save2 = 0;}

if (mentés2 == 0) {servo2.write (0); } else if (mentés2 == 1) {servo2.write (40); } else {servo2.write (60); }

if (olvasás3> 30 és mentés3 == 0) {// ugyanaz, mint a szervo 1 mentés3 = 2; } else if (olvasás3> 10 és mentés3 == 0) {mentés3 = 1; } else if (olvasás3> 0) {save3 = 0;}

if (mentés3 == 0) {servo3.write (0); } else if (mentés3 == 1) {servo3.write (40); } else {servo3.write (70); } késleltetés (1000); } // várjunk csak

9. lépés: Rögzítse az Arduino -t, az akkumulátorokat és a veroboardot a karhoz

Rögzítse az Arduino -t, az akkumulátorokat és a veroboardot a karhoz
Rögzítse az Arduino -t, az akkumulátorokat és a veroboardot a karhoz
Rögzítse az Arduino -t, az akkumulátorokat és a veroboardot a karhoz
Rögzítse az Arduino -t, az akkumulátorokat és a veroboardot a karhoz

Egy másik lemezt PLA -ban nyomtattak, hogy rögzíthessék az elemtartókat és az arduino -t.

A lemez mérete: 100x145x5mm.

Négy lyuk található az arduino csavarozásához, kettő pedig a 9 V -os elemtartó csavarozásához. A 6 V -os elemtartóban és a lemezen lyukat alakítottak ki, hogy kábelkötegelővel rögzítsék őket. Néhány ragasztót adtak hozzá, hogy biztosítsák a tartó rögzítését. A kapcsoló két kis kábelköteggel van rögzítve.

Négy lyuk is van, amelyek rögzítik a lemezt a farmerre kábelkötő segítségével.

A veroboard pajzsként van felhelyezve az arduino -ra.

10. lépés: Csatlakoztassa az elektronikát

Csatlakoztassa az elektronikát
Csatlakoztassa az elektronikát

Az áramkör forrasztva van a veroboardon, a fenti séma szerint.

Az Arduino tápegysége 9V, és ezek között egy kapcsoló van csatlakoztatva az Arduino kikapcsolásához. 6V -os elem szükséges a szervomotorhoz, amely nagy áramot igényel, és a szervók harmadik csapja az 3, 6 és 9 csapok, hogy PWM segítségével vezéreljék őket.

Mindegyik érzékelőt az egyik oldalon az Arduino 5V, a másik oldalon egy 330 ohmos ellenállás köti össze, amely a földhöz és az A0, A2 és A4 csapokhoz van csatlakoztatva a feszültség mérésére.

11. lépés: Adja hozzá a nylon huzalokat

Adja hozzá a nylon huzalokat
Adja hozzá a nylon huzalokat

A nejlonhuzalok úgy vannak kiképezve, hogy áthaladjanak a végtag mindkét lyukán és a gyűrűkön, amint az a képen látható, akkor a huzal két fele mind a polietilén vezető belsejébe kerül, és a vezető végéig együtt marad a motorhoz. A vezetékek hosszát ezen a ponton határozzák meg, elég hosszúaknak kell lenniük ahhoz, hogy az egyenes ujjakkal körbejárják a szervókereket.

Rögzítve vannak a kerekeken egy csomóval, amely két kis lyukon áthalad a.stl fájlokon, és forró ragasztóval a további stabilizálás érdekében.

12. lépés: Élvezze

A várt módon működik.

Az első impulzusnál meghajlítja az ujját, a másodiknál pedig elengedi. Nincs szükség erőre, amikor az ujjak hajlítva vannak.

Ennek ellenére három probléma maradt:

- Ügyelnünk kell arra, hogy 1 másodpercnél rövidebb impulzust adjunk a szervók működtetéséhez, különben a huzalok azonnal kioldódnak a húzás után, amint azt az Arduino kód 8. lépése ismerteti.

- A műanyag részek kissé csúsznak, ezért a végtagokhoz forró ragasztót adtunk a súrlódás növelése érdekében.

- Ha nagy terhelés van az ujján, akkor az érzékelőnek mindig nagy értéke lesz, így a szervó folyamatosan forog.

Ajánlott: