Arduino ZERO

Vamos a probar la placa Arduino ZERO que tenemos, así podemos verificar su correcto funcionamiento y ademas chequear la comunicación con el PC/MAC en el que estamos ejecutando el IDE. Usaremos un ejemplo ya escrito por el desarrollador del IDE, el Sketch BLINK. Este simplemente enciende y apaga el led de la placa ZERO conectado a la salida 13. Por defecto el Sketch enciende y apaga el led cada segundo, nosotros lo cambiaremos a 0,1 seg o 100 mseg.

- Vamos a ver a continuación la descripción paso a paso de la carga y prueba del Sketch BLINK.
- También tenemos al final un video con todo el proceso completo


Prueba y ejemplo BLINK

Ejecutamos el IDE, en este caso desde un PC.

Una vez terminado de abrir el programa, nos iremos al menú y pulsaremos: Archivo - Ejemplos - 01.Basics - Blink. Con esto abriremos uno de los ejemplos que trae con defecto el IDE.
Los ejemplos vienen clasificados por el tipo de prueba que vayamos a realizar (Basics, digital, analog, etc.) o por el tipo de placa Arduino (Bridge, GSM, etc.)

Una vez abierto el ejemplo BLINK tenemos dos ventanas abiertas, la del ejemplo y la que se abre por defecto. Cerramos el Sketch que esta vacío y dejamos solo el ejemplo BLINK.

Redimensionamos la ventana (la hacemos más grande) para poder ver el código completo y la parte de abajo (que ahora esta vacía) donde luego aparecerán mensajes del IDE indicándonos partes del proceso.

Una vez redimensionada la ventana, vamos a decirle al IDE el modelo de placa Arduino al que vamos a mandar el Sketch. En nuestro caso será una placa Arduino ZERO. Para ello nos vamos al menú del IDE en la parte superior y pulsamos: Herramientas - Placa:"un modelo de Arduino". Podemos ver que en mi caso no existe la placa ZERO por lo que procedemos a descargar de internet la tarjeta ZERO desde el gestor de tarjetas.

Aquí podemos ver el gestor de tarjetas y donde podemos buscar la familia Arduino SAMD Boards (32-bits ARM Cortex-M0+). Dentro de este paquete están las las placas que usan MCU's de la familia SAMD, entre las que se encuentra la Arduino ZERO.
Pulsaremos la opción Instalar para que todas estas placas estén disponibles desde nuestro IDE para poder ser usadas. Esperamos que se instale y salimos del gestor de tarjetas.

Aquí tenemos ahora dos opciones con nuestra plaza ZERO: Usar el puerto de programación (Programming Port) o usar el puerto nativo (Navite USB Port). En nuestro caso usaremos el puerto nativo que se comunica directamente con la MCU SAMD.
Para ello nos vamos al menú del IDE en la parte superior y pulsamos: Herramientas - Placa:"un modelo de Arduino" - Arduino Zero (Native USB Port)
Con este cambio en el IDE le estamos indicando que la placa a la que va destinado el Sketch es un Arduino Zero y que se enviará a través del puerto nativo de la placa y, cuando compilemos el código lo generara específicamente para este modelo de placa y solo para este. Esto es muy importante, ya que si erramos en este punto no conseguiremos que nuestro Sketch llegue a ejecutarse nunca.

Es el momento de conectar nuestra placa Arduino Zero al ordenador donde se esta ejecutando el IDE mediante un cable USB. En el caso de la placa que se ve en las fotos (una Arduino ZERO original) el puerto USB de la placa es un USB tipo micro-B y el ordenador un USB tipo A. Solo necesitamos un cable corto de conexión USB de tipo A a tipo micro-B.
Al conectarlo el led de ON se encenderá indicándonos que la placa tiene alimentación y esta funcionando. Es importante saber que al conectar la placa a cualquier alimentación se ejecutara el programa que este en esos momentos en la memoria del MCU (microcontrolador, Micro Controller Unit), y será así indefinidamente hasta que desconectemos la alimentación o carguemos un nuevo programa.

Una vez conectado el Arduino ZERO, si vamos a: Herramientas - Puerto:"el último puerto asignado" - Lista de puertos disponibles, podemos apreciar que ha aparecido un puerto nuevo activo con una placa Arduino conectada: COM3 (Arduino Zero (Native Port)). Si no esta seleccionado, lo seleccionamos.
En estos momentos ya tenemos elegida la placa Arduino a la que mandaremos el Sketch y el puerto donde esta conectada físicamente la placa.

Vamos a modificar un poco el programa Blink para que el parpadeo del Led 13 de la placa se encienda y se apague mas rápidamente. Por defecto el ejemplo Blink tiene puesto dos delay(1000); lo que hace que el sketch espere 1000ms (1 seg) antes de cambiar el estado. Vamos a cambiar el valor de 1000 por 100, quedando entonces la instrucción delay(100); esto hará que el cambio de estado se produzca cada 100ms o 0,1seg (mucho mas rápido).

Una vez editado el sketch, pulsamos el botón verificar para que el IDE compruebe por nosotros si hemos cometido algún error. OJO, es importante saber que si el IDE da un aviso de error, casi al 100% estará mal escrito el programa y no se podrá subir. Pero si no da errores no es 100% seguro tampoco que el sketch no tenga errores, solo indica que no hemos cometido errores de sintaxis. Que funcione el programa dependerá de nuestra habilidad a la hora de escribirlo, solo de eso.

Al pulsar el botón de verificar, si todo ha ido bien y solo hemos cambiado el valor de las instrucciones "delay", el IDE nos informa en la parte inferior del tamaño del Sketch en bytes, entre paréntesis del porcentaje de memoria que hemos ocupado en el microcontrolador, la máxima memoria que tenemos disponible, cuanto usan las variables globales en la memoria dinámica, etc... y nos asegura de la ausencia de errores. Estamos listos para enviar el Sketch a la placa arduino y que se ejecute.

Si pulsamos por fin el botón de subir, el IDE compilara de nuevo el Sketch para la placa que le hemos informado que tenemos conectada y lo enviara a través del puerto USB Nativo en el que esta conectada nuestra placa Arduino Zero. Sabremos que todo va bien cuando al final de la linea de comandos aparezcan los mensajes de enviado correctamente y que se a procedido a resetear la CPU.

Si todo ha ido correctamente, el led L conectado internamente a la salida digital 13 del Arduino ZERO empezara a parpadear y oscilar cada 100ms, quedándose en este estado hasta en infinito mientras tenga alimentación la placa Arduino.