EigenDama

Da EigenWiki.
Versione del 26 ott 2017 alle 23:12 di Rakk (discussione | contributi) (ristrutturato sezionamento, mergiato qualcosa da quella di seppia, aggiunte categorie, iniziato howto, aggiunte librerie arduino)
Vai alla navigazione Vai alla ricerca

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.

L'eigenDama nell'atto di replicarsi, mentre stampa il carrello dell'asse X.

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]
Difetto di stampa dovuto a un valore di offset troppo alto: l'estrusore è schiacciato sul piatto, conseguentemente l'estrusione del filamento avviene in maniera discontinua e non uniforme.

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 maccArduino IDE e AVR GCC (upload con seriale)hine 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

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.

Note

  1. i profili funzionanti si trovano nella relativa cartella sul cloud.
  2. Volendo ci si può connettere direttamente alla porta seriale e inviare i comandi.