Cuprins:

Brațul protetic care lucrează cu un miozensor: 8 pași
Brațul protetic care lucrează cu un miozensor: 8 pași

Video: Brațul protetic care lucrează cu un miozensor: 8 pași

Video: Brațul protetic care lucrează cu un miozensor: 8 pași
Video: eBihoreanul.ro: Un orădean care face roboți pentru parcuri de distracții a realizat o mână bionică 2024, Noiembrie
Anonim
Image
Image

Acest proiect este dezvoltarea unui braț protetic pentru persoanele amputate. Scopul acestui proiect este crearea unui braț protetic accesibil pentru persoanele care nu își pot permite unul profesional.

Deoarece acest proiect este încă în faza de prototipare, poate fi întotdeauna mai bun, deoarece deocamdată poate deschide și închide palma doar pentru a putea apuca lucruri! Cu toate acestea, este un braț protetic DIY care poate fi făcut acasă sau la un laborator local de fab.

Pasul 1: Materiale, scule și mașini necesare

Mașini:

  1. imprimantă 3d
  2. Cutter cu laser
  3. Mașină CNC desktop

Instrumente:

  1. Linia de pescuit
  2. Filament de 3 mm
  3. Burghiu
  4. Super-lipici
  5. Cleste cu gauri
  6. Multimetru
  7. Stație de lipit
  8. Ceară prelucrabilă
  9. Silicon pentru matrite

Materiale:

  1. Foaie de cupru
  2. 1x ATMEGA328P-AU
  3. 1x cristal de 16 MHz
  4. 1x rezistor de 10k
  5. 2x condensatori 22pF
  6. 1x condensator 10uF
  7. 1x condensator 1uF
  8. 1x condensator 0.1uF
  9. 1x Myosensor
  10. 5 servo-motoare micro
  11. 1x Arduino UNO

Software:

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

Pasul 2: Design 2D și 3D

Design 2D și 3D
Design 2D și 3D
Design 2D și 3D
Design 2D și 3D
Design 2D și 3D
Design 2D și 3D

Proiectare 3D

Primul pas a fost să proiectăm degetele, palma și antebrațul brațului protetic, luând în considerare componentele electronice care ar intra în brațul protetic. Pentru a fi sincer, am folosit ca bază proiectul open source inmoov și am început de acolo.

Palma este o parte destul de greu de proiectat, deoarece degetele ar trebui să aibă rapoarte diferite între ele. Asa de:

Degete: am descărcat degetele din proiectul inmoov.

Palmier:

  1. Am schițat mai întâi aspectul palmei și l-am extrudat.
  2. Apoi am făcut găuri pentru conexiunile degetului și antebrațului folosind schițe, comanda de tăiere și comanda de file.
  3. După aceea, a trebuit să fac tuburi pentru a putea trece liniile de pescuit, astfel încât să pot controla degetele prin intermediul motoarelor.
  4. În cele din urmă, trebuiau adăugate găuri în interiorul palmei, astfel încât închiderea palmei să fie posibilă la tragerea firului de pescuit.

Antebraț:

  1. În diferite planuri, am creat două schițe și am folosit comanda elipsă. Am folosit comanda loft după pentru a crea forma dorită.
  2. După aceea, comanda shell a fost folosită pentru a o face goală și comanda split pentru a o tăia în jumătate, astfel încât să pot proiecta în ea și pentru cea mai bună accesibilitate atunci când îmi montez electronica în interior.
  3. De asemenea, s-a făcut o schiță lângă încheietura mâinii, extrudată și unită cu antebrațul principal, astfel încât să se poată conecta cu palma.
  4. Având vizibilitatea de proiectat în interiorul antebrațului, am creat o schiță în dimensiunile celor cinci motoare pe care le-aș folosi, câte unul pentru fiecare deget și PCB-ul meu (placa cu circuite imprimate) pe care aș folosi-o. Apoi le-am extrudat până când au atins înălțimea dorită și am șters părțile inutile din spatele cilindrului folosind spațiul din spate.
  5. În cele din urmă, deschiderile pentru șuruburi au fost proiectate, într-un mod care nu este atât de vizibil pe designul general, pentru ca antebrațul să poată fi închis folosind comenzi similare celor de mai sus.

Finalizând designul, am selectat fiecare corp și l-am descărcat ca fișier.stl și le-am tipărit 3D separat.

Proiectare 2D

Deoarece am vrut ca liniile de pescuit să fie separate în timp ce acestea sunt acționate de motoare, am decis să le creez sloturi de ghidare. Pentru aceasta, nu a trebuit să proiectez nimic nou, ci să folosesc elipsa mai mică atunci când am folosit comanda loft pentru a crea antebrațul.

I-am exportat schița ca fișier.dxf după ce am folosit tăietorul laser. După ce am avut forma dorită, am făcut găuri de 0,8 mm în interiorul slotului pe care l-am considerat necesar.

Pasul 3: Imprimare 3D

printare 3d
printare 3d
printare 3d
printare 3d
printare 3d
printare 3d
printare 3d
printare 3d

