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.
Descargar el programa
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.7.2.zip con 1147k firmada por el Prof Simmons de fecha Feb 7, 2017. 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.7.2.zip\UnoArduSimV1.7.2
En el fichero del usuario para descargas, (Downloads), que tiene de forma estándar Windows, se sitúa el fichero bajado UnoArduSimV1.7.2.zip que al desplegarse, creó la carpeta llamada UnoArduSimV1.7.2 a la que fueron a parar todos los ficheros descomprimidos que fueron los siguientes:
Por lógica comenzamos leyendo el fichero READMEV1.7.2, pues tradicionalmente los fichero REDME han tenido las instrucciones necesarias para instalar la aplicación. En este caso el fichero dice lo siguiente:
README UnoArduSimV1.7.2
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.
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.
Por probar, he metido el programa más sencillo que conozco, que 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:
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:
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).
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.
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
Reset (Reiniciar)
Hacer “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)
“Halt” 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)
Al 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)
Mejore 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)
Esta 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.
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.
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.
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.
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
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.7.2 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.