Débuter
Matériel recommandé

Vous voulez participer au financement du blog. C’est simple, suivez les liens commerciaux pour faire vos achats. Quelques pourcents qui font toute la différence. Merci à vous !

Kit raspberry pi 4 8GB
Kit Raspberry Pi 4 - 8GB
kit raspberry pi 4
Kit Raspberry Pi 4 - 4GB
raspberry pi 4 2019
Raspberry Pi 4 - 4GB
Cartes micro-SD SDHC v90
Kit Retrogaming Nespi
Kit Retrogaming

Orange Pi One/Lite (Tutoriel) : utiliser le GPIO en Python, broches (pinout)

orange pi one lite raspberry gio python
Partager sur facebook
Partager sur twitter
Partager sur linkedin
Partager sur pinterest
Partager sur email
Partager sur telegram

L’Orange Pi dispose d’un connecteur d’extension (GPIO) de 40 broches compatible avec celui du Raspberry Pi (modèle B+). Dans ce tutoriel, nous allons installer python ainsi que la librairie pyA20 adaptée au GPIO de l’Orange Pi. Sur le papier, le connecteur est compatible, seul bémol l’appel des broches est différent ce qui impose de reprendre les programmes Python développés pour le Raspberry.  C’est un peu dommage mais le prix très attractif de la gamme Orange Pi reste un argument de poids.

Pour ce tutoriel, j’ai utilisé Armbian installé sur un Orange Pi Lite (version Wi-Fi). Le GPIO est le même sur toute la gamme Orange Pi à l’exception de l’Orange Pi Zero qui possède un GPIO 26 broches.

Installation de Python et des librairies

Commençons par préparer l’environnement en installant Python

sudo apt-get install python-dev

Puis installer la librairie python pyA20

sudo pip install pyA20

Maintenant nous avons besoin d’installer la librairie qui permet de gérer le GPIO de l’Orange Pi. Placez vous dans votre dossier Home (par exemple /home/pi) puis clonez la librairie pyH3 (https://github.com/duxingkei33/orangepi_PC_gpio_pyH3). C’est une adaptation faite par Duxingkei Chow de la librairie “python control orangepi_PC ext GPIO ALLwinner H3” basée sur la librairie “pyA20 0.2.1”.

cd /home/pi
git clone https://github.com/duxingkei33/orangepi_PC_gpio_pyH3

Entrez dans le répertoire de la librairie

cd orangepi_PC_gpio_pyH3

Et lancez l’installation (il est préférable de faire précédent la commande par un sudo si vous n’êtes pas connecté en root).

sudo python setup.py install

Correspondance des broches du GPIO entre l’Orange Pi et le Raspberry Pi (modèle B+)

Comme je l’ai précisé dans l’introduction, le connecteur d’extension est compatible avec celui des Raspberry modèles B+ (40 broches). Le repérage est toutefois différent.

Raspberry PiOrange PiBroche

(colonne gauche)

Broche

(colonne droite)

Orange PiRaspberry Pi
3V312+5V +5V
GPIO2

SDA1 I2C

PA1234+5V +5V
GPIO3

SCL I2C

PA1156GNDGND
GPIO4PA678PA13GPIO14

UART_TXD

GNDGND910PA14GPIO15

UART_RXD

GPIO17PA1 1112PD14GPIO18

PCM_CLK

GPIO27PA0 1314GNDGND
GPIO22PA3 1516PC4GPIO23
3V33V3 1718PC7GPIO24
GPIO10

SPI0_MOSI

PC01920GNDGND
GPIO9

SPI0_MISO

PC12122PA2GPIO25
GPIO11

SPI0_SCLK

PC22324PC3GPIO8

SPI0_CE0_N

GNDGND2526PA21GPIO7

SPI0_CE1_N

ID_SD

I2C ID EEPROM

PA192728PA18ID_SC

I2C ID EEPROM

GPIO5PA72930GNDGND
GPIO6PA83132PG8GPIO12
GPIO13PA93334GNDGND
GPIO19PA103536PG9GPIO16
GPIO26PA203738PG6GPIO20
GNDGND3940PG7GPIO21

Tout comme sur le Raspberry Pi, la tension de sortie est de 3,3V.

Enfin dernière différence (et pas des moindres !), le connecteur est tourné de 180 degrés par rapport à celui du Raspberry. Autant dire qu’il faudra obligatoirement avoir recours à un connecter pour breadboard avec une nappe souple si on veut relier l’Orange à une breadboard (breakout)  de branchement

Allumer une Led en Python

Pour ce premier tutoriel sur le GPIO de l’Orange Pi, on va pas aller bien loin. De toute façon c’est exactement la même chose que pour le Raspberry. Il n’y a que l’appel des broches qui diffère.

Créez un nouveau fichier. Par exemple test.py

nano test.py

Collez le code suivant et enregistrez avec Ctrl+X puis Y. Ce code est très simple, il allume durant 2 secondes une Led branchée sur la broche PG7 (équivalente au GPIO21 du Raspberry). Reliez une Led sur la broche PG7 (la dernière de la colonne droite) à un GND par l’intermédiaire d’une résistance 220Ω.

#import the library / Import des librairies
from pyA20.gpio import gpio
from pyA20.gpio import port
from time import sleep

#initialize the gpio module / initialise le GPIO
gpio.init()

#setup the port (same as raspberry pi's gpio.setup() function)
#Configure la broche PG7 (equivalent au GPIO21 du Raspberry) comme une sortie
gpio.setcfg(port.PG7, gpio.OUTPUT)

#now we do something (light up the LED)
#Maintenant, on allume la LED
gpio.output(port.PG7, gpio.HIGH)

#turn off the LED after 2 seconds
#Et on eteint après 2 secondes
sleep(2)
gpio.output(port.PG7, gpio.LOW)

On rend le script exécutable

chmod +x test.py

Si vous n’êtes pas connecté en root, il faut faire précéder la commande python d’un sudo (le mot de passe vous sera demandé).

sudo python test.py

Si le câblage est correct, la Led doit s’allumer durant 2 secondes.

orange pi one lite raspberry gio python

Voilà, vous avez maintenant tout ce qu’il vous faut pour utiliser le GPIO de l’Orange Pi. C’est dommage que les appels soient différents. Les programmes existants ne seront pas directement utilisables. Autre regret, la rotation du connecteur qui rend l’utilisation des cartes HAT beaucoup moins pratique (et compact !)

Tableau de comparaison des modèles Orange Pi

Désolé, il n'y a pas d'articles correspondant à vos critères.
Avez-vous aimé cet article ?
[Total: 0 Moyenne: 0]

Vous rencontrez un problème avec ce sujet ?

Peut-être que quelqu’un a déjà trouvé la solution, visitez le forum avant de poser votre question

Accéder directement aux forums

Partager sur facebook
Partager sur twitter
Partager sur linkedin
Partager sur pinterest
Partager sur email
Partager sur telegram

Vous avez aimé ce projet ? Ne manquez plus aucun projet en vous abonnant à notre lettre d’information hebdomadaire!

Ressources utiles
Nous serions ravis de connaître votre avis

      Laisser un commentaire

      Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

      Domotique et objets connectés à faire soi-même