Beaglebone y uso de puertas digitales, sensor de presencia

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

  1. Capítulo 6 del libro Arduino Cookbook 2nd Edition
  2. Gigamegablog por las pruebas con interruptores
  3. Datasheet del sensor PIR de Parallax aquí

 

Author: Manuel Carrasco

Ingeniero Eléctrico, Institutano, instructor certificado Cisco, en twitter @mcarrasco con comentarios y opiniones personales.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *