IoT a basso costo con un ESP 01 – una veloce introduzione per i miei studenti

Sto svolgendo in queste settimane un corso Arduino per i miei allievi di II’, ma gli impegni dei consigli di classe e le attività di vicepresidenza mi hanno portato a spostare un paio di lezioni e per farmi perdonare ho deciso di implementare velocemente una breve lezioni che generi l’effetto “waooo” 🙂 spero possa funzionareL’idea è quella di comandare la marcia e l’arresto di motori asincroni trifase (380 Vac) remotamente attraverso comandi dati da cellulare utilizzando tecnologia a basso costo.

Aggiungere funzionalità di controllo remoto via WiFi ai propri progetti Arduino è ormai diventato relativamente semplice e molto economico. E’ da qualche tempo che sto utilizzando i noti ESP8266 nella versione più economica ESP01 per effettuare esperimenti di domotica a basso costo. ESP8266 è un microcontrollore programmabile in una modalità molto simile a quanto viene fatto per Arduino è costituito da un circuito SoC (System on Chip) dalle dimensioni ridottissime (5 x 5 mm) e la scheda che lo ospita integra un’antenna WiFi.

05

Esistono diversi modelli di ESP che includono l’ESP8266 ad essi è stato assegnato un nome che ha la seguente struttura ESP-XX dove XX è un numero che in questo momento va da 01 a 13 e che sicuramente nei prossimi mesi sarà destinato ad aumentare. In generale numeri più alti indicano funzionalità e performance più elevate, ma sicuramente ad oggi la versione più diffusa per semplicità di utilizzo e costi resta ancora l’ESP01.

I modelli ESP differiscono uno dall’altro per le seguenti caratteristiche:

  • dimensioni del modulo;
  • memoria flash, esterna al chip e varia da 512 KByte fino a 4MByte;
  • numero di pin;
  • antenna WiFi stampata su scheda o su apposito connettore a cui collegare un’antenna

Nell’immagine che segue un elenco dei più diffusi moduli ESP disponibili:

famiglia-esp

In questa breve trattazione utilizzerò l’ESP01.

Continua a leggere

IoT con WeMos D1 Mini usando Arduino IDE e Blynk

Durante le mie attività di formazione più volte mi è giunta la richiesta da persone non professioniste del settore elettronico o informatico, la realizzazione di progetti elettronici in grado di interagire via WiFi. Svolgere tale attività può richiedere competenze di livello più elevato che ovviamente tutti possono acquisire, ma per non aggiungere scoraggiamento nella fase iniziale di apprendimento ed invogliare sempre di più a sperimentare progetti sempre più complessi è forse bene partire da qualcosa di semplice che sono sicuro farà “esplodere” la vostra fantasia 🙂

Per questa breve introduzione utilizzerò: Arduino IDE, Blynk con scheda WeMos D1 Mini

Blynk

Avevo fatto una breve segnalazione tempo fa. Blynk è un’applicazione (per dirla in informatiche meglio parlare di freamework) che consente mediante dispositivi mobili (iOS e Android) utilizzando un sistema completamente grafico la realizzazione dei propri widget per comandare ad esempio l’azionamento via WiFi di dispositivi di automazione industriale o implementare progetti di domotica, ma anche di rilevare grandezze fisiche esterne e visualizzarle direttamente sul vostro dispositivo mobile.
Blynk può interagire con Arduino o Raspberry Pi se connessi ad una WiFi o a moltissimi dispositivi basati su ESP8266, modulo WiFi dotato di Input/Output General Purpose e processore ARM. Attualmente sono disponibili una grande quantità di board basate su ESP identificate tutti da un ID da ESP-01 a ESP-13 e la differenza tra una scheda e l’altra dipende dalla quantità di memoria disponibile, il numero di GPIO e il tipo di antenna WiFi.

Wemos D1 Mini

Per darvi un’idea di cosa è la Wemos D1 Mini si potrebbe fare la seguente analogia (non me ne vogliano i puristi mi serve solo per dare l’idea per chi incomincia), immaginate un Arduino micro dotato di una connessione WiFi ad un costo di non più di € 5 che potrà essere programmato in modo grafico con Blynk oppure attraverso l’IDE Arduino o ancora con NodeMCU (vedremo più avanti).
Wemos D1 Mini ospita un ESP-12F, dispone di 11 pin I/O digitali, 1 ingresso analogico, tutti i pin I/O gestiscono interrupt, pwm, I2C e ISP e tutti i pin I/O funzionano con una tensione di alimentazione di 3,3V e dispone di una memoria di 4MB.

01

02

Nell’immagine sopra riportata noterete che il nome usato sulla scheda è diverso da quello utilizzato nell’IDE di Arduino, fate riferimento ai numeri scritti in verde in fase di programmazione.

06

07

Come si evince dalle immagini sopra inserite la scheda è dotata di un connettore micro USB che vi permette di caricare gli sketch, ciò non accade per altre tipologie di schede che necessitano di un debugger per il caricamento di programmi.

On-line potete trovare su diversi store una serie di shield (per un elenco completo seguire il link) che possono esser impilati su questa piccolissima scheda.

03La scheda in genere viene venduta con diverse tipologie di pin header non saldati: maschio, femmina, femmina impilabile e ciò vi permette di adattarla ad ogni tipologia di circuito.

04

E’ presente un pulsante di reset

05

Sul pin analogico è possibile leggere tensioni fino a 3,2 V.

La conversione USB a UART viene realizzata dal chip CH340G (ben visibile nell’immagine sopra), presente su moltissimi cloni Arduino cinesi tra cui gli economicissimi Arduino nano. Gli utenti windows potranno procedere tranquillamente scaricando i driver dal seguente link su cui trovate anche i driver per MacOS X, però se avete l’ultima versione di MacOS X  Sierra  (10.12.x) utilizzate la procedura ben dettagliata a questo link. Sempre per gli utenti Mac, nel caso abbiate installato una precedente versione del driver seguite la procedura che trovate al seguente link.

Vedremo nei successivi passaggi l’utilizzo di WeMos D1 con l’Arduino IDE e con Blynk. Continua a leggere

Espandere gli I/O analogici di Arduino

Come già accennato in precedenti post in questi mesi sto svolgendo una serie di attività di prototipazione rapida di sistemi di rilevazione ambientale presso la facoltà di Agraria di Padova e l’esigenza di espandere la quantità di ingressi analogici di Arduino è una necessità reale che può essere superata agevolmente con pochissimi euro (per la precisione 1€ 🙂 ) utilizzando l’integrato 4051 Multiplexer/Demultiplexer analogico ad 8 canali in grado appunto di ampliare il numero di I/O di Arduino.
Esigenze di questo tipo si presentano spessissimo, ad esempio nel caso voi vogliate collegare più sensori analogici ad un ESP che dispone di un solo ingresso analogico, o più semplicemente andare oltre i 6 pin analogici di Arduino UNO R3, situazione che si presenta ad esempio nel caso in cui si stanno occupando i pin analogici A4 e A5 per la comunicazione I2C  per altri dispositivi.

L’integrato 4051 viene realizzato da diverse aziende vi allego i datasheet corrispondenti alla versione prodotta da Philips e Texas Instruments, identici nelle funzionalità:

All’interno trovate tutte le indicazioni necessarie per poterlo usare che vi riassumo nelle righe che seguono.

Piedinatura dell’integrato

01-4051

Dove:

  • Z: pin input/output (connesso agli Input/Output Arduino )
  • E: pin di enable (attivo basso, cioè attivo su LOW da connettere a GND)
  • VEE: tensione di alimentazione negativa (da connettere a gnd)
  • VSS: terra (0 V)
  • A0-A1-A2: pin di selezione input (connessi a tre pin digitali di Arduino) – A0 bit meno significativo (LSB), A2 bit più significativo (MSB)
  • Da Y0 a Y7: pin di inputs/outputs
  • VDD: tensione di alimentazione positiva (da 3V a 5v)

Tabella di verità

02-4051

Dalla tabella si evince che per poter far funzionare l’IC è necessario connettere E (Enable) a GND.

Il 4051 è un integrato in tecnologia CMOS dotato di 8 ingressi (nominati Y) che può accettare segnali analogici compresi tra 0V e 5 V, tali segnali possono essere selezionati mediante tre pin di selezione nominati: A0, A1, A2 ed inviati direttamente ad un pin analogico di Arduino per la successiva elaborazione.

La selezione del canale Y scelto (in altre parole del segnale analogico che si desidera leggere o scrivere) può essere fatta sfruttando lo stesso Arduino mediante 3 pin digitali, sui 3 pin si comporrà il numero binario corrispondente all’ingresso analogico Y scelto.

A titolo di esempio, ricordando che con tre bit possiamo rappresentare tutti i numeri tra 0 e 7 (2^0 = 1; 2^1 = 2; 2^2 = 4):

  • Se A0 = 1, A1 = 1 e A2 = 0 allora l’uscita selezionata sarà la Y3
    (2^1 + 2^1 + 2^0 = 2 + 1 + 0 = 3)
  • Se A0 = 1, A1 = 0 e A2 = 1 allora l’uscita selezionata sarà la Y5
    (2^1 + 2^0 + 2^2 = 2 + 0 + 4 = 5)

Per chiarirne il funzionamento analizziamo le due modalità operative:

  • Input: lettura di segnali analogici presenti sugli ingressi Y del 4051
  • Output: invio di un segnale analogico su una delle 8 uscite Y del 4051

4051 usato come multiplexer con Arduino
Lettura di segnali analogici presenti sugli ingressi Y del 4051
Continua a leggere

E’ nato rokers.io!

rokers
E’ trascorso ormai un anno da quanto insieme a Ludovico incominciammo a strutturare meglio i nostri robot didattici, (benedetto fu quel tendine che si ruppe 🙂 ) molti eventi, molti incontri con tantissime persone,scambio di competenze, creazioni robotiche e tanto “imparare insieme”etutto ci si concludeva quasi sempre con una cena.

Negli scorsi giorni ci siamo interrogati sul perch non dare corpo a questo nostro modo di agire dando una struttura pi formale a questi momenti di “robotica e pizza“?

Perch non pensare ad una community di sviluppatori robotici?

In concomitanza con la prima Cloud Rokers Faire di Torino, siamo felici di annunciareil nuovo progetto rokers.io, voluto da Michele Maffucci, Ludovico Russo e Gabriele Ermacora, per supportare la nascita di una community Italiana di Sviluppatori Robotici.

Rokers un progetto nuovo, e ancora non ha una vera e propria forma. Lo scopo principale, al momento, creare una forte community di sviluppatori di robotica di servizio a Torino ed in Italia. E questo verr fatto, in prima battuta, organizzando ritrovi periodici in cui si parler di Robotica nelle sue varie forme.

Vuoi far parte della community? Compila questo form, verrai informato delle iniziative che organizzeremo e potrai dare un tuo personalissimo contributo al progetto.

Ma cosa vuol dire rokers?

“RObot MaKERS”

Ma per chi questa community?

La community aperta a tutti coloro che amano per passione o per professione la robotica di servizio non importante essere nerd del settore l’importante e voler condividere progetti, formare o essere formati in maniera gratuita e libera, in piena serenit, senza alcuna paura di non sapere ma con la sola voglia di imparare…e mangiare insieme… ecco in modo semplice tutto ci lo vogliamo chiamare roker (senza la c mi raccomando 🙂 )

Se credi nell’Open Source, nell’Open Hardware e nella Open Culture, che tu sia studente, insegnante (di qualsiasi materia e di qualsiasi ordine), “scienziato pazzo” o qualsiasi altra cosa allora puoi far parte di roker.io

Il sito nato ieri ed in costruzione, lo utilizzeremo per segnalare le attivit che gli associati vorranno realizzare… l’iscrizione non costa nulla sufficiente compilare ilform per dire: “vogliamo essere dei robot maker” 🙂

Ricorda, senon sei di Torino non fa nulla l’idea far nascere una communityfatta di gruppi che promuovono la robotica di servizio e la robotica didattica presso la propria citt, roker.io servir per creare relazioni tra persone e annunciare iniziative e condividereesperienze.
Ci piace pensare a dei luoghi simili a degli hackerspace che si occupano di robotica.

Il desiderio andare oltre le gare robotica o gli eventi espositivi, vogliamo pensare a una didattica diversa, ad una robotica che sia di ausilio alla disabilit e molto altro… come realizzare tutto ci? Creando un network di persone competenti ognuna per il proprio settore… riusciremo?Non so dirvi! Ma provarci non costa nulla 🙂

WhatsApp Image 2017-05-08 at 07.49.12

 

L’alfabeto di Scratch

banner-alfabeto-di-scratch
Come preannunciato con video in un mio precedente post, in occasione del mio corso in presenza nella stupenda Sicilia, ho realizzato la seconda versione delle mie slide introduttive sull’uso di Scratch, nello specifico l’uso di Scratch 2 e come promesso desidero renderle pubbliche a tutti.

Sto realizzando ulteriori lezioni e raccolte di esercizi che renderò disponibili in modalità open e gratuita.

Presentazione

Coding e Computational Thinking a scuola con Scratch

Il seguente corso intende fornire le competenze di base per insegnare a programmare in modo creativo e mostrare come l’uso dell’informatica a scuola possa diventare una strategia per insegnare a progettare il proprio apprendimento e fornire le competenze per risolvere problemi.

Questa presentazione è la seconda versione delle mie lezioni su Scratch e fa seguito a quanto già pubblicato negli scorsi anni con “Corso di Scratch – lezione 1 e lezione 2” e “Micro Corso di Scratch”.

L’alfabeto di Scratch è una raccolta di appunti che utilizzo durante le sperimentazioni laboratoriali con i miei studenti e durante i corsi di formazione per docenti e sono da intendersi come un’introduzione alla programmazione con Scratch.

L’impostazione di queste slide è pensata per essere immediatamente utilizzabile in classe.

I link diretti su slideshare sono: