TEMA II.- PROGRAMACIÓN CON EL CROCODILE …iesmachado.org/web...

13
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.

Transcript of TEMA II.- PROGRAMACIÓN CON EL CROCODILE …iesmachado.org/web...

Page 1: TEMA II.- PROGRAMACIÓN CON EL CROCODILE …iesmachado.org/web insti/depart/tecnol/apuntes/files/1ESO/Robots... · bloques y salen por la parte inferior a excepción de los bloques

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.

Page 2: TEMA II.- PROGRAMACIÓN CON EL CROCODILE …iesmachado.org/web insti/depart/tecnol/apuntes/files/1ESO/Robots... · bloques y salen por la parte inferior a excepción de los bloques

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

Page 3: TEMA II.- PROGRAMACIÓN CON EL CROCODILE …iesmachado.org/web insti/depart/tecnol/apuntes/files/1ESO/Robots... · bloques y salen por la parte inferior a excepción de los bloques

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

Page 4: TEMA II.- PROGRAMACIÓN CON EL CROCODILE …iesmachado.org/web insti/depart/tecnol/apuntes/files/1ESO/Robots... · bloques y salen por la parte inferior a excepción de los bloques

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.

Page 5: TEMA II.- PROGRAMACIÓN CON EL CROCODILE …iesmachado.org/web insti/depart/tecnol/apuntes/files/1ESO/Robots... · bloques y salen por la parte inferior a excepción de los bloques

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.

Page 6: TEMA II.- PROGRAMACIÓN CON EL CROCODILE …iesmachado.org/web insti/depart/tecnol/apuntes/files/1ESO/Robots... · bloques y salen por la parte inferior a excepción de los bloques

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.

Page 7: TEMA II.- PROGRAMACIÓN CON EL CROCODILE …iesmachado.org/web insti/depart/tecnol/apuntes/files/1ESO/Robots... · bloques y salen por la parte inferior a excepción de los bloques

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)

Page 8: TEMA II.- PROGRAMACIÓN CON EL CROCODILE …iesmachado.org/web insti/depart/tecnol/apuntes/files/1ESO/Robots... · bloques y salen por la parte inferior a excepción de los bloques

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.

Page 9: TEMA II.- PROGRAMACIÓN CON EL CROCODILE …iesmachado.org/web insti/depart/tecnol/apuntes/files/1ESO/Robots... · bloques y salen por la parte inferior a excepción de los bloques

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.

Page 10: TEMA II.- PROGRAMACIÓN CON EL CROCODILE …iesmachado.org/web insti/depart/tecnol/apuntes/files/1ESO/Robots... · bloques y salen por la parte inferior a excepción de los bloques

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.

Page 11: TEMA II.- PROGRAMACIÓN CON EL CROCODILE …iesmachado.org/web insti/depart/tecnol/apuntes/files/1ESO/Robots... · bloques y salen por la parte inferior a excepción de los bloques

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.

Page 12: TEMA II.- PROGRAMACIÓN CON EL CROCODILE …iesmachado.org/web insti/depart/tecnol/apuntes/files/1ESO/Robots... · bloques y salen por la parte inferior a excepción de los bloques

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”

Page 13: TEMA II.- PROGRAMACIÓN CON EL CROCODILE …iesmachado.org/web insti/depart/tecnol/apuntes/files/1ESO/Robots... · bloques y salen por la parte inferior a excepción de los bloques

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).