Sommario:

Braccio protesico che lavora con un miosensore: 8 passaggi
Braccio protesico che lavora con un miosensore: 8 passaggi

Video: Braccio protesico che lavora con un miosensore: 8 passaggi

Video: Braccio protesico che lavora con un miosensore: 8 passaggi
Video: Presentazione Lauree Magistrali - Dip. Ingegneria - Area Meccanica 2024, Dicembre
Anonim
Image
Image

Questo progetto è lo sviluppo di un braccio protesico per persone amputate. L'obiettivo di questo progetto è la creazione di un braccio protesico conveniente per le persone che non possono permettersene uno professionale.

Dato che questo progetto è ancora in fase di prototipazione, può sempre essere migliore in quanto per ora può solo aprire e chiudere il palmo riuscendo a prendere cose! Tuttavia, è un braccio protesico fai-da-te che può essere eseguito a casa o in un fab lab locale.

Passaggio 1: materiali, strumenti e macchine necessari

Macchine:

  1. stampante 3d
  2. Taglierina laser
  3. Macchina CNC da tavolo

Utensili:

  1. Lenza
  2. Filamento da 3 mm
  3. Trapano
  4. Super colla
  5. Pinze per fori
  6. Multimetro
  7. Stazione di saldatura
  8. Cera lavorabile
  9. Silicone per stampi

Materiali:

  1. Foglio di rame
  2. 1x ATMEGA328P-AU
  3. 1x cristallo da 16 MHz
  4. 1x resistenza da 10k
  5. Condensatori 2x 22pF
  6. 1x condensatore da 10uF
  7. 1x condensatore da 1uF
  8. 1x condensatore da 0,1uF
  9. 1x miosensore
  10. 5x micro servomotori
  11. 1x Arduino UNO

Software:

  1. Arduino IDE
  2. Fusion360
  3. cura
  4. Aquila
  5. GIMP

Passaggio 2: progettazione 2D e 3D

Progettazione 2D e 3D
Progettazione 2D e 3D
Progettazione 2D e 3D
Progettazione 2D e 3D
Progettazione 2D e 3D
Progettazione 2D e 3D

Progettazione 3D

Il primo passo è stato progettare le dita, il palmo e l'avambraccio del braccio protesico, tenendo in considerazione l'elettronica che sarebbe stata inserita nel braccio protesico. Ad essere sincero, ho usato come base il progetto open source inmoov e da lì sono partito.

Il palmo è una parte piuttosto difficile da progettare in quanto le dita dovrebbero avere rapporti diversi tra loro. Così:

Fingers: ho scaricato le dita dal progetto inmoov.

Palma:

  1. Ho prima abbozzato il layout del palmo e l'ho estruso.
  2. Poi ho fatto dei fori per le connessioni del dito e dell'avambraccio usando gli schizzi, il comando taglia e il comando raccorda.
  3. Dopodiché, ho dovuto realizzare dei tubi per poter passare le lenze in modo da poter controllare le dita tramite i motori.
  4. Infine, dovevano essere aggiunti dei fori all'interno del palmo in modo che la chiusura del palmo fosse possibile quando si tirava la lenza.

Avambraccio:

  1. Su piani diversi, ho creato due schizzi e ho usato il comando ellisse. Ho usato il comando loft dopo per creare la forma desiderata.
  2. Successivamente, è stato utilizzato il comando shell per renderlo vuoto e il comando split per tagliarlo a metà in modo che io possa progettare al suo interno e per la migliore accessibilità per quando monto i miei componenti elettronici all'interno.
  3. È stato anche realizzato uno schizzo vicino al polso, estruso e unito all'avambraccio principale in modo che possa connettersi con il palmo.
  4. Avendo la visibilità per progettare all'interno dell'avambraccio, ho creato uno schizzo nelle dimensioni dei cinque motori che avrei usato, uno per ogni dito, e il mio PCB (circuito stampato) che avrei usato. Li ho quindi estrusi fino a raggiungere l'altezza desiderabile e ho eliminato le parti non necessarie nella parte posteriore del cilindro utilizzando il backspace.
  5. Infine, sono state progettate le aperture per i chiavistelli, in modo non così visibile sul disegno complessivo, per poter chiudere l'avambraccio con comandi simili a quelli sopra.

Finito il design, ho selezionato ogni corpo e l'ho scaricato come file.stl e li ho stampati in 3D separatamente.

Progettazione 2D

Poiché volevo che le mie lenze da pesca fossero separate mentre sono azionate dai motori, ho deciso di creare delle fessure di guida per loro. Per questo, non ho dovuto progettare nulla di nuovo, ma utilizzare l'ellisse più piccola per quando ho usato il comando loft per creare l'avambraccio.

Ho esportato il suo schizzo come file.dxf dopo aver usato il laser cutter. Dopo aver ottenuto la forma desiderata, ho praticato dei fori di 0,8 mm all'interno della fessura che ho ritenuto necessario.

Passaggio 3: stampa 3D

