Archivi tag: python

Scheda di sviluppo Seeeduino XIAO

In questo articolo viene descritta la scheda di sviluppo Seeeduino XIAO

Seeeduino XIAO

Seeeduino-XIAO-pinout

Le specifiche generali della scheda sono le seguenti

CaratteristicaValore
CPUARM Cortex-M0+ CPU(SAMD21G18) funzionante fino a 48MHz
Flash Memory256KB
SRAM32KB
Ingressi/Uscite Digitali11
Ingressi/Uscite Analogiche11
Interfacce I2C1
Interfacce SPI1
Interfaccia UART1
Led AlimentazioneVerde
Led di testGiallo
Led per Comunicazione Seriale in RicezioneBlu
Led per Comunicazione Seriale in TrasmissioneBlu
Porta di alimentazione e caricamento firmwareUSB Type C
Tensione Alimentazione3.3V/5V DC
Dimensioni20×17.5×3.5mm

Come si evince dalla tabella delle specifiche aspetti peculiari della scheda sono i seguenti

  • Ha una microcontroler SAMD21G18  ARM® Cortex®-M0+ 32bit 48MHz  con  256KB Flash,32KB SRAM.
  • Compatibile con IDE Arduino e CircuitPython.
  • Adatta per progettazione veloce con Breadboard.
  • Di piccole dimensione (20×17.5mm), per cui adatta per progetti di dispositivi indossabilli e piccoli progetti.
  • Molteplici interfacce a disposizione: 11  pin digitali/analogici, 10 Pin PWM, 1 uscita DAC , 1 interfaccia Pad SWD, 1 interfaccia I2C , 1 interfaccia UART, 1 interfaccia SPI.

Di seguito i link per i wiki di Seeedstudio per la configurazione con Arduino e CircuitPython

Seeeduino XIAO con IDE Arduino

Seeeeduino XIAO con CircuitPython

CircuitPython è un progetto derivato da Micropython semplificato per microcontrollori

CircuitPython 

La programmazione del dispositivo avviene mediante connessione USB Type C. Offre anche nella parte inferiore  pad per alimentazione  nonché l’interfaccia di debug SWD (Serial Wire Debug).

seeeduino-xiao-pinout-backLa scheda supporta il pin multiplexing ed uno stesso pin può essere utilizzato a seconda della funzione che lo richiama come pin analogico, digitale, ecc.

Sulla parte superiore della scheda sono presenti due pin per il reset della scheda stessa e per l’impostazione in modalità dfu per il caricamento di altro bootloader (per esempio CircuitPython).

Seeeduino-XIAO-resetPer eseguire il reset o caricare altro bootloader collegare la scheda tramite USB Type C e  resettare  cortocircuitando velocemente i pin di reset. Quando il led arancione incomicia a illuminarsi con sfarfallio la scheda è pronta per caricare il firmware. Usare questo metodo anche nel caso in cui la scheda non risulti più visibile sulla porta USB del PC.

La scheda è disponibile direttamente dal sito Seeed

Seeeduino XIAO

Nel prossimi articoli impostiamo l’IDE Arduino per un piccolo progetto con Seeeduino XIAO

Seeeduino XIAO – Ambiente Arduino

 

Informazioni su Seeed

Seeed è un abilitatore hardware IoT che fornisce servizi per oltre 10 anni che consentono ai produttori di realizzare i loro progetti e prodotti. Seeed offre una vasta gamma di piattaforme hardware e moduli sensore pronti per essere integrati con le piattaforme IoT esistenti e la produzione di PCB ed il servizio di assemblaggio PCB. Seeed Studio offre una vasta gamma di componenti elettronici tra cui Arduino Raspberry Pi ee altre diverse piattaforme per schede di sviluppo. Soprattutto il sistema Grove aiuta ingegneri e produttori ad evitare problemi con i ponticelli. Seeed Studio ha sviluppato oltre 280 moduli Grove che coprono una vasta gamma di applicazioni in grado di soddisfare una varietà di esigenze.

MicroPython – Struttura programma MicroPython

