X

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

Installazione libreria 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)

scaricamento orangepi_PC_gpio_pyH3.git

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

installazione libreria GPIO_pyH3

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.

Pinout GPIO Orange Pi Plus 2E (fonte: http://linux-sunxi.org/Xunlong_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!

Categories: Progetti
admin:
Related Post