EigenDama
La eigenDama è nostro progetto di stampante 3D. Si tratta di una macchina basata sulla RepRap Prusa i3, un progetto di stampante self-replicating; in particolare, quella costruita ad eigenLab è gemella della variante elaborata presso il FabLab di Genova, la I3 kodama.
Ingredienti
Microcontrollore
Il microcontrollore è un ATMega 2560, montata su una board Arduino Mega 2560, montata a sua volta su shield RAMPS 1.4.
Motori
I motori si preoccupano di tradurre gli impulsi elettrici generati dal microcontrollore in movimento fisico. La stampante usa dei motori passo-passo (detti stepper in inglese), che hanno la caratteristica di avere l'arco di rotazione suddiviso in molti passi, detti step: questa caratteristica li rende particolarmente indicati per controllare con grande precisione l'esatta orientazione dell'arco motore, quindi di poter controllare in modo accurato gli spostamenti operati dal motore.
Struttura, pezzi e vitamine
Sensori
Endstops
Tastatore
Display
Sulla RAMPS è connesso un display LCD con cursore che viene usato normalmente per lanciare le stampe e monitorare la stampante (mentre è scomodo per fare modifiche, che oltretutto si perdono al riavvio).
Firmware
Il codice che gira su Arduino è eigenMarlin, un fork di Marlin contenente principalmente le modifiche che riguardano le caratteristiche specifiche dell'eigenDama. Il file principale è Configuration.h
, che contiene i DEFINE
più importanti.
Ogni modifica al firmware va compilata usando #Arduino IDE e AVR GCC (upload con seriale).
Offset
Tra i DEFINE
ce n'è uno particolarmente rilevante, in quanto definisce l'offset sull'asse Z tra il tastatore e il piatto: in pratica è la distanza verticale da percorrere per arrivare al livello del piatto a partire dallo zero indicato dal tastatore. Il valore si aggira tra i 9 e gli 11 mm, e la corretta impostazione di questo è fondamentale per la riuscita della stampa.
Quando il valore di offset è troppo alto, la punta dell'estrusore viene a schiacciarsi sul piatto, arrivando nei casi più gravi a impedire del tutto l'estrusione del materiale; nella maggior parte dei casi, si osserverà una produzione di un brim non uniforme, con avvallamenti e zone vuote. La riga interessata è la 648, e in questo caso il valore di offset è -9.6:
#define Z_PROBE_OFFSET_FROM_EXTRUDER -9.6 // Z offset: -below +above [the nozzle]
Viceversa, se l'offset è troppo basso l'estrusore si troverà sollevato dal piatto e il materiale verrà depositato in modo impreciso; in questo caso si nota che il filamento del brim è separato e fragile anzichè tutto unito.
Buon senso
In realtà il primo e più importante ingrediente è il buon senso: l'eigenDama, così come tante macchine e utensili autocostruiti e non, non è un MacBook Pro, ossia non è un oggetto fatto per funzionare as is in ogni situazione e in ogni condizione sempre nello stesso modo, senza alcun rischio e senza bisogno di interazione con l'utente. Le problematiche nell'utilizzo fanno parte by definition del funzionamento dello strumento, e l'unico modo per preservarlo è fare attenzione a cosa potrebbe non funzionare.
L'altro aspetto molto importante strettamente connesso alla consapevolezza di utilizzo, è la disponibilità ad osservare e cercare di comprendere quale possa essere la causa del malfunzionamento, al fine di suggerire la soluzione del problema e il miglioramento dello strumento.
Software
Il software coinvolto in qualche modo nel processo di stampa 3D è parecchio. Imparare a conoscerlo è fondamentale per vivere meglio con la nostra amica! (vedi anche #Firmware)
Cura
Cura è il software che si occupa di elaborare il codice per la stampa a partire dal vettoriale 3D (vedi #Slicing più avanti). Il file elaborato è G-code, un file standard per le istruzioni di macchine a controllo numerico, e viene salvato normalmente con l'estensione .gcode
.
Profiles
Il profilo è il set di configurazioni e impostazioni che permettono a Cura di avere tutte le informazioni necessarie relative alla specifica macchina, in modo da preparare il G-code. eigenDama ha al momento due profili:[1]
- uno per la stampa di manufatti con migliori proprietà meccaniche
- un altro per la stampa di oggetti con una migliore risoluzione grafica e accuratezza dei dettagli.
Slicing
Per slicing si intende il processo di creazione delle "fette" dell'oggetto, ossia i vari livelli che vengono stampanti progressivamente sovrapposti dalla stampante. Si tratta di una fase strettamente legata a quella di elaborazione del G-code, in quanto quest'ultimo è il set di istruzioni che de facto dice alla stampante come deve procedere per elaborare ogni singolo strato (o layer) dell'oggetto.
Pronterface
Pronterface è l'interfaccia di controllo da utilizzare sul PC, che parla con la stampante su porta seriale.[2] Per gli utenti Arch, si tratta di un software pacchettizzato nell'AUR all'interno della suite Printrun.
Arduino IDE
Questo software fa stronzo-ca'a. Ciononostante, lo usiamo con installate le librerie builtin, più HID (versione 1.0.0) e LiquidCrystal (versione 1.0.4).
HowTo
Inizio
Posizionare la testina e important warnings
Profiles
Si trovano sull'eigenCloud
Start ed End g-code
Si trovano sull'eigenCloud
Bed leveling e stampa
... Supponendo che fin qui sia andato tutto bene, si seleziona col cursore il preriscaldamento adatto per il materiale che abbiamo scelto. Quando il piatto e l'estrusore hanno raggiunto la giusta temperatura, si sceglie il file .gcode
da stampare col cursore: l'eigenDama inizia quindi il bed leveling ossia una misura precisa dell'inclinazione del piatto per poterla compensare muovendo corrispondentemente l'asse z durante la stampa di uno strato.
Problemi (aka Trabolsciùting)
La nostra cara amica non perde occasione per palesare i problemi più disparati.
Lievitazione del Filamento
Il filamento ha cominciato a bloccarsi sistematicamente nel corpo estrusore. Nonostante la profonda e accurata pulizia del corpo estrusore, della guaina in teflon e del nozzle, il filamento continua a bloccarsi. Si sospetta che il blocco sia dovuto all'umidità presente all'interno del filamento di ABS (confermata da caratteristici scoppiettii del filamento in fase di estrusione, con conseguenti difetti di stampa) che, quando il filamento staziona nella guaina dentro il dissipatore del corpo estrusore (dunque a una temperatura vicina ma inferiore ai 100 gradi), provoca letteralmente una lievitazione del filamento, che si ingrossa, bloccandosi definitivamente. In parte questo è sicuramente dovuto all'umidità contenuta nel filamento, ma anche a una temperatura troppo elevata all'interno della guaina, dovuta nel nostro caso alla ventola spenta. Dopo avere essiccato il filamento in forno ventilato a temperatura di 75° centigradi, si è proceduto anche a inserire nello start g-code il comando per l'accensione della ventola.