lunes, 15 de mayo de 2017

PROGRAMACIÓN EN ARDUINO PARA ROBOT ESQUIVA OBSTÁCULOS BÁSICO

El objetivo de este reto será que nuestro robot sea capaz de avanzar por un espacio esquivando los obstáculos que encuentre en su camino. Para la medida de las distancias a los obstáculos se utilizará el sensor de ultrasonidos.


Las condiciones que se han de cumplir para realizar nuestro reto serán las siguientes:
  • El sensor de ultrasonidos irá anclado al miniservo  (ángulo de giro entre 0º y 180º).
  • El robot avanzará mientras los obstáculos frontales se encuentren a más de 30 cm. Cuando los detecte a esa distancia, se detendrá y emitirá algún aviso (con el zumbador y los leds).
  • El robot deberá mirar a ambos lados (izquierda y derecha), y tomará las medidas necesarias para elegir cuál será la trayectoria más adecuada para continuar la marcha. 
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://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. El algoritmo de programación se puede ver en el siguiente diagrama de flujo:


Nosotros vamos a programar, como siempre, las funciones para los movimientos de nuestro robot (avanzar, girar derecha, girar izquierda, retroceder y parar),  y también las funciones para poder explorar el entorno con el sensor de ultrasonidos y para emitir una señal de aviso, en el caso de que se encuentre un obstáculo frontalmente a la distancia límite establecida (30 cm). Así, en nuestro caso tenemos que programar en arduino las siguientes funciones:




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

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án 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.
 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/).




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 se puede ver en el siguiente VÍDEO TUTORIAL.

https://youtu.be/7AdNm-RZH6c


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.

 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/).





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 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.

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.

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