Indholdsfortegnelse:

Protetisk arm, der arbejder med en myosensor: 8 trin
Protetisk arm, der arbejder med en myosensor: 8 trin

Video: Protetisk arm, der arbejder med en myosensor: 8 trin

Video: Protetisk arm, der arbejder med en myosensor: 8 trin
Video: HARRY POTTER STUDIO TOUR LONDON | COMPLETE WALK THROUGH 2024, November
Anonim
Image
Image

Dette projekt er udviklingen af en protesearm til amputerede mennesker. Målet med dette projekt er oprettelsen af en overkommelig protesearm til mennesker, der ikke har råd til en professionel.

Da dette projekt stadig er i prototypefasen, kan det altid være bedre, for nu kan det kun åbne og lukke håndfladen og kunne gribe ting! Ikke desto mindre er det en DIY -protesearm, der kan udføres derhjemme eller på et lokalt fab -laboratorium.

Trin 1: Materialer, værktøjer og maskiner påkrævet

Maskiner:

  1. 3D printer
  2. Laserskærer
  3. Desktop CNC maskine

Værktøjer:

  1. Fiskesnøre
  2. 3 mm filament
  3. Bore
  4. Super lim
  5. Hultang
  6. Multimeter
  7. Lodde Station
  8. Bearbejdelig voks
  9. Silicon til forme

Materialer:

  1. Kobberark
  2. 1x ATMEGA328P-AU
  3. 1x 16MHz krystal
  4. 1x 10k modstand
  5. 2x 22pF kondensatorer
  6. 1x 10uF kondensator
  7. 1x 1uF kondensator
  8. 1x 0.1uF kondensator
  9. 1x Myosensor
  10. 5x mikro servomotorer
  11. 1x Arduino UNO

Software:

  1. Arduino IDE
  2. Fusion360
  3. Cura
  4. Ørn
  5. GIMP

Trin 2: 2D & 3D Design

2D & 3D Design
2D & 3D Design
2D & 3D Design
2D & 3D Design
2D & 3D Design
2D & 3D Design

3D Design

Det første trin var at designe fingrene, håndfladen og underarmen på protesearmen under hensyntagen til den elektronik, der ville gå i protesearmen. For at være ærlig, brugte jeg som base open source inmoov -projektet, og jeg startede derfra.

Håndfladen er en ret svær del at designe, da fingrene skal have forskellige forhold mellem dem. Så:

Fingre: Jeg downloadede fingrene fra inmoov -projektet.

Håndflade:

  1. Jeg skitserede først håndfladens layout og ekstruderede det.
  2. Derefter lavede jeg huller til forbindelser mellem finger og underarm ved hjælp af skitser, kommandoen cut og filetkommandoen.
  3. Derefter skulle jeg lave rør, for at jeg kunne passere fiskelinerne ind, så jeg kunne styre fingrene via motorerne.
  4. Endelig skulle der tilføjes huller inde i håndfladen, så lukning af håndfladen var mulig, når der blev trukket fiskesnoren.

Underarm:

  1. I forskellige planer lavede jeg to skitser og brugte kommandoen ellipse. Jeg brugte loft -kommandoen efter for at skabe den ønskede form.
  2. Efterfølgende blev shell -kommandoen brugt til at gøre den hul og split -kommandoen til at skære den i to, så jeg kan designe i den og for den bedste tilgængelighed, når jeg monterer min elektronik indeni.
  3. En skitse blev også lavet nær håndleddet, ekstruderet og forbundet med hovedunderarmen, så den kan forbinde med håndfladen.
  4. Da jeg havde synlighed til at designe inde i underarmen, lavede jeg en skitse i dimensionerne på de fem motorer, som jeg ville bruge, en til hver finger og mit printkort (printkort), som jeg ville bruge. Jeg ekstruderede dem, indtil de nåede den ønskede højde og slettede de unødvendige dele bag på cylinderen ved hjælp af backspace.
  5. Endelig blev åbninger til bolte designet på en måde, der ikke er så synlige på det overordnede design, for at underarmen kunne lukkes ved hjælp af lignende kommandoer som ovenfor.

Efter at have afsluttet designet valgte jeg hver krop og downloadede den som en.stl -fil, og jeg 3D -printede dem separat.

2D Design

Da jeg ville have mine fiskelinjer adskilt, mens de blev betjent af motorerne, besluttede jeg at lave vejledende slots til dem. Til dette behøvede jeg ikke rigtig at designe noget nyt, men brug den mindre ellipse til, da jeg brugte loftkommandoen til at oprette underarmen.

Jeg eksporterede dens skitse som en.dxf -fil, efter at jeg havde brugt laserskæreren. Efter at jeg havde haft min ønskede form, borede jeg huller på 0,8 mm inde i slidsen, som jeg fandt nødvendige.

Trin 3: 3D -udskrivning

3D -udskrivning
3D -udskrivning
3D -udskrivning
3D -udskrivning
3D -udskrivning
3D -udskrivning
3D -udskrivning
3D -udskrivning

Efter at have eksporteret hver stl -fil, brugte jeg Cura til at generere.gcode for de forskellige dele af fingre, håndfladen og underarmen. De anvendte indstillinger er illustreret på billederne ovenfor. Materialet i de 3D -trykte dele er PLA.

Trin 4: Støbning og støbning

Støbning og støbning
Støbning og støbning
Støbning og støbning
Støbning og støbning
Støbning og støbning
Støbning og støbning

Formålet med støbningen af håndfladen er, at den protetiske arm skal have et stærkere greb, da PLA kan være glat.

3D Design

  1. Ved hjælp af den allerede eksisterende skitse af håndfladen forsøgte jeg at efterligne vores håndflade ved at designe slags cirkler til den ved hjælp af lysbue-kommandoen.
  2. Efterfølgende ekstruderede jeg dem i forskellige højder og brugte filetkommandoen til at udglatte kanterne af de indvendige "cirkler".
  3. Derefter designede jeg en kasse med de samme dimensioner som min bearbejdelige voks, og jeg lagde det negative ved mit design der ved hjælp af snittet i mejetærsker -kommandoen.

CAM -proces

Efter at have designet klar til at blive fræset ved hjælp af den stationære CNC -maskine, var jeg nødt til at generere gcode til det. I mit tilfælde brugte jeg Roland MDX-40 CNC-maskinen!

  1. Først gik jeg ind i CAM -miljøet i Fusion360.
  2. Derefter valgte jeg en "ny opsætning" i opsætningsmenuen.
  3. Jeg valgte de rigtige parametre (se billeder) og trykkede ok.
  4. Dernæst under 3D -menuen valgte jeg adaptiv clearing og valgte de rigtige parametre efter at have indsat det værktøj, jeg brugte som vist på billederne.
  5. Endelig valgte jeg den adaptive clearing og klikkede på postprocessen. Jeg sørgede for, at det var til roland-maskinen mdx-40 og klikkede ok for at få gcode.
  6. Derefter fræste jeg blokken voks i henhold til mit design ved hjælp af maskinen.

Støbning af silicium

  1. Først blandede jeg de to opløsninger af silicium omhyggeligt for ikke at forårsage luftbobler, efter databladet (link fundet på materialerne), under hensyntagen til blandingsforholdet, brugstiden og nedformningstiden.
  2. Derefter hældte jeg det i min form fra det laveste punkt og sørgede for, at kontaktpunktet forblev konstant, og diameteren af den hældte opløsning var så tynd som muligt for at undgå luftbobler.
  3. Efter at have støbt siliconen i min form, måtte jeg sikre mig, at der ikke var luftbobler indeni, så jeg skælvede i formen ved hjælp af en boremaskine med et skråt søm.
  4. Da jeg til sidst glemte at gøre det i mit design, slog jeg huller i mit silicium, efter at det var klar, ved hjælp af hultangen, på en måde, så de matchede hullerne på håndfladens overflade.

Trin 5: Elektronisk design og produktion

Elektronik Design og produktion
Elektronik Design og produktion
Elektronik Design og produktion
Elektronik Design og produktion
Elektronik Design og produktion
Elektronik Design og produktion

For at designe mit bord og forstå, hvad der foregår i stifterne på mikrokontrolleren, var jeg nødt til at læse databladet for det. Som en base PCB brugte jeg mikro satshakit, og derefter ændrede jeg det i henhold til mit systems behov.

Da satshakit er et DIY-arduino-baseret bord, kunne jeg ændre det i henhold til mine søgninger efter forbindelser mellem mine dele og arduinoen. Så myosensoren opretter forbindelse til arduinoen ved hjælp af en GND -pin, en VCC -pin og en analog pin. Hvorimod en servomotor bruger en GND -pin, en VCC -pin og en PWM -pin. Så jeg var nødt til at afsløre i alt seks GND- og VCC -stifter under hensyntagen til tavlens strømforsyning, en analog og fem PWM -ben. Jeg var også nødt til at tage i betragtning at afsløre stifterne til programmering af tavlen (som er MISO, MOSI, SCK, RST, VCC og GND).

De trin, jeg tog, var:

  1. Først downloadede jeg ørnfilerne til mikro-satshakit.
  2. Dernæst ændrede jeg mikro-satshakit efter mine behov ved hjælp af Eagle. En guide til, hvordan du bruger Eagle, kan findes her og her.
  3. Efter at have rodført mit bord eksporterede jeg det som en-p.webp" />

Efter at have haft mine interne og eksterne stier som png, er det tid til at generere gcoden for dem for at kunne fræse den i roland mdx-40 desktop cnc-maskine. Til generering af.gcode brugte jeg fab moduler. De indstillinger, der skal indstilles i fab moduler og findes her.

Til sidst lod jeg alt, hvad jeg havde brug for, i henhold til mit ørnebræt. Billedet af skematisk og loddet bord kan findes ovenfor.

Grunden til at lave mit eget printkort i stedet for at bruge en Arduino UNO er den plads, jeg sparer, når jeg bruger mit eget bord.

Trin 6: Montering

montage
montage
montage
montage
montage
montage

Så efter at fingrene blev trykt:

  1. Jeg var nødt til at bore de indvendige huller med en 3,5 mm diameter bor og de udvendige huller med en 3 mm diameter bor. Indvendige huller betyder den del, at når delene er forbundet, er det indefra og udvendigt hul, den del, der når det er forbundet, er udefra.
  2. Derefter måtte jeg superlim til først med den anden finger og den tredje med den fjerde.
  3. Derefter forbandt jeg dele 1+2 med 3+4 med 5 gennem de små huller ved hjælp af en glødetråd med en diameter på 3 mm.
  4. Endelig var fingrene klar til at blive samlet med håndfladen og derefter med underarmen.

Så det var på tide at passere fiskelinjen gennem fingrene.

Den ene linje gik fra bagsiden af fingeren gennem røret på finger-håndfladestikket og til underarmen, og den anden linje gik fra forsiden af fingeren til hullet på indersiden af håndfladen og til underarmen

En særlig note er at føre fiskelinjen gennem et træstykke, der har et hul med diameteren på den og lave en knude. Ellers når linjen trækkes, kan den gå ned ad fingeren, hvilket skete for mig, uanset hvor mange knob jeg lavede.

  • Efter at fiskelinjen er ført gennem fingrene, skal håndfladen og underarmen forbindes med nogle 3D -trykte botsbolte,
  • Jeg passerede linjerne igen gennem laserskåret hulspalte for at adskille dem og sluttede dem derefter til servomotorer.
  • At fastgøre fiskelinjen til servoens rigtige position er lidt udfordrende. Men det, jeg gjorde, var at tage fingerens ekstreme positioner og forbinde den med servoens ekstreme position.
  • Efter at jeg havde fundet de korrekte positioner, borede jeg huller i de særlige åbninger til servoerne og skruede servoerne til de rigtige steder for at sikre, at to af servoerne var lidt forhøjede fra de andre, ellers ville de kollidere under deres operation.

