Visual Studio Code + MicroPython + ESP8266

Utilizar Visual Studio Code para programar el ESP8266 con Micropython

Ya hace algún tiempo que me había llamado la atención la presencia de Python en Linux y en aplicaciones sobre todo de inteligencia artificial, al principio pues lo tomé como otro competidor mas de PHP, pero cuando hace unos años me di cuenta que se había desarrollado una versión para microcontroladores decidí probarla en cuanto me fuese posible. Soy una persona que siempre ha programado microcontroladores en C, ya que soy de la generación que aprendió a programar en ensamblador para microprocesadores y luego microcontroladores por lo que el salto mas natural fue siempre al lenguaje C. Ahora, que estoy utilizando Python y Micropython considero que es una muy buena alternativa de solución para casos particulares de un proyecto, de hecho es normal que en una solución compleja se integren distintas arquitecturas de microcontroladores que se deban programar tanto en Micropython como en C.

Lógicamente, lo primero que debemos hacer es configurar nuestro entorno de desarrollo y en este apartado no voy a entrar en discusiones sobre cual alternativa es la mejor, eso se lo dejo a quienes se dedican a hacer reviews yo utilizo las herramientas que me son funcionales en un momento determinado y si después encuentro alguna que hace mejor su trabajo me cambio y punto.

1. Instalar Python

Pues para instalarlo lo descargamos desde https://www.python.org/downloads/windows/, es conveniente descargar una de las versiones estables.

La instalación no requiere de nada especial, simplemente ejecutamos el instalador pero si debemos marcar la opción para que Python sea agregado a PATH de Windows:

Seleccionar la opción para agregar Python a Path del sistema

Cuando el proceso de instalación ha finalizado, el instalador nos preguntará si deseamos deshabilitar la restricción de 256 caracteres en los Path (rutas o direcciones de los archivos en el sistema), yo por lo general lo hago.

Deshabilitar limitación de 256 caracteres para las rutas

Finalmente, tendremos que comprobar la instalación de python, para ello abrimos una ventana de consola presionando Win + R para que se muestre la ventana de ejecutar. Escribimos cmd para que se abra una consola. Ahora simplemente ejecutamos python y debemos observar que se ejecuta el intérprete REPL de python:

Al ejecutar el comando python se abre la consola REPL, puede salir con exit()

2. Instalar Micropython en ESP8266 / ESP32

Para instalar el firmware de Micropython en nuestra placa de desarrollo, debemos primero instalar los controladores así que procedemos a conectarla a la computadora y verificamos si aparece el puerto COM correspondiente en el Administrador de Dispositivos de Windows:

Observe como en este caso, el puerto asignado por Windows es COM3

Las placas genéricas de ESP8266 y ESP32 tienen el controlador de puertos CP210x de Silicon Labs, esta información nos será de utilidad posteriormente.

El firmware de Micropython deberá descargarse de las siguientes fuentes:

Para ESP8266: http://micropython.org/download/esp8266

Para ESP32: http://micropython.org/download/esp32

Para ambos casos se sugiere descargar la última versión estable (en esta guía se utilizará el firmware de ESP8266, pero el procedimiento es esencialmente el mismo para ESP32.

Una vez descargado el archivo debe copiarse en alguna carpeta de trabajo, note que es un fichero binario con extensión .BIN

Abrimos una consola de Windows como Administrador, nos dirigimos a nuestra carpeta de trabajo y ejecutamos los siguientes comandos:

>pip install esptool

Con este comando instalaremos las herramientas de desarrollo de ESP y deberíamos observar lo siguiente:

Instalación de esptool

Ahora con la placa de desarrollo conectada a la computadora ejecutamos el siguiente comando para borrar la memoria flash (cambie el puerto COM por el que aparece en su sistema):

>esptool.py --port COM3 erase_flash
Borrando la memoria flash de ESP8266

Finalmente, instalamos el firmware de Micropython:

>esptool.py --port COM3 --baud 460800 write_flash --flash_size=detect -fm dio 0 esp8266-20210420-unstable-v1.15.bin
Instalación del firmware de Micropython, la versión de su archivo .BIN y el puerto COM pueden ser distintos

Si hasta este punto no ha tenido problemas ya tiene su placa de desarrollo ESP con la última versión del firmware de Micropython.

3. Instalar Visual Studio Code

Lo descargamos de aquí: https://code.visualstudio.com/download, cuando termine de descargarse ejecutamos el instalador. El proceso de instalación no tiene nada especial por lo que cuando termine ejecutamos Visual Studio Code (de ahora en adelante VSCode).

Vamos a instalar las extensiones que nos ayudaran a trabajar, la primera es Python de Microsoft, para ello damos clic en el ícono de extensiones y en la casilla de búsqueda escribimos python, de las opciones que aparecen instalamos la desarrllada por Microsoft:

Los números indican la secuencia que debe seguirse

Antes de instalar la próxima extensión, debemos satisfacer su dependencia lo cual implica instalar Node.js, lo descargamos de aquí: https://nodejs.org/es/download/, debe asegurarse de descargar la versión correcta para su sistema operativo. El proceso de instalación no tiene complicaciones simplemente seguimos el sencillo asistente.

Ahora en VSCode escribimos en la casilla de búsqueda de extensiones: pymakr y lo instalamos, este programa nos permitirá establecer comunicación entre VSCode y la consola REPL de la placa de desarrollo.

Observe que se requiere de Node.js para que Pymakr funcione

Cuando al extensión Pymakr termine de instalarse se abrirá automáticamente el fichero de configuración global, en él debemos especificar el puerto asignado a la placa de desarrollo por el sistema y el fabricante del controlador del puerto:

En address se especifica el puerto COM asignado a la placa de desarrollo y en manufacturers el fabricante del controlador del puerto de la placa.

Guardamos los cambios (CTRL + S)

Para comprobar la conectividad con nuestra placa y el buen funcionamiento de nuestro entorno de trabajo, haremos un blink permanente en el diodo led que se encuentra integrado en la placa de desarrollo (solo ESP8266 posee led integrado, ESP32 no) ESP8266 que se encuentra conectado a GPIO16.

Con la placa de desarrollo conectada, en VSCode nos dirigimos a File, Open Folder y creamos una carpeta para nuestro código, en este caso se llama blink y damos clic en Seleccionar Carpeta, Pymakr se conectará automáticamente a la placa de desarrollo abriendo la consola REPL:

Observe como pymakr abre la consola REPL de la placa de desarrollo, en el marco amarillo se aprecia la barra de herramientas de pymakr

En la sección EXPLORER se mostraran los ficheros y subcarpetas del directorio de trabajo, para agregar un archivo de código a la derecha de la carpeta BLINK damos clic en new file y le asignamos el nombre main.py:

Agregando un nuevo fichero

Al crear el fichero, este se abre automáticamente en el editor, agregamos el siguiente código:

from machine import Pin
import time

led = Pin(16, Pin.OUT)

while True:
    led.on()
    time.sleep(0.5)
    led.off()
    time.sleep(0.5)

El programa hace un blink a intervalos de 0.5 segundos en el led integrado (conectado a GPIO16), guardamos los cambios y para cargar el código en la placa de desarrollo en la barra de herramientas de pymakr damos clic en upload y observamos la carga del fichero tras lo cual observaremos que el led empieza a hacer blink en la placa de desarrollo.

Hemos finalizado la instalación y configuración del entorno de desarrollo para ESP con Micropython y VSCode. En el siguiente artículo empezaremos a trabajar con las operaciones de lectura y escritura digital en los GPIO, nos vemos en la próxima.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s