mercoledì 17 dicembre 2014

Accendere un led con raspberry PI

Visto che siamo vicini al natale, la schedina raspberri può essere utilizzata anche per accendere e spegnere delle lucine LED e creare simpatici effetti.
Esempio con un LED
La scheda raspberry mette a disposizione ben 17 pin digitali che possiamo attivare (ON) o disattivare (OFF) e perfino leggere il valore della corrente che gli arriva; questi particolari sono chiamati GPIO (General Purpose Input Output).
Quelli qui sotto in giallo sono i pin GPIO:


Nel nostro caso basterà solo attivarli e disattivarli.
Prima vediamo i comandi Linux necessari, e poi vediamo come inserirli in Livecode.
In Lunx i comandi da dare da terminale sarebbero i seguenti:
per attivare il ventitreesimo pin bisogna prima creare il sistema di cartelle dentro la cartella /sys, con:

echo 23 > /sys/class/gpio/export

In questo modo Linux in automaticamente crea un sistema di cartelle in /sys/class/gpio/gpio23/ poi dobbiamo dire a Linux che vogliamo impostare l'uscita, cioè il pin deve essere di tipo out con questo comando:

echo out > /sys/class/gpio/gpio23/direction

Ora per impostare l'uscita come acceso bisogna impostare il valore 1, mentre per spegnerlo basta impostare il valore 0 nel file value, ecco il codice per imporre il valore:

echo 1 > /sys/class/gpio/gpio23/value

Per far fare questi comandi a Livecode basta usare la funzione shell():

put shell("echo 23 > /sys/class/gpio/export") into risultato
put shell("echo out > /sys/class/gpio/gpio23/direction") into risultato
put shell("echo 1 > /sys/class/gpio/gpio23/value") into risultato

la variabile risultato conterrà di volta in volta eventuali messaggi di Lunux in risposta ai nostri comandi.
Per spegnere il LED il codice è:

put shell("echo 0 > /sys/class/gpio/gpio23/value") into risultato

mentre se non ci serve più il PIN 23, possiamo liberarlo con questo comando:

put shell("echo 23 > /sys/class/gpio/unexport") into risultato

Ricordate che quando un pin è acceso fornisce 3.3V, quindi fatevi bene i calcoli per LED e resitenza da mettere in serie:
Esempio di schema di montaggio LED e resistenza.
Buon divertimento!