Archivo de la categoría: Robots

Sistema para estacionamiento de un auto y para evitar acercarse demasiado a otro vehículo

Utilizando sensores ultrasónicos, los autos modernos nos dan una útil ayuda en el momento de maniobrar, especialmente al estacionarlos en espacios limitado. Podemos hacer nuestro sistema detector con un Arduino UNO y unos pocos componentes de bajo costo


Cómo funciona el sensor ultrasónico HC-SR04

El sensor ultrasónico HC-SR04 nos permite medir distancias por medio de emisión y rebote de ultrasonidos. Para medir distancias con Arduino podemos hacerlo de diferentes maneras.

Por orden de costo, hay un sensor que mide con el rebote de un láser; luego un sensor de infrarrojos que utiliza el paralaje del regreso de un haz de luz para calcular la distancia; y por último el más barato, el sensor ultrasónico HC-SR04, muy utilizado con Arduino, que utiliza la velocidad de propagación del sonido para medir distancia.

Para que no sea molesto al oído humano, utiliza ultrasonido a una frecuencia de 40 kHz. Estas ondas sonoras tienen una frecuencia muy por encima del espectro audible por los seres humanos.
El sensor funciona como un sonar, por rebote de la onda. El emisor del HC-SR04 envía un tren de ondas ultrasónicas cuando se activa la señal de disparo (trigger). Este sonido se refleja contra el objeto y retorna. El receptor detecta el momento en que retorna la onda y lo indica en la salida eco (echo).

Midiendo el tiempo de viaje podemos calcular la distancia.

La velocidad del sonido en la atmósfera terrestre es de 343,2 m/s a 20° C de temperatura, con 50% de humedad y a nivel del mar. Si necesitamos una gran exactitud, podemos agregar al diseño sensores BMP180 o BMP280, que nos aportan datos de altitud y temperatura, e incluso agregar un medidor de humedad, y por supuesto aplicar una fórmula más compleja. Pero para este diseño no necesitamos tanta precisión.

La fórmula de la velocidad es:

velocidad = espacio/tiempo

De donde despejamos la variable espacio, que necesitamos conocer:

espacio = velocidad x tiempo

La velocidad es conocida: la del sonido. El tiempo lo obtenemos con el sensor ultrasónico. Con ambos datos, podemos calcular la incógnita: a qué distancia se encuentra un objeto.

El zumbador o buzzer

Para simular correctamente un medidor de distancia de un automóvil utilizamos un buzzer (zumbador) pasivo. No hay que confundirlo con el zumbador activo, que tiene un oscilador interno, y por lo tanto una frecuencia fija y polaridad en sus pines de conexión.

Este reproductor no tiene un rango tan amplio de emisión de sonido como el del oído humano, ni mucho menos, pero es suficiente para diferenciar la distancia con frecuencias diferentes dentro de lo que es capaz de emitir. Además de los pequeños (como el de la foto), que vienen incluidos en los kits de Arduino, hay otros con mayor diámetro de diafragma (por ejemplo en el desarme de viejos modems), que ofrecen más volumen y un rango de frecuencias más amplio.

Sistema de alerta con leds y zumbador

Si bien al maniobrar no estaremos mirando hacia un indicador, sino atentos a los tonos de aviso, agregaremos al diseño un sistema de alerta visual. Nos dará una indicación aún más efectiva de si estamos cerca o lejos de un obstáculo. Con tres leds (verde, amarillo y rojo) conseguimos determinar si estamos a distancia sin riesgo, acercándonos, o en zona de peligro. Pero se podría ampliar la indicación con más leds y más comparaciones en el programa.

Componentes:

Arduino UNO, protoboard, cables para conexiones, resistores de 330 Ω, led verde, led amarillo, led rojo, sensor ultrasónico Arduino (HC-SR04), buzzer




Circuito:

Los resistores son de 330 Ω y van en serie con los LEDs. El sensor ultrasónico se conecta a dos pines digitales, uno para el trigger o disparador y otro para el echo, o receptor. El buzzer se conecta a una salida PWM y a GND. La salida PWM entregará distintas frecuencias según la indicación del programa, por medio de la función tone().

Programando el detector de distancia

Diagrama del programa

Los umbrales para la decisión se fijan como constantes, uno para cada situación. Podemos medir la distancia con una regla y determinarlos.

