Archivi categoria: tutorial

Progetto automazione e internet of things con Raspberry Pi

iot433-01
E’ da tempo che sto pensando di ristrutturare il laboratorio di domotica che ho nella mia scuola, aggiungendo agli apparati di note aziende del settore, anche sistemi fortemente open e gratuiti a basso costo e facilmente espandibile in modo che gli studenti possano poi avere uno spettro più ampio sulle tecnologie disponibili. Ovviamente il lavoro per riformulare la didattica in tal senso è enorme e quindi il mio intento era quello di assegnare una serie di tesine di maturità ad allievi di buona volontà 🙂 tesine da usare come mattoni di partenza per aggiungere nei prossimi anni scolastici argomenti nuovi.

Fortunatamente ho avuto l’occasione di conoscere alcune settimane fa via e-mail Rocco Musolino, un bravissimo programmatore che mi ha inviato la segnalazione del suo splendido lavoro, che è parte della sua tesi di laurea magistrale e tratta appunto del controllo di sistemi a 433mhz mediante Raspberry Pi, quindi se desiderate sperimentare “un vero IoT” provate il lavoro di Rocco Musolino, io lo farò certamente con le mie classi 4′ e 5′ elettrici.

iot433-02

Grazie quindi a Rocco, che mi ha inviato la sua recensione che vi allego, però vi invito alla consultazione del suo sito su cui trovate un tutorial ben dettagliato che vi guiderà passo passo all’installazione del sistema.

Nelle prossime settimane sul sito di Rocco Musolino il PDF della tesi con il lavoro completo.

iot433-03

Di seguito la sua presentazione.

Il progetto iot-433mhz nasce con l’idea di offrire una dashboard o “centralina” di controllo per sensori e attuatori funzionanti sulla frequenza 433mhz, già largamente diffusi sul mercato.
La dashboard è costruita usando interamente tecnologie per il Web e rilasciata sotto licenza MIT, open source.
Persino l’unità di controllo, che gestisce la comunicazione seriale con il gateway di trasmissione radio (un arduino connesso a dei moduli radio operanti a 433mhz) è realizzato in Javascript e basato su Node.js.

Node.js garantisce alte performance e un supporto multipiattaforma: Windows, Mac, Linux. Quindi se sul vostro sistema è possibile installare Node.js ed il suo gestore di pacchetti NPM, allora il software può tranquillamente essere installato velocemente ed eseguito senza alcun problema.

Sulla pagina git ufficiale del progetto è presente la documentazione che meglio spiega come effettuare l’installazione sui vari OS e le relative dipendenze necessarie.
Sulla pagina dedicata all’Hardware invece, una panoramica sui moduli radio consigliati e i dispositivi radio con cui il software è compatibile.
Sono molti i dispositivi radio con cui è possibile interagire, prese telecomandate, sensori di movimento piroelettrici e sensori per porte e finestre magnetici.

La peculiarità del progetto, oltre a garantire una pratica dashboard di controllo, in linea con le guidelines di google sul Material Design, è quella di aver la possibilità di sviluppare parallelamente un sistema che si appoggi alle API offerte da iot-433mhz, per estenderne le capacità o personalizzarne i casi d’uso.
Ogni singola API è documentata sulla repository ufficiale. L’interazione è immediata e da poco sono stati introdotti i webHooks, componenti che similmente alle API, estendono le capacità del sistema, permettono di registrare una URL all’interno del sistema stesso e far si che venga richiamata al verificarsi di un evento.

Un’altra feature interessante sono le notifiche Telegram. Telegram è uno dei pochi client di messaggistica che permette la creazione di Bot automatici. Ogni istanza di iot-433mhz installata su un PC è in grado di comunicare con un unico back-end che gestisce per l’appunto l’interazione con il bot telegram. Attivare le notifiche telegram per il proprio account è semplice, basta andare nelle Impostazioni copiare la stringa che appare e incollarla al bot @my_iot_bot. Dunque ogniqualvolta un’allarme armata scatterà, il sistema attraverso il bot di telegram lo farà sapere all’utente in tempo reale.

