Sisukord:

RoboGlove: 12 sammu (piltidega)
RoboGlove: 12 sammu (piltidega)

Video: RoboGlove: 12 sammu (piltidega)

Video: RoboGlove: 12 sammu (piltidega)
Video: Оформление бороды 2024, Juuli
Anonim
RoboGlove
RoboGlove

Oleme rühm ULB üliõpilasi, Université Libre de Bruxelles. Meie projekt seisneb roboti kinda väljatöötamises, mis suudab luua haardejõu, mis aitab inimestel asju haarata.

KINDAS

Kindal on traatühendus, mis seob sõrmed mõne servomootoriga: traat on kinnitatud sõrme otsa ja servo külge, nii et kui servo pöörleb, tõmmatakse traati ja sõrme painutatakse. Sel moel, kontrollides kasutaja haardejõudu sõrmede otsas olevate rõhuandurite kaudu, saame mootoreid juhtida kontrollitult ja aidata haardumist, painutades sõrme proportsionaalselt mootorite pöörlemisega ja nii juhtmete üleskeeramiseni. Sel viisil peaksime suutma lasta nõrkadel inimestel esemetest haarata või aidata isegi füsioloogilistes tingimustes inimestel esemetest haarata ja seda ilma igasuguste pingutusteta hoida.

KUJUNDUS

Mudel on välja töötatud selleks, et muuta käe liikumine võimalikult vabaks. Tegelikult trükkisime 3D -s ainult rangelt vajalikud osad, mida vajame juhtmete, mootorite ja sõrmede ühendamiseks.

Meil on igale sõrmele PLA -trükitud ülemine kuppel: see on klemmiosa, kuhu juhtmed tuleb ühendada, ja see peab tagama sees oleva fikseeritud rõhuanduri kaitse. Rõhuandur on liimitud kuuma liimiga PLA äärmise osa ja kinda vahele.

Siis on meil sõrme kohta kaks 3D -trükitud rõngast, mis on juhtmete juhendiks. Pöial on ainus sõrm, millel on ainult üks trükitud rõngas. Sõrme kohta on üks traat, mis on sõrmede otsas pooleks volditud. Kaks poolt läbivad kupliosa kahte juhikut ja mõlemas rõngas: need pannakse otse aukudesse, mille tegime nende rõngaste väliskülgedel. Seejärel ühendatakse need otse mootoriga ühendatud rattaks. Ratas on loodud selleks, et saaks juhtmeid ümber keerata: kuna meie mootor ei pöörle täielikult (alla 180 °), mõistsime ratast, et tõmmata traati 6 -sentimeetrise vahega, mis on vahemaa on vaja käsi täielikult sulgeda.

Oleme trükkinud ka kaks plaati servomootorite ja arduino kinnitamiseks käe külge. See peaks olema parem lõigata puidust või laserlõikuriga jäigast plastikust.

Samm: ostunimekiri

Ostunimekiri
Ostunimekiri
Ostunimekiri
Ostunimekiri
Ostunimekiri
Ostunimekiri

Kindad ja juhtmed:

1 olemasolev kinnas (peab olema õmmeldav)

Vanad teksad või mõni muu jäik riie

Nailonist juhtmed

Madala tihedusega polüetüleenist torud (läbimõõt: 4 mm Paksus: 1 mm)

Elektroonika:

Arduino Uno

1 Aku 9V + 9V Akuhoidik

1 elektrooniline lüliti

1 verbaat

3 servomootorit (1 sõrme kohta)

3 propellerit (koos servodega)

4 patareid AA + 4 AA patareide hoidja

3 rõhuandurit (1 sõrme kohta)

3 takistit 330 oomi (1 sõrme kohta)

6 elektrijuhet (2 anduri kohta)

Kruvid, mutrid ja kinnitused:

4 M3 10 mm pikk (Arduino kinnitamiseks)

2 M2,5 12 mm pikk (9V akuhoidiku kinnitamiseks)

6 vastavat pähklit

6 M2 10 mm pikk (2 servo kohta rataste kinnitamiseks servodele)

12 väikest kaablisidet (plaatide ja lüliti kinnitamiseks)

7 suurt kaablisidet (2 mootori kohta ja 1 4 AA patareihoidiku jaoks)

Kasutatud tööriistad:

3D -printer (Ultimaker 2)

Materjal õmblemiseks

Kuum liimipüstol

Valikuline: laserlõikur

Samm: valmistage ette kantav struktuur

Valmistage ette kantav struktuur
Valmistage ette kantav struktuur

Kantav konstruktsioon on valmistatud mõne riietusega: meie puhul kasutasime elektrikul tavalist kinda ja randme ümber oleva struktuuri jaoks teksapükse. Need õmmeldi kokku.

Eesmärk on paindlik kantav struktuur.

Konstruktsioon peab olema tugevam kui tavaline villane kinnas, kuna see tuleb õmmelda.

Toiteallikate ja täiturmehhanismide hoidmiseks vajame randme ümber kantavat struktuuri ning see peab olema stabiilne, mistõttu otsustasime sulgemise reguleerida, rakendades teksapükste randmele takjakinnitusi (automaatkleepuvad ribad).

Teksade jäigemaks muutmiseks õmmeldi sisse mõned puupulgad.

Samm: valmistage funktsionaalsed osad ette

Valmistage funktsionaalsed osad ette
Valmistage funktsionaalsed osad ette

Jäigad osad realiseeritakse 3D -printimise teel PLA -s kirjelduse.stl -failidest:

Sõrmusrõngas x5 (erinevate skaaladega: 1x skaala 100%, 2x skaala 110%, 2x skaala 120%);

Sõrme äärmine x3 (erinevate skaaladega: 1x skaala 100%, 1x skaala 110%, 1x skaala 120%);

Ratas mootorile x3

Sõrmeosade jaoks on vaja erinevaid skaalasid, kuna iga sõrm ja iga falanks on erineva suurusega.

Samm: kinnitage andurid jäsemete külge

Kinnitage andurid jäsemete külge
Kinnitage andurid jäsemete külge

Rõhuandurid joodetakse esmalt kaablitraatide külge.

Seejärel liimitakse need sõrmejäsemete liimipüstoli abil: väike kogus liimi asetatakse jäseme sisse, kahe avaga küljele, seejärel rakendatakse andur kohe aktiivse (ümmarguse) osaga liim (laske piesoelektrilisel poolel konstruktsiooni sisepind ja plastosa otse liimi peal). Kaablijuhtmed peavad jooksma sõrme ülaosast allapoole, et elektrikaabeldus käe tagaküljel oleks.

Samm: kinnitage 3D -prinditud osad kinnasesse

Kinnitage 3D -prinditud osad kinda külge
Kinnitage 3D -prinditud osad kinda külge

Kõik jäigad osad (otsad, rõngad) tuleb kinnaste kinnitamiseks õmmelda.

Rõngaste õigeks paigutamiseks kandke kõigepealt kinnast ja proovige rõngaid panna, üks falanksi kohta, ilma et need käe sulgemise ajal puutuksid. Ligikaudu kinnitatakse indeksi rõngad 5 mm sõrme alusest kõrgemale ja 17–20 mm esimesest. Keskmise sõrme puhul on esimene rõngas umbes 8–10 mm sõrme alusest kõrgemal ja teine umbes 20 mm esimesest. Pöidla puhul on vajalik täpsus väga madal, kuna see ei ohusta teiste rõngaste segamist, nii et proovige seda kanda kulunud kindale, tõmmake kindale joon, kuhu soovite helisege, et saaksite selle siis õmmelda.

Õmblemise osas pole vaja erilist tehnikat ega võimeid. Nõelaga läheb õmblusniit rõngaste ümber ringidesse, läbides kinda pinda. 3-4 mm samm kahe kindaava vahel teeb juba piisavalt tugeva fikseeringu, väga tihedat õmblust pole vaja teha.

Sama tehnikat kasutatakse ka jäsemete kinnitamiseks: jäseme ülaosa on auklik, et nõel hõlpsalt läbi saaks, nii et kindale tuleb õmmelda ainult sõrme ülaosas olevad ristikujulised kujundid.

Seejärel tuleb polüetüleenist juhikud fikseerida, järgides kolme kriteeriumi:

distaalne ots (näo poole) peab olema sõrme suunas, et vältida suuri hõõrdumisi selle sisse mineva nailontraadiga;

