Instalación de PlatformIO en VS Code

Agustin Bassi

Jun 15, 2021 ‧ 30 min estimados ‧ #vscode #platformio #esp32 #arduino

Contenido

Objetivos

Prerrequisitos

Introducción a las herramientas

Instalación de Python

Instalación PlatformIO en VS Code

Configuración del puerto serie

Proyecto de ejemplo

Resolución de conflictos

Problema de puerto serie en Linux

Conclusiones

Bibliografía

Licencia

Objetivos

Visual Studio Code es probablemente el IDE de desarrollo más utilizado, y PlatformIO es una gran herramienta para desarrollar sistemas embebidos de manera profesional. Lo que vas a ver en este documento son los siguientes temas:

Prerrequisitos

Para poder realizar esta guía es necesario que cuentes con lo siguiente:

Introducción a las herramientas

Antes de ponernos manos a la obra veamos de qué se tratan las herramientas.

Visual Studio Code

Visual Studio Code es un IDE de desarrollo multiplataforma creado por Microsoft. Incluye soporte nativo para debugging, control de repositorios, resaltado de sintaxis, autocompletado y refactorización de código, entre muchísimas cosas más. También es personalizable y es posible cambiar el tema del editor, los atajos de teclado y las preferencias.

PlatformIO

PlatformIO es un ecosistema de desarrollo especialmente útil para sistemas embebidos que te ofrece un entorno de trabajo unificado independiente del hardware y software que utilices. Se encarga de manejar la descarga de bibliotecas, la instalación de los toolchains adecuados, la compilación y linkeo del código fuente, la detección automática de puertos, la descarga del código a la placa y muchas otras acciones.

Es una herramienta multiplataforma que se puede instalar de manera independiente mediante una interfaz de comandos (CLI) o bien se puede integrar en varios editores de texto como Visual Studio Code, Atom, Eclipse, y otros.  Entre sus principales características se encuentran las siguientes:

Esta imagen extraída de su página oficial - y en constante actualización - te muestra algunas estadísticas actuales de la plataforma.

La arquitectura de la plataforma está armada en capas, y en esta figura podés ver un diagrama detallado que las describe.

Tal como vimos, PIO se puede instalar directamente en el sistema y ser utilizado a través de la línea de comandos (CLI), pero resulta muy conveniente poder integrarlo en un IDE de desarrollo para combinar en el poder de edición de código de estas herramientas junto con el manejo simplificado de PIO para desarrollar proyectos embebidos. Por esa razón, en este documento vamos a mostrarte cómo instalar PlatformIO como una extensión de Visual Studio Code (VSC) que es uno de los IDEs más utilizados.

Instalación de Python

PlatformIO está desarrollado en lenguaje y necesita que esté instalado en tu sistema antes de que puedas utilizarlo. A continuación te mostramos cómo instalarlo dependiendo tu sistema operativo.

Podés saltar este paso si contás con una versión mayor o igual a Python 3.5 en tu sistema.

Linux

Si contás con un sistema medianamente moderno es probable que tengas instalado Python por defecto. Para ello ejecuta este comando en la terminal, y si la versión es mayor o igual a 3.5 podés saltar este paso.

python3 --version

En caso que tengas una versión más antigua que la 3.5 ejecuta los comandos siguientes que sirven para instalar Python en sistemas basados en Debian, como pueden ser Ubuntu, Debian, Mint, entre otros.

sudo apt-get update
sudo apt-get install python3
sudo apt-get install python3-distutils

Windows

Para instalar Python en tu sistema Windows el primer paso es descargar el instalador correspondiente desde la página de descargas oficial. Una vez que se descargues el instalador, ejecuta la instalación como cualquier otro programa, y activa el checkbox Add Python X.X to PATH como vemos en la imagen siguiente.

Una vez que termine el proceso de instalación vas a estar listo para descargar PlatformIO.

Instalación PlatformIO en VS Code

La instalación de PlatformIO en Visual Studio Code es muy sencilla. Simplemente tenés que ir a la sección de extensiones, buscar PlatformIO e instalar. En esta imagen podés ver los pasos necesarios.

Dependiendo de los paquetes de C++ instalados en tu sistema, VS Code te puede mostrar un popup para que instales algunas herramientas adicionales. Si así fuera, en la parte inferior de este link tenés para descargar el archivo cpptools-*.vsix que se corresponde con tu sistema operativo. Una vez que lo descargues presioná las teclas CTRL+SHIFT+P dentro de VS Code para abrir el menú de opciones. Cuando se despliegue el menú escribí “Install from VSIX” que abrirá una ventana donde podrás seleccionar el archivo cpptools-*.vsix que descargaste previamente.

Si estás instalando PIO en un sistema Windows y te encontrás con algún error adicional, en este link podés encontrar algunas formas para resolver los conflictos.

Con estos pasos ya tenés lista la instalación de PlatformIO dentro de VSCode. En el menú lateral izquierdo, así como también en el toolbar inferior se debería mostrar el ícono de la herramienta. Seleccionalo y abrí la opción PIO Home->Open para que veas la pantalla de inicio de la plataforma como en esta imagen.

El siguiente paso es configurar PIO para que puedas compilar y crear proyectos embebidos. Para eso seleccioná la opción Platforms del menú izquierdo. La configuración implica que PlatformIO descargue el compilador adecuado, las librerías de bajo nivel, el linker, y otras herramientas para que puedas programar tu placa.

Durante el proceso podés indicar si vas a descargar el toolchain para programar en entorno escritorio o para un sistema embebido. En este caso tenés que elegir la opción Install Embedded Platform para programar la placa basada en el módulo ESP32, y esta configuración aplica si tenés otra placa compatible con Arduino o similar. Vas a ver una imagen como la siguiente.

En este proceso vas a necesitar instalar también el framework para trabajar con tu placa embebida. La instalación te guía por el proceso y para este caso vas a necesitar instalar el framework Arduino desde el gestor.

Las plataformas embebidas están relacionadas con las arquitecturas de los procesadores (Espressif 32 - Espressif 8266 - ARM - PIC) y los frameworks son los SDKs para compilar cada plataforma. El más popular es Arduino, aunque hay muchos más.

Configuración del puerto serie

Una vez que tengas operativo PlatformIO en VS Code, para que puedas programar y descargar - flashear - el código a tu placa es necesario que configures adecuadamente el acceso al puerto serie. Esto te permite descargar el código así como también acceder a la terminal serie para interactuar con la aplicación.

Configuración para Linux

Según la documentación oficial, el primer paso es descargar las reglas sobre los dispositivos soportados con el siguiente comando (copiar todo en un solo comando).

curl -fsSL https://raw.githubusercontent.com/platformio/platformio-core/master/scripts/99-platformio-udev.rules | sudo tee /etc/udev/rules.d/99-platformio-udev.rules

Después es necesario reiniciar el servicio de udev con este comando.

sudo service udev restart

Finalmente, vas a tener que agregar tu usuario al grupo dialout para poder acceder al puerto serie. Ejecutá estos comandos.

sudo usermod -a -G dialout $USER
sudo usermod -a -G plugdev $USER

Para que las configuraciones tengan efecto es necesario que hagas un logout de tu cuenta o bien reiniciar el sistema.

Configuración para Windows

En el caso que estés realizando la instalación en Windows es probable que no necesites realizar ninguna configuración adicional sobre el puerto serie ya que los drivers y permisos de acceso deberían estar configurados.

Conexión de la placa

Si ya realizaste la configuración del puerto serie adecuadamente, vamos a chequear si PlatformIO la detecta. Para eso conectala mediante el cable USB a la PC, abrí la ventana de inicio de PlatformIO en VS Code y andá a la sección Devices en el menú lateral. Deberías ver una imagen similar a la siguiente donde se listan los puertos detectados.

Si tenés algún problema con la detección de la placa podés referirte a la documentación oficial en este link.

Proyecto de ejemplo

Ahora que ya hiciste todas las configuraciones vamos a probar un ejemplo de uso. En el mundo de los sistemas embebidos, el clásico Hello World! es el blink de un LED. El proyecto que vamos a correr se ejecuta sobre la placa basada en el módulo ESP32 utilizando el framework Arduino. Es probable que si tenés una placa de este tipo el pinout sea similar al siguiente.

Como primer paso abrí la Home de PlatformIO y seleccioná Project Examples como podés ver en esta imagen.

Luego seleccioná la opción arduino-blink dentro del menú desplegable y presioná Import.

Al importar se creará una carpeta automáticamente con el nombre del proyecto, similar a como lo ves en la imagen.

Dependiendo del caso puede ser necesario que descomentes el #define LED_BUILTIN.

Luego es necesario setear el archivo configuración platformio.ini para que realice la compilación de tu placa. Debería tener el siguiente contenido.

[env:default]
platform = espressif32
framework = arduino
board = nodemcu-32s
monitor_speed = 115200

Para que puedas configurar otra placa, andá a la opción Boards dentro del menú de inicio de PlatformIO, busca la placa y seleccionala. Automáticamente se abrirá un link a la documentación oficial donde podés ver los detalles de configuraciones que tenés que realizar en el archivo platformio.ini para configurar el hardware.

Una vez que tengas todo vamos a compilar el proyecto. Para ello desde el menú lateral de PlatformIO andá a la sección Project Tasks->Build o bien desde el toolbar inferior presioná el botón de Build como podemos ver en esta imagen.

Con esto ya podemos descargar el código a la placa. Seleccioná la opción Project Tasks->Upload o bien desde el toolbar inferior. El proceso de descarga del firmware lleva unos instantes, y cuando finalice el LED de la placa debería empezar a blinkear. Las acciones que deberías realizar y la posible salida las podemos ver en la imagen siguiente.

Con estos pasos ya tenemos el Hola Mundo para un sistema embebido con PlatformIO.

Resolución de conflictos

Acá vas a poder ver algunos problemas comunes que te pueden servir.

Problema de puerto serie en Linux

Si estás usando Linux y nunca habías utilizado el puerto serie para programar placas es posible que aparezca un error de permisos como en esta imagen.

El primer paso para este problema es asegurarte de haber configurado adecuadamente el puerto serie como vimos en la sección de instalación. Si realizaste la configuración del puerto serie pero aún no reiniciaste el sistema, ejecutá en una terminal este comando para otorgar permisos de manera temporal al puerto serie.

sudo chmod 666 /dev/ttys0

Intentá realizar nuevamente la descarga del código luego del comando.

Conclusiones

Dominar PlatformIO resulta muy útil para el desarrollo de sistemas embebidos en distintos tipos de entornos y placas. A lo largo de este documento vimos los pasos esenciales para poner en marcha la herramienta dentro de VS Code. Si te interesa profundizar en el tema, en nuestro artículo sobre Uso de PlatformIO en Visual Studio Code vas a encontrar detalles para utilizar la herramienta y realizar tareas comunes que te va a dar un mejor contexto. Para resumir un poco, en este documento vimos:

Bibliografía

Licencia

Este material es distribuido bajo licencia Creative Commons BY-SA 4.0. Podés encontrar detalles sobre el uso del material en este link.