INHOUDSOPGAWE:

Prostetiese arm wat met 'n myosensor werk: 8 stappe
Prostetiese arm wat met 'n myosensor werk: 8 stappe

Video: Prostetiese arm wat met 'n myosensor werk: 8 stappe

Video: Prostetiese arm wat met 'n myosensor werk: 8 stappe
Video: MAKKELIJK HOGE CIJFERS HALEN! mijn geheimen + tips 2024, November
Anonim
Image
Image

Hierdie projek is die ontwikkeling van 'n prostetiese arm vir geamputeerde mense. Die doel van hierdie projek is die skep van 'n bekostigbare prostetiese arm vir mense wat nie 'n professionele een kan bekostig nie.

Aangesien hierdie projek nog in die prototiperingsfase is, kan dit altyd beter wees, want dit kan nou net die palm oopmaak en toemaak om dinge te gryp! Dit is nietemin 'n DIY -prostetiese arm wat tuis of in 'n plaaslike laboratorium gedoen kan word.

Stap 1: benodig materiaal, gereedskap en masjiene

Masjiene:

  1. 3D -drukker
  2. Lasersnyer
  3. Desktop CNC masjien

Gereedskap:

  1. Vislyn
  2. 3 mm filament
  3. Boor
  4. Wondergom
  5. Gat tang
  6. Multimeter
  7. Soldeerstasie
  8. Verwerkbare was
  9. Silikon vir vorms

Materiaal:

  1. Koperblad
  2. 1x ATMEGA328P-AU
  3. 1x 16 MHz kristal
  4. 1x 10k weerstand
  5. 2x 22pF kapasitors
  6. 1x 10uF kapasitor
  7. 1x 1uF kapasitor
  8. 1x 0.1uF kapasitor
  9. 1x Myosensor
  10. 5x mikroservomotors
  11. 1x Arduino UNO

Sagteware:

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

Stap 2: 2D- en 3D -ontwerp

2D- en 3D -ontwerp
2D- en 3D -ontwerp
2D- en 3D -ontwerp
2D- en 3D -ontwerp
2D- en 3D -ontwerp
2D- en 3D -ontwerp

3D ontwerp

Die eerste stap was om die vingers, palm en voorarm van die prostetiese arm te ontwerp, met inagneming van die elektronika wat in die prostetiese arm sou kom. Om eerlik te wees, het ek die open source inmoov -projek as basis gebruik en van daar af begin.

Die palm is baie moeilik om te ontwerp, aangesien die vingers verskillende verhoudings moet hê. Dus:

Vingers: Ek het die vingers van die inmoov -projek afgelaai.

Palm:

  1. Ek het eers die uitleg van die palm geskets en dit uitgedruk.
  2. Toe maak ek gate vir die verbindings van die vinger en onderarm met behulp van sketse, die snyopdrag en die filetopdrag.
  3. Daarna moes ek buise maak sodat ek die vislyne kon deurlaat sodat ek die vingers via die motors kon beheer.
  4. Laastens moes gate in die palm gevoeg word sodat die palm toegemaak kon word wanneer die vislyn getrek word.

Voorarm:

  1. Op verskillende vlakke het ek twee sketse gemaak en die ellipsopdrag gebruik. Ek het die loft -opdrag daarna gebruik om die gewenste vorm te skep.
  2. Daarna is die dopopdrag gebruik om dit hol te maak en die gesplete opdrag om dit in twee te sny, sodat ek daarin kan ontwerp en vir die beste toeganklikheid vir wanneer ek my elektronika binne monteer.
  3. 'N Skets is ook naby die pols gemaak, geëxtrudeer en verbind met die hoof voorarm sodat dit met die palm kan verbind.
  4. Met die sigbaarheid om binne -in die voorarm te ontwerp, het ek 'n skets gemaak met die afmetings van die vyf motors wat ek sou gebruik, een vir elke vinger en my PCB (printboard) wat ek sou gebruik. Ek het dit toe uitgedruk totdat hulle die gewenste hoogte bereik het en die onnodige dele agter in die silinder met agterkant verwyder.
  5. Laastens is openinge vir boute ontwerp, op 'n manier wat nie so sigbaar is in die algehele ontwerp nie, sodat die onderarm gesluit kan word met soortgelyke opdragte soos hierbo.