Il progetto iot-433mhz è attualmente giunto alla versione 1.0.24, e viene costantemente aggiornata per risolvere bug o introdurre nuove feature.
E’ utilizzabile in “produzione” e si contano già oltre 1000 download (npm), 104 stars e 7 fork. Che non è affatto male considerando si tratti di un progetto nuovo, altamente specifico, pensato per hobbysti e in generale appassionati di automazione e domotica.

Controlliamo DotBot con Arduino

DotBot

Questo tutorial è la prima bozza di parte delle lezioni di “Alfabeto Arduino con DotBot” per l’apprendimento dell’uso di Arduino mediante lo starter kit open source per l’insegnamento del coding e della robotica che abbiamo chiamato DotBot.
Sperimenterò questa prima parte durante il corso di cui sarò relatore presso l’IIS Cassato Gattapone (Gubbio): “Apprendimento attivo con Raspberry Pi e Arduino”.

Nel tutorial che segue illustro un schema estremamente semplice per la realizzazione del controllo di DotBot effettuata con Arduino con i relativi sketch di esempio è può essere considerato la base di partenza per ogni sperimentazione basata appunto su Arduino.
Per il pilotaggio dei motori ho utilizzato l’Arduino Motor Schield R3 di cui ho già effettuato un tutorial nei giorni scorsi (Utilizzo dell’Arduino Motor Shields R3) ed è propedeutico a questa lezione.

Più avanti aggiungerò esempi pratici con ulteriori sensori e inoltre mostrerò come far funzionare DotBot come segui linea e utilizzando soluzioni con motorini passo-passo. Vi saranno ulteriori lezioni basate su Raspberry Pi 3 e programmazione in Python e successive approfondimenti sull’uso di ROS (Robot Operating System).

L’intero tutorial sarà basato sulle indicazioni costruttive di DotBot che trovate descritte nell’articolo: DotBot: lo starter kit open source per l’insegnamento del coding e della robotica che ricordo potete stampare in 3D seguendo le indicazioni che trovate nell’articolo.
In ogni caso se non avete stampato DotBot potrete tranquillamente applicarlo al robot che disponete.

Ricordo che la rotazione, senza il controllo dei numeri di giri, dipende dalla carica delle batterie, quindi per ogni test effettuare un controllo ed eventualmente modificare la variabile: “tempoRotazione” che potrete poi tarare mediante la funzione calibrazioneRotazione() che trovate nell’ultimo sketch proposto. La soluzione ottimale per il controllo preciso del robot prevede l’uso di motorini con encoder, che mostrerò in lezioni successive.

Ovviamente anche la soluzione proposta in questo tutorial risulta approssimata (ed anche dettata da un risparmio economico) ricordo che lo scopo è comprenderne il funzionamento del movimento di DotBot, lascio a voi i successivi perfezionamenti.

Potrete sostituire alle batterie che io ho utilizzato, batterie ricarrabili, o pacchi batterie con autonomia maggiore che potrete fissare utilizzando gli appositi fori predisposti sullo chassis

Componenti utilizzati

  • Arduino UNO R3
  • Arduino Motor Shield R3
  • Sensore ad ultrasuoni HC-SR04

Montaggio del circuito

DotBot-Arduino-01

DotBot-Arduino-02

DotBot-Arduino-03

Ribadisco, come già indicato nel tutorial: Utilizzo dell’Arduino Motor Shields R3 che sono state fornite due alimentazioni diverse una per la scheda Arduino ed una per i motori, per effettuare tale operazione è indispensabile effettuare il taglio del “Vi connect

Come evidenziato i due motori sono stati collegati con polarità invertita in quanto per muovere in avanti il robot le due ruote dovranno muoversi in senso opposto.

Negli esempio che seguono verranno di volta aggiunte nuove funzioni, la lista completa è la seguente:

setupDotBot()

Imposta i pin dell’Arduino Motor Shield

driveDotBot([motore], [direzione], [velocità], [brake])

La funzione è da leggersi in questo modo:
driveDotBot pilota il [motore] (0 per A, 1 per B) in senso [direzione] (0 o 1 – orario o antiorario) a velocità [velocità] (tra 0 e 255), [brake] attiva o rilascia blocco motore.
I motori vanno avanti fino a quando non gli verrà detto di fermarsi.

