Repository navigation
VIDEO 16: Sensores de Infrarrojos (IR)

Haz click en la imagen para ver el vĂdeo en Youtube
Los sensores de infrarrojos nos permiten detectar objetos a corta distancia. Aprenderemos a manejarlos y los usaremos para dotar al robot icebot de su primer comportamiento reactivo
Hemos liberado hace muy poco Icestudio 0.3.2. La que estábamos usando antes era la 0.3.2-Beta. Por favor, actualizarse a esa versión. La colección empleada en este tutorial está hecha con esta versión, y en las anteriores no se verá correctamente
Academia-Jedi-HW-16.zip: ColecciĂłn para este tutorial. Descargar e instalar
- IntroducciĂłn
- Sensores IR
- Modelos de sensores
- Practicando con el sensor octopus IR
- Comportamientos reactivos con el Icebot
- Ejercicios propuestos (25 Bitpoints)
- Ejercicios entregados
- Autor
- Licencia
- Enlaces
- Preguntas frecuentes
En este tutorial practicaremos con un sensor nuevo: el sensor de IR digital, de corto alcance, que nos permitirá detectar objetos a corta distncia, asà como distinguir el color negro del blanco en una superficie plana. Asà es como nos queda el mapa de periféricos que hemos tratado hasta ahora

Los sensores de infrarrojos (IR) que usaremos nos permiten detectar la presencia de un objeto que está delante de ellos, a un centĂmetro aproximadamente. Constan de un emisor y un receptor

El emisor es un LED infrarrojo. Es un LED de los que ya conocemos, pero en vez de emitir luz visible, la emite en el espectro infrarrojo, que no nuestros ojos no pueden ver. El emisor está constantemente emitiendo, cuando el sensor está alimentado. Esto lo podemos observar mirando el sensor a través de la cámara de nuestro teléfono móvil: se puede a preciar un color azulado/violeta:

El receptor es un fototransistor, que se activa cuando recibe luz infrarroja. La detección de objetos se hace por reflexión. La luz infrarroja que está constantemente generando el emisor se refleja en el objeto y llega al receptor, que nos devuelve un 1 (objeto detectado). Si por el contrario no hay objeto, la luz infrarroja se pierde y no regresa al receptor. En este caso el sensor nos devuelve un 0 (Objeto no detectado)

Estos sensores también se pueden utilizar para distinguir el blanco del negro en una superficie plana, y construir asà robots que puedan por ejemplo seguir un camino negro. Cuando el sensor está sobre blanco, la luz del emisor se refleja completamente, devolviéndo un 1. Cuando esta sobre la parte negra, no hay reflexión. El negro absorbe la luz, y no la refleja, por lo que no llega nada al receptor y devuelve un 0

Los sensores de IR que utilizaremos en este tutorial son digitales. Devuelven 0 Ăł 1 dependiendo de si detectan el objeto o no. Cualquier de estos valdrĂa: (y si buscas por internet encontrarás todavĂa más)
| Foto | Nombre | DescripciĂłn |
|---|---|---|
![]() |
Octopus Hunt sensor | Este es el modelo que estoy usando en el tutorial. Está fabricado por Elecfreaks. Es el que se encuentra en los kits de robótica de BQ |
![]() |
MĂłdulo sigue lĂneas mblock | Es el sensor del kit del robot mbot. Incluye 2 sensores IR en la misma placa. Hay que soldarle pines para conectar a la Icezum Alhambra |
![]() |
TCRT5000-ir | Compatible con la Icezum Alhambra. Permite también lectura analógica. Distribuido por Iberobotics |
![]() |
TCRT5000-IR-estrecho | Modelo estrecho. Compatible con Icezum Alhambra. Distribuido por Iberobotics |
![]() |
Sensor QTR-8RC | Tira de 8 sensores IR. Se puede partir en dos grupos de 2 y 6 sensores. Hay que soldarle los pines. Distribuido por BricoGeek |
![]() |
Sensores IR del kit Beduino | Kit distribuido por Logix5 |
El sensor que usaremos para las pruebas es el Octopus IR
La conexión del sensor a la placa Icezum Alhambra se hace igual que los sensores que hemos visto hasta ahora: mediante un cable de tres hilos (señal, 5v y masa)

Por un lado se conecta al sensor, y por el otro a cualquiera de los pines de datos con alimentación de la placa (D0 - D13). En esta foto está conectado a D13:

¡Y ya está listo! Ahora funciona exactmente igual que un pulsador externo
Vamos a probar el sensor. El circuito más sencillo posible que nos permite probarlo es el mismo que en el caso del pulsador: un cable que vaya directo desde el sensor IR a un LED externo. De esta forma, cuando el sensor detecte un objeto, devolverá un 1 que hará que se encienda en LED. Cuando no detecta objeto, devolverá 0 y el LED estará apagado
El montaje es el mostrado en la siguiente foto. El sensor está conectado a la entrada D13, y el LED a la salida D12

