Conectando Raspberry Pi con Teensy 3.0

En otros artículos ya hemos hablado del RaspberryPi y de Teensy cada uno por separado.

Conexion de sensor para probar el ADC de En esta oportunidad, revisamos las ventajas de una implementación concreta de los dos equipos, usaremos la flexibilidad de Raspberry Pi con las grandes capacidades y el pequeño formato que tiene Teensy.

El Teensy tiene la capacidad de emular un teclado y eso usaremos en la primera prueba.

En la segunda prueba usaremos el ADC (Conversor Análogo Digital) de Teensy para enviar datos a una Raspberry Pi. Una vez adquiridos estos datos pueden ser postprocesados.

 

 

Tras el salto veremos los elementos y el código utilizado

Materiales

  • Teensy
  • Fuente de alimentación 5V @ 2A
  • RaspberryPi ver link en tienda
  • Acceso a Internet
  • Protoboard, link en tienda
  • Cables
  • Conector micro USB
  • Sensores de prueba (usamos un sensor de aceleración ADXL335)
  • Conector para Raspberry Pi

 

Prueba 1: GPIO desde Raspberry Pi al Teensy

El setup inicial lo obtuvimos de este link y consiste en conectar el Teensy al puerto GPIO 4 de la Raspberry Pi
Para ello se utiliza un conversor de niveles con lo que aseguramos los niveles de voltaje adecuados para cada equipo.

Como prueba usamos el siguiente sketch

void setup(){
  pinMode(0, INPUT);
}

void loop(){
  if(digitalRead(0))
  {
    Keyboard.println("High");
    delay(1000);

  }else{
  }
}

Desde la raspberry Pi se debe ejecutar la siguiente serie de comandos

sudo su -
echo "4" > /sys/class/gpio/export 
echo "out" > /sys/class/gpio/gpio4/direction
echo "1" > /sys/class/gpio/gpio4/value;
echo "0" > /sys/class/gpio/gpio4/value;

Con esto generamos un 1 o un 0 en la GPIO4 desde la línea de comandos, cuando el valor sea un 1 el teensy genera una acción por la puerta USB, emulando a un teclado.
 

La conexión del hardware es de la siguiente manera
El pin 0 de Teensy va conectado a GPIO 4, a través del conversor.
Conversor de niveles se conecta a HV (pin Vin en Teensy) y LV (3,3V en Raspberry pi)
Se conecta la Tierra desde ambos equipos al conversor de niveles.

Eso se muestra en la figura

RPi_teensy

Prueba : Captura de ADC por puerta serial

Para la segunda prueba debemos habilitar la puerta serial, esto lo habíamos hecho en el artículo sobre GPS y lo repetimos aquí. Estos son los pasos

1) Editar cmdline.txt

sudo nano /boot/cmdline.txt

El archivo debe quedar de esta manera

# dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

2) Editar inittab, usando el siguiente comando

sudo nano /etc/inittab

comentar la siguiente linea

#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

3) Hacer reboot

sudo reboot

Usando Python

Para usar la puerta serial debemnos instalar la biblioteca pyserial

sudo pip pyserial

En el teensy cargamos el siguiente sketch


HardwareSerial Uart1 = HardwareSerial();

void setup()
{                
  Serial.begin(9600);
  Uart1.begin(9600);
}
int val;

void loop()                     
{
  val = analogRead(3);
  Uart1.print("analog 3 is: ");
  Uart1.println(val);
  delay(1000);
}

En la Raspberry Pi, el archivo Python que usamos es el siguiente ,


# website: www.iot.cl
# 
#
# Purpose : basic use of serial port
#
# Date : 2013–06–06

from serial import Serial

s = Serial('/dev/ttyAMA0', 9600, timeout=2)
f = open("data", "w")

while True:
        try:
            a = s.readline()
            print a
            f.writelines(a)
        except KeyboardInterrupt:
            break
s.close()
f.close()

Al ejecutar el script se guardan los valores informados por teensy en el archivo data, y se muestra la salida por pantalla.

La conexion física se ve en la siguiente foto

Conexión de sensor para probar el ADC de

 

 

Bibliografía

www.irongeek.com
Documentacion de Pyserial

Author: manuel

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

2 thoughts

  1. Raspberry Pi B. Hay algún Kit para controlar un invernadero. Temperatura, humedad, co2
    Entrada datos sensores . Salida activar dispositivos generadores Y/O accionar claraboyas.?
    Muchas gracias

    1. Estimado, hasta donde sabemos no existe ese kit, pero puede adquirir los sensores por separado junto con relays, el programa se puede desarrollar en python ya que es lo mas adecuado para la Raspberry Pi.

      Saludos

Deja un comentario

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