Come utilizzare i pin GPIO di un Raspberry Pi Zero da una Workstation Fedora

Da lumacawiki.

Quando spippolano con un Raspberry Pi Zero (o un device simile), molti maker utilizzano i pin GPIO (General Purpose Input / Output). Questi pin vengono usati per controllare un vasto numero di device, come LED o sensori per misurare la temperatura, la luminosità o l'umidità. Ma se preferisci scrivere programmi sul tuo PC o sul portatile, questo può essere una mancanza, poiché nessun computer classico dispone di pin GPIO. Questo è il punto dove il software GPIO expander può toranre utile.

L'obiettivo principale del software GPIO expander sta nell'utilizzare il Raspberry Pi Zero come un device USB connesso al PC, così da rendere disponibili al tuo computer i pin GPIO del Raspberry Pi Zero.

Questo articolo descrive i passi per impostare ed utilizzare il software GPIO expander con un Raspberry Pi Zero e Fedora.

Collega il Raspberry Pi Zero

Rpizerofedora.jpg

Collega la porta micro USB del Raspberry Pi Zero (e non quella di alimentazione identificata dalla sigla PWR) al tuo computer. Una volta collegato, esegui il comando lsusb e un nuovo dispositivo USB dovrebbe apparire nella lista:

Bus 004 Device 005: ID 0a5c:2763 Broadcom Corp.

Compila GPIOexpander

Adesso compileremo GPIOexpander dai sorgenti. Installa le seguenti dipendenze usando il comando dnf:

sudo dnf install git gcc bc cmake flex unzip bison gcc-c++ wget patch python2 perl-ExtUtils-MakeMaker perl-Thread-Queue libusb-devel

Quindi crea una directory per i sorgenti, e fai un checkout con git

$ mkdir ~/pi_hacking 
$ cd ~/pi_hacking
$ git clone --depth 1 https://github.com/raspberrypi/gpioexpander.git 
$ git clone --depth=1 https://github.com/raspberrypi/usbboot

Adesso puoi compilare GPIOexpander:

$ cd ~/pi_hacking/gpioexpander
$ ./build.sh

Infine compila usbboot.

$ cd ~/pi_hacking/usbboot
$ make

usbboot serve a fare il boot del Raspberry dal dispositivo host (il tuo PC) tramite USB (come fare il boot del computer tramite un disco esterno) e caricando un sistema minimale, mentre gpioexpander emula una scheda di rete USB e carica il demone pigpiod sul Raspberry Pi Zero.

Ultimi passi

Adesso torna nella directory di usbboot e dai questo comando:

$ cd ~/pi_hacking/usbboot
$ sudo ./rpiboot -d ../gpioexpander/output

Dovresti vedere qualche messaggio che ricorda un processo di boot. Una volta terminato, dai un'occhiata alle interfacce di rete con il comando "ifconfig". Dovresti trovare una nuova interfaccia identificata con un nome tipo “enp0s20f0u1i2”, con assegnato un indirizzo IPv6. Prova a fare ping al Raspberry Pi Zero usando il seguente comando, dove "enp0s20f0u1i2" è il nome dell'interfaccia creata sul tuo computer

$ ping6 fe80::1%enp0s20f0u1i2

Adesso puoi installare il pacchetto python gpiozero ed esportare due variabili d'ambiente:

Nota: sostituisci "enp0s20f0u1i2" con il nome dell'interfaccia creata sul tuo computer:

$ pip3 install gpiozero --user
$ export GPIOZERO_PIN_FACTORY=pigpio
$ export PIGPIO_ADDR=fe80::1%enp0s20f0u1i2

Facciamo un test

Collega un led al pin 20 (GPIO 25), lancia python3 e scrivi il seguente codice per far lampeggiare il LED:

$ python3
>>> from gpiozero import LED
>>> led = LED(25)
>>> led.blink()

Il LED dovrebbe lampeggiare. Fantastico!

Adesso puoi usare la potenza del tuo computer con Fedora per pilotare il pin GPIO del Raspberry Pi Zero. Nota che puoi usare solamente la libreria GPIO Zero di Python, e non, per esempio, la RPi.GPIO. Comunque lo scopo di questo software sta nel fornire un sistema semplice da utilizzare, per esempio durante lezioni, esperimenti, laboratori e workshop. Tutto questo senza la necessità di connessioni di rete o schermi, tastiere, mouse, e nemmeno alimentatori: solo un PC, un cavo USB e una scheda Raspberry Pi Zero.


Questo articolo è stato ripreso tradotto da Fedora Magazine, sotto i termini della licenza Creative Commons Attribution-ShareAlike 3.0 Unported License (“CC-BY-SA”)