După ce am exportat fiecare fișier stl, am folosit Cura pentru a genera codul.g al diferitelor părți ale degetelor, palmei și antebrațului. Setările utilizate sunt ilustrate în imaginile de mai sus. Materialul pieselor imprimate 3D este PLA.

Pasul 4: Turnare și turnare

Turnare și turnare
Turnare și turnare
Turnare și turnare
Turnare și turnare
Turnare și turnare
Turnare și turnare

Scopul aruncării palmei este ca brațul protetic să aibă o prindere mai puternică, deoarece PLA ar putea fi alunecos.

Proiectare 3D

  1. Folosind schița preexistentă a palmei, am încercat să imită palma noastră proiectând un fel de cercuri folosind comanda arc.
  2. După aceea, le-am extrudat la diferite înălțimi și am folosit comanda de file pentru a netezi marginile „cercurilor” interioare.
  3. Apoi, am proiectat o cutie cu aceleași dimensiuni ca ceara mea prelucrabilă și am pus negativul designului meu acolo folosind tăietura din comanda combinată.

Procesul CAM

După ce am pregătit proiectarea pentru a fi prelucrată folosind mașina CNC desktop, a trebuit să generez codul g pentru asta. În cazul meu, foloseam mașina CNC Roland MDX-40!

  1. În primul rând, am intrat în mediul CAM al Fusion360.
  2. Apoi, am selectat o „nouă configurație” din meniul de configurare.
  3. Am ales parametrii corecti (vezi imagini) și am apăsat ok.
  4. Apoi, în meniul 3D, am ales compensarea adaptivă și am selectat parametrii corecți după introducerea instrumentului pe care l-am folosit așa cum se arată în imagini.
  5. În cele din urmă, am ales compensarea adaptivă și am făcut clic pe procesul de postare. M-am asigurat că este pentru mașina roland mdx-40 și am făcut clic pe ok pentru a obține codul gcode.
  6. După aceea, am frezat blocul de ceară conform proiectului meu folosind mașina.

Aruncarea siliconului

  1. În primul rând, am amestecat cu grijă cele două soluții de siliciu pentru a nu provoca bule de aer, urmând fișa tehnică (link găsit pe materiale), luând în considerare raportul de amestecare, durata de viață și timpul de formare.
  2. Apoi, l-am turnat în matrița mea din cel mai jos punct asigurându-mă că punctul de contact rămâne constant și că diametrul soluției turnate a fost cât mai subțire posibil, pentru a evita bulele de aer.
  3. După ce am aruncat siliciu în matrița mea, a trebuit să mă asigur că nu sunt bule de aer înăuntru, așa că am tremurat matrița folosind un burghiu cu un cui oblic.
  4. În cele din urmă, după ce am uitat să o fac în proiectarea mea, am perforat găuri în siliciu după ce a fost gata, folosind cleștele pentru găuri, într-un mod care să se potrivească cu găurile care erau pe suprafața palmei.

Pasul 5: Proiectare și producție electronică

Proiectare și producție electronică
Proiectare și producție electronică
Proiectare și producție electronică
Proiectare și producție electronică
Proiectare și producție electronică
Proiectare și producție electronică

Pentru a-mi proiecta placa și a înțelege ce se întâmplă în pinii microcontrolerului, a trebuit să citesc fișa tehnică a acestuia. Ca PCB de bază, am folosit micro satshakit și apoi l-am modificat în funcție de nevoile sistemului meu.

Deoarece satshakit este o placă DIY bazată pe arduino, aș putea să o modific în funcție de căutările mele pentru conexiunile părților mele cu arduino. Deci, miozensorul se conectează la arduino folosind un pin GND, un pin VCC și un pin analogic. În timp ce un servomotor folosește un pin GND, un pin VCC și un pin PWM. Așadar, a trebuit să expun în total șase pini GND și VCC, luând în considerare alimentarea plăcii, un analog și cinci pini PWM. De asemenea, a trebuit să iau în considerare expunerea pinilor pentru programarea plăcii (care sunt MISO, MOSI, SCK, RST, VCC și GND).

Pașii pe care i-am făcut au fost:

  1. În primul rând, am descărcat fișierele Eagle ale micro-satshakitului.
  2. Apoi, am modificat micro-satshakit-ul în funcție de nevoile mele folosind Eagle. Un ghid despre modul de utilizare a Eagle poate fi găsit aici și aici.
  3. După înrădăcinarea bordului meu, l-am exportat ca fișier-p.webp" />

După ce am găsit căile interne și externe ale plăcii mele ca png, este timpul să generez codul g al acestora pentru a putea fi frezat în mașina cnc desktop Roland MDX-40. Pentru generarea.gcode am folosit module fab. Setările care ar trebui să fie setate în module fab și să fie găsite aici.

În cele din urmă, am lipit tot ce aveam nevoie, conform tabloului meu de vultur. Imaginea schemei și a plăcii lipite poate fi găsită mai sus.

