El Arduino es una tarjeta programable en lenguajes de alto nivel que contiene un microcontrolador ARM que en esencia es prácticamente una computadora completa. Los creadores de Arduino han tenido mucho éxito con su sistema y probablemente una de las razones es que tanto el hardware como el software son abiertos, es decir, los creadores han creado una plataforma que cualquiera puede copiar y en algún caso mejorar, sin tener que pagarles un centavo de regalías. Tal vez el truco esté en que Arduino hace una serie de tarjetas -como la popular Arduino UNO- que resulta más práctico y barato, que armar de cero la propia. El hecho de poner todo en un entorno abierto da la posibilidad que mucha gente se involucre y los productos mejores significativamente.
Arduino se programa no solamente en Sketch o en C, sino que ya hay una serie de lenguajes de programación que pueden usarse en esta plataforma. Veamos algunos:
- ArduBlock – construido para aquellos que empiezan a programar. En lugar de escribir código aquí se construyen los programas de forma visual usando bloques que contienen las instrucciones. Es lo equivalente a Scratch, un lenguaje de bloques creado en el MIT para enseñar a los niños a programar. Cabe decir que aunque parece un lenguaje de principiantes, puede servir como una introducción a lenguajes ya más sofisticados más adelante.
- Snap4Arduino – se basa en el lenguaje de tomar y soltar (drag&drop) desarrollado en Berkeley. este lenguaje ofrece una experiencia ligeramente diferente a la de ArduBlock. El método para armar sus scripts se parece mucho al diseñar visualmente una interfaz, pero claramente el lenguaje está diseñado para gente de más edad. Los autores indican que aún hay muchos bugs en el sistema, pero que es completamente usable en general. Snap4Arduino no compila código, pero interactúa con el Arduino mientras está conectado a la computadora.
- C# – Un lenguaje que cada vez es más popular y que es el estándar de facto por ejemplo en Xamarin. En sí, se trata de la biblioteca CmdMessenger, con la que se puede ir más allá de la simple conexión serial entre el Arduino y la computadora. CmdMessenger puede usarse dentro de Visual Studio y a través del lenguaje C# poder llamar funciones y mandar y recibir comandos. En muchos sentidos es un enfoque diferente a los lenguajes para Arduino y cómo se usan.
- Python – Aunque Python trabaja en general como un intérprete, es posible usarlo para comunicar el dispositivo a través del puerto serial. Esto se hace de forma muy simple en cualquier sistema Unix, pero si se usa PC o Mac, entonces PySerial puede ser de mucha ayuda. Se requiere una copia de Python en la computadora para poder interactuar con el Arduino. Probablemente no sea una buena idea introducirse en el lenguaje Python si se es principiante. Lo mejor es adquirir cierta soltura programando para después pasar a un lenguaje con un sinfín de características como es Python.
- Tiny Basic para Arduino – del cual ya hablamos en algún otro artículo.
- Sketch – el cual es uno de los lenguajes con más apoyo por parte de la comunidad de Arduino y se usa para un buen número de proyectos. Este lenguaje es muy parecido a C en su sintaxis y es muy sencillo de usar en general. Hay mucha documentación y es una posibilidad muy sólida frente a otros que aún tienen dificultades, bugs o un reducido número de usuarios.
La cuestión parece estar zanjada. Hay muchos lenguajes para programar los Arduino. En mi opinión lo importante es entrarle a programar, que de acuerdo al desaparecido Dr. Jaime Litvak: “es una de las cosas más divertidas que se pueden hacer con los pantalones puestos”.
Referencias: