El Beaglebone tiene multitud de puertas. Ya vimos en un artículo anterior el uso de las puerta analógicas, ahora veremos las puertas digitales.
El uso de puertas digitales para señal de entrada es importante, podemos identificar cuando una señal esta en High o Low.
Para esta prueba usaremos el sensor de presencia, PIR o Passive InfraRed por sus siglas en inglés, de Parallax que genera una señal en un pin digital cuando nos acercamos. Una excelente referencia sobre este tipo de sensores la encuentras aquí
Materiales
Los elementos necesarios para conectar son
- Beaglebone Rev. A5
- Fuente de Poder 5V @ 1800 mA
- Cable de red
- Protoboard
- Sensor de presencia PIR
Las puertas usadas en el Beaglebone son las siguientes
- P9.1 Ground
- P9.4 3.3V
- P9.15 GPIO
Conectando
La conección es como se muestra en la figura
Por el lado del sensor queda de este modo.
Con la coneccion como se indica en las figuras anteriores comprobamos que cuando detecta presencia, el sensor cambia el valor de su PIN de salida a 1.5V con una corriente 64μA valores que estan dentro de las especificaciones del Beaglebone.
Usando Python
El script básico de Python que usamos es el siguiente
############################################ # As published in www.internetdelascosas.cl # Feel free to use and modify # PIR is connected as follows # Vdd P9.4 # Gnd P9.1 # Out P9.15 # ref : http://www.gigamegablog.com/2012/03/16/beaglebone-coding-101-buttons-and ############################################ import os from time import sleep os.system("echo 48 > /sys/class/gpio/export") while(True): f = open("/sys/class/gpio/gpio48/value","r") # reading P9.15 datos = f.read() vect = datos.split('\x00') switch = int(vect[0]) # convert to int type if switch == 0: print( "Not sensing presence") sleep(1) else: print ( "Sensing presence") sleep(1) f.close # To disable pin use # os.system("echo 48 > /sys/class/gpio/unexport")
Este script se ejecuta con el comando
python nombre_de_script.py
Tambien puedes bajarlo desde aquí http://pastebin.com/raw.php?i=A8kXphjm
para bajarlo desde el beaglebone prueba
wget http://pastebin.com/raw.php?i=A8kXphjm cp raw.php?i=A8kXphjm test_PIR.py python test_PIR.py
Referencias
- Capítulo 6 del libro Arduino Cookbook 2nd Edition
- Gigamegablog por las pruebas con interruptores
- Datasheet del sensor PIR de Parallax aquí