10 - Controlando un semáforo

Ahora que sabemos controlar sparkles y leds, os propongo otra práctica: la programación de un semáforo. Y la aprovecharé también para recordaros un recurso metodológico habitual cuando nos enfrentamos a la programación: La definición previa del problema que queremos resolver basándonos en un algoritmo que nos ayude a definirlo y planificar los pasos a dar.


En matemáticas, lógica, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus y este a su vez del matemático persa Al-Juarismi) es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad. Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución. Los algoritmos son el objeto de estudio de la algoritmia.

En la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas. Algunos ejemplos son los manuales de usuario, que muestran algoritmos para usar un aparato, o las instrucciones que recibe un trabajador por parte de su patrón. Algunos ejemplos en matemática son el algoritmo de multiplicación, para calcular el producto, el algoritmo de la división para calcular el cociente de dos números, el algoritmo de Euclides para obtener el máximo común divisor de dos enteros positivos, o el método de Gauss para resolver un sistema de ecuaciones lineales.

Fuente: Wikipedia. En este enlace puedes leer la entrada completa)

Aplicado esto al proyecto que os propongo, habría que desglosar el proceso en sus pasos. Podríamos definir el problema a resolver como algo así: "Piensa la secuencia de encendidos y apagados de las tres luces -roja, ámbar y verde- de un semáforo y convierte el algoritmo de esa secuencia en el código del lenguaje Crumble".

Podemos partir, si no tenemos posibilidad de hacer una observación directa, de un vídeo publicado en You Tube, por ejemplo este:


Y, tras el análisis de la secuencia de encendido y apagado de las luces del semáforo observado, se podría crear el algoritmo que resuelva el problema. Podría servir un modelo de ficha similar a este (el fichero PDF de esta ficha está en la zona de archivos):

Una vez elaborado el algoritmo que nos ayude a planificar las órdenes que necesitamos, llegará el momento de codificar esas órdenes en las sentencias adecuadas del lenguaje crumble, teniendo en cuenta, las entradas que vamos a utilizar. En nuestro caso dispondremos de otro módulo que ya tiene los leds soldados a una pequeña placa, como los otros que hemos utilizado. Pero también podríamos plantearnos que los alumnos construyan un pequeño semáforo con tres leds o que, simplemente, monten tres leds en una pequeña placa protoboard. Todo dependerá de nuestros recursos y de las características y habilidades de nuestro alumnado.


El ejemplo que os propongo para esta práctica sigue esta secuencia: se enciende el led rojo, espera 3 segundos, se enciende el led ámbar y espera 1 segundo, se apagan el rojo y el ámbar y se enciende el verde durante 2 segundos, se apaga el verde y se enciende el ámbar durante 1 segundo y comienza de nuevo el ciclo porque, como de costumbre, las sentencias estarán en una estructura repetitiva, gracias al conocido bucle "do forever ... loop". Pero en clase, a partir de este ejemplo podríamos añadir otros retos. Por ejemplo, añadir un zumbador que suene para avisar que el semáforo se va a poner rojo... ¿Te animas a intentarlo?



Ċ
Jose Mari Macías,
28 ene. 2016 22:34
ċ
10_semaforo.crm
(2k)
Jose Mari Macías,
11 may. 2016 6:26
Ċ
Jose Mari Macías,
19 abr. 2016 2:58
Comments