🛠 MicroPython sur Pico 2 : moniteur de tension VSYS
Objetivos
Instalar MicroPython específico para RP2350 en la Pico 2, utilizar el REPL de Thonny y aprovechar los pines de sistema propios de la Pico 2: GP29 = VSYS/3 para monitorizar una batería, GP23 = modo SMPS para un ADC más limpio, GP24 = detección de VBUS.
Material
- 1 × Raspberry Pi Pico 2
- Cable micro-USB de datos; Thonny ≥ 4.1 (o mpremote)
- Firmware: UF2
RPI_PICO2de MicroPython ≥ v1.24.0 (soporte para RP2350 ARM y RISC-V) — una compilación para RP2040 rechazará la instalación - Opcional: batería de Li-ion en VSYS (se aceptan 1,8–5,5 V gracias al buck-boost RT6150)
Código completo
# main.py — moniteur VSYS + LED d'alerte, Pico 2 / MicroPython >= 1.24
import time
from machine import Pin, ADC
led = Pin(25, Pin.OUT) # LED utilisateur GP25 (confirmee datasheet)
smps = Pin(23, Pin.OUT) # GP23 : niveau haut = SMPS en mode PWM
smps.value(1) # moins de ripple -> ADC plus stable
vsys = ADC(3) # ADC3 = VSYS/3 (GP29, diviseur interne)
vbus = Pin(24, Pin.IN) # GP24 : presence USB
def lire_vsys:
total = 0
for _ in range(16): # moyenne grossiere anti-bruit
total += vsys.read_u16
time.sleep_us(100)
return total / 16 / 65535 * 3.3 * 3 # 16 bits -> tension, x3 divider
while True:
v = lire_vsys
led.value(v < 3.6) # alerte batterie faible
print("VSYS = %.2f V USB = %d" % (v, vbus.value))
time.sleep_ms(500)
Verificación esperada
En Thonny, el REPL muestra los valores cada 500 ms. Al conectar el USB, USB = 1 y VSYS ≈ 5 V; con una batería de 3,7 V, se lee ≈ 3,7 V y el LED permanece apagado mientras V > 3,6 V.
Errores frecuentes
- Flashear un UF2 « pico » clásico: el RP2350 solo está admitido a partir de MicroPython 1.24.0 (26 de octubre de 2024), verificar el nombre RPI_PICO2.
- Olvidar el factor /3 del divisor interno de VSYS: el voltaje mostrado está dividido por tres.
- GP29 posee un diodo de desacoplamiento hacia 3V3: nunca aplicar un voltaje externo, es una medición interna únicamente.
- El modo de ahorro de energía del SMPS (GP23 en nivel bajo) aumenta el rizado en la referencia del ADC: mantener GP23 en nivel alto para obtener mediciones estables.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
clignotante.pyPythonbouton-interruption.pyPythonpwm-servo.pyPythonlecture-adc.pyPythonneopixel.pyPythonoled-i2c.pyPython