Cover IOT2020/2040 per Arduino Motor Shield V3

L’inserimento di shield Arduino all’interno del Siemens SIMATIC IOT2040 necessita in alcuni casi dell’asportazione della copertura sinistra del contenitore per consentire un’agevole passaggio dei cavi, a tal fine ho realizzato un coperchio che si adatta alla scheda Arduino Motor Shield V3 che può essere stampato in 3D. Condivido i file grafici per la stampa in modo che sia possibile, per chi lo desidera, riprodurlo, modificarlo o migliorarlo.
Spero che questo lavoro sia utile anche ad altri.

Buon Making a tutti 🙂

Siemens SIMATIC IOT2040 – configurazione ed utilizzo con l’IDE Arduino

L’obiettivo di questa lezione introduttiva sull’uso di IOT2040 è quello di aiutare un gruppo di miei studenti nelle sperimentazioni che in questi giorni si stanno svolgendo nell’ambito delle attività di PCTO. Seguiranno nelle prossime settimane ulteriori guide che andranno ad ampliare il curricolo del percorso di Automazione per le classi 4′ e 5′ che svolgo presso l’ITIS Pininfarina di Moncalieri.

La semplicità di utilizzo, unita all’affidabilità e alla storia in campo industriale di Siemens, rendono la serie SIMATIC IOT2000 la scelta perfetta come gateway industriale. La possibilità di programmare SIMATIC IOT2000 con l’IDE Arduino permette un facile inserimento all’interno del percorso di studi, infatti il gateway è la normale evoluzione in campo industriale di Arduino, da esso ne eredita la possibilità di utilizzare i medesimi  shield che vengono usati per la scheda Arduino UNO R3. Con IOT2000 è possibile usare protocolli di comunicazione come MQTT e Modbus.

Il funzionamento del gateway di Siemens è basato su Yocto Linux. La serie SIMATIC IOT2000 comprende i modelli IOT2000, IoOT2020 e IOT2040 compatibili con la maggior parte degli sketch Arduino che possono essere caricati direttamente dall’IDE Arduino.


Nella scheda che segue vengono evidenziate le differenze tra i vari dispositivi. L’IOT2040 è ideale per un impiego in azienda, mentre l’IOT2020 può essere utilizzato in campo didattico. Per il mio istituto ho scelto di utilizzare la serie di IOT2040 in modo che gli studenti fossero già formati su un prodotto che avesse performance adatte ad un uso aziendale.

Caratteristiche principali IOT 2040

  • SIMATIC quality
    Realizzato per operare 24/7 In ambiente industriale
  • AutomatIon.ConnecTed
    Connessione facile all’automazione con supporto PROFINET, interfacce standard e apertura a soluzioni basate su Cloud
  • Aperto
    Programmabile con linguaggi ad alto livello (es. Java, C++) tramite diversi IDE (es. Eclipse) e compilatori per Yocto Linux
  • Performance
    Processore 32bit deterministico Intel Quark®x1020, 1 GB RAM e real-time-clock con batteria di buffer
  • Espandibilità & Connettività
    Compatibile con mPCIe, Arduino Shields e varie interfacce, protocolli e driver standard

Famiglia SIMATIC IOT2000 – Scheda tecnica

SIMATIC IOT2020

  • Target: Per Università e istituti scolastici
  • Hardware:
    • Intel Quark® x1000 (Galileo)
    • 512 MB RAM
    • 1 Ethernet interface
  • Espandibilità
    Arduino shield / mPCIe / µSD card slot
  • Software
    Profinet driver
  • Programmazione
    Yocto Linux/programmazione con linguaggi ad alto livello
  • Supporto Tecnico
    Sito internet, forum dedicato

SIMATIC IOT2040

  • Target: Variante “Industrial IoT” – Gateway / Collettore dati in applicazioni industriali
  • Hardware:
    • Intel Quark® x1020 (+secure boot)
    • 1 GB RAM
    • 2 Ethernet interfaces
    • 2 x RS232/485 interfaces
    • battery buffered RTC
  • Espandibilità
    Arduino shield / mPCIe / µSD card slot
  • Software
    Profinet driver
  • Programmazione
    Yocto Linux/programmazione con linguaggi ad alto livello
  • Supporto Tecnico
    Sito internet, forum dedicato

Ambienti di sviluppo e programmazione

  • Eclipse – programmazione in C/C++, Java
  • Arduino IDE – programmazione in C
  • Python
  • Node-RED

Interfacce

1 – Cover sinistra (Arduino interface)
2 – LED
3 – Cover destra (µSD card, battery)
4 – Chiusura di sicurezza
5 – Pulsante user programmabile
6 – Pulsante RESET

7 – Porte COM (RS232/422/485)
8 – Preforati per installazione antenne
9 – Fori per alette a pressione per montaggio a muro
10 – Alimentazione

11 – USB Type A
12 – USB Type Micro B
13 – Porta Ethernet 10/100 Mbps
14 – Porta Ethernet 10/100 Mbps PoE

15 – Fissaggio a guida DIN

Nella parte interna sono ben evidenti, partendo da sinistra, i pin a cui è possibile connettere gli shield Arduino, a destra invece l’alloggiamento per la micro SD e batteria per l’RTC.

Configurazione di SIMATIC IOT2040

Per lo svolgimento di questa esercitazione è indispensabile avere:

  • Cavo ethernet
  • SD Card da almeno 8GB
  • Alimentazione a 24 Vcc
  • Arduino IDE
  • Siemens SIMATIC IOT 2040

Manuali di riferimento

Impostazione

Prima di procedere è indispensabile prelevare il software e la documentazione necessario dal portale di supporto di Siemens, registratevi e accedete al portale di supporto Siemens per poter poi prelevare tutto ciò che serve per configurare il dispositivo.
Il punto di riferimento da cui partire è il forum dedicato su cui troverete tutto ciò che vi serve e da cui potrete ottenere il supporto di Siemens per qualsiasi richiesta relativa all’hardware. Tutti i modelli della serie serie IOT2000 si configura allo stesso modo quindi, quindi questo tutorial risulta valido per: IOT2000, IOT2020 e IOT2040.

  • Per procedere alla creazione dell’SD di boot da inserire all’interno dell’IOT 20×0 fate riferimento alla seguente pagina web sul sito di Siemens: Immagine di esempio scheda SD SIMATIC IOT2000
  • Eseguire il download di: Example_Image_V2.4.0.zip (365,0 MB)
  • Inserire la micro SD all’interno del vostro computer, oppure utilizzate un’adattatore esterno.
  • Scompattate il file che avete scaricato e copiatelo sull’SD. Per la copia su SD per gli utenti Windows rimando alla pagina 9 del manuale allegato: SETTING UP the SIMATIC IOT2020, SIMATIC IOT2040 in cui viene utilizzato Win32 Disk Imager.
    In alternativa per gli utenti MacOSX, Window e Linux consiglio l’utilizzo balenaEtcher applicazione estremamente utile e semplice da utilizzare.

Avviare balenaEtcher e selezionare il file compattato sul vostro HD:

Selezionare l’unità su cui compare l’immagine:

Selezionare la periferica:

Avviare la copia facendo click su “Flash!”:

Verrà richiesto l’inserimento della password di amministratore per effettuare cambiamenti sul disco di destinazione:

 L’operazione di copia può durare parecchi minuti:

Inserire ma micro SD all’interno del dispositivo

Aprire la cover destra (µSD card, battery)

Spostare verso il basso il blocco SD

Aprire il blocco

Inserire la micro SD

Chiudere il blocco e spostare verso l’alto

Primo avvio del Simatic IOT 2040

I passi che seguono mostrano come accedere al SIMATIC IOT2040 mediante l’IP statico per configurare la rete. E’ importante ricordare che SIMATIC IOT 2040 ha come impostazione predefinita l’indirizzo DHCP sulla porta porta Ethernet – X2P1 e se lo si desidera è possibile accedere direttamente utilizzando l’indirizzo IP assegnato.

Con IOT2040 spento collegare un’estremità del cavo Ethernet al computer e l’altra alla porta Ethernet-X1P1 del dispositivo SIMATIC IOT2000, se state usando un IOT2040 la porta X1P1 è quella che si trova sulla sinistra.

Attenzione: Usare una tensione di alimentazione continua dai 9 ai 36V massimi

Una volta acceso SIMATIC IOT2000, vedrete il seguente comporatamento dei LED:

  • PWR: fisso; dispositivo acceso
  • SD: intermittente successivamente si spegnerà
  • USB: fisso; dispositivo acceso

Il LED SD sarà intermittente perché viene modificata la dimensione del filesystem, questa fase potrebbe durare qualche minuto (dipende da che tipo di SD state utilizzando) attendere fino a quando non cambia lo stato del LED da fisso a spento, a questo punto potrete accedere all’IOT.

SIMATIC IOT2000 permette l’accesso tramite seriale, SSH e Telnet; in questa guida effettueremo una connessione SSH.

