Hardware - aigora/twA109_1920-autopark GitHub Wiki

HARDWARE - Fundamentos Técnicos

Sensor Ultrasonido HC-SR04

Un sensor de ultrasonidos lo podemos utilizar para medir distancias y detectar obstáculos. Dispone de un transmisor que emite ondas sonoras de alta frecuencia no audible por el ser humano, y el receptor las recibe cuando las ondas rebotan en un objeto. Midiendo el tiempo entre pulsos y conociendo la velocidad del sonido podemos estimar la distancia del objeto contra cuya superficie impactó el impulso de ultrasonidos.

En la imagen de arriba el transmisor HC-SR04 esta en la izquierda mientras el receptor esta en la derecha, dispone de 4 pines, dos pines para la alimentación, un pin para indicar cuando quieres que emita el pulso de sonido (Trig), y otro pin que se utiliza para enviar la señal de la recepción del sonido.

Los sensores de ultrasonidos son sensores baratos, y sencillos de usar. El rango de medición teórico del sensor HC-SR04 es de 2cm a 400 cm, con una resolución de 0.3cm. En la práctica, sin embargo, el rango de medición real es mucho más limitado, en torno a 20cm a 2 metros.

Los sensores de ultrasonidos son sensores de baja precisión. La orientación de la superficie a medir puede provocar que la onda se refleje, falseando la medición. Además, no resultan adecuados en entornos con gran número de objetos, dado que el sonido rebota en las superficies generando ecos y falsas mediciones. Tampoco son apropiados para el funcionamiento en el exterior y al aire libre.

El sensor se basa simplemente en medir el tiempo entre el envío y la recepción de un pulso sonoro. Sabemos que la velocidad del sonido es 343 m/s en condiciones de temperatura 20 ºC, 50% de humedad, presión atmosférica a nivel del mar. Transformando unidades resulta

Es decir, el sonido tarda 29,2 microsegundos en recorrer un centímetro. Por tanto, podemos obtener la distancia a partir del tiempo entre la emisión y recepción del pulso mediante la siguiente ecuación.

Cuando el sensor detecta esta señal desde la membrana "T" emite un onda sonora, esta onda sonora esta compuesta de 8 pulsos de 5 voltios y 40 Herzios cada uno de ellos. Estos 8 pulsos son emitidos desde la membrana del transmisor, rebotados (o no) en el medio físico a detectar y recogidos por la membrana del receptor "R".

Cuando el sensor detecta los 8 pulsos calcula el tiempo que ha tardado desde que las ondas han salido del emisor hasta que las ha recibido el receptor. Una vez sabe el tiempo que ha tardado, desde el pin Echo emitirá una señal de 5 voltios con un ancho proporcional al tiempo calculado.

(Fuentes: https://www.luisllamas.es/medir-distancia-con-arduino-y-sensor-de-ultrasonidos-hc-sr04/ , https://www.infootec.net/sensor-ultrasonidos-hc-sr04/ )

Sensor de Velocidad por Infrarrojos LM393

Un sensor de velocidad es un tipo de tacómetro que se usa para medir la velocidad de un objeto giratorio como un motor.

A continuación se enseña el esquema básico de la conexión de los 4 encoders FC-03 (Módulo sensor de velocidad de infrarrojos) al Arduino MEGA para un robot 4x4. Este esquema no se puede implementar en el Arduino UNO ya que solo tiene 2 pines con interrupciones. El Arduino MEGA tiene 6 pines con interrupciones, que son ; 2, 3, 18, 19, 20 y 21.
En la siguiente imagen se puede ver el diagrama con cuatro sensores, uno por rueda, pero nosotros utilizaremos uno, dado que todos los motores queremos que giren a la misma velocidad.

La rueda del codificador (rueda con agujeros como se muestra en la imagen) se fija al optointerruptor y se coloca en la ranura del sensor. Como la rueda está fijada al motor, una rotación del motor implica una rotación de la rueda.

Al llegar al sensor, el LED infrarrojo y el transistor NPN se colocan directamente uno frente al otro. Cuando no hay ningún objeto en la ranura, la luz del LED infrarrojo siempre cae sobre el transistor.

Ahora, como he mencionado, la rueda tiene 20 agujeros, por lo que cada vez que la rueda gira una vez, la luz infrarroja del LED IR se obstruye por 20 veces para que no caiga en el transistor de fotos.

El funcionamiento básico de este sensor es el siguiente: Si se pasa algo entre la ranura del sensor, crea un pulso digital en el pin D0. Este pulso va de 0V a 5V y es una señal digital TTL. Entonces con Arduino podemos leer este pulso.

En el siguiente "sketch" de Arduino se soluciona el problema de los rebotes en los pulsos digitales del encoder. Con la función "counter" del "sketch". Esta función se activa por medio de una interrupción en el pin 2 de Arduino, cuando se detecta la rampa de subida del pulso. Para no contar los rebotes la función primero lee la rampa de subida, luego comprueba que ha pasado unos 500 micro-segundos desde la última lectura de un pulso y luego vuelve a leer la señal del pin 2 para verificar que aún se esta leyendo el pulso entrante. Si todo esto se cumple se cuenta el pulso como bueno. De esta manera evitamos leer los rebotes que se generan al inicio del pulso y al final. Esta solución es correcta si no queremos poner un condensador. Pero estamos enviando a Arduino señales buenas y señales malas. lo que provoca más interrupciones de las realmente necesarias.

(Fuente: http://androminarobot.blogspot.com/2016/07/en-este-tutorial-mostramos-como-usar-el.html , https://www.electronicshub.org/interfacing-lm393-speed-sensor-with-arduino/ )

Arduino Mega

El Arduino Mega 2560 es una placa microcontroladora basada en el ATmega2560 . Tiene 54 pines de entrada/salida digital (de los cuales 15 pueden ser usados como salidas PWM), 16 entradas analógicas, 4 UARTs (puertos seriales de hardware), un oscilador de cristal de 16 MHz, una conexión USB, un conector de alimentación, un cabezal ICSP y un botón de reinicio. Contiene todo lo necesario para soportar el microcontrolador; simplemente hay que conectarlo a un ordenador con un cable USB o alimentarlo con un adaptador de CA a CC o una batería. El Mega es compatible con la mayoría de las marcas diseñadas para el Arduino Duemilanove o Diecimila.

L263 Motor Control Shield

L293D es un conductor monolítico integrado, de alto voltaje y alta corriente, de 4 canales. Básicamente esto significa que usando este chip se pueden impulsar motores de corriente continua con fuente de alimentación de hasta 36 voltios, y el chip puede suministrar una corriente máxima de 600mA por canal. El chip L293D también se conoce como un tipo de H-Bridge. El H-Bridge es típicamente un circuito eléctrico que permite aplicar un voltaje a través de una carga en cualquier dirección a una salida, por ejemplo, un motor.
En nuestro caso se encargará de controlar los cuatro motores de corriente continua.