Modulo WiFi-Bluetooth ESP32

In questo articolo descriviamo brevemente il microcontroller ESP32 della Espressif

ESP32

E’ uns soc a basso consumo, composto da un microcontroller a 32 bit ed  integra già al suo interno un sistema wifi e buetooth. Al link delle risorse di Espressif si trovano le infomazioni dettagliate sul soc

Risorse ESP32

Le specifiche del dispotivo sono presenti nel seguente documento pdf

Specifiche ESP32

Il chip è disponibile in vari moduli o in schede di sviluppo, che facilita notevolmente l’uso dal momento che ha già al suo interno le corrette impostazioni hardware per il caricamento del firmware e la sua esecuzione.

Su internet si trovano vari siti che descrivono diversi progetti di Home Automation o IOT utilizzanti tale soc. Un sito di riferimento è sicuramente il seguente

esp32

All’interno del sito si trovano i riferimenti ai metodi/piattaforme  maggiormente utilizzati per lo sviluppo su tale soc, tra i quali si segnalano

  • Arduino Ide

ESP32 Arduino

  • ESP-IDF

ESP32 IDF

  • Micropython

MicroPython

  • PlatformIO

PlatformIO

  • Firmware Lua

LuaNode

Lua-RTOS-ESP32

Nodemcu Development

L’ESP32 è acquistabile sui vari siti, ad esempio ebay, sia in forma di modulo o piattaforma di sviluppo

ESP32 su ebay

Esistono  moduli del soc esp32 di diversi fornitori

Espressif esp-wroom-32

AI-Thinker esp32s

Al link

http://esp32.net/

sono elencate le diverse configurazioni hardware disponibili. Tra i kit di sviluppo segnaliamo

AI-Thinker NodeMCU-32S

DoIT ESP32 Dev Kit

Esitono dei kit di sviluppo basati su esp32 che integrano anche un modulo wireless LORA

Lora

al proprio interno.

Si segnalano ad esempio

Heltec Wifi LoRa 32

TTGO LoRa32

Nei prossimi articoli descriveremo come compilare ed usare vari firmware su schede di sviluppo con soc esp32.

Configurazione OctoPrint su Orange PI PC – Stampa file di test

Dopo aver configurato la stampante sul server OctoPrint

Configurazione stampante

impostiamo i parametri di connessione alla stampante.

Dopo esserci connessi sul server OctoPrint con l’utenza di accesso octoprint/password si imposta la connessione della stampante

octoprint-connessione

Con queste impostazioni è possibile stampare un file gcode già generato con Cura o Slic3r

Cura

Slic3r

o fare l’upload di un file stl su cui verrà eseguito lo slice mediante il profilo cura caricato e la CuraEngine presente sul sistema Orange Pi PC.

Nel caso in cui si importa un file stl, viene proposto lo slicing del file

octoprint-sliceA questo punto è presente il file pronto per stampa

octoprint-filesliced Avviata la stampa si può controllare l’avanzamento, temperatura

octoprint-progressbare gli strati che si stanno creando

octoprint-sliceprogress

In tale esempio sono state utilizzare le impostazioni basilari per poter procedere ad un primo avvio del sistema.

Per ulteriori informazioni e configurazioni su OctoPrint fare riferimento alla documentazione del software

Documentazione Octoprint

Al seguente link, invece,  sono elencate le stampanti supportate

Stampanti supportate

Configurazione OctoPrint su Orange PI PC – Configurazione stampante

Dopo aver definito anche la pubblicazione dell’hostname

Pubblicazione Hostname

si passa a questo punto alla configurazione della stampante.

ATTENZIONE: L’ utilizzo delle impostazioni mostrate è a vostro rischio e pericolo. Non ci assumiamo alcuna responsabilità nel caso tali impostazioni generino malfunzionamenti o rottura della stampante.

Al primo accesso ad OctoPrint vengono richiesti i parametri fondamentali per la gestione della stampante. Nel nostro caso colleghiamo l’Orange PI PC ad una stampante 3d Anet A8 mediante la porta USB. Al primo accesso all’indirizzo

http://3dprinter.local

ci viene mostrata una maschera di configurazione

octoprint-accesssi preme next e si accede alla maschera successiva in cui si definisce l’utenza che ha la gestione della stampante con relativa password

octoprint-accesscontrolsi preme Keep Access Control e dopo il caricamento si passa al controllo della connessione Internet in cui disabilitiamo il Connectivity Check

octoprint-accessconnectivityAl passo successivo si inserisce il percorso all’eseguibile CuraEngine, compilato nell’articolo precedente

Installazione OctoPrint

e si importa un profilo di default per cura per la stampante Anet A8

octoprint-printerprofile

octoprint-curaengine

Il profilo importato deve essere generato da Cura 15.04.x o inferiore. Di seguito il link alle varie versioni del software Cura

Cura

Si impostano poi i parametri della stampante, nel nostro caso Anet A8

octoprint-printer1Si definiscono le dimensioni del piatto ed il volume

octoprint-printer2Al passo successivo si definisce la velocità di spostamento mediante il pannello di controllo; impostiamo dei parametri conservativi

octoprint-printer3Si impostano infine i parametri dell’estrusore

octoprint-printer4Alla schermata successiva si inseriscono i comandi da inviare a Debian direttamente dalla interfaccia web di OctoPrint; si impostano nel modo seguente

 

octoprint-command

dove in password va inserita la passord per eseguire i comandi di root su Debian.

Si inserisce per l’aggiornamento software la cartella in cui è presente OctoPrint

 

octoprint-swupdatePer la webcam  non inseriamo nulla

octoprint-webcamSi conclude infine la configurazione con il tasto Finish.

Si conclude infine la configurazione con il tasto Finish.

Per ulteriori impostazioni ed addon di OctoPrint fare riferimento al sito

OctoPrint

 Nel prossimo articolo stampiamo un modello di test

Stampa file di test

Configurazione OctoPrint su Orange PI PC – Pubblicazione hostname

Dopo aver configurato haproxy per la fruizione dei contenuti in http sulla porta standard

Installazione HAProxy

si può configurare la macchina Linux in modo da pubblicare il nome sulla rete con il demone avahi.

Nelle macchine Linux e OSX tale servizio è visibile nativamente, mentre per i sistemi Windows occorre installare il servizio Bonjour

Bonjour per Windows

Sull’Orange PI PC il demone avahi va installato con il comando

Si modificano il nome a cui deve corrispondere il nostro 3d print server  nei due file /etc/hosts ed /etc/hostname

Nel nostro caso è stato modificato il nome da orangepcpc a 3dprinter.

Facendo ripartire il box linux si accede ai servizi utilizzando il nome 3dprinter.local.

avahi

Nel prossimo articolo si mostra uan configurazione di stampante

Configurazione Stampante

Configurazione OctoPrint su Orange PI PC – Installazione HAProxy

Dopo aver configurato l’avvio automatico di OctoPrint

Avvio automatico OctoPrint

possiamo a questo punto farlo rispondere sulla porta standard di un server Http.

Per questo si installa e configura il reverse proxy HAProxy

HAproxy

Procediamo alla installazione

 Editare il file /etc/haproxy/haproxy.cfg ed aggiungere al default le direttive comprensive anche di utilizzo di webcam

Riavviare il proxy con il comando

Far ripartire l’Orange PI. Se tutto è configurato correttamente il server di stampa 3D risponde sulla porta 80 all’indirizzo ip dell’Orange PI PC

http://ORANGEPIPC_IP

haproxyE’ possibile mappare il servizio Octoprint sulla porta 5000  solo all’interfaccia loopback editando il file ~/.octoprint/config.yaml

ed aggiundendo sotto la direttiva server il riferimento host

 Far ripartire OctoPrint

Ora la porta 5000 è mappata solo con l’indirizzo 127.0.0.1.

Nel prossimo articolo si configura Linux a pubblicare il nome host sulla rete in modo da accedere mediante tale riferimento senza ricorrere all’indirizzo IP

Pubblicazione Hostname

Installazione OctoPrint su Orange PI PC – Avvio Automatico

Dopo aver descritto l’installazione di OctoPrint e di CuraEngine nell’articolo precedente

Installazione Pacchetto OctoPrint

si passa alla configurazione del server di stampa 3d.

Come prima operazione si imposta la partenza automatica di OctoPrint.

Si esegue quanto segue

Editare il file /etc/defaults/octoprint modificando il puntamento all’eseguibile per l’avvio di OctoPrint tramite vi

o nano

e modificare il file da

a

tenendo conto anche del diverso utente utilizzato.

Aggiungere lo script all’avvio automatico

 Avviare OctoPrint  con il comando

 Controllare che OctoPrint è attivo sulla porta 5000 dell’Orange PI PC accedendo all’indirizzo

 Facendo ripartire   l’Orange PI PC il server OctoPrint parte ora automaticamente.

Nel prossimo articolo si configurerà Linux in modo da connettersi ad OctoPrint sulla porta standard Http, ossia sulla porta 80

Installazione HAProxy

Installazione OctoPrint su Orange PI PC – Installazione pacchetto python

In questo articolo si descrive come abilitare la scheda Orange PI PC a  server di rete per stampanti 3d.

Un sofware che fornisce tale funzionalità è OctoPrint

OctoPrint

Dal sito OctoPrint è possibile scaricare una immagine per Raspberry PI con il sistema già pronto; nel caso dell’Orange PI PC occorre procedere alla installazione del sistema OctoPrint su una immagine Linux.

E’ possibile anche usare una immagine Linux per Orange PI PC e seguire i passi relativi alla installazione di OctoPrint, ma è necessario verificare i prerequisiti del pacchetto python di OctoPrint.

Noi invece per questo articolo abbiamo compilato una immagine Debian mediante gli scripts Armbian.

Come prima operazione occorre preparare la scheda sd con una immagine Armbian. Nel caso specifico è stata creata una immagine Debian Jessie utilizzando lo script di Armbian, come indicato al link

Compilazione Armbian

e descritto in un precedente articolo

Creazione immagine Armbian per Orange PI PC

Abbiamo seguito i seguenti passi per la compilazione dell’ immagine Armbian su Ubuntu Xenial 16.04 ; da shell linux

Nelle  opzioni di compilazione scegliere quanto segue

armbianopipcfosNon si cambia la configurazione di default del kernel

armbianopipckernelScegliere come scheda Orange PI PC

armbianopipcboardScegliere il mainline kernel

armbianopipcmlkernelScegliere Jessie come distribuzione

armbianopipcjessieAbbiamo scelto come opzione il Desktop Envinronment

armbianopipcjessiedeDopo  tale opzione lo script procede alla compilazione. L’immagine da noi generata è Armbian_5.34_Orangepipc_Debian_jessie_next_4.13.12_desktop.img. Tale immagine può essere scaricata al link

Immagine Armbian per Orange PI PC

Si avvia Armbian e si crea l’utenza per l’utenza; in questo caso è stato scelta come utenza octoprint/password.

Se necessario riconfigurare la tastiera con il comando

e procedere all’aggiornamento del sistema

Se il sistema deve essere configurato tramite connessione wireless occorre che la connessione sia attiva all’avvio; per tale scopo nel nostro caso abbiamo utilizzato il demone wicd

Wicd Debian

 Si rimuove il network-manager presente

che rimuove i pacchetti network-manager e network-manager-gnome.

Si controlla che l’interfaccia wireless non sia presente in /etc/network/interfaces

Si procede alla installazione di wicd

Si controlla che l’utenza octoprint sia presente nel gruppo netdev

Nel nostro caso è già presente, dando come risultato

netdev-group

Nel caso non fosse presente aggiungerlo con il comando

Far partire wicd

Collegarsi sul desktop grafico di Armbian e configurare la connessione wireless con il comando

wicd-clientConfigurare e salvare la connessione di rete dall’interfaccia grafica.

Se si desidera il remote desktop si eseguono le operazioni già elencante all’articolo

Abilitazione Desktop Remoto su Armbian in Orange PI PC

Si può a questo punto procedere alla installazione di OctoPrint. Si seguono le indicazioni presenti al link

Installazione OctoPrint su Linux

Si installano i prerequisiti

Creare sotto /opt la cartella octoprint ed assegnare l’ownership ad octoprint

Posizionarsi in /opt/octoprint e scaricare il sofware

Eseguire quindi

Creare la cartella .octoprint

Assegnare i permessi all’utenza octoprint per gestire la porta della stampante 3d

Si testa la corretta installazione eseguendo il comando

Il server OctoPrint è raggiungibile sulla porta 5000 all’indirizzo ip del Orange PI PC

http://indirizzoip:5000

