Programando los ESP32 con Micropython y Visual Studio Code

Visual Studio Code (VSCode) es un editor de código sumamente versátil y potente que pude emplearse para programar en una multitud de lenguajes sobre distintas plataformas. Es altamente configurable y sus capacidades se pueden ampliar agregando distintas extensiones. En este artículo veremos como instalarlo y configurarlo para programar nuestras placas ESP32 (y ESP8266).

Introducción

VS Code es uno de los editores de código mas utilizados para el desarrollo de software profesional. Originalmente creado por Microsoft pero luego liberado como código abierto, gran parte de su éxito se debe a su gran flexibilidad. Con VS Code podemos escribir código en una amplia variedad de lenguajes aprovechando distintas funcionalidades como coloreo de sintaxis, autocompletado, depuración y optimización de código. Hasta podemos diseñar un sitio web completo. También integra soporte para GIT, lo que nos permite llevar de manera ordenada las distintas versiones de los proyectos en los que trabajamos. Adicionalmente a todas las funciones integradas en VS Code, también podemos agregarle una multiplicidad de extensiones, ampliando aún mas sus posibilidades.

Instalación

Para instalar VS Code debemos primero descargarlo desde su sitio web. Como se puede apreciar, está disponible para las plataformas mas comunes, como Windows, Linux y Mac.

Una vez descargado, ejecutamos el instalador, que a través de unos pocos pasos dejará preparado VS Code para ser utilizado en nuestro sistema.

Fig. 1. Instalación de VS Code
Fig. 2. Instalación finalizada

Configuración

Para poder programar en Micropython empleando VS Code deberemos instalar una extensión. Esta extensión nos permite conectarnos con las placas que tengan el firmware de Micropython instalado a través de un puerto de comunicaciones para enviarle y recibir comandos, transferir el programa escrito en el editor de VS Code y ejecutarlo. La extensión se denomina Pymakr y se la puede descargar desde el denominado Market Place. Sin embargo, para que esta extensión funcione, debemos instalar previamente otro software: Node.js

Instalación de Node.js

Para instalar Node.js debemos primero descargarlo de su sitio web.

A continuación ejecutamos el instalador y vamos siguiendo las instrucciones hasta finalizar.

Fig. 3. Instalación de Node.js
Fig. 4. Instalación finalizada

Instalación de Pymakr

Importante

Para completar correctamente los pasos que siguen es necesario tener conectada una placa con Micropython a un puerto USB de nuestra computadora

La instalación de Pymakr se hace desde el mismo VS Code. Debemos ir a Extensiones y en el cuadro de búsqueda “Buscar extensiones en Marketplace” escribimos “Pymakr”. Obtendremos dos coincidencias: la versión 1.1.17 y la 2 alpha (a la fecha de este artículo). Como la versión 2 aún no está lo suficientemente probada, instalaremos la primera haciendo click en Instalar.

Fig. 5. Instalación de Pymakr

Configuración de Pymakr

Luego de instalada la extensión Pymakr debemos realizar algunos ajustes. Para ello hacemos click en la parte inferior de VS Code, sobre “All commands” y seleccionamos “Pymakr > Global Setting” o tecleamos Ctrl+Shift+G.

Fig. 6. Configuración de Pymakr

De cualquiera de las dos formas se abrirá el archivo pymakr.json con parámetros de configuración. Para conectarnos exitosamente con la placa ESP debemos configurar el puerto COM. Podemos dejarlo fijo, cargando el valor correspondiente en el campo address y poniendo el campo auto_connect en false, o intentar que busque el puerto automáticamente dejando vacío addres (poniendo “”) y cargando auto_connect con true. Luego de hacer estas modificaciones guardamos el archivo desde “Archivo” – “Guardar” o tecleando “Ctrl+S”.

Fig. 7. Puerto COM fijo
Fig. 8. Autodetección del puerto

Configuraciones adicionales

