domingo, 16 de abril de 2017

PROGRAMACIÓN EN ARDUINO PARA CALCULAR DISTANCIAS A OBJETOS CON EL SENSOR DE ULTRASONIDOS

El objetivo de este reto será que nuestro robot indique de manera automática cuál es la menor distancia de las obtenidas a tres objetos diferentes (d1, d2, d3). (También se podía plantear obtener la mayor o la intermedia). Para la medida de las distancias a los objetos se utilizará el sensor de ultrasonidos.

Las condiciones que se han de cumplir para realizar nuestro reto será las siguientes:
  • El sensor de ultrasonidos irá anclado al miniservo (ángulo de giro entre 0º y 180º).
  • Las órdenes para mover el miniservo se darán desde un dispositivo inalámbrico (teléfono móvil o tablet), y serán de tres tipos:
                            ORDEN A - Girar 10 º el sensor de ultrasonidos a la derecha.
                            ORDEN B - Girar 10 º el sensor de ultrasonidos a la izquierda.
                            ORDEN C - Hacer que el sensor mida la distancia a un objeto.
  • Se debe establecer una señal de aviso de “tope” para evitar que el miniservo supere sus límites de giro, es decir, para que el ángulo no supere 180º ni sea menor que 0º. Si se superan los límites, deberá detenerse y se emitirá un sonido o luz para indicar esta situación.
  • Se deben realizar medidas de distancia a tres objetos diferentes, y una vez realizada esta acción, el sensor de ultrasonidos deberá apuntar automáticamente al objeto más próximo, emitiendo también algún tipo de señal al mismo tiempo. En el caso de que existan medidas iguales, se apuntará al último objeto con la misma medida.
video
 Vídeo demo
     
El sensor de ultrasonidos está formado por un emisor (trigger) y un receptor (echo). El emisor lanza un ultrasonido (o pulso) de una duración de al menos10 microsegundos y espera a que dicha señal rebote y sea captada por el receptor. Si medimos el tiempo transcurrido desde que se envió la señal y se recibió en el receptor, y conociendo la velocidad del sonido (343 m/s), la distancia al objeto la podemos calcular con la fórmula:
Distancia = (Velocidad * Tiempo)/2

Es importante tener en cuenta que el tiempo medido por el sensor es lo que ha tardado la señal en ir y volver, y por eso aparece en la fórmula anterior la división por 2.


Para profundizar sobre el funcionamiento del sensor de ultrasonidos se puede acudir a:

http://robotstyles.blogspot.com.es/2014/09/ultrasonidos-que-nada-te-impida-avanzar.html
http://diwo.bq.com/programando-el-sensor-ultrasonido-en-bitbloq/

Para la realización de este reto como hardware se utilizará el kit ZUM de BQ, y como software el IDE de arduino. Además necesitamos un software para nuestro móvil o tablet, que nos permita mandar las órdenes para manejar nuestra plataforma robótica por bluetooth. Esta aplicación puede ser diseñada por nosotros, o bien podemos utilizar una aplicación que ya exista, adaptándola a nuestras necesidades.

Optaremos por esta segunda opción, y para ello utilizaremos la aplicación Robopad++, que es una aplicación para controlar mediante bluetooth los PrintBots de BQ (Renacuajo, Beetle y Evolution) desde un dispositivo Android, de un modo sencillo y divertido (http://diwo.bq.com/robopad-3/).




En nuestro reto, con esta aplicación nosotros vamos a controlar los movimientos de nuestro robot (avanzar, girar derecha, girar izquierda, retroceder y parar),  y también el giro del miniservo donde se encuentra anclado el sensor de ultrasonidos (girar derecha, girar izquierda y tomar medida de la distancia al objeto). Así, en nuestro caso tenemos que programar en arduino el siguiente algoritmo:


En el programa de arduino, tenemos que conectar y configurar la opción de "bluetooth" en nuestra placa controladora (placa ZUM), y utilizaremos la instrucción de control "switch" para seleccionar nuestras distintas opciones en el programa principal (loop). Sobre esta instrucción de control podemos encontrar más información en el siguiente enlace:

Todo el proceso de construcción y programación en arduino de este reto se puede ver en el siguiente VÍDEO TUTORIAL. (EN ELABORACIÒN)

jueves, 30 de marzo de 2017

PROGRAMACIÓN EN ARDUINO PARA CONTROL DE UN ROBOT POR BLUETOOTH

El objetivo de este reto será poder actuar sobre nuestro robot a distancia mediante “bluetooth”, utilizando para ello un dispositivo móvil como puede ser un teléfono o una Tablet.

video
 Vídeo demo


Las órdenes enviadas pueden ser de dos tipos:
  • Acciones concretas y directas, como por ejemplo, girar a la derecha.
  • Instrucciones más generales, como por ejemplo, avanzar hasta encontrar un obstáculo y luego realizar una tarea de limpieza.

Para la realización de este reto como hardware se utilizará el kit ZUM de BQ, y como software el IDE de arduino. Además necesitamos un software para nuestro móvil o tablet, que nos permita mandar las órdenes para manejar nuestra plataforma robótica por bluetooth. Esta aplicación puede ser diseñada por nosotros, o bien podemos utilizar una aplicación que ya exista, adaptándola a nuestras necesidades.

Optaremos por esta segunda opción, y para ello utilizaremos la aplicación Robopad++, que es una aplicación para controlar mediante bluetooth los PrintBots de BQ (Renacuajo, Beetle y Evolution) desde un dispositivo Android, de un modo sencillo y divertido (http://diwo.bq.com/robopad-3/).





En nuestro reto, con esta aplicación nosotros vamos a controlar los movimientos de nuestro robot (avanzar, girar derecha, girar izquierda, retroceder y parar), pero podríamos intentar controlar otras acciones (otros actuadores) según las especificaciones de nuestro reto o proyecto. Así, en nuestro caso tenemos que programar en arduino el siguiente algoritmo:



En el programa de arduino, tenemos que conectar y configurar la opción de "bluetooth" en nuestra placa controladora (placa ZUM), y utilizaremos la instrucción de control "switch" para seleccionar nuestras distintas opciones en el programa principal (loop), sobre la que podemos encontrar más información en el siguiente enlace:

Todo el proceso de construcción y programación en arduino de este reto se puede ver en el siguiente VÍDEO TUTORIAL.

https://youtu.be/8ALbFs5JeWc







jueves, 23 de febrero de 2017

PROGRAMACIÓN EN ARDUINO DE ROBOT SIGUELUZ

El objetivo de nuestro robot sigueluz es moverse en función de la dirección por donde reciba la luz, que deberá superar un mínimo de intensidad. Como hardware se utilizará el kit ZUM de BQ, y como software el IDE de arduino.

video
Vídeo demo

Para la realización de nuestro robot, los dos componentes principales serán dos sensores de luz (LDR) que serán los que, en función de la luz que reciban, condicionarán los movimientos del robot.

Además, contamos con dos servos de rotación continua como actuadores, conectados a la rueda  izquierda y a la rueda derecha, que nos permiten guiar el robot según la información recibida por los sensores de luz.

Si analizamos la situación, vemos que según la intensidad de la luz recibida por los dos sensores LDR nos encontraremos con cuatro estados diferentes:

•Los dos sensores no reciben una intensidad superior al mínimo establecido Los dos servos se paran.
•El sensor derecho recibe luz suficiente, pero el izquierdo no Se para el servo derecho y gira el izquierdo para poder girar a la derecha.
•El sensor derecho no recibe luz suficiente, pero el izquierdo sí Gira el servo derecho y se detiene el izquierdo para poder girar a la izquierda.
•Los dos sensores reciben una intensidad superior al mínimo establecido Los dos servos giran avanzando.

Además, otras mejoras con respecto a la programación de un robot sigueluz básico serán:

•  Colocación de dos leds, uno en la izquierda y otro en la derecha. Estos leds se iluminarán siempre que se gire para el lado correspondiente, y en el caso de que el robot avance recto permanecerán iluminados los dos.
•  Cuando el robot se detenga los dos leds parpadearán, como sistema de señalización.


Para la realización de la estructura robótica donde se colocarán todos los componentes electrónicos se puede ver el siguiente manual en el siguiente enlace:

https://drive.google.com/file/d/0BwZcNQ8N6TusdVFEUlhVWFpZREE/view?usp=sharing


Todo el proceso de construcción y programación en arduino del robot sigueluz se puede ver en el siguiente VÍDEO TUTORIAL.



Vídeo tutorial programación de un robot sigueluz con arduino



lunes, 6 de febrero de 2017

PROGRAMACIÓN EN ARDUINO DE ROBOT SIGUELÍNEAS



El objetivo de nuestro robot siguelíneas es mantenerse dentro de una línea negra. Como hardware se utilizará el kit ZUM de BQ, y como software el IDE de arduino.

video
Vídeo demo

Para la realización de nuestro robot, los dos componentes principales serán dos sensores IR (infrarrojos) capaces de distinguir entre el color negro y otro color que no sea el negro, lo que nos permitirá saber si nuestro robot está, no está o se está saliendo de una línea negra.

Además, contamos con dos servos de rotación continua como actuadores, conectados a la rueda  izquierda y a la rueda derecha, que nos permiten guiar el robot según la información recibida por los sensores IR.

Si analizamos la situación, vemos que al avanzar por una línea negra, los dos sensores IR van a poder encontrarse con cuatro situaciones diferentes:
  • Los dos sensores detectan blanco Los dos servos se paran.
  • El sensor derecho detecta negro y el izquierdo blanco (se sale por la izquierda) Se para el servo derecho y gira el izquierdo.
  • El sensor derecho detecta negro y el izquierdo blanco (se sale por la izquierda) Se para el servo derecho y gira el izquierdo.
  • Los dos sensores detectan negro Los dos servos giran avanzando.

Además, otras mejoras con respecto a la programación de un robot siguelíneas básico serán:
  •   Colocación de dos leds, uno en la izquierda y otro en la derecha. Estos leds se iluminarán siempre que se gire para el lado correspondiente, y en el caso de que el robot avance recto permanecerán iluminados los dos.
  •   Cuando el robot se detenga se emitirá un sonido similar al de una “sirena de policía”, y los dos leds parpadearán.
Para la realización de la estructura donde se colocarán todos los componentes electrónicos se puede ver el siguiente manual en el siguiente enlace:


Todo el proceso de construcción y programación en arduino del robot siguelíneas se puede ver en el siguiente VÍDEO TUTORIAL.



Vídeo tutorial programación de un robot siguelíneas con arduino