Monday, 25 November 2024
MONOGRÁFICO: Arduinoblocks - Capítulo 2 PDF Print E-mail
EQUIPAMIENTO TECNOLÓGICO - Didáctica de la tecnología
Written by Leopoldo Mosquera   
Wednesday, 29 December 2010 21:27
Article Index
MONOGRÁFICO: Arduinoblocks
Capítulo 1
Capítulo 2
Capítulo 3
Capítulo 4
Capítulo 5
All Pages

Capítulo 2

1) Introducción

En el primer capítulo de este monográfico hemos conocido el entorno Arduino, su hardware y software, de modo que hemos probado a crear intermitencias en un diodo led. A partir de ahora vamos a incluir en nuestros ejercicios de programación, secuencias luminosas combinadas con la creación de sonidos en un zumbador piezoeléctrico, siendo su bucle normal de funcionamiento interrumpido mediante sensores conectados en las entradas de la tarjeta Arduino.

2) Conexionado de entradas digitales.

 Para que un sensor digital o analógico pueda ser detectado en alguno de los pines correspondientes de la tarjeta, antes hay que establecer un circuito de alimentación desde 5V a GND (masa) que atraviese dicho sensor y que además produzca una caída de tensión o una débil corriente en una resistencia que se intercala entre el sensor y el pin de entrada de la tarjeta, formando todo ello un típico esquema electrónico denominado “pull-down”, necesario para proteger la tarjeta.



En un ejemplo sencillo podemos hacer que el diodo led pinchado en el pin 13 y GND, se encienda durante un tiempo determinado una vez que hayamos presionado un pulsador de tipo fin de carrera, previamente construido del siguiente modo: en cada una de las patillas de nuestro pulsador enredaremos un cable fino de unos 12 cm de longitud, a ser posible de distinto color; además soldaremos en una sola de ellas, una resistencia de 10 Kohm y en el extremo libre de ésta, otro cable de 10 cm, similar a los anteriores pero de un tercer color. Una vez terminado, un cable se pincharía en el pin 5V de la tarjeta, otro (el que intercala la resistencia) en un pin GND y el tercero en el pin digital 8, que programaremos, en el menú de Amici, como una entrada cuyo estado de reposo es normalmente abierto (off).

Existen dos estrategias de programación para resolver el programa detección de un sensor con Amici: de un modo sencillo, utilizando el bloque ESPERAR HASTA (while) o, quizás de un modo más correcto, utilizando el condicional IF: bastará con añadir a la derecha de un bloque IF, el correspondiente ON que determine el encendido que va a suceder tras pulsar el sensor, es decir, la condición para el cambio en la rutina del programa.




Como comenté en el primer capítulo de este monográfico, es interesante ver el código escrito en el editor de Arduino, donde siempre se estructura un programa, al menos en tres apartados: en el primero, precedidos del término int ,se definen los datos (pines de la tarjeta que se van a conectar) y variables (tiempos); después en el apartado setup() se indica si los pines serán utilizados como entradas o como salidas, así como, si es necesario, su estado inicial; y finalmente, en el apartado loop() ,se explica lo que realmente va a suceder una y otra vez con los dispositivos conectados a entradas y salidas, es decir, incluye el núcleo principal del programa.



La diferencia entre las dos estrategias de encendido del led queda clara al observar el apartado loop(), ya que el bloque ESPERAR HASTA (“… que el valor del sensor sea alto”) se traduce en el lenguaje habitual de programación como while, y el bloque IF (“si el valor del sensor es alto”) no cambia su denominación en el editor de Arduino. Los dos programas hacen lo mismo, pero los matices en la escritura de cada condicional es diferente, siendo difícil escoger entre una u otra a la hora de confeccionar una instrucción. Me parece reseñable el hecho de que ambas soluciones son complicadas de entender o memorizar por los alumnos de E.S.O., haciendo que la programación en modo texto se convierta en algo nada interesante o al alcance de muy pocos alumnos de cada clase, a los que seguro que además siempre habrá que corregirles la ausencia de algún signo sintáctico (llave, paréntesis o punto y coma).

 3) Combinando dispositivos de luz y sonido en una placa.

La forma más extendida de conectar con distintos dispositivos (leds, pulsadores, resistencias,...) simultáneamente a los diferentes pines de la tarjeta Arduino, es pinchando los componentes electrónicos y cables de colores en una placa de prototipos, creando los caminos eléctricos adecuados. Yo utilizo esta estrategia para hacer pruebas rápidas de programas, pero para evitar la confusión que a veces genera el exceso de cableado sobre la protoboard, con los alumnos prefiero que construyan pequeñas placas electrónicas (de gradual complejidad) soldadas, y que después las pinchen en los pines de alimentación, entradas o salidas de Arduino. El conjunto placa-tarjeta queda más sólido, se recoge mejor el material tras cada tiempo de taller (de modo que se pueden flexibilizar las sesiones de trabajo) y se combina la actividad manual con la de programación. Existen también en el mercado placas standard de prototipado para Arduino, pero su uso encarece la actividad y además su posible reciclado, en mi opinión, entretiene en exceso (la imagen siguiente es un posible ejemplo de utilización).


Para el montaje de nuestras placas podemos utilizar pletinas de pistas de cobre paralelas distanciadas 2,54 mm, medida standard que también utiliza la tarjeta Arduino para la colocación de sus pines de entrada/ salida. Las longitud mínima de la placa será de unos 53 mm, ya que la distancia entre los pines a uno y otro lado en la tarjeta es de 19 x 2,54 mm = 48,26 mm. La idea es pinchar (utilizando dos porciones de 2 y 4 contactos macho) de un extremo, en los pines GND y 5V (para alimentar los sensores que interactúen con la placa), y del otro extremo, en los pines digitales que programaremos. En el ejemplo propuesto de la imagen, han bastado 6 pistas de cobre (una no se utiliza) para encajar todos los elementos, con lo que el ancho final de la placa se limita a unos 18 mm.

En el diseño esquemático de la placa se representan las pistas de cobre con líneas rojas, los puntos de conexión (pines o clema) y de soldadura en azul (también los límites del borde de la placa), y las líneas transversales de interrupción de pistas (donde se elimina el cobre con la punta de una tijera o un destornillador) en verde. Como puede apreciarse en la fotografía del reverso de la placa, he recortado (con una segueta de metal o doblando la placa hasta su rotura con un alicate) dos esquinas de la placa para dejar a la vista los pines de la tarjeta Arduino que se sitúan justo debajo y así poder seguir utilizándolos.



La propuesta de trabajo consiste en crear secuencias de luz y sonido utilizando tres diodos led de distintos colores y un zumbador piezo-eléctrico. Los diodos se han conectado en serie con una resistencia de protección de 220 ohmios, entre masa y los pines 10, 11 y 12, mientras que el zumbador lo hace entre masa y el pin 9, ya que éste viene preparado en Amici para permitir el sonido de las distintas notas musicales (con la posibilidad de crear distintas melodías).


Las combinaciones de estos cuatro elementos pueden dejarse abiertas a decisión de los alumnos o puede proponerse, como en el siguiente ejemplo, crear un semáforo con sonido de aviso para el peatón.



Tras crear en Amici en programa de la figura de la izquierda y al pulsar el icono + para visualizar el programa en la consola de Arduino, veremos que el resultado no se corresponde exactamente al de la imagen derecha, ya que por problemas de espacio, he depurado el código eliminando líneas innecesarias que crea Amici por defecto. Surge aquí la idea de proponer a los alumnos más avanzados o interesados en el mundo de la programación, la posibilidad de modificar los programas y comprobar su correcta compilaciòn en Arduino, además sin el riesgo de perder el programa realizado como bloques gráficos.

En la fotografía del conjunto de la placa pinchada en la tarjeta Arduino, he incorporado también el pulsador que ya describiera al inicio de este capítulo, apreciándose su construcción y, sobre todo, su conexión a la placa, bien a través de la clema GND-5V (cables negro y azul), como directamente en el pin 8 (blanco).

En el siguiente programa integraré el sensor digital con el objetivo de que, al ser pulsado, vuelva a repetirse una secuencia luminosa determinada (verde-amarillo-rojo), tras un tiempo de apagado.



4) Conclusión

Las ventajas de la programación con bloques gráficos en Amici evita las dificultades de la escritura en lenguaje C (o mejor dicho, en Processing) para usuarios inexpertos, pero sin renunciar a dar el paso de analizar como queda compilada la solución en la consola de Arduino, lo que facilita futuras experiencias más complejas que las mostradas en este monográfico, las cuales por otro lado, están disponibles en número casi ilimitado en la Red.

 

 



 

Revista INTEFP

Marcadores Sociales

Facebook MySpace Twitter Delicious Google Bookmarks 

Artículos relacionados