Drawbot

From FabLabGenovaWiki
Jump to: navigation, search
drawbot v1
Il primo disegno del drawbot v1

Il Drawbot 2.0 ha fatto il suo debutto come primo lavoro del fablab al Minimo vol. 5. In questa sua prima uscita pubblica era così assemblato:

  • Dimensioni : circa 1.8m di interasse delle pulegge con 3-3.5 m di catenelle per lato
  • Motori PM55L recuperati da una stampante ( stile Ranxerox ) da 47 step/giro. ( [1] )
  • Driver motori di Simo con una scheda Darlinghton alimentata con tensione duale +12 / 0 / -12, e controllata da un PIC12 a 8 pin, che prende in input il classico step/dir. Simostepper
  • Pulegge fatte a stampante 3D con catenelle da tenda e contrappesi per non rischiare di perdere passi per la scarsa coppia dei motori.
  • Software python scritto da noi sia per il pathgenerator, sia per il controller ( raspberrypi ), direi ormai ampiamente testato e funzionante, solo da rifinire qua e là.software

In questa configurazione tutt'altro che ideale, per problemi legati sia all'inadeguatezza dell'alimentatore ( un povero ATX che doveva dare assai più corrente di quella per cui era progettato ) sia alle pessime performance dei motori sia in termini di velocità ( non siamo riusciti a salire oltre i 12 step/s ) sia in termini di precisione, siamo comunque riuscito a fare un disegno accettabile, per festeggiare i 10 anni del Laboratorio Sociale Occupato Autogestito Buridda di cui facciamo parte.

Il disegno svolto dal drawbot 2.0 la sera del minimo
Error creating thumbnail: Unable to save thumbnail to destination
Il disegno fatto da Irene per il drawbot

Continueremo a portare avanti il progetto per arrivare ad una versione 3.0 (vedi Drawbot_3) di dimensioni notevolmente maggiori, in pratica in grado di disegnare su una parete di qualche metro di lunghezza. I punti principali sono:

  • Sostituzione degli attuali driver con dei nuovi, sempre fatti da noi, ma basati sul DRV8825 della Texas Instruments, un driver integrato ad alte prestazioni che implementa anche il microstep sino ad 1/32 e la regolazione diretta della corrente con resistenze di sensing, che permette di fatto di velocizzare enormemente i motori aumentando la tensione anche molto al di sopra di quella nominale dei motori.
  • Sostituzione dei motori con dei nuovi ( li abbiamo già comprati ) più grossi e più potenti, ma anche più precisi ( ritorniamo ai 200 step/giro )
  • Sperimenteremo sostituti delle catenelle, non realizzabili per molti.

Segue una descrizione aggiornata delle varie parti del drawbot.

Motori

Stiamo usando una coppia di PM55L ( [2] ) recuperati da una fotocopiatrice. Avendo solo 47 step contro i 200 dei nema ( portati a 400 con l'half-step ) la risoluzione è diminuita brutalmente ad un ottavo rispetto alla prima versione (La precisione massima che otteniamo con questa è 2.5mm contro gli 0.6-0.8mm della prima versione). Per ottenere risultati accettabili bisogna fare immagini molto più grandi rispetto alla prima versione. Potrebbe migliorare un po' con l'half step. Studiare quale densità di punti rende meglio. In extremis si possono pure cercare di recuperare due motori da 200 passi/giro per tornare alla risoluzione di prima.

Alimentazione

Un ATX si è immolato per la causa, ma la -12V utilizzata dal driver duale può fornire al massimo .3A, un po' pochini. Stiamo lavorando ad un nuovo alimentatore che fornisca una +12/0/-12 adeguata (~1.5A) e una 5V stabilizzata

Drivers motori

Li abbiamo progettati e costruiti noi. Utilizzano una alimentazione duale e 4 transistor darlinghton di potenza. Sono la seconda versione curata da Simo ( e quella definitiva? ) con l'interfaccia logica migliorata. Ottimi anche dopo un ora di stampa non scaldano niente ( possono gestire fino a 8A/canale ). L'adattatore clock/dir è un PIC micro della serie 12F ( 8 PIN ). Dobbiamo ancora implementare l'half step. Per maggiori informazioni Bond

Controller

RaspberryPI.
piedinatura raspBerryPI.
piedinatura Raspberry PI

Software

Abbiamo portato tutto il codice in due programmi python. Il primo prende in input un'immagine opportunamente elaborata con un editor grafico e genera un file path contenente le indicazioni che servono a un qualsiasi sistema drowbot per muoversi; è necessario farlo girare su un computer con una buona potenza ( è sconsigliabile lanciarlo dal raspi! ), vista la pesantezza dei calcoli che deve svolgere; è possibile scegliere più livelli di ottimizzazione e visualizzare i risultati prima di salvare il path. Richiede le librerie numpy matplotlib, gira su tutti gli os. Il secondo viene fatto girare su un raspi connesso ai motori del drawbot. Prende in input il suddetto path e fa muovere i motori secondo i parametri del sistema drawbot a cui è connesso. Prima di eseguire fornisce indicazioni sulle dimensioni reali del disegno e una stima del tempo richiesto e chiede conferma. In più abbiamo realizzato altri due script in python che sono risultati utili nel corso delle prove: uno fa automaticamente la pre-elaborazione delle immagini, l'altro visualizza i path. Il codice aggiornato è su software e anche su sourceforge http://sourceforge.net/projects/drawbot/

Connessioni

Lo schema delle connessioni è il seguente:

ATX --> RasPi --> Scheda PIC dx-sx ( anche l'alim. 3.3V viene dal raspi ) --> Scheda Darlinghton --> Motori

I_________________alimentazione +12/-12______________________________________________^