Calificación:
  • 1 voto(s) - 5 Media
  • 1
  • 2
  • 3
  • 4
  • 5
PlatformIO - El IDE de IDEs para Arduino y 200 plataformas mas
#1
resim

Como ya comente en el post de microcontroladores cortex, indique que me tope con un proyecto sobre una plataforma que aúna todo lo necesario para trabajar con algo mas de 200 placas de diferentes tipos de hardware en un solo IDE. Ademas este IDE esta mas desarrollado y cuenta con mas funciones que el entorno de Arduino. Sin dejar de lado que desde el mismo podremos picar código, compilar y cargar en los diferentes tipos de hardware. También tendremos un gran repositorio donde encontraremos librerías de todo tipo y de una forma muy sencilla.

Aprovecharemos el post para dar a conocer un IDE que creo tiene mucho potencial y comentar las dudas posibles. Tambien se pueden integrar nuevas placas y dispone de un gestor de librerias. Merece la pena dedicarle un rato a ver como es.

Paso a comentar como es la plataforma. Navegando por Internet, me he topado con una entrada de un blog, concretamente de Ricardo Vega, y lo voy a copiar tal cual para tener aquí la información. Podéis llegar al post desde el enlace siguiente: https://ricveal.com/blog/programa-arduino-desde-atom/

--------------------- Entrada de su blog ----------------------------------------

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.

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: Nos va a pedir en algún momento instalar Python. Concretamente la versión con la que funciona es la 2.7.X La versión 3 o superior no es compatible. Esta nueva versión de python tiene muchas librerías que han vuelto a rehacer y no son compatibles o no están todas portadas.

Demo: primer programa
Hagamos una prueba rápida para comprobar que todo ha funcionado correctamente.

Código:
/*
 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.
Citar
#2
Reservado
Citar
#3
¡Muy interesante! Le echaré un ojo cuando tenga tiempo. ¡Gracias!
Citar


Temas similares...
Tema Autor Respuestas Vistas Último mensaje
  Kit para iniciarse en arduino alex.rs98 5 313 22-08-2017, 09:05 AM
Último mensaje: cna
  problema con shield para arduino para cargar el codigo homer32 6 851 17-10-2016, 07:49 AM
Último mensaje: homer32
  Marlin adecuado para Arduino Mega 2650+Ramps 1.4 EbnalMacGyver 6 3,027 29-06-2016, 10:14 PM
Último mensaje: Lepes
  Traveling para niños, aprendizaje Arduino. Mentus 20 2,112 26-10-2015, 11:30 AM
Último mensaje: Mentus
  ¿Cámara para arduino? Iván 1 610 16-08-2015, 03:30 PM
Último mensaje: Iván