■ UmbralAlejado: está en zona verde desde 50 cm a 30 cm.
■ UmbralMedio: está en zona amarilla, desde 30 cm a 10 cm.
■ UmbralCerca: está en zona roja, menos de 10 cm.

Estos umbrales no son definitivos: se pueden cambiar a gusto del usuario.

El programa debe analizar la medición dividida en 4 zonas: fuera de rango (más de 50 cm, ninguna indicación), entre 50 cm y 30 cm (zona verde), entre 30 cm y 10 cm (zona amarilla), entre 10 cm e impacto (zona roja).

■ Luego de medir la distancia se la compara con el umbral que indica fuera de rango (50 cm).
■ Si la distancia es menor a ese valor está en zona verde: se enciende el led verde y emite el tono de 2000 c/s.
■ Si la distancia es menor a 30 cm y mayor a 10 cm está en zona amarilla: enciende el led amarillo y emite el tono de 2500 c/s.
■ Si la distancia es menor a 10 cm está en zona roja: enciende el led rojo y emite el tono de 3000 c/s.

Programa

Para esta determinación de rangos, es importante buscar en la hoja de especificaciones técnicas el rango de funcionamiento del sensor de ultrasonidos que disponemos. Para este artículo se usó uno que puede medir de 2 cm a 400 cm.

Artículos relacionados:

VL53L0X: Sensor de distancia que mide por la velocidad de la luz (Time-of-Fly)

Dando a los vehículos autónomos una “visión eléctrica” más aguda

Módulo de emisor piezoeléctrico pasivo KY-006 (Kit de sensores Keyes 6)

RCWL-0516: Módulo sensor de movimiento de microondas con radar Doppler



Módulo de emisor piezoeléctrico pasivo KY-006 (Kit de sensores Keyes 6)

Este módulo zumbador piezoeléctrico Keyes KY-006 puede producir una gama de tonos de sonido dependiendo de la frecuencia de entrada.

Especificaciones:

El módulo KY-006 consiste en un emisor piezoeléctrico de sonido pasivo, que puede reproducir tonos entre 1,5 a 2,5 kHz al encenderlo y apagarlo en diferentes frecuencias usando retardos o PWM.

Voltaje de funcionamiento: 1,5 ~ 15V DC
Rango de generación de tonos: 1,5 ~ 2.5kHz
Dimensiones: 18,5 mm x 15 mm

Diagrama de conexión:

La entrada de señal (S) se conecta al pin digital 9 en el Arduino y masa (indicado por ) a GND. El pin medio no se utiliza.

Uso del piezoeléctrico con la función tone()

Descripción:

La función tone() genera una onda cuadrada de la frecuencia especificada (y un ciclo de trabajo del 50%) en un pin digital del Arduino. Se puede especificar una duración; de lo contrario, la señal continúa hasta que se realiza una llamada a la función noTone(). El pin se puede conectar a un zumbador piezoeléctrico u otro altavoz para reproducir tonos.

Solo se puede generar un tono a la vez. Si ya se está reproduciendo un tono en un pin diferente, la llamada a tone() no tendrá ningún efecto. Si el tono se reproduce en el mismo pin, la llamada establecerá una nueva frecuencia.

El uso de la función tone() interferirá con la salida PWM en los pines 3 y 11 (en placas que no sean Mega).

No es posible generar tonos inferiores a 31 Hz. Para detalles técnicos, vea las notas de Brett Hagman.

NOTA: si desea reproducir diferentes tonos en múltiples pines, debe llamar a la función noTone() en un pin antes de llamar a tone() en el siguiente pin.

Sintaxis:

tone(pin, frecuencia)
■ tone(pin, frecuencia, duración)

Parámetros:

pin: el pin sobre el que generar el tono
frecuencia: la frecuencia del tono en hercios – unsigned int
duración: la duración del tono en milisegundos (opcional) – unsigned long

Feliz cumpleaños

Para Elisa

Canción de Star Wars

Brilla, brilla, pequeña estrella

Módulo de emisor piezoeléctrico pasivo – KY-006: Dibujo de la pieza para el editor Fritzing

Artículos relacionados:

Módulo sensor de temperatura KY-001 (Kit de sensores Keyes 1)
Módulo detector de vibración KY-002 (Kit de sensores Keyes 2)
Módulo de Sensor Magnético por efecto Hall KY-003 (Kit de sensores Keyes 3)
Módulo de llave pulsadora – KY-004 (Kit de sensores Keyes 4)
Módulo sensor de temperatura KY-005 (Kit de sensores Keyes 5)
Módulo de emisor piezoeléctrico pasivo KY-006 (Kit de sensores Keyes 6)
Módulo codificador rotativo KY-040 [ó KY-007] – (Kit de sensores Keyes 040/007)




