Pinza robotica

Da raspibo.
Pinza 2 front.jpg

Pinza Robotica
Da una costola di Ruschino, un nuovo progetto
Archivio software

Indice

Riutilizziamo un motore per distributore automatico!

Dopo Ruschino WiFi, il robottino nato da alcuni pezzi di un distributore automatico, vediamo di riciclare anche i motori più particolari, quelli con due alberi che girano contrapposti.

Il moto viene generato da un motore in corrente continua a 24v e demoltiplicato da una serie di ingranaggi in plastica che girano contrapposti, quindi tendono a chuidere o aprire.

Se sugli alberi applichiamo due griffe e riusciamo a controllare la posizione del rotore poossiamo pensare a creare una pinza robotica, la riduzione ci garantisce che la pinza puo' anche avere una buoa forza.

Il motore in corrente continua presenta vantaggi e svantaggi, e' abbastanza semplice da pilotare, ma non rimane completamente frenato se si toglie alimentazione.

Progetto di massima

Il progetto e' ancora in fase di evoluzione, per il momento utilizziamo un ponte H per pilotare il motore in continua, il software viene gestito da un arduino.

Alimentazione

Il motore a 24 V ha bisogno di una tensione di alimentazione un po' particolare, percio' abbiamo pensato di utilizzare un comune convertitore DC/DC di tipo step up, al momento la pinza viene alimentata da un alimentatore a 12 v di recupero, ma il convertitore step up ci consente massima liberta' sulla tensione in ingresso e volendo possiamo decidere anche per alcuni tipi di applicazioni di alimentare il motore con un pacco batterie e rendere tutto decisamente portatile.

Controllo

Sul microcontrollore il segnale pwm che pilota i motori e' calcolato dall'algoritmo PID che regola il segnale in uscita basandosi sulla lettura analogica di un sensore.

Anche pinza robotica utilizza una scheda con ponte H come quella di Ruschino WiFi

Ponte H

Per pilotare i motori è necessario un ponte H che sopporti i 24 volts di alimentazione, per questo ho disegnato un board con kicad che utilizza l'integrato L293D ed un paio di transistor per limitare l'utilizzo di pin per il circuuito di comando.

L'integrato richiede due tensioni, una dedicata ai motori(24V), e 5 volts per la logica di comando.

Questo integrato e' abbastanza flessibile, perche' in realta' al suo interno ci sono 4 semiponti, in questo caso i semiponti si utlizzano a coppie.

Questo pero' comporta che per usare due semiponti si necessario utilizzare due pin del microcontrollore, oppure come nel nostro caso u piccolo accorgimento per negare il segnale di un pin e mandarlo in ingresso al secondo semiponte.

04 motor driver L293D.png 04 motor driver L293D top.png 04 motor driver L293D.sch.png L293D ruschino board.png

Sensori

Abbiamo iniziato a misurare la posizione della griffa con un sensore di Hall analogico e un magnete, in questo modo si rileva la posizione della griffa e si regola la potenza erogata dal motore, questo e' indispensabile per evitare che la pinza sforzi troppo. Il progetto si e' evoluto usando una frizione in grado di rilevare la forza applicata dal motore sulla griffa e rendere piu' dimanica la presa.

Per il comando abbiamo aggiunto un joystick che permette di manovrare la pinza in modo molto semplice. Il tipo di joystick utilizzato ha anche un "bottone" (premendo verso il basso la leva di comando) che si puo' utilizzare ad esempio per mantere la posizione una volta afferrato l'oggetto.

Fotogallery

Dal primo test supersemplice utilizzando solo due barrete di metallo, alla progettazione 3D (guarda qui).

Pinza robotica 01.jpg Wireframe.PNG Pinza preview.PNG Ruschino board 1.jpg

Al primo prototipo reale, le parti bianche sono stampate in 3D.


IMG 20151202 172758.jpg IMG 20151202 172808.jpg IMG 20151202 172818.jpg IMG 20151202 172841.jpg

Upgrade, una frizione tra l'albero motore e la griffa, questo permette di misurare la forza impressa dal motore e regolare in modo piu' accurato la presa.

Pinza f 1.jpg Pinza f 2.jpg Pinza f 3.jpg Pinza f 4.jpg Pinza f 5.jpg

Evoluzione del progetto

Il software e' stato migliorato e man mano e' reso piu' stabile. Si tratta di un progetto essenzialmente didattico, durante il quale abbiamo constatato che l'algoritmo PID probabilmente non e' proprio il piu' adatto per questo uso, ma lo abbiamo capito solo lavorandoci.

La frequenza del pwm utilizzato per pilotare i motori e' stata aumentata per ridurne la rumorosita'.

Nulla toglie che il software possa essere riscritto anche solo per provare nuove soluzioni ed algortimi.

Dato che tutto sommato il risultato dei primi esperimenti e' stato soddisfacente, abbiamo aggiunto:

  1. due ingranaggi per mantenere sincronizzate le griffe (risolvono il problema di disallineamento durante salita e discesa e durante la presa)
  2. un secondo motore per la rotazione della pinza su se stessa
  3. ricablaggio e ordinamento del prototipo


Pinza 2 front.jpg Pinza 2 rear.jpg Pinza 2 video 0.jpg Guarda il video Pinza 2 video 1.jpg Guarda il video Pinza 2 video 2.png Guarda il video

Sensore di presa in grafene

Un'altra evoluzione del progetto, sulla griffa sono stati applicati due film in grafene per rilevare la presa della pinza, il principio è semplice, si applicanon i due film con lo strato conduttivo verso l'altro foglio.

Le due facce conduttive sono connesse alle facce di una basetta tramite contatto meccanico e all'arduino con due semplici fili.

Il vantaggio di usare le pellicola il pet come elemento flessibile permette di rilevare la presa anche con forme particolari. Come si vede nella seconda foto la pinza può essere usata per prendere oggetti sottili o con uno spigolo, in entrambe le situazioni il sensore rileva la presa.

Per segnalare la rilevazione del sensore è stato aggiunto un led giallo.

IMG 20161203 135311.jpg IMG 20161203 135319.jpg IMG 20161203 135336.jpg IMG 20161203 135359.jpg IMG 20161203 135409.jpg IMG 20161203 135431.jpg

Le modifiche al codice sono minime e visibili in questo commit.

Riferimenti

Strumenti personali
Namespace

Varianti
Azioni
Navigazione
Strumenti