SIMATIC IOT2000 ha come indirizzo statico di default: 192.168.200.1. Per stabilire una connessione SSH, il vostro computer dovrà avere la stessa sottorete di SIMATIC IOT2000.

Se state utilizzando Windows utilizzate la guida SETTING UP the SIMATIC IOT2020, SIMATIC IOT2040

Gli utenti Linux e MacOSX possono seguire i passi che seguono.

Quanto la rete del vostro computer è configurata con la stessa sottorete del SIMATIC IOT2040 verificare la connettività con un ping:

ping 192.168.200.1

Il risultato dovrebbe essere simile a quanto indicato nell’immagine che segue, se ciò accade vuol dire che il dispositivo è correttamente configurato

PING 192.168.200.1 (192.168.200.1) 56(84) bytes of data.
64 bytes from 192.168.200.1: icmp_seq=1 ttl=64 time=1.04 ms
64 bytes from 192.168.200.1: icmp_seq=2 ttl=64 time=1.03 ms
64 bytes from 192.168.200.1: icmp_seq=3 ttl=64 time=1.00 ms

Accedere al gateway utilizzando il comando

ssh root@192.168.200.1

Al primo accesso verrà chiesto di approvare la connessione SSH, scrivete “yes” e premete invio per continuare.

Una volta stabilito l’accesso vedrete la seguente struttura sul vostro terminale:

root@iot2000:~#

Come dette sopra, l’indirizzo statico del SIMATIC IOT 2040 è impostata a 192.168.200.1 pertanto, se è necessario un altro indirizzo IP statico o un indirizzo DHCP, questo può essere impostato nel file “interfaces” nella directory “/etc/network”.

Per fare questo dovete spostarvi nella directory:

cd /etc/network/

Aprire il file “interfaces” usando l’editor nano:

nano interfaces

Il contenuto del file “interface” è per default impostato come di indicato di seguito:

# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
# The loopback interface
auto lo
iface lo inet loopback
# Wired interfaces
auto eth0
iface eth0 inet static
        address 192.168.200.1
        netmask 255.255.255.0
auto eth1
iface eth1 inet dhcp

 

Se state lavorando con SIMATIC IOT2040 l’indirizzo DHCP è configurato per default sulla seconda porta (X2P1LAN). Accertatevi che il cavo di rete sia connesso sulla seconda porta Ethernet e riavviate il gateway

Se lavorate con SIMATIC IOT2020 e desiderate impostare l’indirizzo DHCP dovete modificare l’interfaccia come indicato di seguito e riavviare successivamente il gateway:

# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
# The loopback interface
auto lo
iface lo inet loopback
# Wired interfaces
auto eth0
iface eth0 inet dhcp

Utilizzo dell’Arduino IDE

SIMATIC IOT2000 è compatibile con l’IDE Arduino attraverso il pacchetto Galileo. Seguire i passi in elenco per configurare correttamente la scheda.

1 – Aprite l’IDE Arduino

2 – in Tools selezionare Board > Boards Manager

3 – inserire nel campo di ricerca Intel i5 e fate click su Install

4 – Selezionare Intel Galileo Gen2 dal menù Tools > Board 


5 – Utilizzare la connessione micro USB per connettere IOT2040 al computer

6 – Selezionare la porta COM assegnata da Tools > Port > Intel Galileo

7 – Aprire lo sketch di esempio Blink: File > Examples > 01.Basics > Blink e effettuare l’upload sullo IOT2040, al termine del trasferimento il LED USER lampeggerà. Se il vostro computer non rileva la scheda l’IOT2040 dovrete provvedere ad aggiornare manualmente i driver seguendo il link.

Lunga vita e  prosperità! 🙂

 

Errori comuni nell’uso di Arduino – fare più azioni nell’if senza l’uso delle parentesi graffe

Continua la segnalazione degli errori che spesso vengono commessi durante le prime attività di programmazione con Arduino.
La sequenza di istruzioni da eseguire se risulta vera la condizione dell’istruzione if  (il corpo della if) deve essere racchiusa tra parentesi graffe. L’errore è immaginare che l’indentazione sia sufficiente per indicarne l’appartenenza al corpo della if, modalità valida in altri linguaggi di programmazione come in Python, ma non in C:

Uso non corretto

if (temperatura > 25)
  digitalWrite (normaleTemp, LOW);
  digitalWrite (allarmeTemp, HIGH);

Uso corretto

if (temperatura > 25)
{
  digitalWrite (normaleTemp, LOW);
  digitalWrite (allarmeTemp, HIGH);
} // fine del controllo temperatura > 25