Stampa 3D
Stampa 3D
Stampa 3D
Stampa 3D
Stampa 3D
Stampa 3D
Stampa 3D
Stampa 3D

Dopo aver esportato ogni file stl, ho usato Cura per generare il.gcode delle diverse parti delle dita, del palmo e dell'avambraccio. Le impostazioni utilizzate sono illustrate nelle immagini sopra. Il materiale delle parti stampate in 3D è PLA.

Passaggio 4: stampaggio e colata

Stampaggio e colata
Stampaggio e colata
Stampaggio e colata
Stampaggio e colata
Stampaggio e colata
Stampaggio e colata

Lo scopo della fusione del palmo è che il braccio protesico abbia una presa più forte poiché il PLA potrebbe essere scivoloso.

Progettazione 3D

  1. Usando lo schizzo preesistente del palmo, ho provato a imitare il nostro palmo disegnandoci dei cerchi usando il comando arco.
  2. Successivamente, li ho estrusi a diverse altezze e ho usato il comando raccordo per smussare i bordi dei "cerchi" interni.
  3. Quindi, ho disegnato una scatola con le stesse dimensioni della mia cera lavorabile e ho messo lì il negativo del mio disegno usando il taglio nel comando combina.

Processo CAM

Dopo aver preparato il progetto per essere fresato utilizzando la macchina CNC desktop, ho dovuto generare il gcode per quello. Nel mio caso, stavo usando la macchina CNC Roland MDX-40!

  1. Innanzitutto, sono entrato nell'ambiente CAM di Fusion360.
  2. Quindi, ho selezionato una "nuova configurazione" nel menu di configurazione.
  3. Ho scelto i parametri giusti (vedi foto) e ho premuto ok.
  4. Successivamente, nel menu 3D, ho scelto la cancellazione adattiva e selezionato i parametri giusti dopo aver inserito lo strumento che ho usato come mostrato nelle immagini.
  5. Infine, ho scelto la compensazione adattiva e ho fatto clic sul processo di post. Mi sono assicurato che fosse per la macchina Roland mdx-40 e ho fatto clic su ok per ottenere il gcode.
  6. Successivamente, ho fresato il blocco di cera secondo il mio progetto utilizzando la macchina.

Lanciare il silicio

  1. Per prima cosa ho miscelato accuratamente le due soluzioni di silicio per non creare bolle d'aria, seguendo la scheda tecnica (link che si trova sui materiali), tenendo in considerazione il rapporto di miscelazione, il pot life e il tempo di sformatura.
  2. Quindi, l'ho versato nel mio stampo dal punto più basso assicurandomi che il punto di contatto rimanesse costante e che il diametro della soluzione versata fosse il più sottile possibile, per evitare bolle d'aria.
  3. Dopo aver colato il silicone nel mio stampo, dovevo assicurarmi che non ci fossero bolle d'aria all'interno, quindi ho tremato lo stampo usando un trapano con un chiodo obliquo.
  4. Infine, poiché ho dimenticato di farlo nel mio progetto, ho praticato dei fori nel mio silicone dopo che era pronto, usando le pinze per fori, in modo che corrispondano ai fori che si trovavano sulla superficie del palmo.

Passaggio 5: progettazione e produzione dell'elettronica

Progettazione e produzione elettronica
Progettazione e produzione elettronica
Progettazione e produzione elettronica
Progettazione e produzione elettronica
Progettazione e produzione elettronica
Progettazione e produzione elettronica

Per progettare la mia scheda e capire cosa sta succedendo nei pin del microcontrollore, ho dovuto leggerne il datasheet. Come PCB di base ho utilizzato il micro satshakit e poi l'ho modificato in base alle esigenze del mio sistema.

Poiché satshakit è una scheda fai-da-te basata su arduino, potrei modificarla in base alle mie ricerche per le connessioni delle mie parti con l'arduino. Quindi, il miosensore si collega all'arduino usando un pin GND, un pin VCC e un pin analogico. Considerando che un servomotore utilizza un pin GND, un pin VCC e un pin PWM. Quindi, ho dovuto esporre in totale sei pin GND e VCC prendendo in considerazione l'alimentazione della scheda, un pin analogico e cinque pin PWM. Inoltre, ho dovuto prendere in considerazione di esporre i pin per la programmazione della scheda (che sono MISO, MOSI, SCK, RST, VCC e GND).

I passaggi che ho fatto sono stati:

  1. Per prima cosa, ho scaricato i file eagle del micro-satshakit.
  2. Successivamente, ho modificato il micro-satshakit in base alle mie esigenze utilizzando Eagle. Una guida su come usare Eagle può essere trovata qui e qui.
  3. Dopo aver eseguito il root della mia scheda, l'ho esportato come file-p.webp" />

Dopo aver avuto i percorsi interni ed esterni della mia scheda come png, è il momento di generare il loro gcode per poterlo fresare nella macchina cnc desktop roland mdx-40. Per la generazione del.gcode ho utilizzato moduli fab. Le impostazioni che dovrebbero essere impostate nei moduli fab e si trovano qui.

