Introducción Placa Arduino

Vamos a comenzar a programar con Arduino.

Como era de esperar, lo que suele llevar más tiempo a veces es instalar el IDE de Arduino y probar que funcione en los equipos, ya sean Linux, Windows o Mac.

DRIVER CH340

Es posible que hayamos comprado una placa no oficial de Arduino mucho más barata que la Arduino original, no por ello peor, pero con una serie de inconvenientes asociados.

Para empezar hay que saber que para el sistema operativo Windows  requiere de un driver especial que hay que instalar manualmente. Esto se asocia al chip serial CH340 que no detecta correctamente el puerto de comunicación con la placa.

Driver para ordenadores de 64 bits.

En el resto de sistemas no debería dar ningún problema, pero como información adicional podéis acceder a los drivers de otros SO en el siguiente link.

Para más información se puede acceder a la página del fabricante (chino por supuesto), y si os aclaráis obtener desde la siguiente página los mismos drivers.

CÓMO PROGRAMAR ARDUINO

Existen muchas maneras y plataformas de programar una placa Arduino:

El caso es que a pesar de tener tantas formas, con sus ventajas e inconvenientes. Y uno de los peores inconvenientes que no se explican en casi ninguna parte es el siguiente.

 

Hay 2 claras diferencias a la hora de programar una placa Arduino. Una es programar el microcontrolador y otra es programar un firmware en el microcontrolador capaz de conectarse a alguno de los programas antes mencionados.

Por ejemplo, es el caso de Scratch, LabView o Matlab. Para manejar Arduino a través de estos programas, primero hay que cargar un firmware o sketch predeterminado desde el mismo IDE de Arduino para que funcionen en los mismos.

Ésto nos permite ejecutar funciones en tiempo real y así poder observar los cambios de manera directa, sin tener que ir cargando una y otra vez nuestros programas. Aún así suelen estar muy limitados porque nos imposibilitan la opción de cargar librerías externas, ya que el firmware en la placa está diseñado solo para responder a las funciones básicas que ofrecen estos programas, que son el manejo de I/O digitales, analógicos, manejo de servomotores y poco más.

La gran y enorme desventaja de esto, es que si queremos usar la placa de manera independiente; como ocurriría si queremos establecer una conexión remota o que un robot vaya paseando por el campo; entonces este método no nos sirve para nada. Cuando desenchufemos la placa del ordenador desde el USB, el programa cargado seguirá siendo el del firmware cuya utilidad es transmitir información por el puerto serie del ordenador para responder con esos programas. Pero para hacer un robot no necesitaremos un programa intermediario.


En cambio otros como el propio IDE, ArduBlockly, Bitbloq, Codebender sí que nos permiten cargar programas completos que funcionarán con alimentación externa, sin necesidad de conectar al ordenador. Dentro de ésta categoría hay que resaltar que ArduBlockly, Bitbloq y Blocklyno no son programas, sino que son páginas web desde las que se permite el acceso a los puertos de comunicación del ordenador e instalan el código creado desde el navegador. Por ello, hay que asegurarse bien de tener internet en casa, porque si necesitáis hacer una demostración en público es bastante fácil que las leyes de Murphy se vuelvan en vuestra contra.


Ardublock y Bitbloq tienen una interfaz de programación por bloques muy intuitiva para jóvenes. Bitbloq bastante más adaptada que Ardublock. Aquí hay muchos aspectos a tener en cuenta y he de decir que aunque Bitbloq tiene sus limitaciones, gana a Ardublock por algo tan simple como la posibilidad de crear funciones con parámetros de entrada, mientras que Ardublock crea lo que se llaman subrutinas que son procedimientos simples para ejecutar instrucciones repetitivas.


Ardubloq se puede extender, ya que al fin y al cabo es un programa escrito en Java dentro del IDE de Arduino, totalmente libre. Es tan libre que ofrece a las empresas la definición de sus productos para que aparezcan en el catálogo.

Ardublockly

De todas las opciones, de entre todas yo prefiero Ardublockly, que es otro modelo de programación desarrollado gracias a la tecnología de Google Blockly; y lo que hace es generar el código en función de una serie de eventos al mover los diferentes bloques sobre la zona de trabajo, para luego compilar en el servidor y pasar el programa a la placa.

A medida que se van añadiendo bloques, el código del programa se va creando y se puede observar a la derecha como afectan los cambios dentro del propio lenguaje de Arduino. De esta manera, sabemos cómo se interpreta cada cambio para aprender conceptos de algoritmia básica sin necesidad de aprender todo el lenguaje y viceversa; aprender como se desarrolla el código del programa paso a paso.

Para su uso educativo es lo mejor que hay y es muy atractivo. Es por ello que he creado mi propia página de Ardublockly, desde la que se puede acceder a través del menú y a la que aplicaré cambios para mejorar y extender su capacidad.

Esta plataforma es la que utilizaremos en los tutoriales de nuestros robots y nos servirá tanto para aprender como para programar nuestras propias creaciones.

En fin, según cual sea la aplicación que se le vaya a dar es mejor uno u otro. Pero por mi parte lo esencial es que su funcionamiento sea independiente y que las opciones sean lo más abiertas posibles. Y ahí el único que gana es el propio IDE de Arduino, el resto son interpretaciones de lo mismo. Pero cada cuál puede usar el que más le guste.