Mostrando entradas con la etiqueta sensores. Mostrar todas las entradas
Mostrando entradas con la etiqueta sensores. Mostrar todas las entradas

miércoles, 7 de octubre de 2009

Uso de dispositivos I2C desde un PC con LabVIEW

Introducción
El I2C se ha convertido en un bus muy popular para la conexión de periféricos a microcontroladores, sobre todo en robótica doméstica por la aparición de numerosos sensores y actuadores que usan este tipo de comunicación.
Se trata de un bus donde un maestro (un PC ó microcontrolador principal) controla los accesos a los diferentes dispositivos esclavos que se pueden conectar al mismo bus. El maestro selecciona el dispositivo, la dirección del registro base dentro del dispositivo y el número de bytes que se desean escribir o leer. Los dispositivos esclavos deben poseer diferentes direcciones y se pueden conectar hasta 128 por bus.
El bus normalmente funciona con señales de 0 y 5V y la velocidad de trasferencia la marca el maestro, que puede tener una frecuencia entre 100 y 400 KHz.


Montaje chapucero del adaptador i2C y un SFR02

Para utilizar dispositivos I2C desde un PC necesitamos un adaptador de USB a I2C maestro. El que usa todo el mundo es el "Devantech USB I2C module". Es bastante económico ( veintitantos €) y fácil de usar, ya que implementa un puerto serie sobre USB (con drivers de FTDI) con un protocolo sencillo y además proporciona una salida de 5V que puede usarse para alimental ciertos dispositivos.
La conexión maestro-esclavos es muy fácil:

  • GND con GND
  • SCL con SCL
  • SDA con SDA
  • +5V ... depende
La entrada adicional que tiene el módulo adaptador sirve para otras cosas. Yo no la uso.
La salida de 5V se puede enviar por el bus, quedando entonces una conexión de cuatro líneas.
En la figura siguiente se muestra un ejemplo de conexionado, en la que el último dispositivo posee su propia alimentación y le basta con 3 hilos del bus (SCL-SDA-GND).


Ejemplo de uso:
Medida de distancias con un sensor sónar Devantech SFR02. La conexión es totalmente directa y no se ve el bus como tal.


Panel del programa de lectura

El programa de toma de medidas por sónar requiere de las inicialización del puerto serie con los parámetros adecuados para el adaptador concreto. En el bucle principal se realiza la lectura del registro lsb de distancia y se inicia una nueva medida mediante la escritura en el registro de comandos del SFR02.

Programa principal de lectura de sonar.


Librería de funciones I2C creada por El Hombre Mecatrónico para LabVIEW:
El programa anterior está basado en la siguiente librería de funciones para uso del bus I2C en labVIEW y que está incluida para descarga en el ejemplo anterior.




Función de Inicialización: I2CInit.vi



Función de Escritura: I2CWrite.vi



Función de Lectura: I2CRead.vi

Espero que este ejemplo le sirva a alguien.
Un saludo a todos los mecatrónicos.

domingo, 30 de agosto de 2009

Terminada la parte mecánica del robot móvil animatrónico

Pues hace dos días que terminé la parte mecánica del robot móvil animatrónico que estoy construyendo desde hace ya unos 14 meses.










Por ahora pongo las fotos de cómo queda, a falta de terminar el cableado y la electrónica de control. No obstante ya cuenta con toda la motorización y los sensores.

En cuanto a las características principales adelantaré:
  • Altura 70 cm, anchura 50 cm.
  • Tipo de locomoción por orugas con cuatro motores de cc y dos encoders para control de velocidad.
  • Dos brazos de 6 grados de libertad cada uno, accionados por servos.
  • Cabeza con movimiento de giro y elevación (pan & tilt) con servos digitales.
  • Puerta delantera con servo para control de apertura.
  • Sensores de navegación: 6 sónares (2 frontales situados en la puerta, dos para esquinas y dos para laterales situados bajo la carcasa principal).
  • Sensores de seguridad en la parte inferior de la puerta. Sensores infrarrojos de rango para detectar la presencia de suelo u obstáculos en la proximidad del robot.
  • Sensores para inspección en la cabeza: Cámara IP Wifi, dos sensores inrarrojos de rango de medio alcance (1,5 m) para la detección de objetos de interés un sensor de rango de hasta 6 m para buscar objetivos, un sensor de luz y un sensor térmico de 8 pixeles para la discriminación entre seres vivos y obstáculos.
Próximamente mostraré más información sobre la construcción y también sobre su funcionamiento.