Módulo transmisor de infrarrojo KY-005 (Kit de sensores Keyes 5)

Este módulo de Keyes contiene un led emisor de luz infrarroja y una resistencia limitadora de corriente.

El módulo transmisor de infrarrojo consiste de un led infrarrojo de 5mm y un resistor asociado. Funciona en conjunto con el receptor de infrarrojo KY-022.

Voltaje de Operación: 5V
Corriente Directa: 30 ~ 60 mA
Consumo de energía: 90mW
Temperatura de Operación: -25°C to 80°C
Dimensiones: 18,5mm x 15mm

La línea central del módulo es la alimentación, y se conecta a los +5V del Arduino. La línea marcada con el signo va conectada a GND del Arduino. La línea marcada con la letra S va conectada a la línea digital 2 del Arduino.

Código de ejemplo:

El siguiente programa de Arduino utiliza la biblioteca IRremote para enviar señales de infrarrojos en serie con el KY-005.

La conexión del pin de salida la determina la biblioteca: la entrada digital 3 en Arduino Uno. Depende de la placa que se esté utilizando, de modo que si utiliza otra se debe verificar la documentación de la biblioteca de IRremote. Será necesario un receptor de infrarrojos como el KY-022 para procesar la señal.

Los enlaces a las bibliotecas requeridas para el programa de ejemplo de Arduino con KY-005 se pueden encontrar en los enlaces más abajo.

Este programa envía un código de encendido/apagado de Sony TV cada vez que se envía un caracter al puerto serie, lo que permite que Arduino encienda o apague el televisor. (Tenga en cuenta que los códigos de Sony deben enviarse 3 veces de acuerdo con el diseño del protocolo).

Biblioteca IRremote: una biblioteca remota de infrarrojos multiprotocolo para Arduino

El código más reciente está en github.com/shirriff/Arduino-IRremote

La biblioteca remota IRremote permite enviar y recibir códigos remotos de IR en múltiples protocolos. Es compatible con NEC, Sony SIRC, Philips RC5, Philips RC6 y protocolos sin formato. Si se necesitan protocolos adicionales, son fáciles de agregar. Incluso la biblioteca puede utilizarse para grabar códigos desde su control remoto y retransmitirlos, como un control remoto universal mínimo.

Para usar la biblioteca, descargue desde github y siga las instrucciones de instalación en el archivo readme.

Cómo enviar:

Esta biblioteca remota de infrarrojos consta de dos partes: IRsend transmite paquetes remotos IR, mientras que IRrecv recibe y decodifica un mensaje IR. IRsend utiliza un LED infrarrojo conectado al pin digital 3. Para enviar un mensaje, llame al método de envío para el protocolo deseado con los datos a enviar y la cantidad de bits a enviar. Los ejemplos de la biblioteca proporcionan programas simples que muestran cómo enviar códigos. Uno de ellos es el que está listado más arriba.

Cómo recibir:

IRrecv utiliza un detector de infrarrojos conectado a cualquier pin de entrada digital.

El ejemplo IRrecvDemo en la biblioteca aporta un ejemplo simple de cómo recibir códigos:

La clase IRrecv realiza la decodificación y se inicializa con enableIRIn(). Se llama al método decode() para ver si se ha recibido un código; si es así, devuelve un valor distinto de cero y coloca los resultados en la estructura decode_results. Una vez que se ha descodificado un código, se debe llamar al método resume() para reanudar la recepción de códigos. Tenga en cuenta que decode() no bloquea; el croquis puede realizar otras operaciones mientras espera un código porque los códigos son recibidos por una rutina de interrupción.




Algunos antecedentes sobre los códigos IR

Un control remoto IR funciona encendiendo y apagando el LED en un patrón particular. Sin embargo, para evitar la interferencia de fuentes IR, como la luz solar o las luces, el LED no se enciende de manera constante, sino que se enciende y apaga a una frecuencia de modulación (generalmente 36, 38 o 40 KHz). El tiempo en que se envía una señal modulada se llama “marca”, y cuando el LED está apagado se llama “espacio”.

Cada tecla del control remoto tiene un código particular asociado (generalmente de 12 a 32 bits), y emite este código cuando se presiona la tecla. Si se mantiene presionada la tecla, el control remoto generalmente emite repetidamente el código de la tecla. Para un control remoto NEC, se envía un código especial de repetición cuando se mantiene presionada la tecla, en lugar de enviar el código repetidamente. Para los controles remotos Philips RC5 o RC6, se alterna un poco el código cada vez que se presiona una tecla; el receptor utiliza este bit de conmutación para determinar cuándo se presiona una tecla por segunda vez.

En el extremo receptor, el detector de IR demodula esta señal y emite una señal de nivel lógico que indica si está recibiendo una señal o no. El detector de IR funcionará mejor cuando su frecuencia coincida con la frecuencia del remitente, pero en la práctica no importa mucho.

Enlaces:

Biblioteca IRremote
Módulo de led emisor infrarrojo – KY-005: Dibujo de la pieza para el editor Fritzing

Artículos relacionados:

Módulo sensor de temperatura KY-001 (Kit de sensores Keyes 1)
Módulo detector de vibración KY-002 (Kit de sensores Keyes 2)
Módulo de Sensor Magnético por efecto Hall KY-003 (Kit de sensores Keyes 3)
Módulo de llave pulsadora – KY-004 (Kit de sensores Keyes 4)
Módulo sensor de temperatura KY-005 (Kit de sensores Keyes 5)
Módulo de emisor piezoeléctrico pasivo KY-006 (Kit de sensores Keyes 6)
Módulo codificador rotativo KY-040 [ó KY-007] – (Kit de sensores Keyes 040/007)


KY-003 Módulo de Sensor Magnético por efecto Hall (Kit de sensores Keyes 3)

Descripción:

El detector magnético Keyes KY-003 contiene un circuito integrado 3144UA-S diseñado para detectar campos magnéticos. Cuando se le aproxima el campo magnético de un objeto (por ejemplo un imán) indica esta detección cerrando a tierra el pin «S«, que es el colector de un transistor NPN sin resistor de polarización. El método de funcionamiento está basado en el efecto Hall.

El pin «S» es el de la señal de detección y corresponde al pin de la derecha de la foto de arriba, el pin del centro es el positivo de la alimentación, y el pin de la izquierda es el negativo (marcado “”).

Diagrama de conexiones del módulo:

Especificaciones:

■ La tensión de trabajo es desde 4,5 a 24 Voltios VDC
■ Consume 3 mA en reposo y 8 mA cuando detecta un campo magnético
■ La tensión de la señal de salida depende de la conexión del resistor de polarización (pull-up): 3,3V, 5V
■ La temperatura de trabajo va desde -40 a 85 grados C.
■ Dimensiones: 18,5 mm x 15 mm

3144EUA-S : Integrado de medición de campo magnético por efecto Hall

El circuito integrado 3144EUA-S, sensible al magnetismo por efecto Hall, y en esta versión comercial puede operar a temperaturas de hasta 85º C. El sensor está diseñado como un interruptor que se enciende/apaga en presencia de un campo magnético. Colocando un imán cerca de él, su salida se activará. La polaridad del campo magnético influye en la acción de conmutación.

El dispositivo incluye un regulador de voltaje interno que le permite operar con voltajes de alimentación de 4,5 a 24 voltios, diodo de protección de inversión de batería, generador de voltaje Hall cuadrático, circuito de compensación de temperatura, amplificador de pequeña señal, disparador Schmitt y salida de colector abierto que puede conducir hasta 25 mA. Con la salida adecuadamente polarizada por un resistor, se puede utilizar con circuitos lógicos bipolares o CMOS.

El A3144– es un reemplazo mejorado para el UGN/UGS3120–. El primer carácter del sufijo del número de pieza determina el rango de temperatura de funcionamiento del dispositivo.

El sufijo ‘E–’ es para el rango de temperatura industrial y automotriz de -40 ° C a + 85 ° C.

Características y beneficios

■ Superior estabilidad a la temperatura para aplicaciones automotrices o industriales
■ Operación de 4,5 V a 24 V. Solo necesita un suministro no regulado
■ Salida de colector abierto de 25 mA. Compatible con lógica digital
■ Protección contra inversión de la alimentación
■ Se activar con imanes permanentes pequeños disponibles comercialmente
■ Confiabilidad por ser de estado sólido
■ Tamaño pequeño
■ Resistente al estrés físico

Diagrama de conexión

No es necesario un Arduino para obtener una lectura de este sensor, ya que se puede conectar un led con un resistor que asegure que no circule más corriente que la que puede manejar el integrado (que es de 25 mA).

El sensor se puede conectar de manera directa con este circuito:

El led se encenderá cuando el sensor sea activado por un campo magnético.

Pero si necesita ingresar la señal a un sistema microcontrolado, conecte la línea de alimentación (centro) a +5 y tierra () a GND. Conecte la señal (S) al pin digital 2 en el Arduino.

Con este circuito el Arduino encenderá el LED incluido en la placa Arduino cuando se detecte un campo magnético.

Código de ejemplo




KY-003 Módulo de Sensor Magnético por efecto Hall: Dibujo de la pieza para el editor Fritzing

Artículos relacionados:

Módulo sensor de temperatura KY-001 (Kit de sensores Keyes 1)
Módulo detector de vibración KY-002 (Kit de sensores Keyes 2)
Módulo de Sensor Magnético por efecto Hall KY-003 (Kit de sensores Keyes 3)
Módulo de llave pulsadora – KY-004 (Kit de sensores Keyes 4)
Módulo sensor de temperatura KY-005 (Kit de sensores Keyes 5)
Módulo de emisor piezoeléctrico pasivo KY-006 (Kit de sensores Keyes 6)

Módulo detector de vibración KY-002 (Kit de sensores Keyes 2)

Descripción:

El módulo KY-002 de Keyes para Arduino permite la detección de impactos y vibraciones.

El módulo detector de vibración KY-002 consta de un resorte y un poste conductor central con una resistencia de 10K conectada a la alimentación positiva. Ante golpes y vibraciones, el resorte reacciona desplazándose de su centro y cerrando el circuito a tierra. Por esto la salida es inversa: un nivel ALTO significa que no hay detección, y un nivel BAJO que sí existe impacto o vibración.

Especificaciones:

  • Voltaje de operación: 3,3V – 5V
  • Dimensiones: 18,5 mm x 15 mm

Conecte la línea de alimentación (pin central) del KY-002 a +5V del Arduino. Conecte el pin de tierra marcado al pin GND del Arduino. Conecte el pin de señal marcado S al pin digital 2 del Arduino.

Diagrama de la placa KY-002:

Módulo Detector de Vibración KY-002: Dibujo de la pieza para el editor Fritzing

Conexión con el Arduino:

Pin S de KY-002 al pin digital 2 del Arduino.
Pin central (línea de alimentación) de KY-002 al +5V de Arduino.
Pin – de KY-002 a GND de Arduino.

Atención: hay módulos en los que la salida S está cambiada por el negativo (GND), y viceversa. No es un gran problema porque las conexiones tienen un leyenda visible en la placa. La literatura original de Keyes muestra ambas configuraciones, de modo que es posible que ellos fabriquen los dos módulos. Este artículo está basado en el módulo que teníamos de modelo para las pruebas. El símbolo de Fritzing (no el de esta imagen —que está corregido—, sino el original que se obtiene en el enlace) indica invertidas la salida S y el GND. Sólo la línea central de alimentación se mantiene en el mismo lugar en ambas configuraciones. Antes de conectar, observe siempre las notaciones grabadas en la plaqueta que usted adquiera, y conecte S al pin 2 del Arduino y el pin marcado con el símbolo a GND del Arduino.

Programa de ejemplo:

El siguiente programa de Arduino genera un parpadeo del led incluido en la placa Arduino cuando se detecta movimiento al golpear o sacudir el módulo KY-002. Se utiliza el pin digital 2 del Arduino como entrada de la señal del sensor.

Artículos relacionados:

Módulo sensor de temperatura KY-001 (Kit de sensores Keyes 1)
Módulo detector de vibración KY-002 (Kit de sensores Keyes 2)
Módulo de Sensor Magnético por efecto Hall KY-003 (Kit de sensores Keyes 3)
Módulo de llave pulsadora – KY-004 (Kit de sensores Keyes 4)
Módulo sensor de temperatura KY-005 (Kit de sensores Keyes 5)
Módulo de emisor piezoeléctrico pasivo KY-006 (Kit de sensores Keyes 6)
Módulo codificador rotativo KY-040 [ó KY-007] – (Kit de sensores Keyes 040/007)