distaalne ots peab olema piisavalt kaugel, et mitte segada käe sulgemist (umbes 3 cm madalamal kui sõrme alus on piisavalt hea, pöidla jaoks 4–5 cm);

torud peavad üksteist võimalikult vähe läbima, et vähendada kogu kinda mahtu ja iga toru liikuvust

Need kinnitatakse, õmmeldes need kindale ja randmele sama tehnikaga nagu eespool.

Et vältida õmblusest libisemise ohtu, lisati torude ja kinnaste vahele paar liimi.

Samm: valmistage rattad servode jaoks ette

Valmistage rattad servode jaoks ette
Valmistage rattad servode jaoks ette

Selle projekti jaoks kasutasime spetsiaalselt disainitud rattaid, mille oleme ise joonistanud ja 3D -printinud (kirjelduses.stl -fail).

Kui rattad on trükitud, peame need kruvidega (M2, 10 mm kruvid) kinnitama servode propellerite külge. Kuna propellerite augud on M2 keeramisel väiksemad kui 2 mm läbimõõduga, pole mutreid vaja.

3 propellerit saab rakendada igale servole.

Samm: kinnitage mootorid käe külge

Kinnitage mootorid käe külge
Kinnitage mootorid käe külge

See samm seisneb mootorite kinnitamises õla külge; selleks pidime toetuse saamiseks trükkima PLA abitahvli.

Tegelikult ei saanud mootoreid otse õla külge kinnitada, kuna juhtmete tõmbamiseks vajalikud rattad võisid liikumise ajal kinnaste tõttu blokeerida. Nii trükkisime 3D -plaadi mõõtmetega 120x150x5 mm PLA -tahvli.

Seejärel kinnitasime tahvli kinda külge mõne kaablisidemega: tegime kindasse mõned augud lihtsalt kääride abil, seejärel tegime puuriga augud plasttahvlisse ja panime kõik kokku. Kaablisidemete läbimiseks on vaja tahvli keskele selle perimeetri vahele neli auku. Need on valmistatud puuriga. Need on plaadi keskosas ja mitte plaadi külgedel, et saaks teksad käe ümber sulgeda ilma, et plaat seda blokeeriks, kuna plaat ei ole paindlik.

Seejärel puuritakse plasttahvlisse ka teisi auke mootorite kinnitamiseks. Mootorid on kinnitatud kahe ristuva kaablisidemega. Nende külgedele lisati fikseerimise tagamiseks veidi liimi.

Mootorid tuleb panna nii, et rattad üksteist ei segaks. Nii et käe vasakus ja paremas servas on need eraldatud: kaks küljel, rattad pöörlevad vastassuunas ja üks teisel küljel.

Samm: kood Arduino

Arduino kood
Arduino kood

Kood on välja töötatud lihtsal viisil: mootorite käivitamiseks või mitte. Servod käivitatakse ainult siis, kui näit on üle teatud väärtuse (see määrati katsete ja vigadega, kuna iga anduri tundlikkus pole täpselt sama). Painutamiseks on kaks võimalust: madal väikese jõu ja täielikult tugeva jõu jaoks. Kui sõrm on painutatud, pole kasutaja jõudu vaja sõrme tegeliku asendi hoidmiseks. Selle rakendamise põhjus on see, et muidu on mainitud, et sõrmed peavad anduritele pidevalt jõudu rakendama ja kinnas ei anna mingit eelist. Sõrme painutamise vabastamiseks tuleb rõhuandurile rakendada uut jõudu, mis seisneb peatamiskäskluses.

Saame koodi jagada kolmeks osaks:

Andurite algatus:

Kõigepealt lähtestasime iga anduri jaoks kolm täisarvulist muutujat: lugemine1, lugemine2, lugemine3. Andurid sisestati analoogsisenditesse A0, A2, A4. Iga lugeja muutuja on seatud järgmiselt:

  • lugemine1 kus on kirjutatud sisendis A0 loetud väärtus,
  • lugemine2 kus on kirjutatud sisendis A2 loetud väärtus,
  • lugemine3 kus on sisestatud A4 väärtus

Sõrmega fikseeritakse kaks läve, mis vastavad servode kahele käivitusasendile. Need künnised on iga sõrme puhul erinevad, kuna rakendatav jõud ei ole iga sõrme jaoks sama ja kolme anduri tundlikkus pole täpselt sama.

Mootori initsiatiiv:

Kolm muutujat char (save1, save2, save3), üks iga mootori jaoks lähtestatakse väärtusega 0. Seejärel seadistusse määrasime tihvtid, kuhu mootorid vastavalt ühendame: tihvt 9, tihvt 6 ja tihvt 3 servo1, servo2, servo3 jaoks; kõik initsialiseeritud 0 väärtusega.

Seejärel käivitatakse servod käsuga servo.write (), mis suudab servole sisendina saadud nurga fikseerida. Ka katsete ja vigade abil leiti kaks head nurka, mida oli vaja sõrme painutamiseks kahes asendis, mis vastab väikesele ja suurele haardele.

Kuna üks mootor peab oma fikseerimise tõttu pöörlema vastupidises suunas, ei ole selle lähtepunkt null, vaid maksimaalne nurk ja väheneb, kui rakendatakse jõudu vastassuunas pööramiseks.

Seos andurite ja mootorite vahel:

Salvestus1, salvestus2, salvestus3 ja lugemine1, lugemine2, lugemine3 valik sõltub jootmisest. Kuid iga sõrme puhul peab anduril ja mootoril olema sama number.

Siis silmusesse, kui kasutati tingimusi, et testida, kas sõrm on juba painutusasendis või mitte ja kas anduritele avaldatakse survet või mitte. Kui andurid tagastavad väärtuse, tuleb rakendada jõudu, kuid võimalikud on kaks erinevat juhtumit:

  • Kui sõrm pole veel painutatud, võrreldakse seda andurite poolt tagastatud väärtust lävenditega, rakendatakse servole vastav nurk.
  • Kui sõrm on juba painutatud, tähendab see, et kasutaja soovib painutuse vabastada ja seejärel rakendatakse servodele stardinurk.

Seda tehakse iga mootori puhul.

Seejärel lisasime 1000 ms viivituse, et vältida andurite väärtuste liiga sagedast testimist. Kui rakendatakse liiga väikest viivituse väärtust, võib käsi pärast selle sulgemist käe uuesti avada, kui jõudu rakendatakse pikema aja jooksul kui viivitusaeg.

Kõik ühe anduri protsessid on esitatud ülaltoodud vooskeemil.

KOGU KOOD

#include Servo servo1; Servo servo2; Servo servo3; int lugemine1; int lugemine2; int lugemine3; char salvesta1 = 0; // servo algab olekust 0, unerežiimis char save2 = 0; char save3 = 0; tühine seadistus (tühine) {Serial.begin (9600); servo2.kinnitus (9); // servo ja digitaalne tihvt 9 servo2.write (160); // servo servo1.attach algpunkt (6); // servo ja digitaalne tihvt 6 servo1.write (0); // servo servo3.attach lähtepunkt (3); // servo ja digitaalne tihvt 3 servo3.write (0); // servo alguspunkt

}