Si aún así no logramos conectarnos con la placa es que debemos agregar también el tipo de adaptador que utiliza en la lista denominada autoconnect_comport_manufacturers. Para ello, con la placa conectada abrimos el Administrador de dispositivos de Windows (click derecho sobre el botón de inicio – Administrador de dispositivos), buscamos los puertos COM y abrimos el correspondiente a la placa que estamos usando. Observamos el nombre del fabricante y lo copiamos en la lista mencionada. (En las últimas versiones de Pymakr este paso casi no es necesario, la lista ya viene precargada).

Fig. 9. Administrador de dispositivos de Windows
Fig. 10. Controlador del puerto correspondiente a la placa ESP32
Fig. 11. Lista de fabricantes

Actualizaciones de VS Code

Es un problema conocido que a veces al actualizar VS Code la extensión de Pymakr deja de funcionar. A veces esto se soluciona al desinstalar e instalar nuevamente la extensión. Si esto no ocurre, hay que esperar algunos días a que se actualice también Pymakr (este es un inconveniente que aparentemente estaría resuelto en la versión 2).

Este tutorial fue realizado con la versión 1.65.2 de VS Code.

Algunas operaciones

En cualquier momento se puede presionar el botón Pymakr console cerca de la esquina inferior izquierda para activar y desactivar la terminal.

Fig. 12.

El botón All commands muestra un menú con todos los comandos de la extensión Pymakr.

Fig. 13.

Si pulsamos sobre Download se descarga el proyecto (todos los archivos de la placa) a VS Code, mientras que Upload sube los archivos del proyecto a la placa.

Ejemplo

A modo de ejemplo de uso de VS Code + Pymakr vamos a programar el típico ejemplo de Blink (parpadeo) con el led integrado en el ESP32.

Para comenzar debemos crear una carpeta en nuestra computadora que almacenará el proyecto, es decir, todos los archivos que utilizaremos y que quedarán guardados en nuestra placa.

En este caso a modo de ejemplo crearé la carpeta TestVSC que en principio estará vacía.

A continuación en VS Code elegimos en el menú ArchivoAbrir carpeta y seleccionamos la carpeta que acabamos de crear.

Fig. 14. Carpeta de proyecto

En Micropython siempre utilizamos dos archivos: boot.py que se ejecuta en el RESET y contiene instrucciones de inicialización y main.py con el programa principal. Pero también podemos tener archivos de datos, imágenes a mostrar en un display, etc. Si nuestra placa ya contiene archivos, podemos importarlos a nuestro proyecto pulsando el botón Download.

Si es una placa con el firmware recién grabado, importaremos sólo boot.py

Si queremos editar alguno de los archivos importados basta con hacer doble click para que se abra en un editor.

Si tenemos sólo boot.py y queremos crear main.py para nuestro código, podemos hacer click sobre el ícono Nuevo Archivo en el explorador o seleccionar Archivo Nuevo archivo en el menú (o pulsar Ctrl+N). En el primer caso al darle como nombre main.py ya prepara el editor para colorear la sintaxis de Python. Si lo hacemos desde el menú nos preguntará en que idioma vamos a programar, debiendo seleccionar Python de una lista.

Luego escribimos el código, pulsamos el botón Upload para subir todo a la placa y luego el botón Run para ejecutarlo. Si no hay errores el led debe comenzar a parpadear.

Fig. 15. Ejemplo

Conclusión

Visual Studio Code es un editor sumamente potente y flexible que ofrece numerosas ventajas a la hora de programar, sobre todo proyectos de cierta extensión. Muchas de sus características se pueden aprovechar cuando programamos en Micropython, mientras que otras no (como Intellisense) al estar el intérprete corriendo en la placa y no en la misma computadora que VS Code. Mas allá de estas limitaciones es una excelente opción sobre todo si además programamos en otros lenguajes y plataformas en las que también utilizamos el mismo editor.

2 comentarios en «Programando los ESP32 con Micropython y Visual Studio Code»

  1. Hola

    Yo tengo la versión de PyMakr 2.22.5, ya instale todo, sin embargo en le momento de buscar el Global Setting de PyMakr no me aparece, además de eso, he intentado crear un proyecto y no he podido.
    He seguido todos los pasos, pero en el momento de realizar unos ajustes a las configuraciones del PyMakr no lo he logrado y no he avanzado.

    Agradezco la colaboracion

    Responder

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Habilitar notificaciones OK No, gracias