stopDotBot([motore])

ferma il motore [motore] (0 o 1).

rotazioneOraria()

gira il robot di 90° in senso orario

rotazioneAntioraria()

gira il robot di 90° in senso antiorario

distanzaOstacolo()

restituisce la distanza in cm dell’ostacolo rilevato

paragonaDistanze()

verifica la distanza dell’ostacolo che si trova a distanza maggiore dal robot

scegliDirezione();

sceglie la direzione da prendere in funzione della distanza a cui si trova l’ostacolo

La spiegazione del funzionamento d ogni parte del codice è inclusa all’interno dello sketch come commento.

Nota per lo studio:
i 6 sketch proposti variano solo nel loop per la realizzazione delle funzioni richieste, la variazione tra uno sketch e l’altro consiste nell’aggiunta di poche linee di codice, sarà quindi necessario effettuare uno studio preliminare di tutte le parti dello sketch 1.

Continua a leggere

Raspberry Pi 3 – configurare Bluetooth e Wi-Fi

RaspberryPi3-Bluetooth-banner

Una delle caratteristiche più interessanti del nuovo Raspberry Pi 3 è senza alcun dubbio la presenza del Wi-Fi e Bluetooth 4.1/Low Energy (LE) aggiunti dal  chip BCM43438.

In questo breve tutorial, ricordo a me stesso 🙂 come effettuare la configurazione del Wi-Fi e della Bluetooth. Come accade per ogni nuova installazione di software è buona norma procedere preliminarmente con un aggiornamento di sistema mediante i due comandi:

sudo apt-get update

sudo apt-get upgrade

sudo apt-get dist-upgrade

Eseguiteli nell’ordine indicato e armatevi di un po’ di pazienza perché questa fase potrebbe durare un po’ di tempo.

Al termine del processo di aggiornamento si procede con l’installazione del software della Bluetooth:

sudo apt-get install pi-bluetooth

RaspberryPi3-Bluetooth-01

Terminata questa fase bisognerà installare il tool grafico che ci consentirà di configurare in maniera semplice e comoda la Bluetooth:

sudo apt-get install bluetooth bluez blueman

RaspberryPi3-Bluetooth-02
L’ultimo passo sarà quello di un reboot del sistema che potrà essere eseguito direttamente da terminale con il comando:

sudo reboot

Al successivo avvio noterete che nell’angolo superiore destro sarà presente il logo Bluetooth, se non viene visualizzato allora dal menù principale (in alto a sinistra) seguite il percorso: Menu > Preferenze > Gestore Bluetooth in questo modo apparirà l’icona della Bluetooth in alto a destra.

Come effettuare il pairing con Raspberry Pi 3

Continua a leggere

Utilizzo dell’Arduino Motor Shields R3

Per il controllo dei motori di molte delle mie sperimentazioni robotiche spesso utilizzato l’Arduino Motor Shields R3 che permette agevolmente di pilotare motori in corrente continua tra cui anche motorini passo passo. In questo breve articolo vi mostrerò un rapido utilizzo, che aggiungerà al percorso di robotica in cui propongo la costruzione di un robot didattico partendo dalla stampa 3D dello chassie per giungere alla programmazione del robot.

01-Arduino-Motor-Shields-R3

02-Arduino-Motor-Shields-R3

Il controllo motori in analisi è basato sull’integrato L298P prodotto da ST microelectronics, che come detto consente anche il controllo di motorini passo passo.

Specifiche tecniche

  • Tensione di funzionamento: 5V a 12V
  • Controller motori: L298P, controllo di 2 motori DC o 1 motore passo-passo
  • Corrente massima: 2A per canale o 4A massima (con alimentazione esterna)
  • Rilevamento di corrente: 1.65V / A

03-Arduino-Motor-Shields-R3

Come potete osservare nell’immagine i pin della shields si allineano perfettamente con la versione dell’Arduino UNO R3.

04-Arduino-Motor-Shields-R3

