Archivo de la categoría: Infrarrojos

ArduRover I (Tracción)

ArduRover

Empiezo un nuevo proyecto, la realización de un vehículo oruga capaz de moverse de manera autónoma o controlado a distancia. Irá evolucionando conforme pase el tiempo e implementemos múltiples accesorios y funciones. Algunas de las funciones que me gustaría que tuviese son las siguientes:

  • Movimiento de Avance, Retroceso, Giro a la Izquierda, Giro a la Derecha, etc
  • Capaz de seguir una línea mas o menos compleja.
  • Capaz de reproducir una ruta previamente almacenada y salir de un laberinto
  • Evitar obstáculos
  • Programación a través de una pantalla LCD
  • Control de manera inalámbrica (Bluetooth).
  • Instrumentado con sensores de Luz, Temperatura, Sonido, etc.
  • Comunicación bidireccional
  • Brazo robotizado
  • Cámara de Vídeo
  • ETC

Gestión de la tracción.

Para esta parte he optado por la adquisición de un “Rover 5” con dos motores y dos encoder de Efecto Hall.

Codificadores.png

Sus características son las siguientes:

Tipo de Tracción                            Oruga
Tensión de Motores                       7.2 Vcc
Intensidad de Motores                   2.5 A
Torque de Motores                       10 kg/cm
Proporción Caja de Cambios          86.8:1
Tipo de Codificador                      Cuadratura
Velocidad                                     1 km/h
Medidas                                       245x225x74
Resolución del Codificador           1000 pulsos por 3 vueltas

 Motores

Para la gestión de los motores he utilizado dos BA6286N con las siguientes

Características:

Tensión máxima de alimentación           18 Vcc
Potencia máxima disipada                      1050 mW
Temperatura de funcionamiento             -20 a 75 ºC
Intensidad máxima de salida                   1 A
Tensión de Vcc, Vm, Vref                         desde 4.5 Vcc a 15 Vcc
Valores para una temperatura ambiente de 25 ªc

 BA6286N_Esquema_de_Bloques

Tabla_BA6286N

 La configuración de los dos circuitos BA6286N es la siguiente:

 BA6286N En la primera aproximación el terminal “Vref” lo he conectado a Vmot.

El funcionamiento es muy simple y similar al anteriormente explicado “L293D”. Dependiendo de que terminal que se encuentre en alto (+5), el integrado realiza la polarización de adelante, atrás, freno o reposo.

Para el montaje de toda la electrónica, he utilizado una plancha de metacrilato convenientemente pintado que servirá de soporte para todos los accesorios que en el futuro tendremos que conectarle.

Las conexiones entre los distintos módulos, las he realizado sirviéndome de placas de conexión auxiliares y puentes de conexión y desconexión fácil.

 

Esquema Eléctrico:

BA6286N

Circuito Práctico:

esquema_practico

Código del Programa

Codigo_ArduRover_I

Fotos:

Planta2

Detalle de las conexiones

Gif_2 Gif_8

Vista en Perspectiva

lado

Vista Lateral

Planta

Vista de la Planta

Código fuente:

ArduRover_Traccion.ino

Ficha del Proyecto:

ArduRover_I_Ficha_28

Vídeo resumen:

 

 

Anuncios

Coche Sigue Líneas

¿Qué es un robot Sigue Líneas?

Básicamente en un móvil capaz de desplazarse a lo largo de una línea de un color diferente al fondo, todos basan su funcionamiento en sensores, sin embargo, dependiendo de la complejidad del recorrido, el robot debe utilizar más o menos sensores.

Posee los siguientes elementos:

Sensores:

Detectan si estamos sobre la línea o no. En este caso he utilizado dos de los cuatro sensores instalados (CNY-70), dejando los otros dos para su posterior ampliación en futuros proyectos. En anteriores post he hablado de ellos, pero básicamente está formado por un diodo emisor infrarrojo y un fototransistor que opera en la misma longitud de onda, el acoplamiento óptico se realiza por reflexión cuando es acercado a una superficie preferentemente plana y sólida

Circuito de Control:

