Arduino – First Steps

Vamos a comenzar a programar algunos ejercicios básicos con Arduino en Ardublockly.

Una vez que pongamos a punto la placa para poder empezar a programar, vamos a comenzar a crear unos programas iniciales para comprender rápidamente su funcionamiento.

  • Iniciación en programación, función setup, loop y otras funciones básicas.
  • Comunicación de la placa a través del monitor serie.
  • Definición y manejo de los pines de entrada y salida que proporciona nuestra placa. Diferenciar entre pines analógicos y digitales.
    • Salida digital (LED)
    • Entrada digital (BUTTON)
    • Entrada Analógica (LDR)
    • Librería Servo (SERVO)
  • Aspectos básicos de limpieza y depuración en la programación.
  • Serial Plotter

 

Iniciación en programación, función setup, loop y otras funciones básicas.

Como ya vimos en una lección anterior aplicado al juego del estanque de Blockly Games, los robots han de funcionar en bucle para poder actualizar su estado y las variables que captan a través de sus sensores.

Para ello Arduino contiene dos funciones que están reservadas para su funcionamiento. Estas dos funciones siempre han de estar presentes para desarrollar cualquier programa con esta placa.

En esencia, la función Setup es la que se ejecuta al comienzo del programa para poder inicializar las variables o inicializar los objetos que están conectados a ella.

Una vez que se han ejecutado todas las instrucciones al inicio del programa, nuestra placa pasa a ejecutar el bucle loop y todo lo que está contenido dentro se ejecuta repetidamente.

Por ejemplo en este ejercicio, el programa contiene una variable que hemos llamado num y lo hemos inicializado a 10. Y cuando pasa al bucle infinito loop, empezará a ejecutar la función que contiene para sumar de 1 en 1 su mismo valor. Esta es la forma de actualizar el valor de una variables con respecto al valor que teníamos anteriormente.

Comunicación de la placa a través del monitor serial.

Pero con el programa anterior, no podemos estar seguros de si el valor está sumándose correctamente. Para ello, vamos a usar el monitor serial. El monitor Serial, es una capacidad que tenemos para poder comunicar desde el puerto USB nuestra placa y poder observar desde el ordenador a través de una ventanita que es lo que ocurre ahí dentro.

Cuando tengamos este programa cargado solo tendremos que abrir el monitor y configurarlo con el valor de 9600 baudios por segundo que es la velocidad de comunicación a través del puerto.

Definición y manejo de los pines de entrada y salida que proporciona nuestra placa.

Esto solo es el comienzo para saber cómo crear el software de un programa, pero nuestros robots requieren de la manipulación de valores sobre los pines disponibles en nuestra placa. Es decir, vamos a pasar a programar el Hardware.

Nuestra placa suele tener 14 pines digitales y 6 pines analógicos. La diferencia entre un pin digital y otro analógico es que la información que pueden comunicar en un pin digital son solo 2 valores (0 o 1); que es el lenguaje de las máquinas electrónicas. Por ejemplo, este caso nos puede informar si una luz está apagada o está encendida.

Mientras que los pines analógicos presentan una escala más amplia de medida (0 y 1023); que nos puede informar si hay poca luz o mucha luz; en lugar de medir solamente dos estados.

Salida digital (LED)

Para este ejercicio, solamente conectaremos un LED al pin 10, para encender y apagar en función del parámetro definido anteriormente.

Entrada digital (BUTTON)

En este ejercicio vamos a conectar un botón. Para conectar un botón necesitaremos de un resistencia intermedia, a menos que tengamos un botón plug and play para conectar si nuestra placa está adaptada para ello. En caso de no tener una placa adaptada deberemos conectar el siguiente circuito.

Entrada Analógica (LDR)

Como hemos dicho antes, para poner a funcionar una entrada analógica, ahora habremos de obtener un dato de un sensor distinto de 1 o 0. Para ello nos viene muy bien la conexión de un sensor de Luz o LDR.

La luz se puede medir en distintas intensidades, es por ello, que el valor que obtendremos será un equivalente de la potencia de esa luz. Ya que es un porcentaje del voltaje que entra a la placa.

Se conecta de la siguiente manera.

Librería Servo (SERVO)

Para añadir un servo solamente tenemos que añadir la llamada a la librería para que podamos controlar los servomotores conectados al pin que hemos elegido. Los  servmotores son unos elementos un poco más complejos, pero en esencia lo único que necesitan es alimentación representada con el cable rojo y negro y la señal que indica el movimiento a realizar. Para conocer mejor el contenido de la señal PWM podéis dirigiros al siguiente enlace.

 

Aspectos básicos de limpieza y depuración en la programación.

Uso de paréntesis y llaves

Es muy importante utilizar correctamente el uso de llaves y paréntesis a la hora de editar el código.

Los paréntesis y las llaves, una vez que se abren se deben cerrar apropiadamente y cada instrucción debe de terminar en punto y coma.

Como se puede ver, existe una separación del margen izquierdo cada vez que se abre una llave; esto es muy importante para no perder tiempo a la hora de depurar; ya que a primera vista podemos observar la extensión de cada ámbito de programación.

A la hora de modificar algo en el programa ahorraremos tiempo si intentamos conocer en que afecta cada moficación.

Serial Plotter

Una de las ventajas que aportan las últimas actualizaciones son las lecturas de señal en una gráfica para observar la evolución de la misma en el tiempo. Lo único que deberemos hacer es escribir los datos que queremos representar por el puerto serie, al igual que hemos hecho antes, linea por linea.

Si queremos escribir más de un valor, solamente habremos de separarlos por una coma. Para evitar fallos en la creación de la gráfica es recomendable no introducir ningun texto y asegurarnos cuando hacemos un salto de linea.