Unidad 4. Introducción a la Robótica. Arduino y scratch, Mblock y UnoArduSim

Ya sabemos los rudimentos básicos de la programación con scratch, y ahora es el momento de aplicarlos a la robótica elemental, como introducción, mira, y apunta en tu cuaderno lo más interesante, los siguientes vídeos:

Arduino Visual con Mblock

Intro a Scratch for Arduino. S4A

Vídeo largo pero interesante y completo sobre Arduino, desde la forma de obtener el hardware hasta como programarlo y como realizar las primeras prácticas con IDE (programación escrita o textual)...

Actividad 0. Apuntes virtuales del Tema

Realiza una copia de los apuntes del profesor (Archivo - Hacer una copia - Borrar copia de y poner tu nombre al final).

Personaliza tus apuntes: Puedes cambiar tipo de letra, color, Logo, pero no debes cambiar el tamaño.

Apuntes: https://docs.google.com/document/d/1QzSOdxYuow1ZyTSFtMll5z4KmJ24Sb73D66qZ2TT8Os/edit 

Scratch para Arduino

Programar desde la aplicación Scratch (la que usamos en micro:bit)

Actividad 2: Sigue el tutorial, abre un documento de texto, por ejemplo el de tus apuntes y con Menú archivo- Nuevo - Dibujo. Copia y pega la imagen de un arduino uno, y con las herramientas Líneas y cuadros de texto, elabora un resumen de las partes de una placa Arduino Uno. Pregunta al profesor  para que sirven las partes que no conozcas. Cuando acabes, pega este esquema en tus apuntes.

Actividad 3: Ya conocemos las partes principales de la placa, ahora veremos los dispositivos más comunes que pueden conectarse a ella. Busca en Internet los componentes básicos más usados, y "pégalos" a tus apuntes. Pregunta al profesor aquellos cuya función no comprendas.

Por si queréis ver algún Kit de arduino:

https://www.amazon.es/ELEGOO-Conjunto-Iniciaci%C3%B3n-Arduino-Tutorial/dp/B06W2KF3PJ/ref=sr_1_2_sspa?keywords=arduino+kit&qid=1640079643&s=electronics&sr=1-2-spons&psc=1&spLa=ZW5jcnlwdGVkUXVhbGlmaWVyPUEyNVZDSllXNzAxOERSJmVuY3J5cHRlZElkPUEwMzE0MzYwMkdHT0FZQVo3QjE3WSZlbmNyeXB0ZWRBZElkPUEwNjYxNzEwNkxJSVA4Tzc1MDNCJndpZGdldE5hbWU9c3BfYXRmJmFjdGlvbj1jbGlja1JlZGlyZWN0JmRvTm90TG9nQ2xpY2s9dHJ1ZQ==

Y aquí, podéis consultar unos apuntes básicos de Arduino de internet ...

Apuntes_ARDUINO_nivel_PARDILLO.pdf

Arduino IDE

Simuladores de Arduino

S4A

S4A es una modificación de Scratch que permite programar la plataforma de hardware libre Arduino de una forma  sencilla de la empresa Citilab. S4A pone a disposición de la comunidad Arduino una aplicación para programar de manera gráfica Arduino. 

Ficheros para descargar S4A y ficheros para arduino ( Firmware) .

1. Para instalar S4A +Arduino se deberán seguir los siguientes pasos. 

2. Primero instalar el software S4A una vez que se haya descargado del su lugar de origen. 

3. Se deberá instalar en la tarjeta Arduino el Firmware correspondiente que facilita la comunicación con S4A.   Esto se realiza cargando el fichero firmware en el IDE de Arduino y después descargándolo sobre la tarjeta. 

4. Finalmente se ejecuta S4A y de realiza el diseño haciendo uso de las librerías de bloques correspondientes una parte de las cuales se encarga de la lectura y escritura de datos en la tarjeta de acuerdo siempre con la configuración que establezca el firmware. 


Páginas de referencia:

Primeras prácticas con S4A. 

Aquí tienes la introducción y la primera parte de las práctica a realizar con S4A:  

MBlock Online

Visualino

UnoArdusim

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.

Prueba del UnoArdusim introduciendo un programa

Para probar, puedes copiar el sketch o programa más sencillo que existe, hacer parpadear el led que hay en la placa de arduino (lo tienes a la derecha).

Guardar el programa

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.Ante cualquier error en el sketch, el programa nos lo mostrará en azul e intentará, con un mensaje al pie, ayudarnos para corregirlo.

Ejecutar el programa

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

El sketch a introducir es 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);

}



Ejecución del sketch. Opciones del Menú Execute

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