Programa tu Arduino desde Atom

por Ricardo Vega el 03/03/2016

Es posible que, si has trabajado con Arduino en algún momento, te hayas dado cuenta de que su entorno integrado de desarrollo no es precisamente la mejor parte de Arduino. Desde hace varios meses, estoy usando una sencilla alternativa que te permite verficar tu código y mandarlo a tu dispositivo mediante una herramienta igualmente gratuita y, desde mi punto de vista, mejor.

Atom y sus mil posibilidades

Atom se autollama a si mismo como el editor de texto 'hackeable' del siglo XXI. La verdad, si no lo has usado ya, te recomiendo que le des una oportunidad porque sus posibilidad son muy amplias. Es totalmente multiplataforma y, aunque detrás del desarrollo está GitHub, es Open Source y cuenta con una gran comunidad de desarrolladores mejorando y aportando cosas nuevas.

Si seguiste mi serie de tutoriales con Python, te darías cuenta de cómo aquella recomendación que hice en la primera parte sobre instalar un editor de texto medianamente potente, adquiría mayor importancia a medida que hacíamos ejemplos más complicados. En esa ocasión, ya te recomendaba el empleo de Atom o Sublime Text y es que ambos son muy similares en su funcionamiento: a través de paquetes y temas, podemos ampliar sus funciones principales, lo que nos otorga un sinfín de características.

Personalmente, soy usuario de ambos aunque te recomiendo Atom principalmente debido a tres motivos:

  • Es gratuito. (Sublime Text podemos usarlo de forma gratuita pero cada cierto tiempo nos aparecerá una ventana invitándonos a comprar la licencia y así ayudar al desarrollador).
  • En mi opinión, tiene un amplio margen de mejora y una gran comunidad detrás que hacen que cada día sea un poco mejor.
  • Es Open Source, por lo que puedes saber qué tienes. cómo funciona y mejorarlo tú mismo en le futuro si así lo deseas.

Atom y Arduino. PlatformIO

Como te habrás imaginado, es precisamente Atom el entorno que va a sustituir a partir de ahora a nuestro IDE Arduino. Principalmente, buscamos "algo" que nos permita escribir nuestro código en Arduino, compilarlo y subirlo a nuestra placa sin necesidad de salir de dicho entorno.

Si te descargas Atom, te darás cuenta que por defecto no vamos a poder compilar ni subir código y, aunque técnicamente si podemos escribir código, no disponemos de ninguna ayuda que lo diference de abrir el editor de texto que viene con tu sistema operativo y empezar a "tirar líneas".

Para ampliar estas capacidades y conseguir cumplir nuestros propósitos vamos a hacer uso de PlatformIO. Esta herramienta, no tiene nada que ver con Atom. En realidad, PlatformIO es una herramienta que nos permite trabajar con más de 200 plataformas / placas de desarrollo rápido sin crear dependencias con dichos elementos, es decir, es una herramienta que aunque nos permite trabajar con dispositivos de Arduino, Texas Instrument, Atmel o Nordic, es totalmente independiente de ellos. Su único requerimiento es Python y realmente es una herramienta inicialmente ideada para ser manejada desde la consola de tu ordenador, aunque su desarrollo ha dado lugar a un IDE propio basado en Atom y especialmente pensado para el Internet de las Cosas o, como la herramienta que vamos a usar en nuestro caso, varios paquetes fácilmente instalables en el propio Atom.

Instalación

Lo primero de todo es comentarte que existe una versión especifiamente diseñada de PlatformIO como IDE que sin duda es la mejor opción en el caso de que sólo te interese usar Atom con esta finalidad.

Sin embargo, en mi caso uso Atom para más tareas por lo que quiero tener otra serie de características de la versión "por defecto" de Atom. Si estás en mi caso debes recurrir como yo a los paquetes.

Para ello, debes descargarte e instalar Atom para tu Sistema Operativo y a continuación abrirlo y acudir a las preferencias según tu versión:

  • Mac OS X: Menu: Atom > Preferences > Install
  • Windows: Menu: File > Settings > Install
  • Linux: Menu: Edit > Preferences > Install

En este momento debes seleccionar el paquete que deseamos instalar. Existe una opción oficial que convierte nuestro Atom en algo tremendamente parecido a ese IDE oficial de PlatformIO del que hablábamos. Dicho paquete se llama platformio-ide. Sin embargo, si prefieres otras opciones, debes saber que existen y puede que se adapten mejor a tus necesidades.

En la caja de busqueda introducimos el nombre del paquete mejor se adapte a nuestros requerimientos (en mi caso platformio-ide) y le damos a instalar.

Debes tener algo de paciencia ya que tarda un poco y además nos pide reiniciar Atom pero una vez realizado ésto, tendremos Atom preparado para trabajar con PlatformIO y por tanto, preparado para trabajar con Arduino.

__Nota adicional__: en mi caso, uso Atom para muchas más cosas que programar con Arduino por lo que la barra que aparece a la izquierda es algo molesta según mi opinión por lo que decidí eliminarla. Si tu también deseas que no aparezca por defecto, debes ir a settings > packages > tool-bar > settings y desmarcar la opción "Visible". De cualquier modo siempre puedes mostrarla/ocultarla mediante ctrl + alt + t.

Demo: primer programa

Hagamos una prueba rápida para comprobar que todo ha funcionado correctamente.

/*
  Blink
  Turns on an LED on for one second, then off for one second, repeatedly.

  by Scott Fitzgerald
 */

void setup() {
  // initialize digital pin 13 as an output.
  pinMode(13, OUTPUT);
}

void loop() {
  digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);              // wait for a second
  digitalWrite(13, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);              // wait for a second
}

Seguramente, conozcas perfectamente este pequeño programa. Se trata de Blink y hace que el LED 13 de nuestro Arduino se encienda y apague cada cierto tiempo, por defecto un segundo. Vamos a cargarlo con nuestro nuevo entorno Atom + PlatformIO:

  • En la barra superior, pinchamos en PlatformIO >> Initialize new PlatformIO Project or update existing.
  • Seleccionamos por ejemplo Arduino Uno y una ruta cualquiera (con una carpeta vacia)
  • En unos segundos nos montará la estructura necesaria donde destaca:
    • fichero platformio.ini - fichero configuración del proyecto
    • src - carpeta donde debes poner tu código
    • lib - carpeta donde debes situar tus librerías privadas
  • Ademas nos genera una serie de fichero ocultos.
  • Abrimos platformio.ini para ver que pinta tiene el fichero.
  • En src creamos el fichero blink.ino donde colocamos el código de Blink. Guardamos.
  • Conectamos nuestro Arduino Uno por USB al ordenador.
  • En el menu superior pinchamos en PlatformIO >> build. Nos devolverá success.
  • A continuación pulsamos en upload. Nos devolverá de nuevo success y veremos como parpadea el led que lleva el Arduino Uno en su placa, todo sin necesidad de especificar el puerto.

Conclusiones

Como habrás visto, es muy sencillo manejar el entorno que hemos preparado en el post de hoy.

Me he dejado algunas cosas en el tintero como modificar la configuración para que Atom nos alerte en caso de que cometamos fallos de sintaxis antes incluso de ejecutar la compilación mediante un linter.

Está claro que apenas hemos visto nada tampoco de PlatformIO como tal, sino que más bien nos hemos centrado en él como una herramienta que nos posibilita trabajar con Arduino en Atom. En próximos posts, entraremos más en detalle sobre PlatformIO, hablando también de la configuración vía consola y de otras plataforma a parte de Arduino, información desde la cual podremos construir proyectos mucho más robustos.

Espero que te haya gustado mucho la entrada de hoy. Ya no tienes escusa para no usar un IDE como Atom y aprovecharte de todas sus funciones.

Acuérdate de compartir este post con tus seguidores si te ha gustado y me gustaría saber tu opinión acerca de entradas de este tipo. Puedes utilizar los comentarios para darme ese preciado feedback :)

¡Saludos y hasta la próxima semana!

Apoya al blog


Si te ha gustado este artículo, valora apoyarme económicamente a través de Patreon, una plataforma de Micro-mecenazgo con la que puedes hacerme un donativo que ayude a la continuidad del blog. Una pequeña ayuda significa mucho. 😃



Conviértete en Patreon

Deja tu comentario!