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” e tutto 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 annunciare il 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 il form per dire: “vogliamo essere dei robot maker” 🙂

Ricorda, se non sei di Torino non fa nulla l’idea è far nascere una community fatta 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 condividere esperienze.
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:

Call For Rokers (Roboticists and Makers) – 7 Maggio 2017, Torino

banner-small

Sono contento di annunciarci il primo ritrovo della comunità di cloud RObotics e maKER.

Conosci altri appassionati, vieni ad esporre il tuo progetto o vota il migliore insieme ad una giuria di esperti!!! In palio un kit O-robot101 sviluppato in collaborazione con Olivetti!!!

Domenica 7 maggio 2017 dalle ore 14,30, via Mantova 36, Torino

Iscriviti al primo ritrovo della comunità di cloud robotics e maker! La call è aperta a tutti ed è orientata a fare community con tutti gli interessati di robotica, cloud e IoT, per condividere idee, progetti e farsi influenzare dalla cultura maker! NB: potete portare chi volete basta che vi iscriviate così ci organizziamo!

Perchè dovresti venire?

  • è gratis
  • si mangia e si beve
  • c’è un sacco di gente simpatica
  • …ovviamente ci sono tantissimi robot!!

Per iscrizioni seguite il link.

Vi aspetto per sperimentare tutti insieme 🙂