Infine, ho saldato tutto ciò di cui avevo bisogno secondo la mia scheda eagle. L'immagine dello schema e della scheda saldata si trova sopra.

Il motivo per creare la mia scheda PCB invece di utilizzare un Arduino UNO è lo spazio che risparmio quando uso la mia scheda.

Passaggio 6: assemblaggio

Assemblea
Assemblea
Assemblea
Assemblea
Assemblea
Assemblea

Quindi, dopo che le dita sono state stampate:

  1. Ho dovuto praticare i fori interni con una punta da 3,5 mm di diametro e i fori esterni con una punta da 3 mm di diametro. Fori interni significa la parte che quando le parti sono collegate è dal foro interno ed esterno, la parte che quando è collegata è dall'esterno.
  2. Dopo di che ho dovuto incollare il primo con il secondo dito e il terzo con il quarto.
  3. Successivamente, ho collegato le parti 1+2 con 3+4 con 5 attraverso i forellini utilizzando un filamento di 3 mm di diametro.
  4. Infine, le dita erano pronte per essere assemblate con il palmo e poi con l'avambraccio.

Quindi, era tempo di passare la lenza tra le dita.

Una linea andava dalla parte posteriore del dito attraverso il tubo sul connettore dito-palmo e all'avambraccio e l'altra linea andava dalla parte anteriore del dito al foro all'interno del palmo e all'avambraccio

Una nota speciale è far passare la lenza attraverso un pezzo di legno che ha un foro con il suo diametro e fare un nodo. Altrimenti quando la lenza viene tirata, potrebbe scendere lungo il dito, cosa che è successa a me, non importa quanti nodi ho fatto.

  • Dopo che la lenza è passata tra le dita, il palmo e l'avambraccio dovrebbero essere collegati da alcuni bulloni di robot stampati in 3D,
  • Ho passato di nuovo le linee attraverso la fessura del foro tagliato al laser per separarle e poi le ho collegate ai servomotori.
  • Attaccare la lenza alla giusta posizione del servo è un po' impegnativo. Ma quello che ho fatto è stato prendere le posizioni estreme del dito e collegarlo alla posizione estrema del servo.
  • Dopo aver trovato le posizioni corrette, ho praticato dei fori nelle apposite asole per i servi e avvitato i servi nei punti giusti facendo in modo che due dei servi fossero leggermente rialzati dagli altri, altrimenti si sarebbero scontrati durante il loro funzionamento.

Passaggio 7: programmazione

Programmazione
Programmazione

Prima di scrivere il programma, ho dovuto programmare il micro-satshakit modificato. Per farlo, ho dovuto seguire i passaggi seguenti:

  1. Collega Arduino Uno al PC.
  2. Seleziona la porta giusta e la scheda Arduino Uno in Strumenti.
  3. In >File >Esempi, trova e apri lo schizzo "ArduinoISP".
  4. Carica lo schizzo su Arduino.
  5. Scollega l'Arduino dal PC.
  6. Collega la scheda con Arduino seguendo lo schema in figura.
  7. Collega l'Arduino al PC.
  8. Selezionare la scheda "Arduino/Genuino Uno" e il programmatore "Arduino come ISP".
  9. Fare clic su > Strumenti > Masterizza Bootloader.
  10. Dopo che il bootloader è stato eseguito con successo, possiamo scrivere il nostro programma:

//inclusa la libreria che ho usato per i servomotori

#include #include SoftwareSerial mySerial(7, 8); #define MYO_PIN A0 int sensorValue; tensione di galleggiamento; //nominare un nome al mio 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 THUMB_PIN 6 void setup()_PINMode,(MYO_PINMode); //il pin a cui ho collegato il mio motore servo1.attach(THUMB_PIN); servo2.attach(INDEX_PIN); servo3.attach(MIDDLE_PIN); servo4.attach(RINGFINGER_PIN); servo5.attach(PINKY_PIN); defaultPosition(THUMB, 40); defaultPosition(INDICE, 40); defaultPosition(MIDDLE, 40); defaultPosition(RINGFINGER, 40); defaultPosition(PINKY, 40); mySerial.begin(9600); mySerial.print("Inizializzazione…"); } void loop(){ sensorValue = analogRead(A0); tensione = valoresensore * (5,0 / 1023,0); mySerial.println(voltaggio); ritardo(100); if (tensione > 1){ closePosition(PINKY, 60); closePosition(RINGFINGER, 60); closePosition(MIDDLE, 60); closePosition(INDICE, 60); closePosition(THUMB, 60); } else{ openPosition(PINKY, 60); openPosition(RINGFIGER, 60); posizione aperta(MEDIO, 60); openPosition(INDICE, 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); } //Dopo aver scritto il programma lo carichiamo sulla scheda tramite >Sketch>Upload using Programmer //Ora puoi scollegare il tuo micro satshakit dal tuo arduino e alimentarlo tramite il power bank //E voilà!! Hai un braccio protesico

Consigliato: