Kazalo:

Protetična roka pri delu z miosenzorjem: 8 korakov
Protetična roka pri delu z miosenzorjem: 8 korakov

Video: Protetična roka pri delu z miosenzorjem: 8 korakov

Video: Protetična roka pri delu z miosenzorjem: 8 korakov
Video: Leap Motion SDK 2024, November
Anonim
Image
Image

Ta projekt je razvoj protetične roke za amputirane ljudi. Cilj tega projekta je ustvariti cenovno ugodno protetično roko za ljudi, ki si ne morejo privoščiti profesionalne.

Ker je ta projekt še v fazi izdelave prototipov, je lahko vedno boljši, saj zaenkrat lahko odpre in zapre le dlan, ki lahko zgrabi stvari! Kljub temu gre za protetično roko DIY, ki jo je mogoče narediti doma ali v lokalnem laboratoriju.

Korak: Potrebni materiali, orodja in stroji

Stroji:

  1. 3D tiskalnik
  2. Laserski rezalnik
  3. Namizni CNC stroj

Orodja:

  1. Ribiška vrvica
  2. 3 mm filament
  3. Vrtalnik
  4. Super lepilo
  5. Klešče za luknje
  6. Multimeter
  7. Spajkalna postaja
  8. Obdelovalni vosek
  9. Kalupi iz silicija

Materiali:

  1. Bakrena pločevina
  2. 1x ATMEGA328P-AU
  3. 1x 16MHz kristal
  4. 1x 10k upor
  5. 2x 22pF kondenzatorji
  6. 1x 10uF kondenzator
  7. 1x 1uF kondenzator
  8. 1x 0,1uF kondenzator
  9. 1x Myosensor
  10. 5x mikro servo motorji
  11. 1x Arduino UNO

Programska oprema:

  1. Arduino IDE
  2. Fusion360
  3. Cura
  4. Orel
  5. GIMP

2. korak: 2D in 3D oblikovanje

2D in 3D oblikovanje
2D in 3D oblikovanje
2D in 3D oblikovanje
2D in 3D oblikovanje
2D in 3D oblikovanje
2D in 3D oblikovanje

3D oblikovanje

Prvi korak je bil oblikovanje prstov, dlani in podlakti protetične roke ob upoštevanju elektronike, ki bi šla v protetično roko. Če sem iskren, sem kot osnovo uporabil odprtokodni projekt inmoov in od tam začel.

Dlan je težko oblikovati, saj morajo imeti prsti med seboj različna razmerja. Torej:

Prsti: prste sem prenesel iz projekta inmoov.

Dlan:

  1. Najprej sem skiciral postavitev dlani in jo iztisnil.
  2. Nato sem naredil luknje za povezave prsta in podlakti s skicami, ukazom cut in ukazom file.
  3. Po tem sem moral narediti cevi, da sem lahko podal ribiške vrvi, da sem lahko upravljal prste preko motorjev.
  4. Nazadnje je bilo treba v dlan dodati luknje, da je bilo mogoče zapreti dlan, ko je bila potegnjena ribiška vrvica.

Podlaket:

  1. V različnih ravninah sem ustvaril dve skici in uporabil ukaz elipse. Po tem sem uporabil ukaz loft, da sem ustvaril želeno obliko.
  2. Nato je bil ukaz lupine uporabljen, da je postal votel, ukaz split pa ga je prepolovil, da sem lahko oblikoval v njem in za najboljšo dostopnost takrat, ko sem vgrajeval svojo elektroniko.
  3. V bližini zapestja je bila narejena tudi skica, iztisnjena in združena z glavno podlaketjo, tako da se lahko poveže z dlanjo.
  4. Zaradi vidnosti oblikovanja znotraj podlakti sem ustvaril skico v dimenzijah petih motorjev, ki bi jih uporabljal, po enega za vsak prst, in moje tiskano vezje (tiskano vezje), ki bi ga uporabljal. Nato sem jih iztisnil, dokler niso dosegli želene višine, in odstranili nepotrebne dele na zadnji strani valja z uporabo povratnega prostora.
  5. Nazadnje so bile oblikovane odprtine za vijake na način, ki ni tako viden na celotni zasnovi, da se lahko podlaket zapre z uporabo podobnih ukazov kot zgoraj.

Ko sem dokončal oblikovanje, sem izbral vsako telo in ga prenesel kot datoteko.stl ter jih 3D natisnil ločeno.

2D oblikovanje

Ker sem želel, da so moje ribiške vrvi ločene, medtem ko jih upravljajo motorji, sem se odločil, da jim naredim vodilne reže. Za to mi res ni bilo treba oblikovati nič novega, ampak sem uporabil manjšo elipso, ko sem z ukazom loft ustvaril podlaket.

Njegovo skico sem izvozil kot datoteko.dxf, potem ko sem uporabil laserski rezalnik. Ko sem dobil želeno obliko, sem v reži izvrtal luknje 0,8 mm, ki so se mi zdele potrebne.

3. korak: 3D tiskanje

3D tiskanje
3D tiskanje
3D tiskanje
3D tiskanje
3D tiskanje
3D tiskanje
3D tiskanje
3D tiskanje

Po izvozu vsake datoteke stl sem s pomočjo Cure ustvaril kodo.g različnih delov prstov, dlani in podlakti. Uporabljene nastavitve so prikazane na zgornjih slikah. Material 3D tiskanih delov je PLA.

4. korak: Oblikovanje in litje

Oblikovanje in litje
Oblikovanje in litje
Oblikovanje in litje
Oblikovanje in litje
Oblikovanje in litje
Oblikovanje in litje

Namen odlitka dlani je, da ima protetična roka močnejši oprijem, saj je lahko PLA spolzka.

3D oblikovanje

  1. Z že obstoječo skico dlani sem poskušal posnemati našo dlan tako, da sem mu z ukazom za lok oblikoval nekakšne kroge.
  2. Potem sem jih iztisnil na različnih višinah in z ukazom za fileje zgladil robove notranjih "krogov".
  3. Nato sem oblikoval škatlo z enakimi dimenzijami kot moj voščen stroj in sem z ukazom za rezanje vstavil negativ mojega dizajna.

CAM proces

Ko sem oblikovanje pripravil za rezkanje z namiznim CNC strojem, sem moral za to ustvariti gcode. V mojem primeru sem uporabljal CNC stroj Roland MDX-40!

  1. Najprej sem vstopil v okolje CAM Fusion360.
  2. Nato sem v meniju za nastavitev izbral "novo nastavitev".
  3. Izbral sem prave parametre (glej slike) in pritisnil ok.
  4. Nato sem v meniju 3D izbral prilagodljivo čiščenje in izbral prave parametre, potem ko sem vstavil orodje, ki sem ga uporabil, kot je prikazano na slikah.
  5. Nazadnje sem izbral prilagodljivo čiščenje in kliknil postopek objave. Poskrbel sem, da je za roland stroj mdx-40 in kliknil v redu, da bi dobil gcode.
  6. Po tem sem s strojem rezkal blok voska po svoji zasnovi.

Ulivanje silicija

  1. Najprej sem previdno premešal dve raztopini silicija, da ne povzročim zračnih mehurčkov, po podatkovnem listu (povezava na materialih), pri čemer sem upošteval razmerje mešanja, življenjsko dobo in čas razgradnje.
  2. Nato sem jo vlil v kalup z najnižje točke in se prepričal, da kontaktna točka ostane konstantna in da je premer vlijene raztopine čim tanjši, da se izognemo zračnim mehurčkom.
  3. Ko sem vlil silikon v svoj kalup, sem se moral prepričati, da v njem ni zračnih mehurčkov, zato sem s pomočjo svedra s poševnim žebljem tresel kalup.
  4. Nazadnje, ko sem to pozabil narediti v svoji zasnovi, sem v silicij po tem, ko je bil pripravljen, z luknjami za luknje luknjal luknje, tako da se ujemajo z luknjami na površini dlani.

5. korak: Oblikovanje in proizvodnja elektronike

Oblikovanje in proizvodnja elektronike
Oblikovanje in proizvodnja elektronike
Oblikovanje in proizvodnja elektronike
Oblikovanje in proizvodnja elektronike
Oblikovanje in proizvodnja elektronike
Oblikovanje in proizvodnja elektronike

Da bi oblikoval svojo ploščo in razumel, kaj se dogaja z nožicami mikrokrmilnika, sem moral prebrati njen podatkovni list. Kot osnovno tiskano vezje sem uporabil mikro satshakit in ga nato spremenil glede na potrebe svojega sistema.

Ker je satshakit plošča DIY na osnovi arduina, bi jo lahko spremenil glede na svoja iskanja povezav svojih delov z arduinom. Torej se miosenzor poveže z arduinom z enim zatičem GND, enim VCC zatičem in enim analognim zatičem. Medtem ko en servo motor uporablja en pin GND, en pin VCC in en pin PWM. Torej sem moral izpostaviti skupaj šest zatičev GND in VCC ob upoštevanju napajanja plošče, enega analognega in petih PWM zatičev. Prav tako sem moral upoštevati, da izpostavim zatiče za programiranje plošče (ki so MISO, MOSI, SCK, RST, VCC in GND).

Koraki, ki sem jih naredil, so bili:

  1. Najprej sem prenesel datoteke eagle iz mikrosatshakita.
  2. Nato sem z uporabo Eagle spremenil mikrosatshakit glede na svoje potrebe. Navodila za uporabo Eagle najdete tukaj in tukaj.
  3. Ko sem ukoreninil svojo ploščo, sem jo izvozil kot datoteko-p.webp" />

Potem ko imam notranjo in zunanjo pot moje plošče kot png, je čas, da jih generiram gcode, da jo lahko rezkamo v namiznem cnc stroju roland mdx-40. Za generiranje.gcode sem uporabil fab module. Nastavitve, ki jih je treba nastaviti v modulih fab in jih najdete tukaj.

Nazadnje sem spajkal vse, kar sem potreboval, glede na mojo orlovo desko. Slika shematske in spajkane plošče najdete zgoraj.

Razlog za izdelavo lastne PCB plošče namesto Arduino UNO je prostor, ki ga prihranim pri uporabi lastne plošče.

6. korak: Montaža

Montaža
Montaža
Montaža
Montaža
Montaža
Montaža

Torej, po tiskanju prstov:

  1. Notranje luknje sem moral izvrtati s svedrom s premerom 3,5 mm, zunanje pa s svedrom s premerom 3 mm. Notranje luknje pomenijo del, ki je, ko so deli povezani, iz notranje in zunanje luknje, del, ki je povezan, od zunaj.
  2. Po tem sem moral super lepiti najprej z drugim prstom in tretjega s četrtim.
  3. Nato sem dele 1+2 s 3+4 s 5 skozi majhne luknjice povezal z žarilno nitko s premerom 3 mm.
  4. Nazadnje so bili prsti pripravljeni za sestavljanje z dlanjo in nato s podlakti.

Torej je bil čas, da ribiško vrvico spustimo skozi prste.

Ena črta je šla od zadnje strani prsta skozi cev na priključku za prst in dlan in do podlakti, druga linija pa je šla od sprednje strani prsta do luknje na notranji strani dlani in do podlakti

Posebna opomba je, da ribiško vrv prepeljete skozi kos lesa, ki ima luknjo s premerom, in naredite vozel. V nasprotnem primeru se lahko potegne črta po prstu, kar se mi je zgodilo, ne glede na to, koliko vozlov sem naredil.

  • Ko je ribiška vrvica podana skozi prste, je treba dlan in podlaket povezati z nekaj 3D natisnjenimi vijaki botov,
  • Ponovno sem napeljal črte skozi luknjo za lasersko izrezane luknje, da sem jih ločil in jih nato priključil na servo motorje.
  • Pritrditev ribiške vrvi na pravilen položaj servo je nekoliko zahtevna. Ampak, kar sem naredil, je bilo, da sem zavzel skrajne položaje prsta in ga povezal s skrajnim položajem servomotorja.
  • Ko sem našel pravilne položaje, sem izvrtal luknje v posebne reže za servomotorje in privijal servomotorje na prava mesta, pri čemer sem zagotovil, da sta dva servomotorja nekoliko dvignjena od drugih, sicer bi med delovanjem trčila.

7. korak: Programiranje

Programiranje
Programiranje

Preden sem napisal program, sem moral omogočiti programiranje spremenjenega mikro-satshakita. Če želite to narediti, sem moral slediti spodnjim korakom:

  1. Arduino Uno priključite na računalnik.
  2. Izberite prava vrata in ploščo Arduino Uno pod orodji.
  3. Pod> Datoteka> Primeri poiščite in odprite skico »ArduinoISP«.
  4. Skico naložite v Arduino.
  5. Odklopite Arduino iz računalnika.
  6. Ploščo povežite z Arduinom po shemi na sliki.
  7. Arduino priključite na računalnik.
  8. Izberite ploščo "Arduino/Genuino Uno" in programer "Arduino kot ISP".
  9. Kliknite na> Orodja> Zapiši zagonski nalagalnik.
  10. Ko je zagonski nalagalnik uspešno opravljen, lahko napišemo naš program:

// vključno s knjižnico, ki sem jo uporabil za servo motorje

#include #include SoftwareSerial mySerial (7, 8); #define MYO_PIN A0 int sensorValue; plavajoča napetost; // dodelim ime mojemu servo VarSpeedServo servo1; Servo2 VarSpeedServo2; Servo3 VarSpeedServo3; Servo4 VarSpeedServo4; VarSpeedServo servo5; #define PINKY 5 #define PINKY_PIN 10 #define RINGFINGER 4 #define RINGFINGER_PIN 9 #define MIDDLE 3 #define MIDDLE_PIN 3 #define INDEX 2 #define INDEX_PIN 5 #define THUMB 1 #dempineTUMP); // pin, na katerega sem pritrdil servo1.attach motorja (THUMB_PIN); servo2.attach (INDEX_PIN); servo3.attach (MIDDLE_PIN); servo4.priključek (RINGFINGER_PIN); servo5.priključek (PINKY_PIN); defaultPosition (THUMB, 40); defaultPosition (INDEX, 40); defaultPosition (SREDNJI, 40); defaultPosition (RINGFINGER, 40); defaultPosition (PINKY, 40); mySerial.begin (9600); mySerial.print ("Začetek …"); } void loop () {sensorValue = analogRead (A0); napetost = vrednost senzorja * (5,0 / 1023,0); mySerial.println (napetost); zamuda (100); če (napetost> 1) {closePosition (PINKY, 60); closePosition (RINGFINGER, 60); closePosition (SREDNJI, 60); closePosition (INDEKS, 60); closePosition (THUMB, 60); } else {openPosition (PINKY, 60); openPosition (RINGFIGER, 60); openPosition (SREDNJI, 60); openPosition (INDEKS, 60); openPosition (THUMB, 60); }} void defaultPosition (uint8_t finger, uint8_t _speed) {if (finger == PINKY) servo5.write (90, _speed, true); else if (finger == RINGFINGER) servo4.write (70, _speed, true); else if (finger == MIDDLE) servo3.write (20, _speed, true); else if (finger == INDEX) servo2.write (20, _speed, true); else if (finger == THUMB) servo1.write (20, _speed, true); } void closePosition (uint8_t finger, uint8_t _speed) {if (finger == PINKY) servo5.write (180, _speed, true); else if (finger == RINGFINGER) servo4.write (180, _speed, true); else if (finger == MIDDLE) servo3.write (180, _speed, true); else if (finger == INDEX) servo2.write (180, _speed, true); else if (finger == THUMB) servo1.attach (180, _speed, true); } void openPosition (uint8_t finger, uint8_t _speed) {if (finger == PINKY) servo5.write (0, _speed, true); else if (finger == RINGFINGER) servo4.write (0, _speed, true); else if (finger == MIDDLE) servo3.write (0, _speed, true); else if (finger == INDEX) servo2.write (0, _speed, true); else if (finger == THUMB) servo1.write (0, _speed, true); } // Po pisanju programa ga naložimo na ploščo z> Sketch> Upload with Programmer // Zdaj lahko odklopite mikrosatshakit iz vašega arduina in ga napajate prek power bank // In voila !! Imate protetično roko

Priporočena: