miércoles, 16 de agosto de 2017

Orange Pi One/Lite (Tutorial): use the GPIO in Python, pinouts


https://diyprojects.io/orange-pi-onelite-tutorial-use-gpio-python-pinouts/#.WZR4hVzo6Ts

Orange Pi One/Lite (Tutorial): use the GPIO in Python, pinouts

 
Orange Pi has a 40-pin extension connector (GPIO) compatible with the Raspberry Pi (model B +). In this tutorial, we will install python as well as the pyA20 library adapted to the GPIO of Orange Pi. On paper, the connector is compatible, only flat the call of the pins is different which requires to resume Python programs developed for The Raspberry. This is a bit of a shame but the very attractive price of the Orange Pi range remains a weighty argument.
For this tutorial, I used Armbian installed on an Orange Pi Lite (Wi-Fi version). The GPIO is the same throughout the Orange Pi range except the Orange Pi Zero which has a 26-pin GPIO.

Installing Python and Libraries

Let’s start by preparing the environment by installing Python
Then install the pyA20 library
Now we need to install the library to manage the Orange Pi GPIO. Place yourself in your home folder (eg /home/ft) and then clone the pyH3 library (https://github.com/duxingkei33/orangepi_PC_gpio_pyH3). This is an adaptation made by Duxingkei Chow of the library “python control orangepi_PC ext GPIO ALLwinner H3” based on the “pyA20 0.2.1” library.
Enter the library directory
And run the installation (it is better to do the previous command with a sudo if you are not logged in as root).

Correspondence of pins between Orange Pi and Raspberry Pi (model B+)

As I mentioned in the introduction, the expansion slot is compatible with the Raspberry B + (40-pin). However, the location is different.
Raspberry Pi Orange Pi Pin (Left column) Broche (Right column) Orange Pi Raspberry Pi

3V3 1 2 +5V  +5V
GPIO2 SDA1 I2C PA12 3 4 +5V  +5V
GPIO3 SCL I2C PA11 5 6 GND GND
GPIO4 PA6 7 8 PA13 GPIO14 UART_TXD
GND GND 9 10 PA14 GPIO15 UART_RXD
GPIO17 PA1  11 12 PD14 GPIO18 PCM_CLK
GPIO27 PA0  13 14 GND GND
GPIO22 PA3  15 16 PC4 GPIO23
3V3 3V3  17 18 PC7 GPIO24
GPIO10 SPI0_MOSI PC0 19 20 GND GND
GPIO9 SPI0_MISO PC1 21 22 PA2 GPIO25
GPIO11 SPI0_SCLK PC2 23 24 PC3 GPIO8 SPI0_CE0_N
GND GND 25 26 PA21 GPIO7 SPI0_CE1_N
ID_SD I2C ID EEPROM PA19 27 28 PA18 ID_SC I2C ID EEPROM
GPIO5 PA7 29 30 GND GND
GPIO6 PA8 31 32 PG8 GPIO12
GPIO13 PA9 33 34 GND GND
GPIO19 PA10 35 36 PG9 GPIO16
GPIO26 PA20 37 38 PG6 GPIO20
GND GND 39 40 PG7 GPIO21
Just like the Raspberry Pi, the output voltage is 3.3V.
Finally the last difference (and not least!), The connector is turned 180 degrees compared to that of the Raspberry. Needless to say that it will be necessary to use a connection for breadboard with a flexible cable if you want to connect the Orange to a breadboard (breakout) connection.

Lighting a Python Led

For this first tutorial on the GPIO of Orange Pi, we will not go far. Either way it’s exactly the same as Raspberry. There is only the call of the pins that differs.
Create a new file. For example test.py
Paste the following code and save with Ctrl + X then Y. This code is very simple, it lights for 2 seconds a LED connected to the PG7 pin (equivalent to the Raspberry GPIO21). Connect a LED on pin PG7 (the last one in the right column) to a GND via a 220Ω resistor.
We make the script executable
If you are not logged in as root, you must preface the python command with a sudo (you will be prompted for the password).
If the wiring is correct, the LED must illuminate for 2 seconds.
orange pi one lite raspberry gio python
Click to enlarge
Now you have everything you need to use the Orange Pi GPIO. It’s a shame the calls are different. Existing programs will not be directly usable. Other regret, the rotation of the connector makes the use of HAT cards much less convenient (and compact!)

No hay comentarios:

Publicar un comentario