martes, 11 de junio de 2013

PROGRAMANDO GPIO


Se han programado los pines de la GPIO básicamente de tres maneras, por una parte, mediante sysfs, por otra mediante el comando gpio que procede de la librería wiringPi y hasta que no la instalemos no está disponible y la tercera manera es a través de la librería wiringPi, que ya ha sido comentada en una entrada anterior.
Comando gpio
Este comando está operativo a partir de la instalación de la librería wiringPi.
Se pueden realizar la mayor parte de las operaciones que se han especificado en la librería de C directamente en línea de comandos, mediante la herramienta gpio.
  • -v muestra la versión
  • –g especifica que la numeración de pines es BCM GPIO
  • mode n [ in| out | pwm ] establece pin n en modo entrada, salida o pwm, respectivamente.
  • mode n [ up | down |tri  ] configura las resistencias del pin n en modo subida, bajada o ninguno.
  • read n lee el valor del pin n.
  • readall lee todos los valores posibles y los muestra por pantalla.
  • write n [ 1 | 0 ] escribe en el pin n un valor 1 (HIGH) o 0 (DOWN).
  • pwm n value establece en el pin n el valor value.
  • edge n [ rising | falling | both | none ] permite configurar las interrupciones sobre el pin n como flanco de subida, bajada, ambos o ninguno.
  • export n [ in| out ] exporta el pin n para que pueda ser utilizado por otros programas que no son lanzados por root.
  • exports muestra una lista de todos los pines que han sido exportados.
  • unexport n el pin n deja de estar disponible para programas que no han sido ejecutados por root.
  • unexportall idéntico al anterior pero para todos los pines.
  • load spi [buffer size ] Carga los módulos SPI en el kernel y establece opcionalmente un buffer definido en KB, yo valor por defecto es 4 KB.
  • load i2c [baud rate] Carga los módulos I2C en el kernel y establece opcionalmente la proporción en baudios en KB/s, cuyo valor por defecto es 100Kb/sec.
Interfaz sysfs
El sistema operativo Raspbian tiene mapados los pins de la GPIO en /sys/class/gpio, para poderlos gestionar a través de los ficheros que se encuentran en dicho directorio, export, unexport y el enlace simbólico a ../../devices/virtual/gpio/gpiochip0.
Para poder utilizar un pin, se debe escribir en el fichero export, su número. Hay que tener en cuenta que sólo root puede realizarlo (sudo su), para ello normalmente se utiliza el comando echo (echo n > /sys/class/gpio/export , donde n es el pin). A continuación se crea automáticamente un enlace simbólico en el mismo directorio al dispositivo virtual (../../devices/virtual/gpio/gpion). El pin se deberá establecer como de entrada o salida (echo out | in  > /sys/class/gpio/gpion/direction). En el caso de ser de salida, se puede establecer la salida a 1 o 0 (echo 1 | 0  > /sys/class/gpio/gpion/value). En el caso de ser de entrada, se podría comprobar su valor en un fichero ( cat /sys/class/gpio/gpion/value ). 
Finalmente, hay que dejar accesibles estos ficheros para otras aplicaciones, ya que cuando exportamos, los estamos bloqueando.
A continuación, se expone como se podría enceder un led asociado al pin n.
echo n > /sys/class/gpio/export
echo out > /sys/class/gpio/gpion/direction
echo 1 > /sys/class/gpio/gpion/value
echo n > /sys/class/gpio/unexport

1 comentario:

  1. Borgata Hotel Casino & Spa Review and A $20 Million - DrMCD
    Borgata 목포 출장샵 Hotel 전주 출장샵 Casino & Spa 당진 출장안마 is a great option for those looking for 하남 출장안마 a quiet place where locals can get a great 청주 출장샵 deal. It's located on the

    ResponderEliminar