Compartir en facebook Compartir en google+ Compartir en twitter Compartir en pinterest Compartir en linkedin

GPIO regleta de expansión de 40 pins

Publicado el 12/2/2016

Para empezar: GPIO (General Purpose Input / Output, Entrada / Salida de Propósito General). Esta placa tiene un conector de 40 pines (de forma muy similar al IDE de las placas base de ordenador) que sirve para manejar señales de entrada / salida.

No tienen ningún propósito especial definido y no se usan de forman predeterminada, la idea es que cada usuario las use para su propósito concreto, dejando su uso a la imaginación de cada cual. Con estos pines podemos leer valores de entrada (por ejemplo, sensores de temperatura, de luz, de humedad, de aceleración, de posición...) así como enviar señales de salida (para control de motores, señalización en leds o displays...)

Lo primero que debemos saber es la disposición de estos pines. La siguiente imagen está sacada del manual esquemático de diseño del hardware de las placas Orange Pi:

Orange Pi 2 GPIO Pinout H3

No existe mucha documentación oficial sobre dicha regleta, las secciones que hacen referencia en la página oficial están vacías, así que iré recopilando más información. Si puedes aportar algo, no dudes en escribirme y añadiremos dicha información.

Si tienes intención de trabajar con estos pines debes saber que coincide con la del modelo A y el modelo B de la placa Raspberry Pi. Tienen soporte SPI y I2C. y está basado en Allwinner A20. Puedes leer toda la información en este documento Confidencial sobre el Procesador OTT Allwinner H3, pulsando aquí.

Para trabajar con los pines de este BUS hay que instalar alguna librería que se comunique con ellos. La mayoría son adaptaciones de Wiring Pi, una librería para la Raspberry Pi: WiringOP, WiringBP compatible con Banana Pi, orangepi_PC_gpio_pyH3... Esta última utiliza la librería oficial de Python, y a mi es la que más me gusta.

Para instalarla, descarga el archivo comprimido, o clónalo con:

sudo git clone https://github.com/duxingkei33/orangepi_PC_gpio_pyH3.git

descomprime en la misma carpeta si es necesario e instala con:

sudo python setup.py install

NOTA: Si te sale un error sobre python.h

fatal error: Python.h No such file or directory
#include "Phyton.h"
...
				

tienes que instalar el paquete python-dev.

sudo apt-get install python-dev

Después vuelve a instalar.

sudo python setup.py install

Para probar que todo funciona, este es un ejercicio de lo mas sencillo. Crea un archivo donde escribiremos un script en python con sudo nano test.py y escribe el siguiente código. Python es bastante exigente con la indentación, así que ten cuidado si copias y pegas.

#!/usr/bin/env python

import os
import sys

if not os.getegid() == 0:
    sys.exit('Debes ejecutar este Script como SU')

from time import sleep
from pyA20.gpio import gpio
from pyA20.gpio import port

led = port.PA20

gpio.init()
gpio.setcfg(led, gpio.OUTPUT)

try:
    print ("Pulsa CTRL+C para salir")
    while True:
        gpio.output(led, 1)
        print "led set 1 \r\n"
        sleep(2)
        gpio.output(led, 0)
        print "led set 0 \r\n"
        sleep(2)
        gpio.output(led, 1)
        sleep(0.1)
        gpio.output(led, 0)
        sleep(0.1)
        sleep(0.6)
    
except KeyboardInterrupt:
    print ("Saliendo.")

Ahora con una resistencia, 2 cables y un diodo led, conecta como en el siguiente esquema:

Ejecuta sudo python test.py y el led debe parpadear además de mostrar el estado por pantalla.

ACTUALIZACIÓN Junio 2017: Con las nuevas imágenes armbian ya no se exportan los GPIO a / gpio_sw. Para activarlo haz lo siguiente:

Ves al directorio root con cd /boot. Convierte el archivo script.bin a formato fex y ábrelo en un editor:

sudo bin2fex script.bin script.fex
sudo nano script.fex

Busca la siguiente estrada:

[twi1]
twi_used = 1

y cámbiala por:

[twi1]
twi_used = 0

Vuelve a convertir el archivo a formato bin:

sudo fex2bin script.fex script.bin

Reinicia la máquina y todo debería volver a funcionar.

ACTUALIZACIÓN Junio 2017: Pulsa aquí para un ejemplo de uso.

Espero que te haya sido de utilidad, no dudes en escribir un comentario si ves algún error o si puedo ayudarte.


Utiliza este espacio si quieres añadir algún comentario adicional o si tienes alguna duda.

Todos los comentarios serán validados antes de su publicación.
  1. Orange_Tester

    Con tu tutotial por fin tengo funcionando los pines de mi placa OrangePi_PC_PLUS, solo me faltaba descargarme la ultima versión del sistema operativo armbian y actualizarla con el comando sudo apt-get update (Fallo de principiante)

    Muchas Gracias.


  2. Miguel Angel

    Recientemente he comprado una Orange Pi Zero, pero acabo de leer que la salida de video que tiene es mediante una expansión de 13 pines, no tiene una salida hdmi ni vga, ni nada integrado. Como no se nada de electrónica, quisiera saber como puedo sacar video de Orange Pi Zero. Si existe alguna forma o bien de sacar el video de la placa mediante el otg o algo así­ o donde adquirir la placa de expansión con la salida de video.


  3. Javier

    Hola Miguel Angel. No he tenido la oportunidad de tener todavía esta placa, pero por lo que sé, está más pensada para conectar via SSH ya que no tiene salida HDMI ni VGA. Si tiene una salida marcada como TVOut entre los pines 2 (masa) y 9 (señal) para soldar o conectar una clavija RCA y conectarlo a una televisión (suele ser el conector RCA amarillo). Existen adaptadores de RCA a Euroconector, quizás sea la forma más sencilla. Esto es lo que he podido averiguar, si alguien puede aportar más, por favor, que no dude en escribir. Cuéntanos tu experiencia, que seguro es útil a mas gente. Saludos y lamento no poder ayudarte más.


  4. Kinegua

    Hola. Tengo la Orange Pi Zero desde hace una semana y de momento no he conseguido señal de vídeo compuesto a través del pin 9. Me falta pribar un poco más. En el foro de Armbian parece que también están con ello. Si he conseguido acceder por ssh con putty sin problemas con la imagen de Ubuntu oficial. Si consigo echarlo a caminar lo comentaré por aquí.


  5. Juan

    Hola, me podrias confirmar si el puerto GPIO cuenta con entradas y salidas analógicas.
    Saludos


  6. Javier

    Hola Juan.
    Las Orange Pi no tienen entradas analógicas, así que sólo son capaces de detectar entradas digitales, es decir, valor alto - valor bajo. Como posibles alternativas puedes usar un procesador, que convierta las señales analógica en digitales como un micro MCP3008. O conectar un Arduino que te maneje las señales y se las envíe al Orange Pi.
    Saludos


  7. Adelosri

    Hola
    Alguien de este foro ha usado cualquiera de los UART del Orange para hacer transmision SERIAL?, necesito migrar algo hecho con Raspberry y Python, pero cuando debo configurar el puerto como '/dev/tty??' no se cual colocar.
    He probado varios que arroja el comando ls /dev/tty* pero ninguno parecer leer o escribir en el puerto
    Estoy tratando de leer TX y RX de los pines PA13 y PA14
    Muchas gracias por su ayuda


  8. Javier

    Hola Adelosri. Sin saber que SO estás usando ni que librerias para usar el GPIO poco puedo decirte. Yo no lo he usado todavía, pero mira, aquí han peleado con ello y han conseguido arreglarlo:
    http://www.orangepi.org/orangepibbsen/forum.php?mod=viewthread&tid=1220
    Espero que te ayude.
    Saludos.


  9. Jorge

    Hola wenas aorange pi plus 2 es capaz mover un sistema ambilight con hyperion? Por gpio spi?


  10. Raul Martin

    Hola soy un novato n pañales, quiero ponerle a la orange pi pc una lcd display de 3.5 cocretamente el modelo xpt2046 esta diseñada para RPi, por mi poca experiencia creia que tansolo lo conectaba al oranpi pc a travez de los pines que tiene y listo ya tenia señal, pero ya veo que no y quisiera que me indicarais como poder conectarla que paso he de seguir, muchas gracias y unsaludo.


  11. Javier

    Hola Jorge. Por capacidad de hardware, si podría moverlo. El problema es encontrar el software. No he encontrado nada que lo haga, así que habría que compilarlo partiendo de Armbian o Openelec. Cuéntanos si consigues avanzar.
    Saludos.


  12. Javier

    Hola Raúl.
    Pues efectivamente, está diseñada para Raspberry Pi. Yo no he encontrado nada para hacerla funcionar con Orange Pi. Puedes empezar siguiendo los pasos para instalarla en uina Raspberry Pi, e ir improvisando:
    https://www.raspberrypi.org/forums/viewtopic.php?f=44&t=124961&p=840855
    También hay un driver para BAnana Pi, y al haber bastante compatibilidad entre Banana Pi y Orange Pi, puedes seguir por ahí.
    https://github.com/saper-2/rpi-5inch-hdmi-touchscreen-driver
    Por favor, cuéntanos como te ha ido. Saludos.


  13. Gustavo

    Hola Javier, muchas gracias por compartir estos contenidos en español! ¿Sabrías de algún tutorial o ejemplo de código para poder conectar un OPIPC+ a un Arduino UNO a través de los pines?
    Para los que sabemos poco de electrónica es muy difícil entender al principio algunos conceptos como por ejemplo "convertir señales analógicas en digitales con un micro", busqué bastante sobre esto y aún no encuentro algo sencillo de entender. Cualquier consejo sería de gran ayuda, saludos!


  14. Javier

    Hola Gustavo.
    Recién publicado:
    http://orangepiweb.es/orange-pi-arduino.php
    Saludos.
    Javier


  15. Marcela

    Buenas tardes a todos.
    Estoy intentando manejar los pines GPIO desde una interfaz gráfica en Netbeans para el control de una máquina termoformadora, pero no he podido conseguir información.
    No se si exista una librería o algo que haga esto posible. Alguien podria ayudarme con esto por fabor?


  16. Javier

    Hola Marcela. Pues la verdad es que no lo sé. Deberías acudir al fabricante de la termoformadora para ver si tiene librerías para manejar la máquina y así saber desde que sistema se puede hacer y adaptarlo a tu Orange Pi. Saludos.


  17. Saul E

    Excelente blog, conseguí las placas pc + solo para usarlas de centro de entretenimiento pero como me gusta trastear con linux me da curiosidad el uso del gpio así que ando investigando que puedo hacer con el, gracias al autor por la info compartida ya que no hay micha información en la red.

    Saludos



Nombre*

Email* Nunca será publicado ni compartido

Comentario*



Copyright © 2016. Todos los derechos reservados | Diseño JaviPSantos

Solicitamos su permiso para obtener datos estadísticos de su navegación en esta web, en cumplimiento del Real Decreto-ley 13/2012. Si continúa navegando consideramos que acepta el uso de cookies.

OK | Más información