Neopixel optical fiber 3D è il progetto a cui ho lavorato nelle ultime settimane e del quale leggerai in questo articolo.
Già in passato hai letto di progetti realizzati con le fibre ottiche per illuminazione e non solo; ricorderai probabilmente:
nel primo l’illuminatore era interamente realizzato con tecnologie 1.0 o tradizionali, mentre oggi hai a disposizione la stampa 3D, il disegno parametrico e dei led ( neopixel ws2812B ) programmabili.
Puoi dare libero sfogo alla tua fantasia e ottenere tutto ciò che desideri con pochi semplici passi.
Disegno del neopixel optical fiber 3D
Il disegno del nuovo illuminatore per fibre ottiche l’ho realizzato con openscad, un cad parametrico open source di cui hai spesso letto nel mio blog.
Open scad è certamente un ottimo prodotto ed è tra i miei preferiti per la realizzazione di oggetti simili a quello seguente:
il codice è alquanto semplice e l’utilizzo dei parametri ti permette di adattare l’oggetto alle tue esigenze.
Il codice dell’illuminatore è:
/****** MAIN ********/ sezione = false; radius=6; singleNeopixel(radius); /****** FUNCTIONS ********/ module singleNeopixel(radius) { difference() { translate([0,0,2]) cylinder(r=radius,h=5,center=true,$fn=96); // ws2812 holes translate([0,0,1.75]) WS2812B("print"); translate([0,0,4.5]) cylinder(r=2.3,h=25,center=true,$fn=96); /* SEZIONE */ if ( sezione ) translate([0,radius*2,(radius/2)]) cylinder(r=radius*2,h=radius+25,center=true,$fn=4); } difference() { translate([0,0,9.45]) cylinder(r1=radius,r2=(radius/2),h=10,center=true,$fn=96); translate([0,0,4.5]) cylinder(r=2.3,h=20,center=true,$fn=96); /* SEZIONE */ if ( sezione ) translate([0,radius*2,(radius/2)]) cylinder(r=radius*2,h=radius+25,center=true,$fn=4); } } module WS2812B(mode) { if (mode == "print") { translate([0,0,-.4]) cylinder(r=5.3,h=1.8,center=true,$fn=96); translate([0,0,-2]) cylinder(r=4.7,h=5,center=true,$fn=96); //translate([0,0,1]) cube([5.3,5.3,3],center=true); translate([0,0,1]) cylinder(r=5.3,h=3,center=true,$fn=96); } else { cylinder(r=5.2,h=1.4,center=true,$fn=96); translate([0,0,1]) cube([5,5,2],center=true); } }
in cui le prime linee servono a definire i parametri e richiamare la funzione ( modulo ) che usi per disegnare il neopixel optical fiber 3D vero e proprio.
alla linea 02: definisci il parametro sezione che userai per abilitare la visione in sezione dell’oggetto, scoprirai nel codice come utilizzarlo, per adesso sappi che impostato a true abilita la visione in sezione e viceversa la disabilita.
linea 04: imposta il raggio complessivo del tuo illuminatore, nell’esempio ho tenuto conto che il led neopixel in mio possesso è montato su un pcb circolare del diametro di circa 1cm, per cui 5mm di raggio ed ho aggiunto 1mm per lato in modo da avere un minimo di consistenza del mio illuminatore;
linea 05: richiami la funzione singleNeopixel() che disegna l’illuminatore vero e proprio.
il modulo singleNeopixel()
la linea 10: imposta il comando di differenza tra quella che scriverai come prima linea e tutte le successive, in pratica dal primo solido puoi sottrarre tutti i solidi successivi purché siano all’interno delle parentesi graffe;
il disegno del corpo circolare lo puoi eseguire con il comando cylinder come mostrato alla linea 11;
le lnee 13-15: servono ad includere il modulo WS2812B(), descritta in seguito, e predisporre il cilindro utilizzato per forare il passaggio delle figre ottiche;
linea 18: usando il controllo if() in cui esegui il check della variabile sezione abiliti la visualizzazione di un cilindro si doli 4 lati ( $fn=4 ), praticamente un parallelepipedo di raggio doppio rispetto a quello del corpo principale e leggermente spostato in modo da fungere da cune di visione in sezione.
Ecco spiegato il trucco utilizzato per visualizzare la “sezione”:
nella figura nota anche la scanalatura prevista per il led, in modo che quest’ultimo possa essere inserito in fase di stampa direttamente nell’illuminatore.
Se abilitassi la visualizzazione del led per comprenderne la posizione avresti una visione simile alla seguente:
Terminiamo la descrizione di questo modulo con le linee dedicate alla costruzione del cono che sovrasta il precedente cilindro.
La linea 22: disegni un cilindro a due raggi, il primo maggiore del secondo in modo che la risultante sia un cono;
linea 23: elimina dal cono il condotto in cui devono entrare le fibre ottiche che dovranno raggiungere il led;
linea 25: come la diciotto, ti permette la visione in sezione anche di questa parte dell’oggetto.
Il modulo WS2812B
Il modulo WS2812B() nel progetto neopixel optical fiber 3D è di particolare importanza in quanto definisce il led ws2812b.
Il codice descrive due modalità: normal e print con la sola differenza che la modalità print serve ad aumentare gli ingombri del led in modo che in fase di stampa ci sia spazio a sufficienza per inglobare un led e non causare problemi alla stampa.
Le linee 30-35: disegnano il led in modalità print, con dimensioni leggermente maggiori e gli appositi ingombri per le saldature e per i fili;
le linee 36-37: disegnano il led nelle sue dimensioni reali per consentirti di visualizzare la posizione finale e lo spazio occupato.
Cura per la stampa 3D
l’ultimo passaggio prima della stampa del neopixel optical fiber 3D è il CAM per l’elaborazione del gcode, io ho utilizzato cura:
ed usando una definizione da 0.1 stima un tempo di stampa di circa 28min.