La Motor Shields è dotata di due canali con cui è possibile pilotare due motorini DC e 1 motore passo passo.
La scheda dispone inoltre di 6 ingressi/uscite per il collegamento dei dispositivi del Tinkerkit di cui però non parlerò in questo tutorial.
Con un’alimentazione esterna lo shield può fornire fino a 12V e 2A per canale motore o 4A su un singolo canale. L’obiettivo è quello di realizzare il “kit di robotica di base” e per contenere i costi farò uso, per questa prima versione, di comunissimi motorino DC, come quelli riportati nell’immagine che segue che possono essere acquistati a costi molto contenuti su qualsiasi store cinese on-line. Certamente non aspettatevi prestazioni elevate, ma sono sufficienti per incominciare. Continua a leggere

Makey Makey Go

makeymakeygo04
Come dissi su Facebook il 7 gennaio scorso: “Nell’attesa del mio turno dal barbiere leggo che è stato messo in vendita da oggi Makey Makey Go… e vai “di carta di credito” preso!” 🙂 Dopo circa una decina di giorni ho ricevuto il prodotto.
Ma perché dovrei utilizzare Makey Makey Go? Certamente penso ad un uso didattico ed in passato ho più volte ho utilizzato e mostrato sia agli allievi che durante i miei corsi a docenti l’utilizzo del “fratello maggiore” Makey Makey soprattutto nelle attività di coding oppure durante i corsi agli insegnanti di sostegno per mostrare come realizzare in modo semplice e veloce ausili didattici per allievi diversamente abili.
Makey Makey Go vi permetterà di sostituire ai pulsanti della tastiera o del mouse qualsiasi oggetto in grado di condurre l’elettricità e certamente si prestano tutti quelli oggetti che contengono acqua come frutta e verdura.
La creatività che ne può scaturire da un oggetto di questo genere è incredibile in quanto con esso potrete realizzare delle vostre personalissime periferiche di input, così come mostrato nel filmato che segue.

Nella confezione troviamo un foglietto con le istruzioni, il Makey Makey Go la cui forma ricorda una penna USB con un anello che vi permetterà di agganciarlo al vostro portachiavi oppure allo zainetto, una ciambella di carta che mostra un esempio di utilizzo ed un cavo con pinzette a coccodrillo che consentirà di collegare l’oggetto conduttivo con il Makey Makey Go.

makeymakeygo01

makeymakeygo03

makeymakeygo02

Il connettore USB potrà essere collegato a qualsiasi tipo di computer: Mac, Windows. Linux.

Sulla chiavetta trovate tre alloggiamenti:

  • un’area a forma di + dovrà essere collegata ad un coccodrillo (leggermente calamitato per agevolarne il contatto)
  • area del play
  • area del reset

makeymakeygo09

La differenza sostanziale dal fratello maggiore Makey Makey è che nel Makey Makey Go potete sostituire un solo comando.

Come funziona?

  • Inserite il Makey Makey Go in una porta USB del vostro computer
  • Scegliete tra le app proposte sul sito Makey Makey
  • Prendete il coccodrillo e collegatelo nell’area a forma di + e l’altra estremità all’oggetto che conduce
  • Premete play sul Makey Makey Go e incominciate a giocare

makeymakeygo06

makeymakeygo07

makeymakeygo05

Il Makey Makey Go permette in automatico di sostituire la barra spaziatrice della tastiera o il pulsante sinistro del mouse premendo sul pulsante set button, ma se lo desideriamo è possibile riprogrammarlo per decidere quale dovrà essere il pulsante che dovrà essere sostituito all’oggetto che conduce, se volete stabilire quale tasto della tastiera associare all’azione andate sull pagina di riferimento: makeymakey.com/remap/ selezionate il prodotto e tenete premuto il tasto di reset per almeno 5 secondi dopo di che facendo click più volte sul tasto reset selezionate il pulsante della tastiera che desiderate emulare, una volta scelto il tasto per confermare premete sul pulsante play del Makey Makey Go.

makeymakeygo08

Per chi fosse interessato io ho acquistato il prodotto sul Makey Shop

Buon divertimento 🙂