Felix Maocho

Para quien le interese lo que a nosotros nos interesa

Curso de Arduino – Aprender a utilizar el simulador UnoArduSim

Félix Maocho
12/6/2016

Objetivo de este capítulo

Un primer contacto para iniciarse en el manejo del programa de simulación de Arduino UnoArduSim. Descargar e instalar el programa UnoArduSim en el PC. Escribir un sketch, ponerlo a punto. “Instalar” los componentes manejados por la tarjeta Arduino y probar el Sketch sobre esta simulación de hardware.

Comienzo a trabajar con UnaArduSim

Hoy es mi primer día de contacto con el programa UnoArdSim. Iré contando las dificultades que me he encontrado y como las he resuelto, con el fin de que los que me sigan se encuentren con menos dificultades en el aprendizaje.De este prograna de simulacion de la tarjeta Arduino les hablé en “UnoArduSim programa simulador de la tarjeta Arduino, para experimentar sin el Hardware”

Descargar el programa

ágina de descarga

 

De la pagina oficial de descargas llamada “Simulator Download” (Descarga del simulador)  elijo la última versión que apare en la parte inferior de la página, que se denomina UnoArduSimV1.5.zip con 1147k firmada por el Prof Simmons de fecha May 17, 2016. Al pinchar en la pequeña flecha hacia abajo que esta a la derecha, sorprende la rapidez con que baja el fichero zip.

Yo tengo un sistema operativo Windows 10 y el descomprimir este tipo de ficheros es un proceso casi automático que se realiza en un solo click en una pantalla que te dice por defecto donde te colocará el fichero en mi caso lo coloco provisionalmente en una carpeta nueva que se crea por defectos la que se llega por este camino:

C:\Users\Usuario\Downloads\UnoArduSimV1.5 (1).zip\UnoArduSimV1.5

En el fichero del usuario para descargas, (Downloads), que tiene de forma estándar Windows, se sitúa el fichero bajado UnoArduSimV1.5 (1).zip que al desplegarse, creó la carpeta llamada UnoArduSimV1.5 a la que fueron a parar todos los ficheros descomprimidos que fueron los siguientes:

Blink

Por lógica comenzamos leyendo el fichero READMEV1.5, pues tradicionalmente los fichero REDME han tenido las instrucciones necesarias para instalar la aplicación. En este caso el fichero dice lo siguiente:

UnoArduSimV1.5 README

When you first run UnoArduSim.exe, you will see a default set of I/O devices (one of each of eight of the “big” I/O devices, and several of each of the “small” I/O devices), and a dummy “simple.ino” default program which you can immediately run.

You can use the Configure menu to adjust the set of I/O devices, and from the provided dialog “Save” that configuration for next time (as a named text file). That file name will be automatically added to the myArduPrefs.txt file that gets loaded at the next program startup — to go back to the default startup configuration, delete the IODevs line in the myArduPrefs.txt file (or just delete that entire file).

When ready, you can load and try out the provided DemoProg1.ino demonstration program — that program needs to have a particular set of I/O devices attached, so use “Configure->IO Devices” and “Load” the myUnoDevs_DemoProg1.txt file. That will load the devices (with pre-set pin connections (and settings and values) that are needed by the DemoProg1.ino program. Run it to see the IO devices and program in action.

You can then try out a more complex (and fun) program DemoProg2.ino that has musical playback and IO devices moving to the music (my acknowledgment to the animated TV program, the Simpsons, for that one). This second demo program also shows that you can split your code (and included data) between multiple files for better viewing and navigation.

Que vamo a traducir de forma automática con el traductor de Google , que sin dar una traducción perfecta. Suele dar una traducción con la suficiente calidad para poder entender lo que dice

README UnoArduSimV1.5

Cuando se ejecuta por primera vez UnoArduSim.exe, verá un conjunto predeterminado de los dispositivos de E / S (uno de cada uno de los ocho de los “grandes” los dispositivos de E / S, y varios de cada uno de los “pequeños” los dispositivos de E / S), y un “simple.ino” programa predeterminado ficticia que puede ejecutar inmediatamente.

Puede utilizar el menú Configurar para ajustar el conjunto de dispositivos de E / S, y desde el diálogo proporcionado “Guardar” que la configuración para la próxima vez (como un archivo de texto con el nombre). Ese nombre de archivo se añadirá automáticamente al archivo myArduPrefs.txt que se carga en el siguiente arranque del programa – para volver a la configuración de inicio predeterminada, elimine la línea IODevs en el archivo myArduPrefs.txt (o simplemente borrar ese archivo entero) .

Cuando esté listo, puede cargar y probar el programa de demostración proporcionado DemoProg1.ino – que el programa tiene que tener un determinado conjunto de dispositivos de E / S conectados al mismo, a fin de utilizar “Dispositivos Configurar-> IO” y “carga” del myUnoDevs_DemoProg1.txt archivo. Eso va a cargar los dispositivos (con conexiones de pines pre-establecido (y los ajustes y valores) que son necesarios por el programa DemoProg1.ino. Ejecutarlo para ver los dispositivos IO y el programa de acción.

A continuación, puede probar un más complejo (y divertido) DemoProg2.ino programa que tiene la reproducción musical y dispositivos IO en movimiento a la música (mi reconocimiento al programa de televisión animada, los Simpson, para que uno). Este segundo programa de demostración también demuestra que se puede dividir su código (y datos incluidos) entre varios archivos para una mejor visualización y navegación.

Traductor de Google para empresas:Google Translator ToolkitTraductor de sitios webGlob

Así pues hagamos lo que nos dice, ejecutar por primera vez UnoArduSim.exe, y ver que pasa. Pinchamos sobre el fichero UnoArduSim.exe y al cabo de un instante aparece la siguiente pantalla

primera pantalla

La pantalla del ordenador aparece dividida en tres secciones, la de la esquina superior izquierda, destinada a tener el sketch que vamos a probar, a de la esquina inferior izquierda que es la que nos va a dar el valor de las variables cada vez que se produzca una parada en la ejecución del programa y la de la derecha que es el simulador de la tarjeta Arduino

Si pinchamos dos veces en cualquier punto de donde aparece el sketch, (secciones la de la esquina superior izquierda), se abre un editor de textos que nos permite escribir el programa y hacer los cambios que queramos en el texto como si de un editor corriente y vulgar se tratara.

editor fdel programa

 

Por probar, he metido el programa más sencillo que conozco, que es el que vimos en este Curso de Arduino , en el capítulo ·”Principales opciones del Menú de Inicio de Arduino,” que si recuerdan, no hace más que parpadear el led que hay en la Tarjeta Arduino asociado al Pin 13. La ventaja de este programa, es que no se necesita conectar nada a la tarjeta, por lo que podemos probarle en nuestro simulador con las mínimas complicaciones posibles. Poco a poco iremos complicando la cosa.

El sketch era el siguiente:

void setup() {
// código de configuración, PIN13 como SALIDA, para ejecutar una vez
pinMode(13, OUTPUT);
}

void loop() {
// código principal, encender, esperar, apagar, esperar
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}

Que con un COPY/PASTE vamos a introducir íntegramente en nuestra ventana del editor de textos. Con lo que la pantalla del editor quedará con un aspecto similar al siguiente:

editor del programa 2

Y cuando hacenos “Save” (Salvar), clicando en el botón de la derecha, se traspasa a la secciones del sketch en la esquina superior izquierda, aunque antes, sale una pantalla solicitando la confirmación de que deseamos el cambio, para evitar errores por despiste. Pero al hacerlo verán, que debajo del texto introducido,, han aparecido unas lineas de programa que no hemos escrito.. Les amplio esta zona a continuación:

primera pantalla 3

 

UnoArdSin texto

Han aparecido dos lineas de comentario y una función para nosotros desconocida que se llama “int main()” que dentro de las instrucciones que contiene, llama a la función “setup” y a la función “loop”.

Esta función se crea automáticamente en el simulador, siempre es igual, y su utilidad es la de ejecutar una vez la función “setup” y indefinidamente la función “loop” como lo haría realmente la Tarjeta Arduino, a la vez que controla la emulación gráfica en la sección derecha.

Con saber que la crea el simulador, que se añade automáticamente sin que nosotros hagamos nada, y que no la tenemos, (ni podemos), tocar, estamos del otro lado. Estas lineas no aparecen en la ventana del editor de textos, por tanto no hay posibilidad de poder cambiarlas.

Supongamos que comentemos un error de sintaxis en alguna línea de sketch, ¿que pasará?. Por ejemplo vamos a borrar un punto y como “;” de final de una línea, lo que indica al procesador que la sentencia se ha acabado, por ejemplo, el punto y coma ”:” situado en la línea donde encendemos el led (HIGH).

primera pantalla 2

 

Al traspasar el texto del sketch, automáticamente se pone azul la linea con el error y en el pie de la pantalla aparece un mensaje, (en inglés), que intenta aclararla razón del error. En nuestro caso sale PARSE ERROR (ERROR DE ANALISIS), que seamos honestos, mucho no aclara, pero lo que si aclara bastante es que la línea azul, nos marque en que sentencia está el error.

Corregimos el error y todo vuelve como estaba antes, la linea azul fuera de nuestro texto nos indica que al menos sintácticamente el programa está bien escrito, es una simulación equivalente a que el programa se compile cuando probamos en real.

Área de control de variables

Observarán que en este caso, la esquina inferior derecha, donde deberían aparecer las variables, no aparece nada, porque este programa, excepcionalmente, es tan sencillo que no utiliza ningún parámetro ni variable, algo rarísimo. En otros ejemplos, veremos que aquí aparecen esas variables, con los valores como los hayamos inicializado y que van cambiando a medida que el programa avanza, para resaltarlo se señalara con una raya azul la variable que haya cambiado de valor con la ejecución de la línea.

Por otra parte observarán que el pin 13 se encuentra en color azul, en vez de gris, lo que indica que ese pin ha sido activado como pin de OUPUT lo que confirma que encima de el hay una “O” en vez de una “I” pues los pines por defecto están en INPUT y encima vemos un “0” sobre fondo azul lo que indica que en este momento no está saliendo corriente eléctrica por ese pin, a diferencia del pin 0 que esta en OUTPUT “O”, que se utiliza también como receptor “Rx” en comunicaciones asíncronas, que si esta recibiendo electricidad y por ello esta a “1” y en color rojo, (pues la tarjeta se supone que está conectada al Pc) .

Ejecución del sketch

Por fin hemos conseguido introducir nuestro sketch en el simulador, ahora no nos falta más que simular su ejecución.

Observen los iconos que aparecen en la esquina izquierda de la pantalla.

Iconos

La franja del menú, contiene una serie de opciones que al desplegarlos se abre dejando una serie de subopciones que más o menos son las mismas que se utilizan en todos los sitios, Poco a poco ya las iremos utilizando y contando para que valen. Hoy nos vanos a centrar en las opciones de “Execute” (Ejecutar), que permiten lo que pretendemos en este momento, que es simplemente simular la ejecución del sketch.

Para ello vamos a ver algunas de las subopciones que tiene la opción del menú “Execute”(Ejecutar),

Si despegamos este submenú veremos que tiene una amplia variedad de subopciones

menú execute

 

 

Reset (Reiniciar)

ResetHacer “Reset” (Reiniciar), es equivalente a clisar en el botón rojo de la Tarjeta Arduino , (algo que también se puede), o lo que es lo mismo, dejar todo como está al principio del programa. Podemos conseguir hacerlo, clicando en el botón rojo de la tarjeta, en esta subopción, y además en uno de los iconos que hay en la barra de herramientas, como el icono negro que mostramos situado bajo la opción “VarUpdates”.

Si tuviéramos variables, veríamos que estas adquieren los valores con que las hemos inicializado y la barra azul que indica qué mandato se está ejecutando se sitúa sobre la función “main” que es la que controla el proceso de simulación.

Halt (Detener)

DetemerHalt” para o detiene la ejecución ahí donde se encuentre el programa en ese momento. Es útil tanto para finalizar la ejecución del sketch, como para estudiar con calma los valores de las variables en ese momento, pues a diferencia de Reset”, deja las variables con sus valores en el momento de pararse y no las inicializa.

Hay un icono rojo como el que se muestra que esta a la izquierda de “Reset” que realiza la misma acción. Que habitualmente esta rojo y que se pone gris cuando para.

Run (Correr)

Ejecutar continuoAl clicar en esta opción ponemos a funcionar, (correr), el programa de la forma más sencilla, se ejecuta automáticamente. Es decir sin paradas. Lo mismo podemos conseguir con el icono verde similar al que enseño que está dos iconos a la izquierda del de “Reset”

Si lo clikan, verán que en nuestro caso. el cuadradito amarillo que simula el led asociado al pin 13 se pone a parpadear y así se mantiene por tiempo indefinido, hasta que apretemos “Reset” o “Halt”. Si hemos apretado “Halt” y volvemos a clicar “Run”, el programa continua desde ese punto de parada. Puede ser una buena forma de estudiar los valores que toman las variables en un determinado momento, lo difícil a velocidad normal va a ser acertar con el momento de parada. Por ello esta opción, por si sola suele ser poco útil, si no tenemos idea de donde estamos en la ejecución del programa, casi siempre se suele utilizarse conjuntamente con las subopciones “Animate” (Animar) y Slow Motión” (Cámara lenta)que veremos a continuación

Animate (Animar)

Nos permite seguir la linea que se está ejecutando. porque aparece una barra azul, que se sitúa encima de la línea que se esta ejecutando en cada momento. El poner en marcha esta opción. reduce la velocidad de ejecución del programa lo suficiente, para que nos de tiempo de ver a la barra. Por tanto, la velocidad de ejecución, deja de simular la que tendría la tarjeta Arduino UNO, para ser más lenta, sin embargo sigue siendo aun muy rápida, si no para el ojo humano, si para nuestra velocidad de reacción y comprensión de lo que ocurre, por lo que podemos añadir la opción “Slow Motión” (Cámara lenta) que expiaremos a continuación como su nombre indica relentiza la acción

Slow Motión (Cámara lenta)

Reduce la velocidad de ejecución de similar a la de la tarjeta, (si el procesador de tu Pc lo soporta, que es lo normal), a una velocidad unas diez veces más lenta, lo que permite seguir con más facilidad la evolución del programa y estudiar como cambian de valor las variables en “tiempo real”.

Step into (Entrar en)

Paso a PasoMejore que “Entrar en” hubiera sido traducirlo por “Paso a paso”, pues cada vez que cliquemos en esta subopción el programa avanzará una línea, En este caso que presenta,os, que es extrordinariamente sencillo, podemos permitirnos ese lujo de correr todo el programa paso a paso, pues ademas tenemos un icono amarillo, como el que mostramos, situado a la izquierda del icono “Run” verde que permite fácilmente clicarlo.

Si tuviéramos variables, veríamos los valores que estas tendrían después de parar en cada una de las líneas de programa, lo que nos permite fácilmente depurar el programa, cuando tenemos un punto con especial complejidad. Sin embargo, lo habitual es combinar esta acción con otra que te pare el programa un poco antes del punto conflictivo, pues no es cosa de correr un programa de 500 lineas de una en una. Eso es lo que hace la subopción siguiente.

Run to (Correr hacia)

Run toEsta subopción permite parar el programa allí donde indiquemos. Para ello hay que efectuar dos acciones, la primera con el sketch parado marcamos con el ratón en que línea queremos que pare, para ello basta clicar sobre la linea que queremos parar, (vemos que la linea azul se desplaza a ese punto) y luego clicar en “Run to”(Correr hacia) o bien en el icono rojo similar al que indicamos.

Por ejemplo una vez parado el sketch en esa línea podemos recorrer el programa línea a línea clicando en el icono amarillo de “Step into” con lo que será fácil recorrer la parte más conflictiva de nuestro sketch olvidándonos del resto del programa.

Una herramienta perfecta para poner a punto los programas

Con esto doy por finalizado por hoy el aprendizaje del manejo de esta simulación. Quiero resaltar la poderosa herramienta que tenemos para poner a punto los sketch, pues nos permiten un control total linea por linea del sketch, con un escaneo de los diversos valores que van adquiriendo las variables en el transcurso de la ejecución. Como veremos en artículos posteriores esto facilita mucho el poner a punto los programas, por tanto siempre que sea posible pondré a punto los programas en la simulación antes de construir el Hardware y probarlos en real. En ejemplos más complicados y con hardware que pongamos en el futuro, podremos probar la utilidad de poder observar estos valores.

Comfigurar el hardware

Aun nos falta hacer una cosa. Si nuestro software no utiliza ningún componente electrónico, ¿por qué aparece la Tarjeta rodeada de componentes no utilizados? ¿Podemos eliminarlos?

Por supuesto que si hay una opción en el menú “Configure” (Configuración) que al desplegarse presenta el submenú “I/O Devices” (E/S Dispositivos), que vale para seleccionar los dispositivos que deseamos manejar (simunladamente) con la tarjeta Arduno.

configuracion

 

Si clicamos en ese submenú nos aparece una pantalla con todos los dispositivos que podemos utilizar con nuestra tarjeta y al lado un número que indica cuantos utilizamos en muestra configuración.

configuracion 1

En nuestro caso aparecen como componentes ligeros, de los cuales puede tener como máximo 16 componentes:

  • 2 Pusn Button (pulsador)
  • 4 Side Switch (Interruptores)
  • 2 Piezo Speakers (Chicharras/Zumbadores)
  • 6 LEDs
  • 1 Analog Slder Pars (componete analógico deslizante)

, y como componentes pesados de los cuales solo puede tener 8 componentes

  • 1 Servo Motors
  • 1 DC Motors (Motores de Corriente continua)
  • 0 Sreppers Motor (Motores paso a aso)
  • 1 Digital Pulsers (Pulsos digitales)
  • 1 Funtion Generators (Generador de funciones)
  • 1 Soft Serial Ports (Puertos Series ligeros)
  • 1 SPI Slaves ( Bus de comunicaciones Serial Periferical Interface Esclavos)
  • 0 Shift-reg Slaves (Bus de comunicaciones de cambio de registro esclavos)
  • 1 12C Slaves (bus de comunicaciones 12C esclavos)
  • Aparte podemos o no ten seleccionado
  • USB Serial (comunicación serial USB)
  • SDCARD (Tarjeta de datos SD)

Muchos de esto componentes y comunicaciones muy probablemente no los conozcáis , poco a poco los iremos utilizando y viendo para que valen,

De momento como en nuestro caso no necesitamos montar ningún componente los vamos a borrar todos poniendo un cero en las casillas correspondientes.

configuracion 2

Una vez que demos al “OK” a la nueva configuración, modificaremos la configuración de hardwara asociada al programa. Con ello conseguimos que muestra tarjeta parezca ahora sola en la sección gráfica de la simulación.

Blink 2

 

Guardar el trabajo realizado

Ahora sólo nos resta, aprender a guardar lo realizado, tamto en lo referente al sketch que hemos escrito como a la configuración que hemos elegido. El , medio de hacerlo es similar al que se utiliza en cualquier programa de Windows. Desplegando la primera opción de menú llamada “File” (Fichero) que mas o menos tiene los habituales submenús

menu file

Al opción “Save as” (Salvar como), permite salvar el trabajo realizado con el nombre que prefiramos y en la carpeta que queramos, yo lo he salvado en la carpeta donde tengo todo lo referente a este programa llamada UnoArdSinV1.5 con el nombre “Blink” que es el tradicional que se da a este fichero

Si comparan el estado actual del directorio de esa carpeta, con el inicial, observarán, que en la primera línea de ficheros hay un fichero que antes no estaba llamado “Blink” precedido del logotipo de Arduino que contiene todo lo que hemos hecho.

Blink

Lo explicado se corresponde más o menos, con lo que explican los tres piremos vídeos del Tutorial de Agustín Borrego, que aconsejo ver, como complemento para obtener un perfecto aprendizaje de la herramienta.

Félix Maocho

 

 

 

indice

12 junio 2016 - Posted by | Curso de Arduino | , ,

Aún no hay comentarios.

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: