bat-sensor

¿Qué es un sensor ultrasonido?

ultrasonido Los sensores de ultrasonidos son dispositivos que utilizan ondas sonoras de ultrasonidos para saber a qué distancia está un objeto. Su funcionamiento es sencillo. Se emite una onda ultrasonido (utilizando algo parecido a una altavoz, y que se llama emisor), Esa onda se propaga, y al encontrarse un obstáculo rebota. Se utilizan mucho en robots para que detecten los objetos que tienen delante y no choquen contra ellos.

Los sensores ultrasonidos permiten medir la distancia a los objetos que tienen en frente. Como puedes ver el sensor ultrasonido del ZUM Kit tiene dos partes, una es el emisor y la otra el receptor. Por una de ellas se emitirá una onda ultrasonido, que tú no podrás oir, esa onda viajará por el aire, hasta que choque contra algún objeto que tenga delante, entonces rebotará y volverá hasta el robot, y el receptor la escuchará. Como sabemos la velocidad del sonido (343,2 metros/segundo), midiendo el tiempo que tarda la onda en ir y volver sabemos la distancia al obstáculo. Gracias a los sensores ultrasonidos podrías realizar proyectos en los que necesites saber la distancia a los objetos, por ejemplo, tu robot sabrá la distancia a un obtáculo para poder esquivarlo.

Para esta lección necesitarás:

  1. 1 x ZumBloq Zumbador
  2. 1 x ZumBloq Sensor Ultra Sonido
  3. Una placa controladora ZUM BT 328 o compatible con Arduino UNO
  4. Un cable USB

¿Tienes todo? Empecemos, vamos a hacer un sistema de alarma semejante al que usan los coches cuando están aparcando, que te avisan cuando estás muy cerca de otro coche.

Ejercicio 1. Programar la placa controladora para que el zumbador suene a medida que se va acercando a un objeto.

En este ejemplo haremos un programa que haga que el sensor de ultrasonidos actúe de la siguiente forma:
Cuando se acerca a menos de 40 centímetros de un objeto, emite un pitido intermitente. El tiempo de espera entre un pitido y otro dependerá de la distancia (cuanto más cerca está del objeto, con más rapidez alterna los pitidos).

El funcionamiento es el mismo que el de los sensores de los coches, que se suelen utilizar para aparcar. A medida que me voy acercando a otro coche o a una pared, suena un pitido que va aumentando su rapidez.

Vamos a paso a paso:

1) Conectar el zumbador en el pin digital 10 y el sensor de ultrasonidos como se indica en el dibujo. ¡Es muy importante conectar bien los cables! El Echo y el Trigger pin, que en el sensor se llaman ECH (cable rojo) y TRI (cable azul) deben ir conectados a un pin de señal (en tu bq ZUM BT-328 son de color amarillo), mientras que los otros dos cables se conectan de la siguiente forma:

  • Cable negro en cualquier pin negro
  • Cable naranja en cualquier pin rojo

ZUM-ULTRASNIC-6

El pin de Trigger es aquél que le ordena al sensor ultrasonido que lance la onda. El pin Echo se activa cuando la onda está de vuelta. Por lo tanto, la distancia en metros será el tiempo que pasa desde que activamos el pin Trigger y la recepción de la onda en el pin Echo dividida por 343 y dividido por 2(ya que la velocidad del sonido es 343 metros/segundo y es ida y vuelta -> distancia = tiempo / 343 * 1/2)

2) Hacemos el código en bitbloq. Como podemos observar, en el bloque del sensor de ultrasonidos únicamente deberemos indicar en qué pines hemos conectado el ECHO (ECH) y el TRIGGER (TRI).

ultrasonido_bitbloq

Prueba a programarlo en bitbloq y verás que funciona como se espera.

¿Te atreves a modificar tú mismo el programa para que haga lo siguiente?

  • Cuando se acerca a menos de 10 centímetros de un objeto, emite un pitido durante 500 milisegundos (como está a punto de chocar contra un obstáculo, el pitido dura bastante)..
  • Cuando se acerca a menos de 40 centímetros de un objeto, emite un pitido intermitente. El tiempo de espera entre un pitido y otro dependerá de la distancia (cuanto más cerca está del objeto, con más rapidez alterna los pitidos).

12 comentarios

  1. Holaaaa!!

    Sabes si el sensor reconocería el agua como objeto??

    Si es así me puede ser muy útil para un proyecto que tengo en la cabeza :)

    Graciasss!!

  2. Alberto Valero

    Acabamos de probarlo con un vaso de agua y detecta la superficie sin problemas. Ya nos contarás cómo va tu invento.

  3. Es semejante a encontrar una fuga de agua por una tubería ??

  4. Hola!

    Creo que la frase:

    “Por lo tanto, la distancia en metros será el tiempo que pasa desde que activamos el pin Trigger y la recepción de la onda en el pin Echo dividida por 343 y dividido por 2(ya que la velocidad del sonido es 343 metros/segundo y es ida y vuelta) ”

    Es incorrecta, ya que si la velocidad del sonido es de 343 m recorridos cada segundo. Para obtener la distancia del objeto al sensor será 343m/s multiplicado por la mitad del tiempo (t/2) en segundos desde que la onda sale de trigger hasta que llega a echo. ¡¡¡Pero no tenemos que dividir la velocidad por 343!!

    Saludos,

    Jordi Bardají

    1. Alberto Valero

      Tienes razón Jordi… lo cambio ahora mismo.

  5. Hola, he pedido varios BAT ultrasonidos para ampliar los ” mi primer kit de robótica” que tenemos y despues de varias horas probando y probando nos se si es por algun tipo de problema nuestro, pero el sensor de ultrasonidos solo funciona con el selector de voltage de la placa a 5v. No se si debe ser así, porque no he encontrado nada al respecto, a veces soy un poco impaciente en las busquedas, o ¿debería funcionar a 3,5v?

    1. Alberto

      Hola,

      El US debería funcionar a 5V. El comportamiento que describes es anómalo, ¿sucede igual con todos los US que tienes? ¿Podrías mandarnos una foto de como lo tienes conectado por si hubiera algún error?

      Gracias, esperamos poder ayudarte.

  6. Hola.

    Estoy intentando probar el ultrasonidos y no me funciona, el zumbador va bien pero cuando cargo el programa no hace nada.

    Probé a poner la condición a > 40 y si emite un pitido intermintente con tiempo de espera largo.

    No se si el problema es el cono de lectura, tengo el US encima de la mesa mirando al techo o hacia delante y le pongo una revista enfrente acercándola poco a poco, pero no hace lo que dices debe hacer.

    ¿Qué podría hacer para comprobar el funcionamiento?

    Gracias, saludos.

    1. Alberto Valero

      Hola Juan Carlos,

      ¿puedes mandarnos el código que estás usando y a qué pin has conectado cada pin del ultra-sonido? En caso de que hayas realizado la conexión incorrecta, puede darse el caso de que se haya quemado.

      Alberto.

  7. Hola Alberto.
    Las conexiones las he revisado y están bien, me sorprende lo que pasa porque cuando en vez de poner 40, al pasar la mano por delante del sensor hace un pitido. Lo que desconozco es el tamaño que deben tener los objetos, el ángulo de apertura, tal vez si lo pruebo con el robot montado funcione.
    El código es este:
    /*** Global variables ***/
    /*** Function declaration ***/
    //bqBAT
    long TP_init(int trigger_pin, int echo_pin);
    long Distance(int trigger_pin, int echo_pin);

    void setup()
    {
    pinMode( 2 , INPUT );
    pinMode( 3 , OUTPUT );
    }

    void loop()
    {
    int distancia=Distance(3,2);
    if (distancia < 40) {
    tone(10,261,100);
    delay(100);
    delay(distancia * 10);
    }

    }

    /*** Function definition ***/
    //bqBAT
    long TP_init(int trigger_pin, int echo_pin)
    {
    digitalWrite(trigger_pin, LOW);
    delayMicroseconds(2);
    digitalWrite(trigger_pin, HIGH);
    delayMicroseconds(10);
    digitalWrite(trigger_pin, LOW);
    long microseconds = pulseIn(echo_pin ,HIGH);
    return microseconds;
    }
    long Distance(int trigger_pin, int echo_pin)
    {
    long microseconds = TP_init(trigger_pin, echo_pin);
    long distance;
    distance = microseconds/29/2;
    if (distance == 0){
    distance = 999;
    }
    return distance;
    }

    1. Hola de nuevo

      Cuando cambio lo que hace es emitir un pequeño zumbido cada cierto tiempo, pero no tengo claro que el sensor funcione, la pregunta es como comprobar si funciona o no antes de sustituirlo.

      GRacias

      1. Alberto Valero

        En principio tu codigo es correcto, ¿qué placa utilizas? Si es la Freaduino asegúrate que el interruptor esté en on. Por otro lado ten en cuenta que la medida son mm. En teoría detecta a partir de 2-3 cm. En ángulo de visión es de 30º.

        Si con esto no consigues hacerla funcionar escribe a soporte3d@bq.com para que puedan cambiártela.

Los comentarios están cerrados.