Dopo aver esaminato diversi strumenti di sviluppo per MicroPython negli articoli precedenti

MicroPython – Strumenti di sviluppo Ampy – Eric

MicroPython – IDE MicroPython uPyCraft

in questo articolo si descrivono brevemente le principali caratteristiche di MicroPython. Esaminiamo in particolare la documentazione inerente all’ESP8266, ma i concetti possono essere estesi anche alle altre schede.

La documentazione sul soc ESP8266 e MicroPython è disponibile al link

Documentazione MicproPython ESP8266

Al link si trovano tutte le informazione necessarie per implementare il proprio codice sulla scheda e le caratteristiche di MicroPython nonché le differenze rispetto a Python.

Di seguito i punti principali per la codifica in MicroPython:

  • MicroPython ha una consolle REPL (Read Evaluate Print Loop) attraverso la porta seriale cui è connesso il dispositivo sui cui si posso impartire i vari comandi MicroPython in modo interattivo.
  • Si può accedere alla consolle REPL anche tramite connessione all’indirizzo IP del dispositivo mediante l’abilitazione della consolle WEBREPL  (Web Browser Interactive prompt)

Documentazione WebREPL

importando il pacchetto webrepl, abilitandolo ed avviandolo ad ogni ripartenza del dispositivo. Per accedere al dispositivo configurato si puo usare il link

Accesso WEBREPL

o localmente clonandolo da github

  • I file che vengono eseguiti all’avvio del dispositivo sono  boot.py e successivamente main.py.
  • Le librerie disponibili per MicroPython sono  presenti sul github al link

Librerie MicroPython

  • Pacchetti aggiuntivi

I moduli aggiuntivi possono essere scaricati dal link delle librerie presentato sopra o scaricati con la utility upip (Package Manager) dalla consolle REPL se presenti nel repository Python Package Index (PyPI)

PYPI

come descritto di seguito

upip

Di seguito un semplice esempio che si connette al router e ci permette di accedere alla consolle MicroPython con il browser e WEBREPL.

  • Codice boot.py

Al primo accesso viene richiesta l’abilitazione di webrepl da eseguire nella consolle REPL con il comando

e seguendo le istruzioni si abilita il servizio e si imposta  la  password di accesso.

La procedura genera sul dispositivo il file webrepl_cfg.py.

Dopo l’impostazione e riavvio accediamo alla consolle web aprendo il file webrepl.html clonato  localmente con un browser

WebreplPremiamo connetti e dopo aver inserito la password impostata nel setup iniziale accediamo alla consolle

WebreplConnectedInstalliamo ora dalla consolle WEBREPL, ad esempio,  il modulo stat utilizzando upip

Per  incollare del testo nella consolle eseguire Ctrl+A e Ctrl+V

WebreplupipIn questo caso il pacchetto è stato prelevato dal repository PYPI, scompattato ed installato sul dispositivo.

Abbiamo notato che alcuni moduli, sebbene presenti sul repository, danno errore in fase di installazione con upip; tali moduli li installiamo direttamente senza usare la utility upip, ma scaricando la libreria dal sito elencato sopra e trasferendo il codice sul dispositivo.

Di seguito il link al codice mostrato sopra

Webreplsample

Altra opzione disponibile è compilare il firmware con i moduli richiesti.

Nel prossimo articolo esamineremo degli esempi analoghi a quanto fatto con LUA su ESP8266 in articoli precedenti

MicroPython – Esempi nodi con DHT11, Relé ed MQTT

 

 

 

 

Micropython – Strumenti di sviluppo Ampy – Eric

Dopo aver installato uPyCraft nell’articolo precedente

MicroPython – IDE MicroPython uPyCraft

esaminiamo ora altri strumenti disponibili per lo sviluppo MicroPython su varie piattaforme.

In questo articolo si mostrano le operazioni da eseguire su Windows e Linux.

Primo pacchetto Python da installare è Ampy (Adafruit MicroPython Tool)

ampy

Il tool è presente nei repository python, per cui può essere installato mediante pip.

In Windows eseguire in una console dos

Analogamente in Linux eseguire in una shell

I comandi disponibili sono visibili eseguendo

ampyAmpy consente il trasferimento, creazione, visualizzazione, esecuzione dei file sul dispositivo.

Per quanto concerne l’IDE si può installare Eric, IDE Python generico

Eric

Eric non consente dall’IDE la comunicazione con il dispositivo come visto con uPyCraft; tale compito è demandato ad Ampy. Per l’installazione procedere come segue:

  •  Per Linux Debian 9 basta eseguire

Il tool è disponibile tra gli strumenti di sviluppo; alla prima esecuzione richiede delle impostazioni di default

ericSettingsSi definisce la posizione del workspace

ericWorkspacee si accede all’IDE

eric

  • Per Windows scaricare lo zip

Eric

Scompattare lo zip in una cartella da cui eseguirlo; installare i prerequisiti

Eseguire a questo punto l’installazione di eric cliccando due volte su install.py

ericInstallWindows

Il programma procede al controllo dei prerequisiti ed al completamento della installazione

ericWindowsProcedure

Cliccando due volte su eric6.py  o eseguendo eric6 da una finestra dos viene eseguito il programma in modo analogo a quanto visto per Linux Debian

ericWindows

Nel prossimo articolo esamineremo brevemente la struttura di un programma MicroPython

MicroPython – Struttura programma MicroPython

Micropython – IDE MicroPython uPyCraft

Dopo l’installazione del firmware sul dispositivo Nodemcu esp8266 DevKit

Firmware MicroPython

passiamo ora ad esaminare uno strumento di sviluppo può essere adatto allo sviluppo di codice Python.

 Uno strumento che permette sia di scrivere codice che di caricarlo sul dispositivo è uPyCraft

uPyCraft

 Lo strumento al momento funziona per Windows e dalla versione 0.30 è disponibile anche per Linux; il codice sorgente è presente al link

uPyCraft Source

Di seguito i passi per Windows e Linux.

  • Windows

Una volta scaricato il pacchetto lo si esegue come amministratore; viene richiesta l’installazione del font Monaco

monaco-fontDopo l’installazione del font si accede all’IDE

upycraft-v0-29Si imposta la regione corretta in Tools->Preferences->Language Location

upycraftlocationed i parametri della porta seriale in Tools->Preferences->Serial

upycraftserialsettingsColleghiamo a questo punto il dispositivo su una porta USB ed impostiamo la porta corretta uPyCraft

upycraftserialSi sceglie il dispositivo, in questo caso ESP8266

upycraftdeviceCliccando sulla icona di connessione si accede al dispositivo ed ai file presenti sullo stesso

upycraftconnectionCon l’installazione del firmware è presente solo il file boot.py sul dispositivo

upycraftfilesystemLo strumento permette di scaricare degli esempi di codice MicroPython per la scheda in esame;  scegliamo blink.py

examplesPremendo il pulsante “Download and Run” si carica sul dispositivo il codice e lo si esegue

blinkIn questo caso il led presente sulla scheda Nodemcu DevKit lampeggia.

  • Linux

Il tool è analogo nella versione Linux; si scarica il pacchetto a cui si assegna il diritto di esecuzione e lo si lancia, Occorre assegnare all’utente i diritti per l’accesso sulla porta seriale con il comando, già visto in precedenza

Nel nostro caso, su Debian 9, si hanno le seguenti schermate analoghe a quanto visto su Windows.

Si apre l’IDE

upycraft-v0-30linuxSi imposta la regione corretta in Tools->Preferences->Language Location

upycraftlocationlinuxed i parametri della porta seriale in Tools->Preferences->Serial

upycraftserialsettingslinuxColleghiamo a questo punto il dispositivo su una porta USB ed impostiamo la porta corretta uPyCraft

upycraftseriallinuxSi sceglie il dispositivo, in questo caso ESP8266

upycraftdevicelinuxCliccando sulla icona di connessione si accede al dispositivo ed ai file presenti sullo stesso

upycraftconnectionlinuxCon l’installazione del firmware è presente solo il file boot.py sul dispositivo

