EigenDama: differenze tra le versioni
Pol (discussione | contributi) Nessun oggetto della modifica |
m (ristrutturato sezionamento, mergiato qualcosa da quella di seppia, aggiunte categorie, iniziato howto, aggiunte librerie arduino) |
||
Riga 1: | Riga 1: | ||
eigenDama è | La '''''eigenDama''''' è nostro progetto di stampante 3D. Si tratta di una macchina basata sulla [http://reprap.org/wiki/Prusa_i3 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 [http://fablabgenova.it/mw/index.php?title=I3_Kodama I3 kodama]. | ||
[[File:EigenDama selfreplicating 1.jpg|miniatura|L'eigenDama nell'atto di | [[File:EigenDama selfreplicating 1.jpg|miniatura|L'eigenDama nell'atto di '''replicarsi''', mentre stampa il carrello dell'asse X.]] | ||
= Ingredienti = | == Ingredienti == | ||
== Microcontrollore == | === Microcontrollore === | ||
Il microcontrollore è un ATMega 2560, montata su una board Arduino Mega. | Il microcontrollore è un ATMega 2560, montata su una board Arduino Mega 2560, montata a sua volta su shield RAMPS 1.4. | ||
== Motori == | === 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. | 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 == | === Struttura, pezzi e vitamine === | ||
== Sensori == | === 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 è [https://git.eigenlab.org/eigenlab/eigen-marlin-1.1.3 eigenMarlin], un fork di [https://github.com/MarlinFirmware/Marlin Marlin] contenente principalmente le modifiche che riguardano le caratteristiche specifiche dell'eigenDama. Il file principale è <code>Configuration.h</code>, che contiene i <code>DEFINE</code> più importanti. | |||
Ogni modifica al firmware va compilata usando [[#Arduino IDE]] e AVR GCC (upload con seriale). | |||
== | ==== Offset ==== | ||
Tra i <code>DEFINE</code> 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] | #define Z_PROBE_OFFSET_FROM_EXTRUDER -9.6 // Z offset: -below +above [the nozzle] | ||
[[File:Brim fault offset too high.jpg|miniatura|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.]] | [[File:Brim fault offset too high.jpg|miniatura|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.]] | ||
== Cura == | 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. | ||
Cura è il software che si occupa di elaborare il codice per la stampa a partire dal vettoriale 3D. Il file elaborato è | |||
== 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 [https://en.wikipedia.org/wiki/Cotoletta 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 è [https://en.wikipedia.org/wiki/G-code G-code], un file standard per le istruzioni di macchine a controllo numerico, e viene salvato normalmente con l'estensione <code>.gcode</code>. | |||
==== 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:<ref>i profili funzionanti si trovano nella relativa cartella sul cloud.</ref> | |||
* 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.<ref>Volendo ci si può connettere direttamente alla porta seriale e inviare i comandi.</ref> Per gli utenti Arch, si tratta di un software pacchettizzato nell'[https://wiki.archlinux.org/index.php/Arch_User_Repository AUR] all'interno della suite [https://aur.archlinux.org/packages/?K=printrun 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 <code>.gcode</code> 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 == | |||
<references /> | |||
[[Categoria:Autoformazione]] | |||
[[Categoria:HowTo]] | |||
[[Categoria:Hardware]] | |||
[[Categoria:Config]] |
Versione delle 23:12, 26 ott 2017
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 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.