Es un sistema electrónico que realiza diferentes acciones dependiendo del estado de los sensores. En este caso he utilizado Arduino

Circuito de Potencia:

En circuito que según la señal de control, actuar sobre los motores del móvil. En este caso he utilizado dos servos manipulado para que giren 360º.

 

El funcionamiento básicamente consta de tres ordenes y son las siguientes:

BD14866_ Los dos sensores están sobre la línea, avanzamos

BD14866_ El sensor de la derecha ha salido de la línea, giramos hacia la izquierda

BD14866_ El sensor de la izquierda ha salido de la línea, giramos hacia la derecha

BD14866_ Los dos sensores están fuera de la línea, sigue con lo que estabas realizando.

Teoria_Sigue_lineas

Esquema Eléctrico:

 

Circuito_Coche_Sigue_LineasEsquema Práctico:

Placa_Sigue_Lineas

Código del Programa:

Codigo_Sigue_Lineas

Fotos:

Sigue_Lineas_Arriba_1

Visión General

Sigue_Lineas_Arriba_2

Vista Lateral

Sigue_Lineas_Debajo_1

Visión por debajo

Sigue_Lineas_Debajo_Sensores

Detalle de los sensores

Sigue_Lineas_Arriba_Sensores

Detalle de la placa de los sensores

Circuito

Pista de Pruebas

Código fuente:

Coche_Sigue_Lineas_Fin.ino

Ficha del Proyecto:

Coche_Sigue_Linea_Ficha_21

Vídeo resumen:

Unimos Todo en una Placa de Coche

Este proyecto trata de aunar algunos de los proyectos anteriores en una placa, que conectaremos encima de nuestro Arduino, como los escudos que venden comercialmente.

Utilizaremos un circuito impreso pre-perforado, de unas medidas de 20 x 20 agujeros.

Soldaremos uno conectores como los de la fotografía.

detalle

La placa debe tener un aspecto parecido a este.

Placa_Arduino

El primer problema con el que no vamos a enfrentar es que los dos bloques de seis conectores están separados un agujero, pero los dos bloque de ocho agujeros están separados algo menos de un agujero, con lo que el acople no es perfecto. Para que sea un poco más perfecto, podemos agrandar un poco los agujeros y desplazarlos un poco.

Posee cuatro Programas:

  • Programa 0 o Manual – El vehículo se mueve con las teclas de arriba, abajo, derecha, izquierda y Enter. Además dispone de una tecla para encender la luz y otra para apagarla

  • Programa 1 o Seguidor de Luz – Realiza las mismas funciones que el proyecto del mismo nombre ( avanza siguiendo la dirección de más luminosidad)

  • Programa 2 o Bailando – Realiza unos movimientos predeterminados.

  • Programa 3 o Interruptor Crepuscular – Cuando baja la intensidad de la luz ambiente se enciende el diodo LED.

En principio en la placa he juntado los proyectos de “Vehículo con Servo”, “Sigue Luz” , “ Comunicación por Infrarrojos” y un LED súper brillante. En el futuro me servirá para reunir otro que mas adelante realizaré.

He utilizado los conceptos de Función, “CASE”, Librerías, Protocolos de Comunicación y Programación en Bloque, por lo que el proyecto es para un público con conocimientos medios en programación con Arduino.

Como en los anteriores proyectos, solo esbozo las posibilidades de Arduino y dejo a que quiera, el desarrollo más práctico y dirigido a una utilidad concreta.

Placa que Conecta con Arduino

Esquema Eléctrico:

Placa_Arduino_Coche_Esquema

Esquema Práctico:

Placa_Arduino_Coche_1_bb

Código del Programa:

Codigo_Placa_Coche

Fotos:

DSC_0358

Vista General

DSC_0363

Vista Frontal

DSC_0367

Detalle Receptor Infrarrojo

DSC_0365

DSC_0364

Mando

Funciones en el Mando Infrarrojo

Código fuente:

Placa_Arduino_Coche.ino

Ficha del Proyecto:

Placa_Arduino_Coche_Ficha_15

Vídeo resumen:

Comunicación por Infrarrojos

ARDUINO Y RECEPTOR DE INFRARROJOS

Lo que me dispongo a realizar, es con la ayuda de un receptor de infrarrojos (TSOP4838) que obtuve de un helicóptero viejo y un par de componentes pasivos, comunicarme con Arduino a través de un mando a distancia. Casi todos los mandos a distancia por lo general utilizan el protocolo de comunicación NEC que más abajo explico.

TSOP4838

Para la comunicación mediante el protocolo NEC con Arduino hay varias librerías que son necesarias para realizar tal fin, yo he utilizado una que me da la posibilidad de recibir y emitir con el citado protocolo (IRremote).

El circuito que hay que realizar es muy sencillo y puede ser algo como lo que dibujo más abajo.

Esquema_TSOP4838

Una vez que lo tenemos, con un sencillo programa y utilizando el monitor de comunicación del Arduino, podremos saber el código de cada tecla de un mando que utilice el citado protocolo.

Protocolo de Funcionamiento NEC

http://wiki.altium.com/display/ADOH/NEC+Infrared+Transmission+Protocol

El protocolo de transmisión de IR NEC utiliza la codificación de distancia de impulsos de los bits de mensaje. Cada ráfaga de impulsos es 562.5μs de longitud, a una frecuencia portadora de 38 kHz. y de la siguiente manera:

      ‘0 ‘Lógico – un pulso de 562.5μs seguido por un espacio 562.5μs, con un tiempo de transmisión total de 1.125ms

     ‘1 ‘Lógico – un pulso de 562.5μs seguido por un espacio 1.6875ms, con un tiempo de transmisión total de 2,25 ms

Al transmitir o recibir códigos de control remoto utilizando el protocolo de transmisión de IR NEC, la transmisión/recepción funciona de manera óptima cuando la frecuencia de la portadora (utilizado para la modulación / demodulación) se establece en 38.222kHz.

Cuando se presiona una tecla del mando a distancia, el mensaje transmitido consiste en lo siguiente, en orden:

                     Una impulsos líder 9 ms.

                     Un espacio 4.5ms

                     La dirección de 8 bits para el dispositivo receptor

                     La inversa lógica de 8 bits de la dirección

                     El comando de 8 bits

                     La inversa lógica de 8 bits del comando

                     Un pulso 562.5μs última ráfaga para indicar el final de la transmisión del mensaje.

Para el envío de los cuatro bytes de bits de datos, se realiza enviado primero los  bit menos significativo.

NECMessageFrameTelegrama Ejemplo utilizando el protocolo de transmisión de IR NEC.

Un comando se transmite una sola vez, aun cuando la tecla del mando a distancia sigue siendo presionada, si se mantiene apretada la tecla en el mando a distancia, se emitirá un código de repetición, alrededor de 40 ms después de la ráfaga de impulsos que finalizó el último mensaje. Un código de repetición continuará siendo enviado a intervalos de 108ms, hasta que se libera la tecla.

NECMessageFrame_Repeticion

Códigos de repetición Ejemplo enviaron una tecla pulsada en el mando a distancia transmisor.

Protocolo extendido:

El protocolo NEC es tan ampliamente utilizado que pronto todas las direcciones posibles, se agotaron. Se sacrificó la redundancia de la dirección del rango de direcciones y se amplió de 256 posibles valores a aproximadamente 65000 valores diferentes (256 valores de la dirección del Protocolo extendido no son válidos porque son, de hecho, la forma normal de direccionamiento del protocolo de NEC. Cada vez que el byte bajo es el inverso exacto del byte alto no es una dirección válida extendida), de esta manera el rango de direcciones se amplió de 8 bits a 16 bits sin necesidad de cambiar cualquier otra propiedad del protocolo. La redundancia de comandos aún se conserva, por lo tanto cada dirección todavía puede manejar 256 comandos diferentes.

Esquema Eléctrico:

Esquema_TSOP4838

Esquema Práctico

infrarrojos_Practico

Código del Programa:

Codigo

Código fuente:

Infrarrojos.ino

Fotos

Mando

Mando utilizado

Foto_IR

Circuito utilizado

Ficha del Proyecto:

Infrarrojos_Ficha_13

Vídeo resumen: