Incisore laser

Intro:
Ho deciso di iniziare uno di quei progetti che non sarebbe nato e morto, ma avrei portato a termine pian piano…un Incisore laser con struttura a pantografo.

Non è tutta farina del mio sacco, lo ammetto, ho utilizzato questo progetto come base per la struttura variando poi tutto il resto, dall’elettronica al FW.

L’elenco componenti è lo stesso, a parte che ho preferito utilizzare dei piedini in gomma regolabili, così da avere una base solida e poter regolare l’altezza del laser dal fondo. Ho infatti riscontrato che la variazione anche solo di 1mm dell’altezza del laser comporta una variazione di “colore” nel caso in cui venga incisa una fotografia.

Cosa ho cambiato:

  • Di utilizzare Arduino nano su Breadboard proprio non se ne parlava, soprattutto dato il costo e la comodità del “kit” Arduino Mega 2560+ramps+lcd. Nel progetto linkato i singoli comandi Gcode vengono passati via seriale, il che richiede un PC occupato a seguire l’incisore al lavoro. Con il kit Ardino+lcd+ramps invece è possibile caricare l’intero progetto da incidere su SD, e lasciare che l’incisore proceda da se.
  • Il firmware usato è il tanto conosciuto Repetier configurato per lavorare non più come stampante 3D, ma come incisore con un laser connesso alla porta dedicata all’HotEnd.
  • Il laser utilizzato è un 2.5W@445mn di provenienza abbastanza “cinese”, il quale all’interno del blocco di raffreddamento include il driver per l’alimentazione del diodo. Il laser va quindi alimentato con 12v, ed il driver al suo interno si occuperà di alimentare correttamente il diodo, questo fa si che si possa connettere direttamente e senza alcun particolare accorgimento alla morsettiera destinata all’HotEnd su ramps. Va da se che a questo punto ramps va alimentata con una tensione di 12V.
  • Altre due piccole modifiche riguardano il supporto del motore Y, disegnato su Autocad Inventor e stampato in PETG, poiché non mi piaceva com’era montato da
    progetto, ed i supporti per gli endstop. Su Thingiverse trovate gli STL.


 

Il risultato finale:
Ho provato ad incidere e tagliare diversi materiali: legno, sughero, carta adesiva, eco-pelle, vetro, plexyglass etc…
Riporto qualche foto dei lavori eseguiti:

 

Highchart su ESP8266

E’ possibile utilizzare i grafici Highchart su un ESP8266?
Ho provato a cercare in rete e pare che vi siano molti progetti a riguardo, tuttavia tutti fanno uso di un server esterno e di un database.
E se volessi che fosse il mio ESP8266 a restituirmi un grafico, con magari gli ultimi 12 dati campionati? Nulla di più facile!

Per puro passatempo ho provato ad utilizzare un ESP8266 come data logger degli ultimi 12 dati campionati con un Sensirion SHT75, quindi temperatura ed umidità.
I dati campionati, li ho immagazzinati in un array[12] e quindi utilizzati per la compilazione del javascript del grafico Highchart.

Lo schema
Lo schema è esattamente lo stesso di un mio precedente articolo nel quale ho pubblicato uno sketch di esempio per poter utilizzare il sensore di temperatura ed umidità SHT75 con l’ESP8266, ricordo che il codice pubblicato può essere utilizzato su qualsiasi scheda presente sull’IDE Arduino, basta semplicemente impostare i due pin utilizzati per il sensore.
esp8266-04_sht75

Il codice

Il codice, per quanto possa essere lungo, è abbastanza facile.
La prima parte contiene tutte le variabili e le costanti utilizzate successivamente, dal nome e la password della vostra rete wifi, al tempo che intercorre tra due campionamenti (SampleTime) espresso il millisecondi.
Successivamente troviamo la funzione handleRoot la quale verrà chiamata nel momento in cui qualcuno chiederà la pagina web all’ESP8266, in questa funzione viene riempito un buffer con tutta la pagine web in HTML e javascript, aggiungendo i 12 valori letti al js per poterli visualizzare nel grafico.
Stetup() e loop(), come sempre in Arduino contengono rispettivamente le prime configurazioni, come l’avvio dell’interfaccia Wifi e l’assegnazione della funzione handleRoot al path “IP/”, ed il campionamento dei dati di temperatura ed umidità ad un intervallo prestabilito. L’ultima funzione, readSensirion, l’abbiamo già vista in un precedente articolo, ci permette di simulare il protocollo di comunicazione dell’SHT75 per la ricezione dei dati.

Il risultato finale
Ed ecco il risultato finale:
esp8266-highchart-graph

Sull’asse X, non avendo un modulo RTC con il quale sincronizzare l’orario, ho riportato il tempo decrescente partendo da destra, dove troviamo il dato più aggiornato. Ad ogni campionamento il dato meno recente viene rimosso, tutti i dati vengono spostati di posto verso “sinistra” e successivamente viene inserito il dato più aggiornato.

Un ultima considerazione, i grafici Highchart fanno riferimento a librerire presenti su server esterni per poter funzionare, quindi la visualizzazione del grafico avverrà soltanto se il dispositivo dal quale si interroga l’ESP8266 dispone di una connessione ad internet.

Sensirion SHT75 su ESP8266 in AP

L’ESP8266 è un chip WiFi dal costo molto contenuto programmabile e configurabile da e come microcontrollore. Data la sua versatilità, e spinto dalla crescente mania per l’IoT, ha avuto un grande successo tra gli amanti di Arduino, e viene ora impiegato in tutti quei progetti in cui vi è la necessità di poter avere un controllo remoto del dispositivo.

Come si sarà capito, non sono un gran fan dell’IoT, sinceramente non capisco questa mania del collegare tra loro i più disparati dispositivi, ma trovo comunque molto interessante l’ESP8266, così ne ho acquistato un paio.
Quello che andrò a realizzare in questo articolo sarà una semplicissima paginetta web nella quale verranno visualizzati temperatura ed umidità letti dall’ESP8266 tramite il sensore Sensirion SHT75, in questo caso l’ESP8266 verrà utilizzato in configurazione AP.

Cosa ho utilizzato:
-1x ESP8266-04
-1x Sensirion SHT75
-1x Resistore 10K
-Breadboard e cavetteria varia

Schema:esp8266-04_sht75

Il pin CH_PD va mantenuto a VCC, eccetto il caso in cui si voglia spegnere il modulo.
Il pin GPIO15 va costantemente mantenuto a GND.
Il pin GPIO0 va portato a GND prima dell’accensione per abilitare la programmazione del modulo.
Rx e Tx vanno connessi al modulo FTDI utilizzato per la programmazione.
Sensirion DATA e CLK vanno ai rispettivi pin di Data e Clock del Sensirion SHT75.

La programmazione:
Ho compilato il programma e  programmato l’ESP tramite l’IDE Arduino, questa volta sono rimasto davvero sorpreso dalla versatilità dell’IDE.
Prima di programmare il modulo è stato necessario caricare il Firmware NodeMCU sull’ESP tramite uno dei tanti Flasher che si trovano online, successivamente bisogna selezionare la rispettiva scheda nel tab Strumenti di Arduino.

Il codice:

Il codice è già ben commentato, la parte relativa alla funzione readSensirion() potrebbe risultare un po’ scarna di commenti, ma vi è tutta la simulazione del protocollo di comunicazione del Sensirion SHT7x sulla quale non c’è motivo di soffermarsi. La funzione readSensirion() può essere utilizzata anche su un qualsiasi Arduino e su qualsiasi Pin, non è richiesto infatti alcun tipo di periferica ma soltanto due comuni porte I/O.

Il Risultato:
Il risultato è una semplicissima pagina web con riportate Temperatura ed Umidità le quali verranno rilette ad ogni aggiornamento della pagina.schermata-del-2016-09-09-14-34-03

Note:
Può interessare una libreria per SHT75 per Raspberry? 😉

 

Antenna Wi-Fi esterna per Beelink X2

Ho comprato un Tv Box Android Beelink X2 a scopo valutativo, purtroppo a causa della posizione svantaggiata del router Wi-Fi il segnale sul Tv Box risulta essere molto basso e spesso non sufficiente ad una buona visione dei canali in streaming, ma nulla che non si possa risolvere…

Aprendo il Beelink X2 con un plettro in plastica usato solitamente per l’apertura di smarphone e cellulari, possiamo accedere alla scheda madre fissata alla scocca in plastica con 4 viti phillips:

BeelinkX2_Ext_WifiAntenna_1-1024x768

Tolte le 4 viti, possiamo sollevare la scheda madre ed individuare l’antenna su uno dei 4 angoli della scheda madre.

BeelinkX2_Ext_WifiAntenna_2-1024x768

Quello che andremo a fare, sarà rimuovere il resistore di valore 0 Ohm utilizzato come ponticello, ed al suo posto collegare un pigtail con connettore RP-SMA femmina per renderlo compatibile con le classiche antenne Wi-Fi utilizzate nei router.

BeelinkX2_Ext_WifiAntenna_3-1024x889

Per non precludermi la possibilità di poter ripristinare il Beelink X2 alle condizioni di fabbrica, il resistore l’ho spostato e saldato sull’antenna ormai inutilizzata.

BeelinkX2_Ext_WifiAntenna_4-1024x952

Ecco fatto, un semplice buco sulla scocca in plastica delle dimensioni del connettore SMA, e nel mio caso il segnale Wi-Fi è aumentato di ben 3 “tacchette”.

BeelinkX2_Ext_WifiAntenna_5-1024x768 BeelinkX2_Ext_WifiAntenna_6-1024x768