Buon lavoro 🙂

Gestire con micro:bit un display 1602 I2C

Ho realizzato questo tutorial come risposta ad un quesito che mi è stato posto da un’amica collega sull’utilizzo del display 1602 I2C comandato da micro:bit.
Per quanto riguarda la descrizione tecnica del display vi rimando al post su questo sito:

Utilizzo dell’LCD 16×2 Hitachi HD44780 1602 con modulo I2C PCF8574T

Per un utilizzo con micro:bit è sufficiente conoscere il tipo esatto di integrato I2C che gestisce la comunicazione tra display e micro:bit nella modalità indicata da questo tutorial.

Aprite un nuovo progetto dall’ambiente grafico di programmazione di micro:bit.
Aggiungiamo l’estensione che consente la gestione di un display 16×2 I2C, per far ciò selezionate “+Extensions”:

nel campo di ricerca inserite: I2C

dovreste ottenere il seguente risultato:

Selezionate l’estensione indicata nell’immagine:

All’interno dei blocchi disponibili ritroverete quelli che fanno riferimento al display:

Ogni dispositivo I2C dispone di un indirizzo, un codice a cui bisogna far riferimento in fase di programmazione e per quanto riguarda la scheda di comunicazione I2C disposta sul retro del display troverete due tipi di dispositivi con indirizzo differenti l’uno dall’altro. La differenza consiste nel tipo di circuito integrato che gestisce la comunicazione I2C:

  • PCF8574 > indirizzo 39
  • PCF8574A > indirizzo 63

L’indirizzo dovrà essere inserito all’interno di un apposito blocco come indicato di seguito.

Per sapere quale indirizzo usare potete leggere la sigla dell’integrato, come indicato nell’immagine che segue:

nel mio caso l’indirizzo da inserire sarà il 39.

L’altro metodo consiste nel sostituire, nel codice che segue, gli indirizzi sopra indicati in modo da individuare il numero corretto che permette la visualizzazione del testo sul  display.

Per il collegamento del circuito avete necessità di alimentare il display a 5V, in commercio esistono degli edge connector (connettore per collegare micro:bit alla breadboard) che prelevano dalla USB i 5 volt, nel mio caso questa funzionalità non è fornita, l’unica tensione disponibile è di 3,3V non sufficienti per alimentare il display.

Se anche voi siete nelle medesime condizioni allora alimenterete via USB il micro:bit mentre il display dovrà essere alimentato esternamente mediante una tensione di 5V. Se agite in questo modo ricordate che la terra (GND) dovrà essere la medesima (collegate insieme) per entrambi i dispositivi. Fate riferimento allo schema di seguito indicato:

Sul micro:bit il pin 20 corrisponde all’SDA e il pin 19 all’SCL, pin che avranno una corrispondenza con il display. Per le mie sperimentazioni dispongo di un cavo USB modificato per poter inserire su breadboard la tensione di 5V proveniente dalla USB del computer.

Realizzeremo un semplice programma che consente di visualizzare su due righe il testo:

BBC micro:bit
Italy timer

dove timer è il numero di secondi trascorsi dall’avvio del programma.

L’inserimento della prima istruzione provocherà la visualizzazione del display I2C:

L’istruzione “LCD initialize with Address 39” assegna al display l’indirizzo 39

L’istruzione “show string” mostrerà sul display il testo incluso nel primo campo: “BBC micro:bit” che verrà scritto a partire dalla colonna 0 e riga 0 (in prima riga).

La seconda “show string” mostrerà sul display il testo “Italy” alla colonna 0 e riga 1 (in seconda riga):

Definiamo una nuova variabile che andremo successivamente ad incrementare:

assegnamo alla variabile il nome: contatore

All’interno della funzione “forever” inserire l’istruzione “change” per incrementare di una unità la variabile “contatore”.

Con l’istruzione “show number” visualizziamo sul display un numero, inserendo nel primo campo la variabile “contatore” il numero visualizzato sarà quello memorizzato nella variabile contatore:

La visualizzazione del numero contenuto in “contatore” avverrà in colonna 6 riga 1:

Aggiungendo una pausa di 1 secondo l’incremento del numero che appare sul display sarà di 1 secondo:

Questo il risultato:

Buon Coding a tutti 🙂

Storie di making scolastico: oggetti “parlanti” con i tag NFC

Consigli di classe per consegna pagelle.
30 min liberi prima che si riparta con il successivo consiglio… scrivo sul mio iPhone una relazione, la mente divaga e rifletto sulla modalità con cui ho pagato con il precedente smartphone l’iPhone 11 che sto utilizzando per scrivere, ho usato Apple Pay che sfrutta la tecnologia NFC….Tecnologia NFC… pensa che ti ripensa… idea! Attività semplice e coinvolgente per i ragazzi!

mi chiedo: ma se disseminassi di tag NFC il laboratorio di automazione “per far parlare” ogni oggetto forse potrebbe essere utile… si sì mi piace mi piace!

Tra le moltissime attività in programma per il PCTO (ex alternanza) aggiungo questa:

Titolo: “oggetti parlanti – automazione del laboratorio di automazione – NFC ovunque, piccoli oggetti per migliorare la vita lavorativa” 🙂

Sottotitolo:
Ricavare informazioni da qualsiasi oggetto.
Avvicina lo smartphone dotato di tecnologia NFC ad un oggetto su cui è disposto un tag NFC e provochi l’apertura di una pagina web o di altra azione sul tuo smartphone.

La tecnologia NFC: Near Field Communication, in italiano ”Comunicazione di prossimità” è una tecnologia di trasmissione a corto raggio senza fili, che permette di mettere in comunicazione due dispositivi. La comunicazione NFC è stata sviluppata nel 2004 da LG, Sony, Samsung, Philips e Nokia.

Lo standard prevede una comunicazione 13,56 MHz e può raggiungere una velocità di trasmissione massima di 424 kbit/s quindi velocità non troppo elevate, ma adatta alla trasmissione di piccole quantità di dati tra due dispositivi vicini, non superiore ai 10 cm. L’attivazione della comunicazione bidirezionale peer-to-peer avviene se i dispositivi non superano una distanza di 4 cm.

I dispositivi compatibili con NFC come ad esempio smartphone, tablet dispongono a bordo di un chip elettronico che permette questo tipo di comunicazione dati. Nel caso il vostro dispositivo non fosse dotato di questa tecnologia in commercio potete trovare micro SD e SIM con chip NFC.

Le applicazioni più comuni si riferiscono ai pagamenti elettronici.
Utilizzare NFC per acquistare biglietti della metropolitana o ancora per effettuare pagamenti registrando la propria carta di credito all’interno di una applicazione specifica: Wallet per Apple, Android Pay per smartphone Android.

Il chip NFC può essere programmato tramite applicazioni per smartphone o programmi specifici per PC per svolgere una specifica azione quando il dispositivo viene avvicinato ad un tag NFC.

Con due Smartphone dotati di NFC si posono scambiare rapidamente foto, video e file e molto altro come ad esempio la condivisione della propria posizione su Google Maps.

Utilizzo dell’NFC a scuola:

  1. fuori dall’aula per far si che chiunque possa avere informazioni sull’impegno orario dell’aula;
  2. su ogni armadio per avere immediatamente informazioni sulle dotazioni e avvisi su spostamenti o riparazioni strumenti;
  3. su ogni strumento di laboratorio per avere il manuale di utilizzo;
  4. sperimentarne l’uso per persone ipovedenti, il tag NFC attiverà audio sullo smartphone (già in sperimentazione per progetto scolastico);
  5. realizzare involucri per tag NFC facilmente applicabili su confezioni di alimenti per avere informazioni sulla data di acquisto e scadenza del prodotto conservato ad esempio in frigorifero;
  6. assegnare un tag ad ogni PC del lab. per avere un rapido resoconto sui software installati.

Venerdì mattina durante “l’ora buca” una corsa al Lab. Territoriale del Pininfarina, rapidissimo disegno di un contenitore e taglio laser dei primi 5 contenitori per tag NFC da collocare il Lab. Automazione.

In settimana incollerò su ogni PLC Siemens che abbiamo in laboratorio automazione, altri tag su cui inserirò link a pagina web che rimanda a manuali e mie lezioni e così farò sulle schede Arduino, in questo modo nessuna scusa da parte degli studenti 🙂 “Prof. dove trovo le dispense?”,  “Prof. dove trovo il manuale?” chiedilo al PLC! Accarezzalo coi il tuo smartphone 🙂

Quasi quasi incollo tag NFC anche agli appunti cartacei 😉 in modo da aggiungere contenuti multimediali che potrò modificare anche nel tempo (un tag può essere riscritto), meglio di un QR Code, all’interno della memoria del tag posso personalizzare e modificare i contenuti.

Drin Drin! Suona la campanella!
Appena in tempo per concludere il progettino NFC
si va al prossimo consiglio di classe.

Buon making a tutti 🙂