Las entradas y salidas digitales son las señales de información básicas para hacer programas en robótica educativa.
Las entradas son los datos que recoge un robot. Las salidas son las órdenes que este envía, después de procesar los datos de entrada según un programa que tiene almacenado. Son digitales cuando sólo toman dos valores: nivel alto o bajo.
Las entradas y salidas digitales son el ingrediente básico de los primeros programas de aprendizaje.
En este artículo hablamos de robótica basada en arduino, por lo que nos vamos a referir a entradas y salidas de esta placa. Los conceptos no cambian si usamos sistemas basados en otro microprocesador.
Las entradas digitales
En nuestra vida diaria hacemos un amplio uso de las entradas digitales. La propia palabra puede servir de pista. Digital significa «relativo a los dedos». Cuando llamamos en nuestra casa al ascensor, pulsamos un botón. El botón es un sensor que proporciona una entrada digital a un microprocesador, a una placa similar a arduino. El microprocesador entonces da la orden (salida) para que los motores del ascensor lleven la cabina donde estamos.
Las entradas permiten recoger datos del mundo exterior.
Una entrada digital se presenta normalmente como un valor de 5 voltios, por ejemplo, en uno de los pines de la placa de arduino. Los sensores son los encargados de ver qué pasa en el exterior de nuestros circuitos.
Multitud de sensores del mundo de arduino generan entradas digitales:
- pulsador
- final de carrera
- detector de presencia (PIR)
- teclado (como el de la foto)
El microprocesador debe leer las entradas digitales que los sensores colocan en el pin donde hemos cableado el sensor. De ahí el tipo de órdenes del lenguaje de programación de arduino:
int valor=digitalRead(4); // traducido sería: leer_entrada_digital(4)
Esta orden lee el valor digital del pin 4 y lo introduce en ‘valor‘. ‘valor‘ sólo puede ser alto o bajo, es decir, 0 o 1, o bien 0 o 5V. Sólo admiten 2 valores (a diferencia de una temperatura que puede cambiar continuamente su valor, por ejemplo).
Cuando tenemos entradas, casi siempre es necesario introducir la entrada en una variable (‘valor’, en este caso) para poder usarla en el programa.
En los lenguajes gráficos, tenemos en visualino y mblock (basado en scratch):
Las salidas digitales
Después de recoger los datos (entradas), se procesan mediante un programa que hemos cargado en el controlador. Este genera órdenes, es decir, salidas. Las salidas digitales consisten en poner un pin a 5V (nivel alto) o a 0V (nivel bajo). Por ejemplo, si detectamos que alguien se acerca (entrada digital) y queremos que se encienda un LED rojo cuando suceda, ponemos 5V en el ánodo de ese LED.
¿Qué podemos hacer con una salida digital? Por ejemplo:
- encender un diodo LED conectado a un pin
- activar un zumbador (para que suene), también conectado a un pin
- ordenar que un motor arranque o pare
Las salidas permiten actuar sobre el mundo exterior.
El microprocesador, para encender un diodo LED, debe «escribir» en un pin 5V. En este pin estará conectado el LED. En terminología de instrucciones de arduino:
digitalWrite(4,HIGH) // traducido sería: escribir_digital(en 4 poner HIGH=5V)
Esta instrucción resulta muy sencilla e intuitiva en los lenguajes de programación gráficos:
Las salidas digitales activan actuadores (motores, diodos LED, zumbadores, pantallas LCD, etc)
¿Cómo enfocar la enseñanza de las entradas y salidas digitales?
Los primeros pasos en robótica educativa deben ir orientados a la correcta identificación de los componentes. Son pocos pero es muy importante saber distinguirlos. La robótica educativa se basa en: entradas, salidas, alimentación y control (es decir, programación).
En función de la edad del joven al que se dirige la formación, habrá que comenzar de una forma u otra. Por ejemplo, para edades en torno a 8 años, las consideraciones teóricas iniciales no tienen demasiada importancia. Tienen que ir aprendiendo los conceptos sin ponerles nombre, aplicándolos para ver resultados. El objetivo es la motivación del alumno.
Es natural comenzar con el aprendizaje de las señales de salida digitales, puesto que hacen funcionar las cosas (motores, LED). Posteriormente se introducen las entradas, que permiten modificar el comportamiento de las salidas. Por ejemplo, si se aprieta un botón se puede hacer encender un LED. El botón origina un cambio en la salida a la que está conectada el LED.
Arduino tiene 14 pines que pueden actuar como entradas y salidas digitales (también podrían usarse los otros 6 pines de entrada analógica, del A0 al A5).
En la programación, es preciso indicar si un pin será una entrada o una salida. Los lenguajes gráficos lo hacen de forma automática por lo que el alumno no debe ocuparse de ese detalle.
(Fotografía de portada: algunas entradas y salidas, Federico Arroyo)