Configurare porte GPIO su Orange Pi Plus 2E
In questo articolo impareremo a configurare ed utilizzare le porte GPIO sul mini pc Orange Pi Plus 2E.
Dopo aver configurato ed installato correttamente il sistema operativo Armbian (articolo precedente) sul nostro bel giocattolino, adesso ampliamo le funzioni di cui esso dispone.
In particolare dobbiamo configurare il nostro S.O. per la corretta gestione dei pin GPIO, così da renderlo un ibrido tra un PC e un Arduino, aumentando significativamente la gestione e i controlli di tutti gli apparati ad esso connessi (anche wi-fi).
Prima di iniziare
Dato che gestiremo le porte attraverso una libreria in Python, dobbiamo avere pronti:
- libreria Orangepi_PC_gpio_pyH3
- il nostro immancabile Orange Pi Plus 2E
- un led
- una resistenza da 300 Ohm
- fili per le connessioni
Configuriamo il nostro dispositivo
Innanzitutto apriamo una shell sul nostro Orange Pi (anche via SSH) e installiamo la libreria Python (se non già presente) con il seguente comando da root:
apt-get install python-dev
Una volta terminata l’installazione della libreria python, scarichiamo la libreria per la gestione dei GPIO del nostro Orange Pi eseguendo il comando
git clone "https://github.com/duxingkei33/orangepi_PC_gpio_pyH3.git"
(qualora non fosse più disponibile oppure, in seguito ad un aggiornamento dovesse non funzionare più a dovere potete scaricare il pacchetto in formato zip da qui)
Fatto ciò, troveremo una nuova cartella orangepi_PC_gpio_pyH3/ (visibile nella riga “cloning into” del comando sopra). Entriamo nella directory ed installiamo la libreria clonata:
cd orangepi_PC_gpio_pyH3/ python setup.py install
Ultimata l’installazione siamo pronti per pilotare le nostre GPIO!
Anche se le GPIO sono molto simili a quelle del Raspberry Pi, è importante sapere che non sono uguali e che hanno nomi diversi.
Nell’immagine sottostante vengono riportati i nomi dei PIN dell’Orange Pi Plus 2E.
Adesso passiamo alla configurazione Arduino-style 🙂
Accensione led di test porte GPIO
Per provare la nostra configurazione creiamo un nuovo file di testo led.py con il comando:
vim led.py
o per chi usa nano
nano led.py
e incolliamo il seguente codice:
#!/usr/bin/env python #importiamo la libreria from pyA20.gpio import gpio from pyA20.gpio import port from time import sleep #inizializza il modulo GPIO gpio.init() #configura le porte gpio.setcfg(port.PA7, gpio.OUTPUT) #esegue il comando richiesto (accensione led per due secondi in questo caso) gpio.output(port.PA7, gpio.HIGH) sleep(2) gpio.output(port.PA7, gpio.LOW)
Salviamo il file appena creato (SHIFT+ZZ per vim oppure CTRL+O CTRL+X per nano) e rendiamolo eseguibile con il comando
chmod 700 led.py
Fate attenzione alla prima riga dello script, perchè se non definito l’ambiente python, la bash vi darà errore. Fate attenzione anche all’indentazione (per script con condizioni) perchè se errata vi darà errore.
Adesso che tutto è pronto colleghiamo l’anodo del led al pin PA7 (pin n. 29), il catodo ad una resistenza da 300 Ohm e l’altro capo della resistenza al GND dell’alimentazione.
Adesso se tutto è andato a buon fine dalla linea di comando digitiamo ed eseguiamo:
./led.py
Il nostro led si accenderà per due secondi, poi si spegnerà.
Se vogliamo invece che il led si accenda e spenga all’infinito è sufficiente inserire i comandi di accensione/spegnimento all’interno di un
while True:
Per qualsiasi dubbio scrivetemi pure!
Buonasera,
lo script fallisce per questo errore:
from pyA20.gpio import gpio
ImportError: cannot import name gpio
Ha suggerimenti ? Grazie 1000
Sembra tu abbia un problema di caricamento libreria… Che versione di OrangePi hai? Hai seguito tutti i singoli passaggi?