Raspberry e Scratch: coding con sensori esterni fin dalla primaria (Lezione 1)

Raspberry e Scratch: coding con sensori esterni fin dalla primaria (Lezione 1)

di Alfonso D’Ambrosio

Era da tempo che avevo intenzione di scrivere una serie di tutorial/lezioni sull’uso di Raspberry con sensori esterni.

Prima o poi lo farò utilizzando Python, ma forse per mostrare la magia di Raspberry, mi sono detto, meglio farlo con un linguaggio che molti conoscono.

in questo corso vedremo come utilizzare Scratch per programmare i GPIO (se volete chiamateli PIN) di Raspberry, al fine di ricevere dati da sensori esterni.

rasp7

I Gpio (banalizzo) sono dei piedini che consentono di interfacciare oggetti esterni.

Utilizzeremo per questo il software Scratch GPIO.

Il vantaggio di utilizzare Scratch (personalmente preferisco Python) è quello di potersi concentrare anche sulla progettazione, sull’analisi dati, fin dalla primaria.

Su Raspberry sono presenti una serie di GPIO (40 nel Pi3 che utilizzerò) che permettono di collegare il nostro mini Pc ad una grande varietà di dispositivi quali luci, motori, pulsanti etc.

Scratch è un linguaggio di programmazione a blocchi pensato per bambini anche della Scuola primaria e che permette di pensare in maniera creativa,  ragionare in maniera sistematica e lavorare in gruppo.

In questa sede non ci soffermeremo sull’utilizzo di Scartch (i cui comandi saranno dati per scontati) ma sulla sua interazione con Raspberry ed il mondo fisico.

 

Installazione di ScratchGPIO su Raspberry (Scratch base è già presente se si usa Raspbian)

Prima di tutto assicurarsi che Raspberry sia collegato ad Internet.

Aprire la finestra del terminale LX e digitare sudo wget http://bit.ly/1wxrqdp –O install_scratchgpio7.sh

 (le info sull’installazione sono su GITHUB al seguente link https://github.com/PiHw/Pi-Stop/blob/master/markdown_source/markdown/Setup-ScratchGPIO.md)

Digitare poi sudo bash install_scratchgpio7.sh Oppure sudo bash install_scratchgpio.sh

A questo punto sul vostro desktop appariranno le icone di Scratch Gpio 7 (versione semplice utile per pilotare led, motori) e gpio7 plus (la versione più completa)  più una cartella con esempi

Nel momento in cui scrivo sto utilizzando la nuova versione 8 ottenibile digitando sempre da terminale

wget https://git.io/vMS6T -O isgh8.sh

poi

sudo bash isgh8.sh

 

rasp3

 

Ricordiamo la struttura dei GPIO (General Purpose Inut Output)  di Raspberry

 

rasp5

 

 

I Pin sono di fatto una interfaccia tra Raspberry ed il mondo esterno.

rasp8

I comandi per connettersi con i sensori esterni vanno ricercati nel blocco Broadcast (in Edit assicurarsi di avviare Start GPIO server).

Ecco ad esempio due semplici comandi per conoscere la versione del sw in uso ed il tempo con data ore minuti.

I pin 11,12,13,15,16,18 sono usati come output, il resto come semplici input(22,7,3,5,24,26,19,21,13,8 e 10).

Broadcast on su quel Pin=  3,3 V, off=0V

rasp9

I comandi allon (alloff) e allhish (alllow) mantengono alti (o bassi) tutti i pin in output.

E’ possibile anche gestire più pin contemporaneamente mettendo spazio nel comando broadcast:

raso10

I pin in inout sono invece presenti nel blocco sensing, in basso su “……” sensor value.

 

Per chi ha più dimestichezza con Scratch, invece di utilizzare il blocco broadcast, è utile definire una variabile (es. pin11 oppure allpin etc.) e gestire l’uscita alta o bassa settandola a 0 o 1 o a High low

rasp11

O la variabile pinpattern per accenderli spegnerli in sequenza

rasp12

In questo caso sono accesi 11,13,16 mentre 18,12 e 15 spenti.

Qualora avessi bisogno di più uscite, possiamo chiamare la variabile sul pin in Input ed automaticamente lo trasformiamo in output

Ecco infine alcuni blocchi più “curiosi”:

Uno per sapere la versione attuale del software

rasp14

Una per conoscere data ed ora attuale

rasp13

A questo punto non ci resta che procurarsi dei led, alcune resistenze, dei cavetti e una basetta sperimentale (Breadboard) e iniziare! Ne parleremo la prossima lezione.

rasp4

 

rasp2

Vai alla barra degli strumenti