Nadat ek die ontwerp voltooi het, het ek elke liggaam gekies en dit as 'n.stl -lêer afgelaai en dit afsonderlik in 3D afgedruk.

2D -ontwerp

Aangesien ek wou hê dat my vislyne geskei moet word terwyl hulle deur die motors bestuur word, het ek besluit om leidingsplekke vir hulle te maak. Hiervoor hoef ek nie regtig iets nuuts te ontwerp nie, maar ek gebruik die kleiner ellips wanneer ek die loft -opdrag gebruik om die voorarm te skep.

Ek het die skets daarvan uitgevoer as 'n.dxf -lêer nadat ek die lasersnyer gebruik het. Nadat ek die gewenste vorm gehad het, het ek gate van 0,8 mm in die gleuf geboor wat ek nodig gevind het.

Stap 3: 3D -druk

3D druk
3D druk
3D druk
3D druk
3D druk
3D druk
3D druk
3D druk

Nadat ek elke stl -lêer uitgevoer het, het ek Cura gebruik om die.gcode van die verskillende dele van die vingers, die palm en die voorarm te genereer. Die gebruikte instellings word geïllustreer op die foto's hierbo. Die materiaal van die 3D -gedrukte onderdele is PLA.

Stap 4: Giet en giet

Giet en giet
Giet en giet
Giet en giet
Giet en giet
Giet en giet
Giet en giet

Die doel van die giet van die palm is dat die prostetiese arm 'n sterker greep het, aangesien PLA glad kan wees.

3D ontwerp

  1. Met behulp van die bestaande skets van die palm, het ek probeer om ons palm na te boots deur 'n soort sirkels daarin te ontwerp met behulp van die boogopdrag.
  2. Daarna het ek dit op verskillende hoogtes geëxtrudeer en die filetopdrag gebruik om die rande van die binnekant "sirkels" glad te maak.
  3. Toe ontwerp ek 'n boks met dieselfde afmetings as my verwerkbare was, en ek plaas die negatiewe van my ontwerp daar met die snit in die kombineeropdrag.

CAM -proses