upycraftfilesystemlinuxLo strumento permette di scaricare degli esempi di codice MicroPython per la scheda in esame;  scegliamo blink.py

exampleslinuxPremendo il pulsante “Download and Run” si carica sul dispositivo il codice e lo si esegue

blinklinuxCome in Windows il led presente sulla scheda Nodemcu DevKit lampeggia.

Nella versione 0.30 per Windows abbiamo notato un funzionamento non sempre corretto, per cui in tale sistema operativo abbiamo continuato ad usare la versione 0.29.

Ulteriori informazioni su uPyCraft sono reperibili sul sito dello strumento

Documentazione uPyCraft

Nel prossimo articolo tratteremo un altro strumento di sviluppo Python

MicroPython – Strumenti di sviluppo Ampy – Eric

MicroPython – Python su dispositivi embedded

In questo articolo iniziamo a trattare MicroPython

MicroPython

una implementazione di Python3

Python

per dispositivi embedded.

Sul sito MicroPython sono disponibili varie immagini per diversi dispositivi, tra cui i moduli esp8266 ed esp32

MicroPython Dowloads

 Iniziamo i nostri test con una scheda nodemcu esp8266 DevKit

Nodemcu Devkit

Si procede a caricare il firmware su tale scheda.

Sul sito MicroPython si fa riferimento anche al caricamento del firmware sulla scheda con le informazioni disponibili al link

Tutorial MicroPython per esp8266

Per il caricamento del firmware su utilizza sempre il tool esptool, disponibile anche sul repository Python.

Per poter procedere all’utilizzo occorre installare Python3 sulla piattaforma di sviluppo utilizzata. Di seguito i passi da seguire per Windows e Linux.

  • Windows

Per Windows occorre innanzitutto installare l’ambiente Python3, disponibile al seguente link

Python per Windows

Nel nostro caso è stata scaricata la versione 3.6.4 per sistemi a 64 bit. Si procede alla installazione del pacchetto con diritti di amministrazione

setuppythonDopo aver proceduto ad aggiungere Python nel Path si preme “Install Now”

pythonsetupendDopo aver concluso l’installazione si apre una shell dos e si controlla la versione di Python installata

pythonversionSempre dalla consolle dos si procede alla installazione di esptool con il comando

esptoolinstallationSi può procedere a questo punto all’installazione del firmware MicroPython sulla scheda Nodemcu esp8266 DevKit. Occorre, naturalmente, aver installato su Windows i drivers del chip seriale-ttl presente sul proprio modello di scheda. Ci si posiziona nella cartella in cui si è scaricato il firmware e si eseguono i comandi da shell dos

erase_flashProcedere al caricamento del firmware

firmware_flashUna volta installato il firmware connettiamoci sulla consolle Python utilizando, nel nostro caso con la scheda nodemcu DevKit, la stessa porta già sfruttata per il caricamento del firmware.

Su Windows si può utilizzare il programma putty

Putty

ed impostare la connessione seriale ad un baudrate di 115200

repl_putty

  • Linux

Per Linux utilizziamo la distribuzione Debian 9, ma la procedura può essere estesa ad altre distribuzioni. Dopo l’installazione di Debian 9, analoga a quanto eseguito per la versione 8

Debian 8

si procede alla installazione in Python3 e del tool esptool

 Aggiungere l’utenza utilizzata su Debian al gruppo dialout

Nel nostro caso, utilizzando sviluppo come utente, il comando è il seguente

Passiamo alla installazione del pacchetto Python esptool

Si può quindi procedere alla installazione del firmware in modo analogo a quanto fatto su Windows.

Si controlla su che porta seriale è disponibile la scheda (ttyUSBX)

ttylinuxSi procede quindi alle operazioni di cancellazione e caricamento del firmware

 Per  collegarsi sulla scheda si usa screen

il cui manuale è presente al link

Manuale screen

Per eseguire il detach premere

per eseguire il resume

 Per chiudere screen

Una volta collegato si ottiene il medesimo risultato di Windows

screenNel prossimo articolo incominceremo a vedere quali IDE si possono usare per creare e caricare il nostro codice Python

IDE MicroPython uPyCraft

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