octoprinttestInstallare a questo punto la Cura Engine; posizionarsi nella home dell’utente octoprint e scaricare il pacchetto dei sorgenti

Scompattare il pacchetto

Entrare nella cartella scompattata

Eseguire la compilazione con il comando

Il software compilato è presente sotto la cartella build

curaengineCreare la cartella /opt/octoprint/cura e copiare il file CuraEngine in questa cartella

L’eseguibile è ora presente nella cartella /opt/octoprint/cura e sarà utilizzato in seguito da OctoPrint.

Nel prossimo articolo si descrive come configurare l’avvio automatico di OctoPrint

Avvio Automatico OctoPrint

Enigma 2 – Come leggere il contenuto di una immagine

Nell’articolo

Compilazione Immagine Enigma2 OpenATV

abbiamo visto come compilare l’immagine Enigma 2.

Nel presente si mostra come visionare il contenuto dei file di una immagine Enigma2.

Come esempio useremo sempre l’immagine per lo Zgemma H2H.

In un ambiente Linux, Debian 8 nel nostro caso, scaricare l’immagine in una cartella, ad esempio enigma2

immagineenigma2

Scompattarla con il comando

Nella cartella scompattata abbiamo vari file

rootfsQuello di nostro interesse è rootfs.bin.

Il comando

ci dà indicazioni sulla natura del file. Nel caso di rootfs.bin

ubici indica che si tratta di una immagine con ubi filesystem.

A questo punto installare come prima operazione le utility per memory technology device

Eseguire

Il contenuto del file è ora visibile sotto /mnt/ubifs

ubimountPer smontare il filesystem

Infine per eseguire il detach di UBI dal dispositivo mtd

 Di seguito dei link per reperire ulteriori informazioni su mtd ed ubi

UBIFS

Linux MTD UBIFS

Linkit 7688 Duo con Lede – Esempio Timecheck

Dopo l’esempio in Python e Firmata

Firmata e Python

in questo esempio si utilizza la seguente modalità di programmazione

duo-yun-bridge

Si abilita la scheda a funzionare come un Arduino Yun

Linkit 7688 Duo Arduino Yun

Come specificato nel link Mediatek si deve abilitare il bridge sulla scheda; da una shell su Lede eseguire

 Al riavvio accedere sull’Ide Arduino e scegliere File->Examples->Bridge->TimeCheck

timecheck_arduino-1-6-5La versione dell’Ide Arduino utilizzata è la 1.6.5; con la versione 1.8 abbiamo avuto problemi di compilazione.

Dall’Ide Arduino, dopo aver eseguito il caricamento dello sketch, aprire da Tool->Serial Monitor la finestra

timecheckche mostra l’orario corrente.

Dopo tale operazione, per eseguire gli altri esempi, disattivare il bridge con i comandi

Linkit 7688 Duo con Lede – Firmata e Python

Dopo aver fatto il test con python nel precedente articolo

Linkit 7688 Duo con Lede – Comunicazione Uart MPU-MCU

in questo si descrive come eseguire la stessa operazione utilizzando la libreria python Firmata

Protocollo Firmata

In questo caso la modalità di programmazione è la seguente

duo-firmata-archCome prima operazione, così come descritto nell’articolo Mediatek

Usare Firmata con Python

installiamo la libreria Firmata per python; in una shell su LEDE eseguire

Sull’ IDE Arduino scegliere File->Examples->Firmata->StandardFirmata

arduinofirmataEseguire la seguente modifica nel codice sketch:

Cercare il codice

Firmata.begin(57600);
  while (!Serial) {

e sostituirlo con

  Serial1.begin(57600);
  Firmata.begin(Serial1);
 
  while (!Serial1) {

Salvare il file ed eseguire la compilazione e caricamento sul Linkit 7688 Duo.

In una shell unix in Lede creare il file blink_with_firmata.py e copiare all’interno il codice

Salvare ed uscire.

Sempre dalla shell eseguire il comando

Il Led presente sulla scheda dovrebbe accendersi e spegnere ad intermittenza.

Di seguito il link per scaricare i due file pronti per il Linkit 7688 Duo

 Lede Python Firmata file

 Nel prossimo articolo si abilita la scheda a funzionare come Arduino Yun

Linkit 7688 Duo con Lede – Esempio Timecheck

Blog dedicato a dispositivi embedded