Motivul pentru care îmi creez propria placă PCB în loc să folosesc un Arduino UNO este spațiul pe care îl economisesc când folosesc propria placă.

Pasul 6: Asamblare

Asamblare
Asamblare
Asamblare
Asamblare
Asamblare
Asamblare

Deci, după ce degetele au fost tipărite:

  1. A trebuit să găuresc găurile interioare cu un burghiu cu diametrul de 3,5 mm, iar găurile exterioare cu un burghiu cu diametrul de 3 mm. Găuri interioare înseamnă partea care, atunci când piesele sunt conectate, este din gaura interioară și exterioară, partea care, atunci când este conectată, este din exterior.
  2. După aceea, a trebuit să mă lipesc la primul cu al doilea deget și la al treilea cu al patrulea.
  3. După aceea, am conectat părțile 1 + 2 cu 3 + 4 cu 5 prin găurile mici folosind un filament cu un diametru de 3 mm.
  4. În cele din urmă, degetele erau gata să fie asamblate cu palma și apoi cu antebrațul.

Deci, a venit timpul să trecem linia de pescuit prin degete.

O linie a trecut de la partea din spate a degetului prin conducta de pe conectorul deget-palmă și la antebraț, iar cealaltă linie a mers de la partea din față a degetului la gaura din interiorul palmei și la antebraț

O notă specială este să treceți linia de pescuit printr-o bucată de lemn care are o gaură cu diametrul acesteia și să faceți un nod. În caz contrar, atunci când linia este trasă, aceasta poate coborî degetul, ceea ce mi s-a întâmplat, indiferent de câte noduri am făcut.

  • După ce linia de pescuit este trecută degetele, palma și antebrațul ar trebui să fie conectate prin niște șuruburi bots imprimate 3D,
  • Am trecut din nou liniile prin fanta orificiului tăiat cu laser pentru a le separa și apoi le-am conectat la servo-motoare.
  • Atașarea liniei de pescuit în poziția corectă a servo-ului este un pic dificilă. Dar ceea ce am făcut a fost să iau pozițiile extreme ale degetului și să le conectez la poziția extremă a servo-ului.
  • După ce am găsit pozițiile corecte, am făcut găuri în sloturile speciale pentru servouri și am înșurubat servourile în locurile potrivite asigurându-mă că două dintre servouri erau ușor ridicate față de celelalte, altfel se ciocneau în timpul funcționării lor.

Pasul 7: Programare

Programare
Programare

Înainte de a scrie programul, a trebuit să fac ca micro-satshakit-ul modificat să poată fi programat. Pentru a face acest lucru, a trebuit să urmez pașii de mai jos:

  1. Conectați Arduino Uno la computer.
  2. Selectați portul potrivit și placa Arduino Uno sub instrumente.
  3. Sub> Fișier> Exemple, găsiți și deschideți schița „ArduinoISP”.
  4. Încărcați schița pe Arduino.
  5. Deconectați Arduino de la computer.
  6. Conectați placa cu Arduino urmând schema din imagine.
  7. Conectați Arduino la computer.
  8. Selectați placa „Arduino / Genuino Uno” și programatorul „Arduino ca ISP”.
  9. Faceți clic pe> Instrumente> Burn Bootloader.
  10. După ce bootloader-ul este realizat cu succes, putem scrie programul nostru:

// inclusiv biblioteca pe care am folosit-o pentru servomotoare

#include #include SoftwareSerial mySerial (7, 8); #define MYO_PIN A0 int sensorValue; tensiune de plutire; // numește un nume pentru servo-ul meu 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 THUMB_PIN 6 void setup () {PINMIN (MYO); // pinul pe care mi-am atașat motorul servo1.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 (MIDDLE, 40); defaultPosition (RINGFINGER, 40); defaultPosition (PINKY, 40); mySerial.begin (9600); mySerial.print („Initializarea …”); } void loop () {sensorValue = analogRead (A0); tensiune = sensorValue * (5.0 / 1023.0); mySerial.println (tensiune); întârziere (100); if (tensiune> 1) {closePosition (PINKY, 60); closePosition (RINGFINGER, 60); closePosition (MIDDLE, 60); closePosition (INDEX, 60); closePosition (THUMB, 60); } else {openPosition (PINKY, 60); openPosition (RINGFIGER, 60); openPosition (MIDDLE, 60); openPosition (INDEX, 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 (deget == MIJLOC) servo3.write (20, _speed, true); else if (deget == 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 (deget == MIJLOC) servo3.write (180, _speed, true); else if (deget == 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 (deget == MIJLOC) servo3.write (0, _speed, true); else if (deget == INDEX) servo2.write (0, _speed, true); else if (finger == THUMB) servo1.write (0, _speed, true); } // După ce am scris programul, îl încărcăm pe tablă prin> Schiță> Încărcare folosind Programmer // Acum poți să îți scoți micro satshakit-ul de pe arduino și să-l alimentezi prin banca de energie // Și voilă !! Ai un braț protetic

Recomandat: