Satura rādītājs:
- 1. darbība. Nepieciešamie materiāli, instrumenti un mašīnas
- 2. solis: 2D un 3D dizains
- 3. darbība: 3D drukāšana
- 4. solis: formēšana un liešana
- 5. solis: elektronikas projektēšana un ražošana
- 6. darbība: montāža
- 7. solis: programmēšana
Video: Rokas protēze, kas darbojas ar mio sensoru: 8 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-31 10:22
Šis projekts ir rokas protēzes izstrāde amputētiem cilvēkiem. Šī projekta mērķis ir izveidot pieejamu protezēšanas roku cilvēkiem, kuri nevar atļauties profesionālu.
Tā kā šis projekts joprojām ir prototipēšanas stadijā, tas vienmēr var būt labāks, jo pagaidām tas var tikai atvērt un aizvērt plaukstu, lai varētu paķert lietas! Neskatoties uz to, tā ir DIY protezēšanas roka, ko var veikt mājās vai vietējā fab laboratorijā.
1. darbība. Nepieciešamie materiāli, instrumenti un mašīnas
Mašīnas:
- 3D printeris
- Lāzera griezējs
- Galda CNC iekārta
Rīki:
- Makšķerēšanas līnija
- 3 mm kvēldiegs
- Urbis
- Superlīme
- Caurumu knaibles
- Multimetrs
- Lodēšanas stacija
- Apstrādājams vasks
- Silīcijs veidnēm
Materiāli:
- Vara loksne
- 1x ATMEGA328P-AU
- 1x 16MHz kristāls
- 1x 10k rezistors
- 2x 22pF kondensatori
- 1x 10uF kondensators
- 1x 1uF kondensators
- 1x 0,1uF kondensators
- 1x miozensors
- 5x mikro servo motori
- 1x Arduino UNO
Programmatūra:
- Arduino IDE
- 360
- Cura
- Ērglis
- GIMP
2. solis: 2D un 3D dizains
3D dizains
Pirmais solis bija izstrādāt protēzes rokas pirkstus, plaukstu un apakšdelmu, ņemot vērā elektroniku, kas ietilps protēzes rokā. Godīgi sakot, es kā pamatu izmantoju atvērtā koda inmoov projektu un sāku no turienes.
Plaukstu ir diezgan grūti veidot, jo pirkstiem jābūt atšķirīgām attiecībām. Tātad:
Pirksti: es lejupielādēju pirkstus no projekta inmoov.
Plauksta:
- Vispirms ieskicēju plaukstas izkārtojumu un izspiedu to.
- Tad es izveidoju caurumus pirksta un apakšdelma savienojumiem, izmantojot skices, griezuma komandu un filejas komandu.
- Pēc tam man bija jāizgatavo caurules, lai es varētu iet garām makšķerēšanas līnijām, lai es varētu kontrolēt pirkstus caur motoriem.
- Visbeidzot, plaukstas iekšpusē bija jāpievieno caurumi, lai, pavelkot makšķerauklu, būtu iespējams aizvērt plaukstu.
Apakšdelms:
- Dažādās plaknēs es izveidoju divas skices un izmantoju komandu elipse. Pēc tam es izmantoju komandu bēniņi, lai izveidotu vēlamo formu.
- Pēc tam apvalka komanda tika izmantota, lai padarītu to dobu, un sadalīšanas komanda to pārgrieza uz pusēm, lai es varētu tajā noformēt un nodrošinātu vislabāko pieejamību, kad es ievietoju savu elektroniku iekšā.
- Netālu no plaukstas tika izveidota arī skice, kas tika izspiesta un savienota ar galveno apakšdelmu, lai tā varētu savienoties ar plaukstu.
- Tā kā man bija redzama konstrukcija apakšdelma iekšpusē, es izveidoju skici piecu izmantoto motoru izmēros, pa vienam katram pirkstam, un savu PCB (iespiedshēmas plates), ko es izmantotu. Pēc tam es tos izspiedu, līdz tie sasniedza vēlamo augstumu, un izdzēsu nevajadzīgās daļas cilindra aizmugurē, izmantojot atpakaļatkāpes taustiņu.
- Visbeidzot, skrūvju atveres tika veidotas tādā veidā, kas nav tik labi redzams kopējā konstrukcijā, lai apakšdelmu varētu aizvērt, izmantojot līdzīgas komandas kā iepriekš.
Pabeidzot dizainu, es izvēlējos katru korpusu un lejupielādēju to kā.stl failu, un es tos 3D izdrukāju atsevišķi.
2D dizains
Tā kā es vēlējos, lai manas makšķerēšanas auklas tiktu atdalītas, kamēr tās darbina motori, es nolēmu tām izveidot vadotnes. Šim nolūkam man nebija īsti jāprojektē nekas jauns, bet jāizmanto mazākā elipse, kad es izmantoju komandu loft, lai izveidotu apakšdelmu.
Pēc lāzera griezēja izmantošanas es skici eksportēju kā.dxf failu. Pēc tam, kad man bija vēlamā forma, es urbumā izveidoju 0,8 mm caurumus, kas man šķita nepieciešami.
3. darbība: 3D drukāšana
Pēc katra stl faila eksportēšanas es izmantoju Cura, lai ģenerētu dažādu pirkstu daļu, plaukstas un apakšdelma.gcode. Izmantotie iestatījumi ir parādīti iepriekš redzamajos attēlos. 3D drukāto detaļu materiāls ir PLA.
4. solis: formēšana un liešana
Plaukstas liešanas mērķis ir panākt, lai rokas protēzei būtu spēcīgāka saķere, jo PLA varētu būt slidena.
3D dizains
- Izmantojot jau pastāvošo plaukstas skici, es mēģināju atdarināt mūsu plaukstu, izveidojot tai apļus, izmantojot loka komandu.
- Pēc tam es tos izspiedu dažādos augstumos un izmantoju filejas komandu, lai izlīdzinātu iekšējo "apļu" malas.
- Pēc tam es izveidoju kastīti ar tādiem pašiem izmēriem kā manu apstrādājamo vasku un ievietoju sava dizaina negatīvo, izmantojot kombaina griezumu.
CAM process
Kad dizains bija gatavs slīpēšanai, izmantojot galddatora CNC mašīnu, man bija jāģenerē gcode. Manā gadījumā es izmantoju CNC mašīnu Roland MDX-40!
- Pirmkārt, es iegāju Fusion360 CAM vidē.
- Pēc tam iestatīšanas izvēlnē es izvēlējos "jaunu iestatījumu".
- Izvēlējos pareizos parametrus (skat. Attēlus) un nospiedu OK.
- Tālāk 3D izvēlnē es izvēlējos adaptīvo tīrīšanu un izvēlējos pareizos parametrus pēc lietotā rīka ievietošanas, kā parādīts attēlos.
- Visbeidzot, es izvēlējos adaptīvo klīringu un noklikšķināju uz publicēšanas procesa. Es pārliecinājos, ka tas ir paredzēts roland mašīnai mdx-40, un noklikšķināju uz Labi, lai iegūtu gcode.
- Pēc tam es ar mašīnu izfrēzēju vaska bloku pēc sava dizaina.
Silīcija liešana
- Pirmkārt, es rūpīgi sajaucu divus silīcija šķīdumus, lai nerastos gaisa burbuļi, ievērojot datu lapu (saite atrodama uz materiāliem), ņemot vērā sajaukšanas attiecību, lietošanas laiku un demontāžas laiku.
- Pēc tam es ieleju to veidnē no zemākā punkta, pārliecinoties, ka kontaktpunkts paliek nemainīgs un ielietā šķīduma diametrs ir pēc iespējas plānāks, lai izvairītos no gaisa burbuļiem.
- Pēc silīcija liešanas manā veidnē man bija jāpārliecinās, vai iekšā nav gaisa burbuļu, tāpēc es drebēju veidni, izmantojot urbi ar slīpu naglu.
- Visbeidzot, kad es aizmirsu to izdarīt savā dizainā, pēc tam, kad tas bija gatavs, es ar caurumu knaiblēm iespiedu caurumus savā silīcijā tā, lai tie atbilstu caurumiem, kas bija uz plaukstas virsmas.
5. solis: elektronikas projektēšana un ražošana
Lai noformētu savu dēli un saprastu, kas notiek mikrokontrollera tapās, man bija jāizlasa tā datu lapa. Kā pamata PCB es izmantoju mikro satshakit un pēc tam to mainīju atbilstoši savas sistēmas vajadzībām.
Tā kā satshakit ir DIY arduino balstīta tāfele, es varētu to modificēt atbilstoši meklējumiem, kas saistīti ar manu daļu savienojumiem ar arduino. Tātad, miosensors savienojas ar arino, izmantojot vienu GND tapu, vienu VCC tapu un vienu analogo tapu. Tā kā viens servomotors izmanto vienu GND tapu, vienu VCC tapu un vienu PWM tapu. Tātad, man bija jāatklāj kopumā sešas GND un VCC tapas, ņemot vērā paneļa barošanu, vienu analogu un piecas PWM tapas. Tāpat man bija jāņem vērā, lai atklātu plāksnes programmēšanas tapas (kas ir MISO, MOSI, SCK, RST, VCC un GND).
Manis veiktie soļi bija šādi:
- Pirmkārt, es lejupielādēju micro-satshakit ērgļa failus.
- Tālāk, izmantojot Eagle, es modificēju mikro-satshakit atbilstoši savām vajadzībām. Rokasgrāmata par Eagle lietošanu ir atrodama šeit un šeit.
- Pēc dēļa sakņošanas es to eksportēju kā-p.webp" />
Kad manas plates iekšējie un ārējie ceļi ir png, ir pienācis laiks ģenerēt to gcode, lai to varētu frēzēt roland mdx-40 galddatora cnc mašīnā.. Gcode ģenerēšanai izmantoju fab moduļus. Iestatījumi, kas jāiestata fab moduļos un atrodami šeit.
Visbeidzot, es lodēju visu, kas man vajadzīgs, saskaņā ar manu ērgļa dēli. Shēmas un lodētā dēļa attēls ir atrodams iepriekš.
Iemesls, kāpēc izveidot savu PCB plāksni, nevis izmantot Arduino UNO, ir vieta, ko es ietaupu, lietojot savu plāksni.
6. darbība: montāža
Tātad, pēc pirkstu drukāšanas:
- Man bija jāizurbj iekšējie caurumi ar 3,5 mm diametra urbi un ārējie caurumi ar 3 mm diametra urbi. Iekšējie caurumi nozīmē daļu, kas, kad detaļas ir savienotas, ir no iekšpuses un ārpuses, daļa, kas savienota ir no ārpuses.
- Pēc tam man bija jāpielīmē pirmais ar otro pirkstu un trešais ar ceturto.
- Pēc tam es savienoju detaļas 1+2 ar 3+4 ar 5 caur mazajiem caurumiem, izmantojot kvēldiegu ar 3 mm diametru.
- Visbeidzot, pirksti bija gatavi salikt kopā ar plaukstu un pēc tam ar apakšdelmu.
Tātad, bija pienācis laiks izlaist makšķerēšanas līniju caur pirkstiem.
Viena līnija gāja no pirksta aizmugurējās puses caur cauruli uz pirksta plaukstas savienotāja un uz apakšdelmu, bet otra līnija no pirksta priekšpuses līdz caurumam plaukstas iekšpusē un apakšdelmam
Īpaša piezīme ir makšķerēšanas līnijas izlaišana caur koka gabalu, kuram ir caurums ar tā diametru, un jāizveido mezgls. Pretējā gadījumā, kad līnija tiek izvilkta, tā var iet uz leju pa pirkstu, kas ar mani notika neatkarīgi no tā, cik mezglu es izveidoju.
- Pēc tam, kad makšķerēšanas līnija ir izlaista caur pirkstiem, plauksta un apakšdelms ir jāsavieno ar dažām 3D drukātām skrūvēm,
- Es atkal izlaidu līnijas caur lāzera griezuma atveres slotu, lai tās atdalītu, un pēc tam pievienoju tās servomotoriem.
- Makšķerauklas piestiprināšana servo pareizajā stāvoklī ir nedaudz sarežģīta. Bet es izdarīju pirksta galējās pozīcijas un savienoju to ar servo galējo stāvokli.
- Kad esmu atradis pareizās pozīcijas, es urbju caurumus speciālajās servo spraugās un pieskrūvēju servos pareizajās vietās, pārliecinoties, ka divi no serviem ir nedaudz pacelti no pārējiem, pretējā gadījumā tie sadursies darbības laikā.
7. solis: programmēšana
Pirms programmas rakstīšanas man bija jāpanāk, lai modificēto mikrosatshakitu varētu ieprogrammēt. Lai to izdarītu, man bija jāveic šādas darbības:
- Pievienojiet Arduino Uno datoram.
- Zem rīkiem izvēlieties pareizo portu un Arduino Uno plati.
- Sadaļā> Fails> Piemēri atrodiet un atveriet skici "ArduinoISP".
- Augšupielādējiet skici Arduino.
- Atvienojiet Arduino no datora.
- Savienojiet dēli ar Arduino, ievērojot attēlā redzamo shēmu.
- Pievienojiet Arduino datoram.
- Atlasiet “Arduino/Genuino Uno” dēli un “Arduino kā ISP” programmētāju.
- Noklikšķiniet uz> Rīki> Burn Bootloader.
- Kad sāknēšanas ielādētājs ir veiksmīgi pabeigts, mēs varam uzrakstīt savu programmu:
// ieskaitot bibliotēku, kuru izmantoju servomotoriem
#include #include SoftwareSerial mySerial (7, 8); #define MYO_PIN A0 int sensorValue; pludiņa spriegums; // iecelt nosaukumu manam servo VarSpeedServo servo1; VarSpeedServo servo2; VarSpeedServo servo3; VarSpeedServo servo4; VarSpeedServo servo5; #definēt 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 #define THUMP_INFIN); // tapa, kurai pievienoju savu motora servo1.attach (THUMB_PIN); servo2.attach (INDEX_PIN); servo3.attach (MIDDLE_PIN); servo4.attach (RINGFINGER_PIN); servo5.attach (PINKY_PIN); defaultPosition (THUMB, 40); defaultPosition (INDEKSS, 40); defaultPosition (MIDDLE, 40); defaultPosition (RINGFINGER, 40); defaultPosition (PINKY, 40); mySerial.begin (9600); mySerial.print ("Inicializēšana …"); } void loop () {sensorValue = analogRead (A0); spriegums = sensorValue * (5.0 / 1023.0); mySerial.println (spriegums); kavēšanās (100); ja (spriegums> 1) {closePosition (PINKY, 60); closePosition (RINGFINGER, 60); closePosition (VIDUS, 60); closePosition (INDEKSS, 60); closePosition (THUMB, 60); } cits {openPosition (PINKY, 60); openPosition (RINGFIGER, 60); openPosition (MIDDLE, 60); openPosition (INDEKSS, 60); openPosition (THUMB, 60); }} void defaultPosition (uint8_t pirksts, uint8_t _speed) {if (pirksts == PINKY) servo5.write (90, _speed, true); else if (pirksts == RINGFINGER) servo4.write (70, _speed, true); else if (pirksts == MIDDLE) servo3.write (20, _speed, true); cits if (pirksts == INDEKSS) servo2.write (20, _speed, true); cits if (pirksts == ĪKŠIS) servo1.write (20, _speed, true); } void closePosition (uint8_t pirksts, uint8_t _speed) {if (pirksts == PINKY) servo5.write (180, _speed, true); else if (pirksts == RINGFINGER) servo4.write (180, _speed, true); else if (pirksts == MIDDLE) servo3.write (180, _speed, true); cits if (pirksts == INDEKSS) servo2.write (180, _speed, true); cits if (pirksts == ĪKŠIS) servo1.attach (180, _speed, true); } void openPosition (uint8_t pirksts, uint8_t _speed) {if (pirksts == PINKY) servo5.write (0, _speed, true); else if (pirksts == RINGFINGER) servo4.write (0, _speed, true); cits if (pirksts == MIDDLE) servo3.write (0, _speed, true); cits if (pirksts == INDEKSS) servo2.write (0, _speed, true); cits if (pirksts == ĪKŠIS) servo1.write (0, _speed, true); } // Pēc programmas uzrakstīšanas mēs to augšupielādējam uz tāfeles, izmantojot> Skice> Augšupielādēt, izmantojot programmētāju // Tagad jūs varat atvienot savu mikro satshakit no sava arduino un barot to caur barošanas banku // Un voila !! Jums ir rokas protēze
Ieteicams:
Pakāpiena ātruma kontroles izvēlne, kas darbojas Arduino: 6 soļi
Arduino darbināmā pakāpju ātruma kontroles izvēlne: Šī SpeedStepper bibliotēka ir pārrakstīta no AccelStepper bibliotēkas, lai varētu kontrolēt pakāpju motoru. SpeedStepper bibliotēka ļauj mainīt iestatīto motora apgriezienu skaitu un pēc tam paātrināt/palēnināt līdz jaunajam iestatītajam ātrumam, izmantojot to pašu algoritmu
LED jumta logs, kas darbojas ar saules enerģiju - modernizācija: 4 soļi
LED jumta logs, kas darbojas ar saules enerģiju - modernizācija: manā tumsā manos griestos sēdēja vecs jumta logs. Tas bija jumta remonta rezultāts. Jumta daļā esošais jumta logs bija jānoņem noplūdes dēļ, un tas ir pagājis jau dažus gadus. Runājot ar cilvēkiem par jauna jumta loga uzstādīšanu, es
Arduino šķēršļi, lai izvairītos no automašīnas, kas darbojas ar motoru: 7 soļi
Arduino šķēršļi, lai izvairītos no automašīnas, kas darbojas ar motoru: Sveiki! un laipni lūdzam apmācībā par to, kā izveidot Arduino šķēršļus, izvairoties no automašīnas. Mēs varam sākt, iegūstot šim projektam nepieciešamos materiālus, un pārliecinieties, ka jums ir jautri
Arduino rokas protēze: 4 soļi
Protēzes roka Arduino: izgatavoja Joey Pang Kieuw Moy G & I1C
Rokas tahikometrs uz rokas: 9 soļi
Rokas tahometrs, kas balstīts uz IR: šī pamācība ir balstīta uz ķēdi, ko portatīvajā digitālajā tahometrā ir aprakstījis electro18. Es domāju, ka būtu lietderīgi iegūt rokas ierīci un ka tas būtu jautrs projekts. Man patīk, kā ierīce izrādījās - dizains varētu būt