EigenDama: differenze tra le versioni

Da EigenWiki.
Vai alla navigazione Vai alla ricerca
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 è il progetto di stampante 3D di eigenLab. Si tratta di una macchina basata sulla RepRap Prusa i3[http://reprap.org/wiki/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[http://fablabgenova.it/mw/index.php?title=I3_Kodama].
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 auto costruirsi, mentre stampa il carrello dell'asse X.]]
[[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 ===


== Buon senso ==
==== Endstops ====
In realtà il primo e più importante ingrediente è il '''buon senso''': l'eigenDama, così come tante macchine 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.
 
==== 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.


= Software =
Ogni modifica al firmware va compilata usando [[#Arduino IDE]] e AVR GCC (upload con seriale).
Il software coinvolto in qualche modo nel processo di stampa 3D è parecchio. Imparare a conoscerlo è fondamentale per vivere meglio con la nostra amica!


== eigenMarlin ==
==== Offset ====
Il codice che gira su Arduino è eigenMarlin[https://git.eigenlab.org/eigenlab/eigen-marlin-1.1.3], un fork di Marlin[https://github.com/MarlinFirmware/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.
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.  


=== Offset ===
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:
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 è G-code[https://en.wikipedia.org/wiki/G-code], un file standard per le istruzioni di macchine a controllo numerico, e viene salvato normalmente con l'estensione <code>.gcode</code>
 
== 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).


=== Profiles ===
== HowTo ==
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, 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 ===
=== Inizio ===
Per slicing si intende il processo di creazione delle "fette" dell'oggetto, ossia i vari livelli che vengono stampanti progressivamente 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 '''layer''' dell'oggetto.


== Pronterface ==
=== Posizionare la testina e important warnings ===
Pronterface è l'interfaccia di controllo da utilizzare sul PC. Per gli utenti Arch, si tratta di un software pacchettizzato nell'AUR[https://wiki.archlinux.org/index.php/Arch_User_Repository] all'interno della suite Printrun[https://aur.archlinux.org/packages/?K=printrun].


=== 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 />




= HowTo =
[[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.

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.