Trin 7: Programmering

Programmering
Programmering

Inden jeg skrev programmet, var jeg nødt til at få den modificerede mikro-satshakit til at kunne programmeres. For at gøre det skulle jeg følge nedenstående trin:

  1. Tilslut Arduino Uno til pc'en.
  2. Vælg den rigtige port og Arduino Uno -kortet under værktøjer.
  3. Find og åbn "ArduinoISP" -skitse under> Filer> Eksempler.
  4. Upload skitsen til Arduino.
  5. Afbryd Arduino fra pc'en.
  6. Tilslut kortet med Arduino efter skematikken på billedet.
  7. Tilslut Arduino til pc'en.
  8. Vælg "Arduino/Genuino Uno" -kortet og "Arduino som ISP" -programmerer.
  9. Klik for at> Værktøjer> Burn Bootloader.
  10. Når bootloaderen er udført, kan vi skrive vores program:

// inklusive biblioteket, som jeg brugte til servomotorer

#include #include SoftwareSerial mySerial (7, 8); #define MYO_PIN A0 int sensorValue; flyde spænding; // udpege et navn til min servo VarSpeedServo servo1; VarSpeedServo servo2; VarSpeedServo servo3; VarSpeedServo servo4; 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 #define THUMBP_ (INFIN THINBIN_)); // nålen, som jeg vedhæftede min motorservo1.attach (THUMB_PIN); servo2.attach (INDEX_PIN); servo3.attach (MIDDLE_PIN); servo4.attach (RINGFINGER_PIN); servo5.attach (PINKY_PIN); defaultPosition (THUMB, 40); defaultPosition (INDEX, 40); defaultPosition (MIDDEL, 40); defaultPosition (RINGFINGER, 40); defaultPosition (PINKY, 40); mySerial.begin (9600); mySerial.print ("Initialiserer …"); } void loop () {sensorValue = analogRead (A0); spænding = sensorVærdi * (5,0 / 1023,0); mySerial.println (spænding); forsinkelse (100); hvis (spænding> 1) {closePosition (PINKY, 60); closePosition (RINGFINGER, 60); closePosition (MIDDEL, 60); closePosition (INDEX, 60); closePosition (THUMB, 60); } else {openPosition (PINKY, 60); openPosition (RINGFIGER, 60); openPosition (MIDDEL, 60); openPosition (INDEX, 60); openPosition (THUMB, 60); }} void defaultPosition (uint8_t finger, uint8_t _speed) {if (finger == PINKY) servo5.write (90, _speed, true); ellers hvis (finger == RINGFINGER) servo4.write (70, _hastighed, sand); ellers hvis (finger == MIDT) servo3.write (20, _hastighed, sand); ellers hvis (finger == INDEX) servo2.write (20, _hastighed, sand); ellers hvis (finger == THUMB) servo1.write (20, _hastighed, sand); } void closePosition (uint8_t finger, uint8_t _speed) {if (finger == PINKY) servo5.write (180, _speed, true); ellers hvis (finger == RINGFINGER) servo4.write (180, _hastighed, sand); ellers hvis (finger == MIDT) servo3.write (180, _hastighed, sand); ellers hvis (finger == INDEX) servo2.write (180, _hastighed, sand); ellers hvis (finger == THUMB) servo1.attach (180, _hastighed, sand); } void openPosition (uint8_t finger, uint8_t _speed) {if (finger == PINKY) servo5.write (0, _speed, true); ellers hvis (finger == RINGFINGER) servo4.write (0, _hastighed, sand); ellers hvis (finger == MIDT) servo3.write (0, _hastighed, sand); ellers hvis (finger == INDEX) servo2.write (0, _hastighed, sand); ellers hvis (finger == THUMB) servo1.write (0, _hastighed, sand); } // Efter at have skrevet programmet uploader vi det til tavlen ved> Skitse> Upload ved hjælp af programmerer // Nu kan du fjerne din mikrosatshakit fra din arduino og drive den gennem powerbanken // Og voila !! Du har en protetisk arm

Anbefalede: