tema ii.- programaciÓn con el crocodile …iesmachado.org/web...
TRANSCRIPT
Teleformación proyecto Medusa. 1
TEMA II.- PROGRAMACIÓN CON EL CROCODILE TECHNOLOGY.
I. Introducción
Aunque todavía no hemos introducido concepto alguno de programación si nos interesa
primeramente conocer el manejo de las herramientas de programación que este programa nos
permite utilizar.
II. Lenguajes de programación
Piense en un ordenador. Seguro que se lo ha imaginado con monitor, teclado, ratón, impresora,
etc,. ¿Porqué? Pues porque este tipo de máquinas está diseñada, generalmente, para comunicarse
con humanos. Procesadores de textos, bases de datos, análisis financieros están dentro de la “caja”
que contiene la CPU , el disco duro, etc, sin embargo, el elemento principal es la CPU, lo demás
tiene como única misión conectarse con el exterior.
Si nos fijamos nos daremos cuenta de que existen otras pequeñas máquinas que realizan
pequeñas operaciones o funciones sin necesidad de comunicación con humanos. Estas pequeñas
máquinas se denominan microcontroladores. Micro porque son pequeñas y controladores porque
controlan alguna acción u operación. Los microcontroladores, por definición entonces, son diseñados
para ser conectados mas a máquinas que a personas. De aquí su interés, puesto que nos permiten
crear máquinas programarlas y dejarlas funcionando automáticamente.
Hay un número infinito de aplicaciones donde usar microcontroladores. En el mercado existen gran
variedad de microcontroladores, algunos de ellos programables una única vez pues su aplicación es
específica, por ejemplo, en los hornos microondas mientras que otros son reprogramables, es decir,
que pueden ser usados mas de una vez y para diferentes aplicaciones.
Los microcontroladores son muy versátiles, lo mismo pueden controlar una tostadora, como un avión
de aeromodelismo, como el circuito antifreno ABS de un coche.
Los microcontroladores actuales son de un tamaño muy pequeño pero contienen los mismos
elementos que un ordenador, es decir CPU, memoria, a excepción de los elementos que lo
comunican con el exterior.
Los microcontroladores al igual que los ordenadores son dispositivos secuenciales, es decir, reciben
órdenes (instrucciones) de forma continuada sobre los pasos que debe seguir para realizar su tarea.
Las instrucciones a seguir las introduce el programador y la secuencia de instrucciones de denomina
programa.
Teleformación proyecto Medusa. 2
Los microcontroladores, al igual que los ordenadores, están constituidos por circuitos
electrónicos diminutos, por lo que su lenguaje se reduce a entender niveles de voltaje distinguiendo
entre la existencia de voltaje con un 1 y la falta de tensión con un 0, o viceversa. Por lo tanto, para
programar un microcontrolador, el programador introducirá una serie de 0 y de 1 en un orden
determinado. Esta forma de lenguaje se denomina lenguaje máquina.
Ante la dificultad de programar con bits, se utiliza un lenguaje intermedio que utilizan una serie
de símbolos que requieren, para su entendimiento, una preparación técnica adecuada, denominado
lenguaje ensamblador.
Estos lenguajes, denominados lenguajes de bajo nivel son de difícil entendimiento, por lo que
al igual que los humanos utilizamos intérpretes para entendernos en diferentes idiomas, nos vemos
en la necesidad de utilizar otros lenguajes mas sencillos de entender denominados lenguajes de
alto nivel, que utilizan palabras en inglés. Lenguajes de alto nivel existen gran variedad en el
mercado con diferentes niveles de dificultad en la programación, por ejemplo podemos citar,
FORTRAN, C++, COBOL, DELPHI, BASIC.
Lenguaje C
Teleformación proyecto Medusa. 3
Lenguaje BASIC
De los enumerados el BASIC presenta un nivel mas alto que los demás. No obstante, existen
otros lenguajes de programación mucho mas fáciles de entender como la programación en
Diagrama de flujo, del que posteriormente hablaremos mas
profundamente.
Los diagramas de flujo son un lenguaje de programación muy gráfico. Son
muy buenos para escribir programas por varias razones:
• Pueden ser escritos en papel antes de programar el computador.
• Muestran la lógica del programa de forma muy clara.
• Puedes mover cualquier comando del programa a otra posición que
desees.
• Corregir errores es muy fácil - el error detectado queda resaltado.
• Es muy fácil programar. Los diferentes comandos son representados
de diferente forma.
Cuando creamos dispositivos que utilizan un microcontrolador
actuando como un “cerebro”,en muchas formas estamos tratando de imitar
cómo actúa nuestro cuerpo.
Su cerebro necesita cierta información para tomar decisiones. Esta información es recibida a
través de varios sensores, como la vista, el sentido, el tacto. Estos sensores detectan lo que nosotros
llamamos el mundo real o mundo exterior, y envían esa información al cerebro para “procesamiento”.
Recíprocamente, cuando su cerebro toma una decisión manda señales a través de su cuerpo para
Teleformación proyecto Medusa. 4
hacer algo en el mundo exterior. Utilizando las “entradas” de sus sentidos y las “salidas” de sus
piernas, brazos, etc, su cerebro está comunicando o interactuando con el exterior.
Cuando está va circulando por la carretera y observa un animal corriendo ante usted. Su cerebro
analiza esta “entrada”, toma un decisión y emite instrucciones a sus brazos y manos girando el
volante para evitar golpear al animal. Esta “entrada/decisión salida” es de lo que se tratan los
microcontroladores. Nosotros las llamamos entradas/salidas o de forma abreviada “e/s” (I/O Input /
Output).
III. Diagrama de flujos
Un diagrama de flujo es una representación gráfica detallada que muestra la naturaleza y
secuencia paso a paso de una operación. Se puede hacer un diagrama de flujo de cualquier tarea
diaria, como conducir o ir al colegio.
¿Cuántos pasos están involucrados en esta simple tarea? ¿Cuántas decisiones se toman antes
de llegar al colegio? Se puede hacer el diagrama de flujo de una operación formal como cocinar
bizcochos, por ejemplo, ya sea en una cocina pequeña como en una industria. Y por supuesto, se
puede hacer un diagrama de flujo que tenga en cuenta los pasos y las decisiones para que la tarea
sea llevada acabo por un ordenador o por un microcontrolador.
Un proceso relativamente simple normalmente es fácil de comprender y fluye en forma lógica desde
el principio hasta el final. En el caso de cocinar bizcochos, los pasos involucrados son bastante
simples. Una receta normalmente requiere que se mezclen los ingredientes necesarios, se armen los
bizcochos y se cocinen apropiadamente. Hay que tomar varias decisiones: ¿Están bien mezclados
los ingredientes? ¿Está precalentado el horno? ¿Se cocinaron los bizcochos el tiempo necesario?
A medida que el proceso se vuelve más complejo, sin embargo, es más difícil diagramar el orden de
los eventos necesarios, para llegar a un final exitoso.
Un programa en un BASIC puede tener muchísimos pasos y bifurcaciones if … then. Puede ser
difícil seguir el flujo del programa, si solamente observáramos el código.
Un diagrama de flujo se construye con unos símbolos gráficos especiales que representan
acciones, funciones, y equipamiento usado para lograr un resultado específico.
La cantidad de símbolos es pequeña porque lo que se intenta es conseguir representar cualquier
tarea de la forma mas sencilla de entender.
Teleformación proyecto Medusa. 5
Los símbolos que utilizaremos para realizar cualquier diagrama de flujo se representa en la siguiente
tabla que deberemos intentar memorizar pues su uso es fundamental en este curso.
Teleformación proyecto Medusa. 6
La Tabla 1.1 muestra los símbolos y su uso.
Para entender el proceso que se debe seguir para representar una tarea mediante un diagrama de
flujo veamos un sencillo ejemplo en el que se representa la tarea de Ajuste de la Temperatura de
la Ducha.
No intente complicar el proceso mas de la cuenta en esta su primera vez, indiscutiblemente el
proceso es mejorable pero lo que buscamos con este ejemplo es que ustedes entiendan el proceso
de generación de un diagrama de flujos
Tomemos como ejemplo el diagrama de flujo de una tarea diaria: ajustar la temperatura de
una ducha. El proceso de ajustar la temperatura del agua involucra varios pasos. Primero se abren
las canillas de agua fría y caliente, esperamos un rato para que se estabilice la temperatura del agua,
la probamos y tomamos algunas decisiones para realizar los ajustes necesarios. Si la temperatura
del agua es demasiado fría, abrimos más la canilla de agua caliente y probamos nuevamente. Si el
agua está demasiado caliente, se abre más la del agua fría. Una vez que realizamos cada ajuste,
vamos al punto donde esperamos unos segundos antes de probar nuevamente. Por supuesto no
tuvimos en cuenta el caso cuando las canillas están completamente abiertas.
Teleformación proyecto Medusa. 7
Se pueden agregar pasos en el proceso de ajuste de temperatura para corregir esta
condición.
Inicio
Abrir agua FRÍA1 vuelta
Abrir agua CALIENTE 1 vuelta
Esperar 5 segundos
Probar temperatura del agua
¿Muy Fría?
¿Muy Caliente?
Abrir mas agua FRÍA
Abrir mas agua CALIENTE
Fin
Entrar en la ducha
Si
Si
No
No
Estudie detenidamente el diagrama de flujo y trate de entenderlo comprobará con facilidad cual es la
tarea que desempeña.
Fíjese bien en como el diagrama de flujo lleva una secuencia acorde con lo que deseamos llevar a
cabo. Observe el sentido de las líneas de flujo, ¿ve como siempre entran por la parte superior de los
bloques y salen por la parte inferior a excepción de los bloques de decisión o preguntas?
Observe como existen “saltos” desde una posición del diagrama hasta otra zona anterior o posterior (
fíjese en los saltos A)
Teleformación proyecto Medusa. 8
Este ejemplo demuestra un proceso que puede ser usado para ajustar la temperatura, pero ¿serían
estos los pasos para un programa de un microcontrolador? ¡Seguro! Las canillas podrían ser
ajustadas por servos, y la temperatura del agua podría determinarse con un sensor. En la mayoría de
los casos, un proceso simple para nosotros puede ser bastante complejo para un microcontrolador.
Tome el ejemplo de dar la vuelta a la esquina conduciendo un automóvil. ¿Puede hacer una lista de
las entradas que procesamos mientras realizamos el giro?
IV. Comenzando a programar.
Ejecutemos el programa Crocodile Technology y detengámonos un momento en la pantalla principal.
El icono es el que nos interesa pues incluye los componentes necesarios para la realización
de simulaciones con microcontroladores y de programación a través de diagramas de flujo.
Si picamos sobre este icono veremos aparecer en la barra de herramientas una serie nueva de
iconos que representan diversas acciones que podemos realizar a la hora programar sin que
nosotros tengamos que escribir la acción que debe realizar.
Teleformación proyecto Medusa. 9
Esta barra de herramientas la vamos a dividir en cuatro bloques bien diferenciados entre sí que nos
permitirán determinar fácilmente que herramienta debemos utilizar en cada momento.
���� Órdenes sencillas. Este bloque está compuesto por cuatro iconos que realizan siempre la
misma función sin que por ello pierdan su vital importancia. Veamos cada uno de estos cuatro
iconos:
o Este icono debe ser siempre el primero que debemos colocar en la zona de
trabajo y que encabezará nuestro programa. También debe ser el primer bloque de
una subrutina.
o Este icono representa un bloque que realiza la acción de emitir un sonido cada
vez que el diagrama de flujo pasa a través de él . Es conveniente dejar constancia de
que esta acción no se debe utilizar si deseamos que nuestra tarjeta microcontroladora
realice la acción de emitir un sonido. Para realizar esta función con la tarjeta
microcontroladora existe otra función que no vamos a explicar en estos momentos.
o Este bloque introduce en el programa un retardo (delay) de un tiempo
determinado por nosotros.
Teleformación proyecto Medusa. 10
o Esta función detiene la ejecución del programa. Generalmente se colocará al
final del diagrama de flujo. A diferencia del comando START, este comando puede
aparecer mas de una vez en el diagrama de flujo o bien no aparecer nunca (en este
caso diremos que el programa es un bucle infinito).
Para entender mejor todo lo hasta ahora dicho realicemos un sencillo programa con estos cuatros
bloques:
Ejemplo: Realizar un programa que emita un beep, haga un retardo de 5 segundos, emita un nuevo
beep y pare.
♦ Picamos sobre el icono . La barra de herramienta toma enseguida la siguiente
apariencia
En el recuadro de texto ponemos el nombre del programa (Ejemplo1), seleccionamos NO visualizar
el botón de programación de la tarjeta microcontroladora y arrastramos el icono hasta la zona de
trabajo.
Teleformación proyecto Medusa. 11
Procurar utilizar como nombres de programas aquellos que nos ayuden a entender la tarea que el
diagrama realiza, por ejemplo, “Suma”, “Sub_Contar”, etc.
Sigamos con nuestro ejemplo y coloquemos el beep.
Observemos que al colocar el bloque Beep la
orden START adopta el color rojo indicándonos
que existe un error. Si colocamos el ratón sobre
el bloque en rojo nos indicará el error cometido
que en nuestro caso es que todavía no lo hemos
unido al siguiente bloque.
Unamos ambos bloques y veremos como este error desaparece pero
se nos pone en rojo el bloque del Beep y esto es lógico pues la salida
está sin conectar.
Tal como comentamos anteriormente los errores que
podemos cometer generalmente son los relacionados
con la unión entre bloques, por ejemplo, si por ahorrar
espacio en la ventana realizamos la operación indicada
en la figura en la que hemos unido la salida del
comando WAIT con la salida del comando Beep se nos
van a originar dos errores, el primero en el bloque Wait
que nos indica que el elemento está conectado
indebidamente y el segundo en el comando Beep que
nos dirá que no se encuentra conectado
Sigamos con el programa añadiendo la siguiente acción que en nuestro ejemplo es hacer un retardo
de 5 segundos.
Teleformación proyecto Medusa. 12
Para esto utilizaremos el bloque , picamos sobre él y observamos que la barra de herramientas
adopta la siguiente forma
Modificamos el tiempo para darle un tiempo de 5 segundos, y a
continuación arrastramos el icono a la zona de trabajo y lo unimos con el
bloque anterior.
.A continuación y tal como se indica en el enunciado añadiremos un
nuevo BEEP y a finalizaremos el programa con la orden STOP. Como
estas dos acciones no llevan modificaciones picamos y arrastramos
directamente a la zona de trabajo con lo que damos por finalizado
nuestro ejemplo.
Si deseamos ejecutar nuestro programa para ver su funcionamiento
únicamente debemos pulsar sobre el botón de ejecución de programa
(PLAY).
Importante: “El tiempo durante la simulación no coincide con el tiempo
real pero si coincide cuando lo enviamos a la tarjeta microcontroladora”
Teleformación proyecto Medusa. 13
Puedes observar que durante la ejecución los 5 segundos no se corresponden con 5 segundos reales pues es simplemente un indicativo
durante la simulación.
Observar que durante la simulación el programa nos resalta en negro el bloque que actualmente se está ejecutando. El tiempo que se
detiene en cada bloque depende de la velocidad de ejecución.
La velocidad de ejecución del diagrama de flujos se puede modificar Options->Flowchart
El recuadro Flow Timestep nos permite modificar el tiempo que el programa utiliza en pasar por cada
bloque del diagrama de flujo, si aumentamos el tiempo el programa se ejecutará mas lentamente y
viceversa.
El recuadro Variable Range nos permite modificar el máximo valor que puede tener cualquier variable
que utilicemos en el programa. Por defecto se utiliza el valor de 255 pues es el valor típico en
cualquier microcontrolador de 8 bits (28 = 255 ). El máximo rango que podemos dar a nuestras
variables es de 100000.
El recuadro Analog Range nos permite indicar el rango de valores que una entrada analógica puede
alcanzar. Al igual que en el caso anterior el valor típico es de 255 aunque podemos modificarlo con
un máximo de 100000. El valor máximo viene siempre dado por los bits de resolución que disponga
el microcontrolador así, por ejemplo, una resolución de 12 bits tiene una rango de 0 – 4096 (212).