void loop (void) {lugemine1 = analoogRead (A0); // lisatud analoogile 0 näit2 = analogRead (A2); // lisatud analoogi 2 näidule3 = analogRead (A4); // lisatud analoogile 4

// if (reading2> = 0) {Serial.print ("Anduri väärtus ="); // Näide käsust, mida kasutati esimese anduri künniste kalibreerimiseks

// Serial.println (lugemine2); } // else {Serial.print ("Anduri väärtus ="); Seeria.println (0); }

if (näit1> 100 ja salvesta1 == 0) {// kui andur saab kõrge väärtuse ja ei ole unerežiimis, salvesta1 = 2; } // mine olekusse 2 else if (näit1> 30 ja salvesta1 == 0) {// kui andur saab keskmise väärtuse ja ei ole unerežiimis salvesta1 = 1; } // jõudis olekusse 1 else, kui (lugemine1> 0) {// kui väärtus ei ole null ja ükski eelnevatest tingimustest pole õige, salvesta1 = 0;} // mine unerežiimi

kui (salvesta1 == 0) {servo1.kirjuta (160); } // vabasta muidu if (save1 == 1) {servo1.write (120); } // keskmine tõmbamisnurk else {servo1.write (90); } // maksimaalne tõmbenurk

if (lugemine2> 10 ja salvestus2 == 0) {// sama kui servo 1 salvesta2 = 2; } else if (lugemine2> 5 ja salvestamine2 == 0) {salvesta2 = 1; } muu, kui (lugemine2> 0) {salvesta2 = 0;}

kui (salvesta2 == 0) {servo2.kirjuta (0); } else if (salvesta2 == 1) {servo2.write (40); } else {servo2.write (60); }

if (lugemine3> 30 ja salvesta3 == 0) {// sama kui servo 1 salvesta3 = 2; } else if (lugemine3> 10 ja salvestamine3 == 0) {salvesta3 = 1; } muu, kui (lugemine3> 0) {salvesta3 = 0;}

kui (salvesta3 == 0) {servo3.kirjutage (0); } muidu kui (salvesta3 == 1) {servo3.kirjutage (40); } else {servo3.write (70); } viivitus (1000); } // oota sekund

Samm: kinnitage Arduino, patareid ja Veroboard käe külge

Kinnitage Arduino, patareid ja Veroboard käe külge
Kinnitage Arduino, patareid ja Veroboard käe külge
Kinnitage Arduino, patareid ja Veroboard käe külge
Kinnitage Arduino, patareid ja Veroboard käe külge

Teine plaat trükiti PLA -s, et saaks patareide hoidjaid ja arduinot parandada.

Plaadi mõõtmed: 100x145x5mm.

Neli auku on arduino kruvimiseks ja kaks 9V patareipesa kruvimiseks. 6V patareihoidikusse ja plaati tehti auk, et neid omavahel kinnitada. Selle hoidiku fikseerimise tagamiseks lisati veidi liimi. Lüliti on fikseeritud kahe väikese kaablisidemega.

Plaadi kinnitamiseks teksade külge kaablisidemete abil kasutatakse ka nelja auku.

Veroboard pannakse arduinole nagu kilp.

Samm: ühendage elektroonika

Ühendage elektroonika
Ühendage elektroonika

Ahel on joodetud veroboardile, nagu on kirjeldatud ülaltoodud skeemil.

Arduino toiteallikaks on 9 V aku ja nende vahele on ühendatud lüliti, et Arduino välja lülitada. Servomootori jaoks, mis vajab palju voolu, on vaja 6 V akut ja servode kolmas tihvt on ühendatud nööpnõelad 3, 6 ja 9, et neid PWM abil juhtida.

Iga andur on ühendatud Arduino 5V küljega ja teiselt poolt 330 oomi takistiga, mis on ühendatud maapinnaga ja pinge mõõtmiseks tihvtidega A0, A2 ja A4.

Samm: lisage nailonjuhtmed

Lisage nailonjuhtmed
Lisage nailonjuhtmed

Nailontraadid lastakse läbi mõlema ava jäsemest ja rõngad, nagu pildil näha, siis lähevad traadi mõlemad pooled mõlemad polüetüleenjuhiku sisse ja jäävad koos juhiku lõpuni mootori külge. Juhtmete pikkus määratakse sel hetkel kindlaks, need peavad olema piisavalt pikad, et sirge sõrmedega üks kord servoratta ümber teha.

Need kinnitatakse ratastele sõlmega, mis läbib.stl -failidel kaks väikest auku, ja kuuma liimiga, mis tagab täiendava stabiliseerimise.

12. samm: nautige

See töötab ootuspäraselt.

Esimese hooga painutab see sõrme ja teisel vabastab selle. Sõrmede painutamisel pole jõudu vaja.

Sellegipoolest on jäänud kolm probleemi:

- Peame olema ettevaatlikud, et teha servode käivitamiseks lühem impulss kui 1 sekund, vastasel juhul vabastatakse juhtmed kohe pärast tõmbamist, nagu on kirjeldatud 8. etapis Arduino koodi kohta.

- Plastosad libisevad veidi, nii et oleme hõõrdumise lisamiseks lisanud äärmesse kuuma liimi.

- Kui sõrmel on suur koormus, on anduril kogu aeg suur väärtus ja servo pöörleb pidevalt.

Soovitan: