Referencia de programa: 05A, 05B
Arduino IDE 1.0.6 y ArduBlock 20130607 en MAX 6.5 (MAdrid_linuX)
Aviso. Mostramos algún ejemplo con los sensores infrarrojos en los pines analógicos, aunque lo más recomendable es usar los pines digitales, ya que el objetivo es detectar negro.
Usaremos dos sensores infrarrojos con receptor y emisor o, en el caso de mBot, un módulo siguelíneas (que en realidad incluye dos sensores infrarrojos ligeramente separados).
Este tipo de sensores, se utilizan para detectar blanco y negro o claro y oscuro.
- Infrarrojos en pines digitales:
Prepara el montaje:
- Placa Arduino.
- Siguelíneas con infrarrojos IR (emisor y receptor):
Pin "digital" 4 o pin analógico 4 (según ejemplo elegido) - Infrarrojo derecho.
Pin "digital" 5 o pin analógico 5 (según ejemplo elegido) - Infrarrojo izquierdo.
Pin digital 9 - Servomotor derecho (parte plana hacia delante).
Pin digital 10 - Servomotor izquierdo (parte plana hacia adelante). - Tablero: superficie blanca con línea negra (no pegada al borde para así facilitar giros).
Ten en cuenta:
- Para obtener los mejores resultados, es mejor que la línea a seguir sea negra sobre fondo blanco.
- En este caso, orienta ambos servomotores de tal forma que los cables que salen miren hacia la parte delantera del robot.
- En las placas con hileras de tres pines conecta los cables empezando normalmente por "ground". Cuidado. En algunas placas los pines están invertidos.
- Comprueba si tus servomotores están bien calibrados.
- Comprueba que los módulos infrarrojos se encuentran a una altura adecuada.
- Datos de sensores infrarrojos:
Situados a una altura de unos 2, 3 ó 4 cm y rectos, pero puede ser otra en función de las características técnicas del módulo IR.
Con líneas negras estrechas, deben estar muy pegados unos a otros. Prueba con anchos de línea y distancias entre infrarrojos mayores o menores para comprobar estos efectos. - No todos los sensores utilizan el mismo rango de valores, incluso algunos aparecen invertidos:
Con medidas analógicas y según sensores y condiciones de iluminación, valor aproximado de negro: 150 o, si es al contrario, 800.
Con medidas analógicas y según sensores y condiciones de iluminación, valor aproximado de blanco: 800 o, si es al contrario, 150.
- Cuidado. La escasa iluminación y, según como esté diseñado, las sombras que pueda proyectar el propio siguelíneas podrían influir en el funcionamiento.
- También influye la inclinación de los sensores infrarrojos en el montaje o que las líneas tengan un reborde discontinuo o no.
- En algunos casos por defecto o fallo, el robot podría salirse completamente de la línea; la programación del final haría que volviera a la línea. Se puede cambiar para que gire en uno sentido diferente intercambiando el servo que se mueve y el que se para, ya que ello afectará a que siga en la misma dirección o cambie de dirección.
Programa:
- Crea el programa que se muestra en la imagen.
Prueba:
- Pulsa en "Cargar a Arduino".
- Observa los cambios y describe lo que ha ocurrido.
- ¿Qué función tienen las variables "IRderecho" e "IRizquierdo"?
- Localiza el resto de variables e indica su función.
- ¿Influye la posición del servo?
- Cambia el nombre de las variables.
- Cambia los valores y los operadores.
- Cambia los pines.
- Describe lo que ha ocurrido tras los cambios.
- Describe lo que crees que hace cada bloque paso a paso.
- Describe 3 posibles usos de este montaje en la vida real.
Investiga:
- Investiga nuevas posibilidades cambiando valores y bloques.
Montaje 1:
Similar al anterior de Ardublock pero con infrarrojos en pines digitales 4 y 5. El valor 0 corresponde a negro y el valor 1 a blanco.
Pin digital 9: servomotor continuo derecho (saliendo los cables hacia delante).
Pin digital 10: servomotor continuo izquierdo (saliendo los cables hacia delante).
Pin digital 4: sensor infrarrojos derecho.
Pin digital 5: sensor infrarrojos izquierdo.
Para comprobar el sentido de giro horario o antihorario de un servo, suele hacerse observándolo desde abajo del mismo.
Programa:
Montaje 2:
Pin digital 9: servomotor continuo izquierdo (saliendo los cables hacia delante).
Pin digital 10: servomotor continuo derecho (saliendo los cables hacia delante).
Pin digital 4: sensor infrarrojos izquierdo.
Pin digital 5: sensor infrarrojos derecho.
mBlock con mBot (mCore) en MAX 9.0 (MAdrid_linuX) 64 bits ("solo" autónomo)
En este ejemplo simple, ofrecemos dos posibilidades: