domingo, 17 de marzo de 2013

Programación puerto GPIO

Una vez conocidos los pines del puerto GPIO, vamos a ver como se pueden gestionar desde código.

La programación del puerto se puede hacer utilizando diversos lenguajes, entre otros:
  • C
  • Java
  • Python
  • Perl
  • Bash shell script, usando sysfs
  • Shell script usando la libería wiringPi
  • Pascal
  • BASIC
  • Ruby
Para hacer las primeras practicas me parece mas sencillo usar shell script, utilizando el sistema de archivos sysfs que incorpora Raspbian y que permite controlar dispositivos como un sistema de ficheros. Un inconveniente de usar sysfs es que se necesitan permisos de root para usarlo, pero para hacer las prácticas me parece que es el método mas sencillo.
Un tema a tener en cuenta es que el número lógico I/O del chip BMC no coincide con el pinout del conector. Así, para usar el pin 7 del conector, tenemos que referirnos al BMC_GPIO_4

Los comandos para controlar los pines del puerto GPIO tanto para entrada como para salida son los siguientes:

  Primero cambiamos a usuario root. Para cerrar root, usamos el comando exit
  sudo -i 


  Para configurar el pin 7 (GPIO4) como salida:
  echo "4" > /sys/class/gpio/export
  echo "out" > /sys/class/gpio/gpio4/direction

  Para configurar el pin 26 (GPIO7) como entrada:
  echo "7" > /sys/class/gpio/export
  echo "in" > /sys/class/gpio/gpio7/direction

  Para poner un uno lógico en el pin 7 (GPIO4)
  echo "1" > /sys/class/gpio/gpio4/value

  Para leer el estado del pin 26 (GPIO7)
  cat /sys/class/gpio/gpio7/value 

  Para dejar de usar los puertos
  echo "4" > /sys/class/gpio/unexport
  echo "7" > /sys/class/gpio/unexport


Podemos encontrar información mas extensa sobre el puerto y su programación aquí.

No hay comentarios:

Publicar un comentario