Nadat die ontwerp gereed was om met die desktop CNC -masjien gefrees te word, moes ek die gcode daarvoor genereer. In my geval gebruik ek die Roland MDX-40 CNC-masjien!

  1. Eerstens het ek by die CAM -omgewing van Fusion360 aangegaan.
  2. Toe kies ek 'n 'nuwe opstelling' in die instellingsmenu.
  3. Ek het die regte parameters gekies (sien foto's) en op OK gedruk.
  4. Vervolgens het ek onder die 3D -spyskaart gekies vir aanpasbare skoonmaak en die regte parameters gekies nadat ek die gereedskap wat ek gebruik het, soos op die foto's, ingevoeg het.
  5. Laastens het ek die aanpasbare skoonmaak gekies en op die posproses geklik. Ek het seker gemaak dat dit vir die roland-masjien mdx-40 was en op ok geklik om die gcode te kry.
  6. Daarna het ek die wasblok volgens my ontwerp met die masjien gemaal.

Giet die silikon

  1. Eerstens het ek die twee oplossings van silikon versigtig gemeng om geen lugborrels te veroorsaak nie, volgens die datablad (skakel op die materiaal), met inagneming van die mengverhouding, die gebruiksduur en die vervormingstyd.
  2. Toe gooi ek dit in my vorm vanaf die laagste punt om seker te maak dat die kontakpunt konstant bly en die deursnee van die gegote oplossing so dun as moontlik is om lugborrels te voorkom.
  3. Nadat ek die silikon in my vorm gegooi het, moes ek seker maak dat daar geen lugborrels binne was nie, en ek het die vorm geskud met 'n boor met 'n skuins spyker.
  4. Aangesien ek vergeet het om dit in my ontwerp te doen, het ek gate in my silikon geslaan nadat dit gereed was, met die tang, sodat dit ooreenstem met die gate wat op die oppervlak van die palm was.

Stap 5: Ontwerp en produksie van elektronika

Elektroniese ontwerp en produksie
Elektroniese ontwerp en produksie
Elektroniese ontwerp en produksie
Elektroniese ontwerp en produksie
Elektroniese ontwerp en produksie
Elektroniese ontwerp en produksie

Om my bord te ontwerp en te verstaan wat in die penne van die mikrobeheerder aangaan, moes ek die datablad daarvan lees. As 'n basiese PCB het ek die mikro -satshakit gebruik en dit verander volgens die behoeftes van my stelsel.

Aangesien satshakit 'n DIY-arduino-gebaseerde bord is, kan ek dit aanpas volgens my soektogte na verbindings van my dele met die arduino. Die myosensor verbind dus met die arduino met behulp van een GND -pen, een VCC -pen en een analoog pen. Terwyl een servomotor een GND -pen, een VCC -pen en een PWM -pen gebruik. Dus moes ek in totaal ses GND- en VCC -penne blootstel, met inagneming van die krag van die bord, een analoog en vyf PWM -penne. Ek moes ook in ag neem om die penne bloot te lê vir die programmering van die bord (wat MISO, MOSI, SCK, RST, VCC en GND is).

Die stappe wat ek geneem het was:

  1. Eerstens het ek die arendlêers van die mikro-satshakit afgelaai.
  2. Vervolgens het ek die mikro-satshakit aangepas volgens my behoeftes met behulp van Eagle. 'N Gids oor die gebruik van Eagle kan hier en hier gevind word.
  3. Nadat ek my bord gewortel het, het ek dit as 'n-p.webp" />

Nadat ek die interne en eksterne paaie van my bord as-p.webp

Laastens het ek alles gesoldeer volgens my arendbord. Die prentjie van die skematiese en gesoldeerde bord kan hierbo gevind word.

Die rede waarom ek my eie PCB -bord moet maak in plaas van om 'n Arduino UNO te gebruik, is die ruimte wat ek spaar as ek my eie bord gebruik.

Stap 6: Montering

Vergadering
Vergadering
Vergadering
Vergadering
Vergadering
Vergadering

Dus, nadat die vingers gedruk is:

  1. Ek moes die binnegate boor met 'n boor met 'n deursnee van 3,5 mm en die buitegate met 'n boor met 'n deursnee van 3 mm. Binne -gate beteken die deel dat wanneer die dele verbind is, dit van binne en buite is, die deel wat van buite af is wanneer dit verbind is.
  2. Daarna moes ek die eerste keer met die tweede vinger en die derde met die vierde een gom.
  3. Daarna het ek dele 1+2 met 3+4 met 5 deur die gaatjies verbind met 'n filament met 'n deursnee van 3 mm.
  4. Laastens was die vingers gereed om met die handpalm en dan met die voorarm saamgevoeg te word.

Dit is dus tyd om die vislyn deur die vingers te steek.

Die een lyn gaan van die agterkant van die vinger deur die pyp op die vinger-palm-aansluiting en na die voorarm, en die ander lyn gaan van die voorkant van die vinger na die gat aan die binnekant van die palm en na die voorarm

'N Spesiale nota is om die vislyn deur 'n stuk hout te steek wat 'n gat met die deursnee daarvan het en 'n knoop te maak. Andersins, as die lyn getrek word, kan dit met die vinger afgaan, wat met my gebeur het, maak nie saak hoeveel knope ek gemaak het nie.

  • Nadat die vislyn deur die vingers gegaan is, moet die palm en die voorarm met 'n paar 3D -gedrukte boutboute verbind word,
  • Ek het weer die lyne deur die lasergesnyde gatgleuf gegaan om dit te skei en dit dan aan die servomotors gekoppel.
  • Dit is 'n bietjie uitdagend om die vislyn aan die regte posisie van die servo vas te maak. Maar wat ek gedoen het, was om die ekstreme posisies van die vinger in te neem en dit aan die uiterste posisie van die servo te koppel.
  • Nadat ek die regte posisies gevind het, het ek gate in die spesiale gleuwe vir die servo's geboor en die servo's op die regte plekke vasgeskroef om seker te maak dat twee van die servo's effens van die ander verhef word, anders bots hulle tydens hul operasie.

Stap 7: Programmering

Programmering
Programmering

Voordat ek die program skryf, moes ek die gewysigde mikro-satshakit laat programmeer. Om dit te doen, moes ek die onderstaande stappe volg:

  1. Koppel die Arduino Uno aan die rekenaar.
  2. Kies die regte poort en die Arduino Uno -bord onder gereedskap.
  3. Onder> Lêer> Voorbeelde, vind en maak 'ArduinoISP' skets oop.
  4. Laai die skets op na die Arduino.
  5. Ontkoppel die Arduino van die rekenaar.
  6. Verbind die bord met die Arduino volgens die skematiese op die foto.
  7. Koppel die Arduino aan die rekenaar.
  8. Kies die bord "Arduino/Genuino Uno" en die programmeerder "Arduino as ISP".
  9. Klik op> Tools> Burn Bootloader.
  10. Nadat die opstartlaaier suksesvol voltooi is, kan ons ons program skryf:

// insluitend die biblioteek wat ek vir die servomotore gebruik het

#include #include SoftwareSerial mySerial (7, 8); #definieer MYO_PIN A0 int sensorValue; dryfspanning; // stel 'n naam aan vir my 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 THUMBIN (INPUT 6); // die pen wat ek my motor servo1.attach (THUMB_PIN) aangeheg het; servo2.aanheg (INDEX_PIN); servo3.aanheg (MIDDLE_PIN); servo4.aanheg (RINGFINGER_PIN); servo5.aanheg (PINKY_PIN); defaultPosition (THUMB, 40); defaultPosition (INDEX, 40); defaultPosition (MIDDEL, 40); defaultPosition (RINGFINGER, 40); defaultPosition (PINKY, 40); mySerial.begin (9600); mySerial.print ("Initialiseer …"); } leemte -lus () {sensorValue = analogRead (A0); spanning = sensorwaarde * (5.0 / 1023.0); mySerial.println (spanning); vertraging (100); as (spanning> 1) {closePosition (PINKY, 60); closePosition (RINGFINGER, 60); closePosition (MIDDEL, 60); closePosition (INDEX, 60); closePosition (THUMB, 60); } anders {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); anders as (vinger == RINGFINGER) servo4.write (70, _snelheid, waar); anders as (vinger == MIDDEL) servo3.write (20, _snelheid, waar); anders as (vinger == INDEX) servo2.write (20, _snelheid, waar); anders as (vinger == THUMB) servo1.write (20, _snelheid, waar); } void closePosition (uint8_t finger, uint8_t _speed) {if (finger == PINKY) servo5.write (180, _speed, true); anders as (vinger == RINGFINGER) servo4.write (180, _snelheid, waar); anders as (vinger == MIDDEL) servo3.write (180, _snelheid, waar); anders as (vinger == INDEX) servo2.write (180, _snelheid, waar); anders as (vinger == THUMB) servo1.attach (180, _speed, true); } void openPosition (uint8_t finger, uint8_t _speed) {if (finger == PINKY) servo5.write (0, _speed, true); anders as (vinger == RINGFINGER) servo4.write (0, _snelheid, waar); anders as (vinger == MIDDEL) servo3.write (0, _snelheid, waar); anders as (vinger == INDEX) servo2.write (0, _snelheid, waar); anders as (vinger == THUMB) servo1.write (0, _speed, true); } // Nadat ons die program geskryf het, laai ons dit op na die bord deur> Skets> op te laai met behulp van programmeerder // Nou kan u u mikro -satshakit van u arduino ontkoppel en dit deur die kragbank stuur // En voila !! Jy het 'n prostetiese arm

Aanbeveel: