Compilando MicroPython para dispositivos embebidos
Qué es MicroPython
MicroPython es una implementación de software de un lenguaje de programación ampliamente compatible con Python 3, escrito en C, que está optimizado para ejecutarse en un microcontrolador.
MicroPython consiste en un compilador de Python a bytecode y un intérprete en tiempo de ejecución de ese bytecode. Al usuario se le presenta un prompt interactivo (el REPL) para ejecutar comandos compatibles inmediatamente. Se incluye una selección de bibliotecas principales de Python; MicroPython incluye módulos que dan al programador acceso al hardware de bajo nivel.
Cómo construir firmware (Usemos Xiao SAMD como ejemplo)
Seeeduino XIAO SAMD ya soporta desarrollo con micropython.
Primero: Preparar el software relevante
"arm-none-linux-gnueabi" es la cadena de herramientas que puede instalarse en sistemas basados en Debian usando un gestor de paquetes como apt (el paquete se llama gcc-arm-linux-gnueabi). En Ubuntu el arm-none-linux-gnueabi está incluido en ubertooth-firmware-source, También necesitamos preparar el entorno instalando las herramientas necesarias como gcc python y git make. Así que ejecutamos este comando
sudo apt update
sudo apt install cmake make gcc ubertooth-firmware-source python3 git
Segundo: Cambiar espacios de trabajo Clonando código fuente
Clonar el código fuente y descargar el código para los sub-módulos necesarios
Ejecutar las siguientes declaraciones en secuencia
cd ~
git clone https://github.com/micropython/micropython
cd ~/micropython
git submodule update --init --recursive
La información que descargaremos está en este archivo, que contiene la ruta de descarga y la dirección del repositorio de código
cat ~/micropython/.gitmodules
Tercero: Construir el mpy-cross, compilador cruzado de MicroPython
La mayoría de los puertos requieren que el compilador cruzado de MicroPython se construya primero. Este programa, llamado mpy-cross, se usa para pre-compilar scripts de Python a archivos .mpy que luego pueden incluirse (congelarse) en el firmware/ejecutable para un puerto. Para construir mpy-cross usar:
cd ~/micropython/mpy-cross
make
Siguiente: Construir dependencias externas
Usamos el Seeeduino XIAO SAMD que ya soporta desarrollo con micropython. Es un controlador basado en el chip samd de arquitectura arm. Así que especificamos el número de versión y vamos al directorio correspondiente y compilamos:
cd ~/micropython/ports/samd
BOARD=SEEED_XIAO make V=1
Finalmente: Grabando firmware
podemos ver el firmware generado aquí, copiamos el firmware al dispositivo y el micro python está disponible en el XIAO SAMD
ls ~/micropython/ports/samd/build-SEEED_XIAO/ |grep firmware.uf2
sudo cp ~/micropython/ports/samd/build-SEEED_XIAO/firmware.uf2 /media/$USER/Arduino/
Probar nuestro firmware
Copia el código de abajo y verás el led azul parpadeando
from machine import Pin, Timer
led = Pin(19, Pin.OUT)
Counter = 0
def fun(tim):
global Counter
Counter = Counter + 1
state = Counter%2
led.value(state)
tim = Timer(-1)
tim.init(period=1000, mode=Timer.PERIODIC, callback=fun)
Como puedes ver Seeeduino XIAO SAMD ya soporta desarrollo con micropython.
También puedes referirte a este proceso para compilar firmware de micropython para otros dispositivos.
Soporte Técnico y Discusión de Productos
¡Gracias por elegir nuestros productos! Estamos aquí para proporcionarte diferentes tipos de soporte para asegurar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para atender diferentes preferencias y necesidades.