El circuito en Icestudio es el siguiente. Está accesible también desde la colección Academia-Jedi-HW-16.zip, en el menú Archivo/Ejemplos/1-Ejemplos/1-Senosr-IR-LED

Lo cargamos en la placa para probar. Al pasar un objeto, a una distancia de 1 cm aproximadamete, vemos que se enciende el LED

Ampliamos el montaje anterior añadiendo un zumbador conectado a la salida D11

Haremos que pite al detectar un objeto, además de encenderse el LED. El circuito en Icestudio ya lo sabemos hacer. SerĂa asĂ:

Se ha añadido un corazón de 2Khz, para emitir un pitido a esa frecuencia. Va modulado por la señal procedente del sensir IR. Cuando no hay objeto, por el sensor llega un 0 que deshabilita la señal de 2Khz, por lo que al zumbador sólo le entra una señal con todo ceros, y no suena. Al detectarse un objeto, la señal de corazón llega al zumbador y pita
Cargamos el circuito y lo probamos. Funcionará igual que en el ejemplo 1, pero ahora además sonará un pitido que se mantendrá mientras tengamos el objeto delante del sensor
En este VĂdeo de youtube se puede ver un ejemplo de funcionamiento
Este ejemplo es muy sencillo, pero muy divertido. Suena como los escáneres que hay en las cajas de los supermercados. De hecho, cuando mi hija Alicia de 8 años vió este ejemplo por primera vez, exclamó: "¡Papi! Vamos a jugar a los supermercados" :-)
La cosa se pone más divertida si al montaje anterior, usando el mismo circuito, añadimos un spinner de tal forma que sus brazos pasen por encima del sensor IR

Ahora si le damos vueltas al spinner, se escucharán pitidos continuamente, cada vez que los brazos atraviesan el sensor IR
En este vĂdeo de youtube se puede ver en acciĂłn:
Este tipo de sensores son muy Ăştiles para detectar el color negro sobre el blanco en superficies planas. Y asĂ podemos crear robots rastreadores, capaces de seguir una lĂnea negra
Como ejemplo haremos un circuito que encienda un LED y emita un pitido cuando se detecta el color Negro. Es igual que el circuito del ejemplo 3, pero añadimos una puerta NOT. Antes pitaba cuando el sensor estaba a 1 (objeto detectado). Esto es equivalente a detectar el color blanco. Ahora queremos lo contrario: que pite cuando no hay objeto, es decir, cuando no hay señal reflejada. Esto es lo que el negro consigue. Por eso añadimos la puerta NOT

El montaje es similar al del ejemplo anterior. Ahora colocamos una hoja blanca con un trozo de cinta aislante negra, para que haya zonas negras y blancas. Cambiamos la orientaciĂłn del sensor para que apunte a la hoja

Cargamos el circuito y probamos. En este vĂdeo en youtube se puede ver su funcionamiento
Los robots móviles más sencillos son los robots reactivos. Construiremos nuestro primer robot reactivo con el Icebot, y haremos una serie de experimentos para entender bien los comportamientos reactivos
Los robots reactivos son aquellos que reaccionan ante un estĂmulo, sin conocimiento del entorno. Hay unos estĂmulos de entrada, que provocan una respuesta inmediata en el robot
El esquema de un robot reactivo es el mostrado en el siguiente digrama:

El robot está formado por tres elementos:
- Sensores: Captan los estĂmulos del entorno y los entregan a la unidad que realiza su procesamiento
- Circuito de procesamiento: Es el que lee la informaciĂłn de los sensores y genera unas respuestas de salida para controlar los actuadores y generar la respuesta del robot. Es la parte que define el comportamiento del robot. Nosotros usaremos circuitos digitales en la FPGA
- Actuadores: Son los que realizan una acciĂłn sobre el entorno, y permiten al robot dar una respuesta
El comportamiento que emerge del robot, siguiendo este esquema se llama comportamiento reactivo
Para convertir el Icebot en un robot reactivo sólo tenemos que añadirle los sensores IR. Se los colocaremos en la parte frontal, sujetos por una goma. El sensor derecho lo conectaremos a D12 y el izquierdo a D13

El esquema de nuestro robot reactivo es:

Para este caso concreto, nuestros elementos serán los siguientes:
| Estimulos | Son la presencia o NO de objetos delante de los sensores del robot |
| Sensores | Dos sensores de infrarrojos digitales, que devuelven 1 cuando hay un objeto delante y 0 cuando no lo hay |
| Actuadores | Dos servos de rotación continua, que tienen un controlador con 2 bits de entrada (Motorbit) que permiten que cada rueda esté en alguno de sus tres estados posibles: parada, giro en sentido horario, o giro en sentido antihorario |
| Unidad de procesamiento | Circuito digital que diseñaremos nosotros y que estará dentro de la FPGA |
| Respuesta | Son los movimientos del robot: avanzar, parado, arco derecha, arco izquierda... |
Comenzaremos por un experimento muy sencillo: hacer que el motor derecho se mueva en sentido horario cuando se activa el sensor derecho. Además encederemos el LED0 de pruebas
El circuito es el siguiente:

El sensor derecho está conectado directamente al bit de on del motor de la rueda derecha, de modo que al detectarse un objeto, se recibe un 1 y se activa el motor derecho, mientras el izquierdo está parado. El robot girará a la izquierda en arco, embistiendo el objeto que habĂa delante. En cuanto ho tiene nada en su campo, el sensor lee un 0 y el motor se para
En este vĂdeo en youtube se puede ver el comportamiento en acciĂłn
Modificamos el circuito del experimento 1 añadiendo una puerta NOT

Ahora, cuando el sensor derecho detecte un objeto, el motor derecho se parará, y cuando no haya nada seguirá movimiento, haciendo que el robot gire hacia la izquierda, en arco
El comportamiento se puede ver en este vĂdeo en Youtube:
El comportamiento del experimento anterior lo vamos a reproducir con el lado izquierdo del robot. Para que la rueda izquierda gire hacia "adelante" hay que configurarla en sentido antihorario, colocando un 0 en su bit del sentido de giro

Y en este vĂdeo en youtube se ve el nuevo comportamiento
Los circuitos de los experimentos 2 y 3 son independientes, ya que no tienen ningĂşn recurso en comĂşn. Por tanto los podemos combinar mediante superposiciĂłn, en la que los dos circuitos funcionan en paralelo. Uno controla la parte derecha de robot: sensor y rueda. Y el otro la izquierda. De forma independiente

El resultado es que aparece un comportamiente emergente que hace que el Icebot siga un objeto. Lo podemos ver en este vĂdeo de youtube
Este comportamiento de seguir objetos lo utiliza mi hija Alicia, de 8 años, para jugar al juego del patito y su mamá. Nos explica en este vĂdeo cĂłmo funciona :-)
Ver los detalles de los ejercicios y las entregas en el menĂş Archivos/Ejemplos/2-Ejercicios de la colecciĂłn de este tutorial
Resumen:
- Ejercicio 1 (Total 5 Bitpoints): Alarma activada por sensor IR
Diseñar un circuito digital que haga sonar una alarma mientras el sensor de
infrarrojos esté detectando un objeto. La alarma sonará por un zumbador, y estará
compuesta por dos tonos de 1Khz y 2Khz, alternados a la frecuencia de 2Hz
Cuando el sensor no detecta objetos, la alarma estará callada
- Ejercicio 2 (Total 5 Bitpoints): Barrera automática
Diseñar un circuito digital que suba una barrera cuando el sensor de IR detecta la
presencia de un coche. Se cierra cuando no se detecta nada. El circuito todavĂa no
temporiza nada, ni almacena informaciĂłn. Simplemente sube o baja la barrera en funciĂłn
del estado del sensor IR
- Ejercicio 3 (Total 10 Bitpoints): Icebot Policia
Hacer un circuito digital para que el robot icebot siga a un objeto. Utilizará dos
sensores IR colocados en su parte delantera. Siempre que el icebot esté en movimiento
se activará una sirena acústina y otra luminosa. La sirena es la misma que la del
ejercicio 1. La luminosa está formada por dos LEDs que parpadean anternativamente a
la misma frecuecia que la acĂşstica (2Hz)
- Ejercicio 4 (5 Bitpoints). Ejercicio Libre. Premiar la creatividad. Entregar por redes sociales o github: Pantallazos, enlaces, vĂdeos, etc...

- VĂdeo en Youtube:

- VĂdeo en Youtube:

- VĂdeo en Youtube:

- VĂdeo en Youtube: El icebot siguiendo al escornabot :-)

- VĂdeo en Youtube:

- VĂdeo en Youtube:

- VĂdeo en Youtube:

- VĂdeo en Youtube: El icebot siguiendo la lĂnea negra



- Juan González-Gómez (Obijuan)


- Repositorio con las colecciones de la Academia Jedi de Hardware
- BricoGeek. Tienda Friki donde comprar componentes electrĂłnicos
- Repositorio de la Icezum Alhambra
- DocumentaciĂłn de la Icezum Alhambra: (PNG)(SVG)(PDF)
- Icestudio
- Monedas Bit imprimibles
- Printbot Beetle
- Ultimate Gripper
- Pinza paralela
- Robot Educativo Zowi
- Qué es PWM y para qué sirve. Entrada en el bloq de Rincón Ingenieril
- Repositorio de PCBPrints
- PCBPrint Alhambra-Button
- PCBPrint Alhambra Switch
- Soporte Icezum Alhambra
- Soporte para Servo Futaba 3003
- Puntero para servo Futaba 3003
- Clavijas de amarre para servos
- Tablero indicador binario para servo
- Fijador de esquinas
- Fijador de cables
- Fijador de placas
- Octopus passive buzzer, de Elecfreak
- Kit de sensores para Arduino. BricoGeek. Dentro del kit con 37 mĂłdulos, hay uno con zumbador
- ÂżDĂłnde puedo conseguir la placa Icezum Alhambra?
Pueden conseguir una desde Alhambrabits
-
ÂżDĂłnde puedo comprar material electrĂłnico?. Hay muchos sitios. Uno muy bueno es Bricogeek
-
ÂżCĂłmo aprendo a manejar github?
Hay mucha información en internet. En su momento hice este Tutorial: Github y FreeCAD para enseñar a manejarlo. Los ejemplos están hechos con ficheros de FreeCAD, sin embargo, lo que se enseña es genérico. También vale para las entregas de los ejercicios del tutorial de Electrónica digital para makers
- Los pulsadores de la Icezum Alhambra no me funcionan
Eso es debido a que se han metido restos de flux y no hacen buen contacto. En el apartado ¡No me funcionan los pulsadores! del Tutorial 9 se indica cómo solucionarlo fácilmente
- ¿Dónde puedo encontrar más información sobre las señales PWM?
Echa un vistazo a este post de RincĂłn Ingenieril sobre el tema
- He conectado un pulsador externo pero no me funciona. He hecho un circuito para conectar el botĂłn con un led, y al apretar se enciende el LED, pero luego no se apaga. NO funciona bien
Los pulsadores externos que se conecten a los pines de 5v de la Alhambra (D0 - D13) tiene que llevar una resistencia de pull-up o pull-down con valores entre 460 ohm y 2K. TĂpicamente usamos 1K. Esto hace que los conversores de nivel se configuren como entradas y que el pulsador funcione correctamente. Puedes encontrar más informaciĂłn En este enlace
-
¿Donde puedo conseguir el switch que habéis usado en la PCBprint Alhambra switch? Es el mismo switch que se ha usado en la propio Icezum Alhambra (aunque la versión sin acodar). Los fabricantes los puedes encontrar en la lista de componentes de la propia icezum Alhambra. La referencia del componente en concreto es esta: Slide Switch, SPDT, On-On, Through Hole, WS-SLTV Series, 500 mA. Yo te recomiendo que uses la PCBprint de Diego Lale, que usa interruptores que puedes conseguir en Bricogeek: Mini-interruptor de 3 pines
-
ÂżDĂłnde puedo conseguir el servo de rotaciĂłn continua SM-4303R?
Es un servo muy usado y muy estándar. Si buscar por internet encontrarás muchos sitios donde los vendes, a diferentes precios. Aquà en España se puede conseguir muy fácilmente a través de BricoGeek: Servo SM-4303R Bricogeek y también en Iberobotics: Servo SM-4303R Iberobotics
- Parece ser que los servos Futaba 3003 se pueden trucar para convertirlos en rotaciĂłn continua. ÂżConoces algĂşn tutorial sobre como hacerlo?
El Futaba 3003 es uno de los servos que tĂpicamente se han trucado para construir robots mĂłviles con ellos. Robots como Tritt, El Skybot o el Miniskybot los utilizan. Existen muchĂsimos tutoriales para hacerlo. En esta página puedes encontrar todas las formas de trucarlos. El que recomendamos es el caso 2
- ElectrĂłnica digital para todos
- Poniendo en marcha Icestudio
- La Icezum Alhambra y otras placas con FPGAs libres
- Mi primer circuito. Encendiendo un led
- Colecciones en Icestudio
- Bombeando bits
- Manipulando bits: Puerta NOT
- Pines y LEDs externos
- Pulsadores y entradas
- ServoBit
- Puertas AND. Habilitando circuitos
- Interruptores y pulsadores externos
- Periféricos: Leds externos y zumbadores
- Mezclando circuitos: Multiplexor
- Servos de rotaciĂłn continua
- Sensores de Infrarrojos
- Puertas LĂłgicas: OR
- Bloques con parámetros
- Circuitos combinacionales
- Buses y NĂşmeros
- Mi primer bloque
- Circuitos combinacionales con varias salidas
- Mi primera colecciĂłn
- Display de 7 segmentos
- Biestables y notificaciones
- Tiempo, tics y temporizadores
- Contando eventos
- Biestables de datos y cambio
- Registros y comparadores
- Puerto serie
- Despedida de la Temporada I






















