Revise la placa de expansión ELECFREAKS Wukong2040: Raspberry Pi Pico

¡Conéctate conmigo en las redes sociales para actualizaciones y contenido!

El ELECFREAKS Wukong2040 es una placa de expansión Raspberry PI Pico que permite a los principiantes ponerse en marcha con sus proyectos de complejidad simple a media, con una fuente de alimentación de batería segura y una conexión PIN simplificada.

Este tutorial le mostrará las características de esta interesante placa de expansión Wukong2040 Raspberry PI Pico, y también traerá ejemplos de código con MicroPython.

¿Qué es una placa de expansión?

Una placa de expansión es una PCB (placa de circuito impreso) que agrega una placa invitada con nuevas características. Por lo general, cada placa de expansión está diseñada para un hardware específico. En el mundo de los aficionados a la microelectrónica, puede proporcionar protección para la alimentación de la placa de invitados y trae una serie de sensores preconectados a la ubicación de la placa de invitados.

Las placas de expansión facilitan el trabajo de cableado para los principiantes y, a veces, brindan protección contra cortes de energía al agregar una línea de suministro de energía específica.

Características de Wukong2040

WuKong2040 es una placa de expansión multifuncional diseñada para microcontroladores Raspberry Pi Pico.

Admite una batería 18650 (que debe proporcionar por separado) con un chip de administración de energía integrado e indicación de energía. Con esta batería, ELECFREAKS estima una duración de al menos 120 minutos de uso normal, pero esto depende de la capacidad de la batería y creo que una batería así puede durar mucho más usando trucos de administración de energía como se indica en mi Raspberry PI Pico W Power Tutorial de consumo (mA) y cómo reducirlo (a menos que necesite mover motores).

La placa de expansión reúne en un solo bloque de trabajo varias piezas adicionales que hacen que la placa sea realmente interesante para cualquiera que desee comenzar con proyectos de microelectrónica Raspberry PI Pico:

  • 2 LED arcoíris
  • 2x Mini botones de interruptor
  • 1x zumbador pasivo
  • Controladores de motor de CC de 4 vías (M1, M2, M3 y M4)
  • 14 puertos GPIO de expansión
  • 1 botón de reinicio (útil para el desarrollo)
  • 1x interruptor de encendido APAGADO (que corta la energía de la batería)
  • Base de marco de bloque cuadrado de 7 × 11, que se puede expandir para crear formas en su fantasía

Una característica importante del Wukong2040 es que le permite alimentar motores desde la batería.

A veces, las personas que ejecutan los primeros proyectos conectan motores directamente a los puertos Raspberry PI Pico GP. Está bien si está realizando pruebas para su código, pero no es bueno cuando su proyecto se pone en marcha. Los motores generalmente consumen mucha corriente y los puertos Raspberry PI Pico pueden admitir solo unos pocos mA de consumo de energía durante mucho tiempo (generalmente 30 mA para los puertos de salida, con un máximo de 300 mA como salida total del microcontrolador). Por lo tanto, tener la batería para proporcionar la corriente hace que sus proyectos sean mucho más seguros.

Como el Wukong2040 requiere una entrada de 2,8 a 4,2 V para cargar la batería, también puede agregar una fuente solar, como se muestra en mi tutorial Power Raspberry PI Pico with Solar Cells, para obtener un proyecto ecológico.

ELECFREAKS proporciona a los principiantes una serie de ejemplos que pueden ayudarlo a comenzar rápidamente, basados ​​en CircuitPython y Raspberry PI Pico. En esta Análisis, le proporcionaré varios ejemplos para usarlo con Raspberry PI Pico W, usando MicroPython.

Pinout Wukong2040

Dado que la placa de expansión tiene una carcasa específica para el microcontrolador Raspberry PI Pico, que acepta todos los PIN de Pico (consulte el diagrama de pines de Raspberry PI Pico como referencia), su salida se «redirigirá» a PIN de Wukong específicos, como se muestra en la siguiente imagen:

Es importante tener en cuenta que algunos PIN de Raspberry PI Pico se asignan para controlar los componentes integrados, por lo que no están disponibles como conexiones de salida.

Lo que necesitamos

Como de costumbre, sugiero agregar desde ahora a su carrito de compras de comercio electrónico favorito todo el hardware necesario, para que al final pueda evaluar los costos generales y decidir si continúa con el proyecto o los elimina del carrito de compras. Entonces, el hardware será solo:

Procedimiento paso a paso

Para comenzar, debemos colocar al menos el Raspberry PI Pico en la placa de expansión, utilizando el Wukong2040. Para ello deberás añadir las cabeceras a tu Raspberry PI Pico W soldándolas. Una excelente guía para realizar correctamente esta tarea está disponible en el tutorial MagPI How to solder GPIO pin headers to Raspberry Pi Pico.

Una vez que los encabezados estén soldados, puede instalar MicroPython en su Raspberry PI Pico W. También para esto, puede consultar mi tutorial: Primeros pasos con Raspberry PI Pico para principiantes.

Ahora puede colocar la batería y el Raspberry PI Pico W en la placa de expansión ELECFREAKS Wukong2040 Raspberry PI Pico.

Tenga en cuenta que hay 2 puertos micro-USB diferentes. El de la placa de expansión Wukong2040 solo cargará su batería, mientras que el micro-USB de Raspberry PI Pico W sigue siendo el puerto a usar para conectar su PC con Thonny a Raspberry PI Pico W para la programación.

Usaremos el último puerto micro-USB (del Pico) para ejecutar los siguientes ejemplos.

Tenga en cuenta que ejecutar los ejemplos que interactúan con el Wukong2040 requerirá usar una batería cargada y mover el interruptor de encendido a ON.

Ejemplo 1: parpadeo del LED integrado de Raspberry PI Pico W

Este es el programa clásico para iniciar y verificar si todo está bien. Abra un nuevo archivo Thonny y agregue el siguiente código:

from machine import Pin import time led = Pin("LED", Pin.OUT)  while True:     led.toggle()     time.sleep(0.5)

El archivo también está disponible en mi área de descarga con este enlace: wukong2040-onboard-blink.py

Esto hará que el LED incorporado de su Raspberry PI Pico W parpadee cada medio segundo.

Tenga en cuenta que si utiliza un Raspberry PI Pico (no W), la variable LED integrada se almacena en el GP25, y la declaración de la variable LED se convierte en:

led = Pin(25, Pin.OUT)

Ejemplo 2: uso de los miniinterruptores Wukong2040 A/B

Los dos botones del miniinterruptor se colocan en los bordes de la placa de expansión:

Usan (correctamente) una lógica negativa: cuando presiona el botón, la salida GP relacionada va a 0 (cero). Un tutorial completo sobre estos componentes electrónicos está disponible en mi tutorial Switch Button y Raspberry PI Pico.

El botón A está conectado a GP18, mientras que la salida del botón B va a GP19.

El siguiente código de ejemplo de MicroPython activará el LED integrado de Raspberry PI Pico W cuando presione el botón A, mientras que el LED se apagará cuando presione el botón B:

from machine import Pin  led = Pin("LED", Pin.OUT) button_a = 18 button_b = 19  on_button = Pin(button_a, Pin.IN, Pin.PULL_UP) off_button = Pin(button_b, Pin.IN, Pin.PULL_UP)  def read_button(button_pin):     return not button_pin.value()  while True:     if read_button(on_button) == True:         led.value(True)     elif read_button(off_button) == True:         led.value(False)

El mismo código también está disponible en mi área de descarga: wukong2040-buttons-test.py

Recuerde encender el interruptor de encendido Wukong2040 y luego puede ejecutar el código para activar/desactivar el LED integrado de Raspberry PI Pico W con los dos botones.

Ejemplo 3: use los LED NeoPixel

Los dos LED NeoPixel se colocan cerca de los botones de la prueba anterior:

Puede comunicarse con ambos a través del puerto Raspberry PI Pico GP22.

Para probarlos, he organizado 2 pruebas de MicroPython. En cuanto a las pruebas anteriores, recuerde encender el interruptor de encendido Wukong2040.

La primera prueba lo ayuda a comprender cómo funciona la biblioteca de neopíxeles:

import machine, neopixel, time  NPLED = 22 # NeoPixel GP port n_NPLED = 2 # number of NeoPixel LEDs  np = neopixel.NeoPixel(machine.Pin(NPLED), n_NPLED) np[0] = (255, 0, 0) np[1] = (0, 255, 0)  np.write() time.sleep(2)  np[0] = np[1] = (0, 0, 0) # turn OFF the NeoPixel LEDs np.write()

Enciende ambos LED, con el comando np.write(), con colores rojo (en un LED) y verde (en el otro LED). Después de 2 segundos, apagamos ambos LED.

El código está disponible en wukong2040-neopixel-01.py

La segunda prueba, un poco más compleja, sigue a continuación:

import machine, neopixel, time  NPLED = 22 # NeoPixel GP port n_NPLED = 2 # number of NeoPixel LEDs  np = neopixel.NeoPixel(machine.Pin(NPLED), n_NPLED)  def demo(np):     # RGB colors test     print("RGB Colors test 01")     red=(255,0,0)     green=(0,255,0)     blue=(0,0,255)     for i in [red, green, blue]:         for l in range(0, n_NPLED): np[l] = i         np.write()         time.sleep(0.5)          # RGB colors test     print("RGB Colors test 02")         for r in range (0,255-1):         for l in range(0, n_NPLED): np[l] = (r,0,0)         np.write()         time.sleep(0.01)     for g in range (0,255-1):         for l in range(0, n_NPLED): np[l] = (255-g,g,0)         np.write()         time.sleep(0.01)     for b in range (0,255-1):         for l in range(0, n_NPLED): np[l] = (0,255-b,b)         np.write()         time.sleep(0.01)      demo(np)  for l in range(0, n_NPLED): np[l] = (0,0,0) # turn OFF the NeoPixel LEDs np.write()

La función personalizada de demostración encenderá ambos LED con sus colores principales (rojo, verde y azul). Después de esto, ambos LED mostrarán el espectro principal de rojo a azul con un cambio de color lineal. Por supuesto, puedes obtener efectos más complejos.

El código está disponible en el siguiente enlace: wukong2040-neopixel-02.py.

Ejemplo 4: use el zumbador pasivo

El zumbador pasivo se coloca justo debajo del puerto micro USB de Raspberry PI Pico:

Como se indica, se puede acceder al zumbador con Raspberry PI Pico GP9.

A diferencia del zumbador activo, el zumbador pasivo requiere una señal PWM, como se explica en mi tutorial Zumbador pasivo con Raspberry PI Pico, pero permite mucha más flexibilidad para sus proyectos. Puedes echarle un vistazo al post referido para saber cómo reproducir música como la de Beethoven o cualquier nota.

Para esta prueba, según la explicación del código de la publicación compartida anteriormente, el siguiente código ejecutará las notas musicales principales. Tenga en cuenta que la variable buzzerPIN cambió para usar el número de GP del Wukong2040, de manera diferente al tutorial mencionado anteriormente.

from machine import Pin, PWM from time import sleep  buzzerPIN=9 BuzzerObj=PWM(Pin(buzzerPIN))  def buzzer(buzzerPinObject,frequency,sound_duration,silence_duration):      buzzerPinObject.duty_u16(int(65536*0.2))     buzzerPinObject.freq(frequency)     sleep(sound_duration)     buzzerPinObject.duty_u16(int(65536*0))     sleep(silence_duration)   buzzer(BuzzerObj,523,0.5,0.1) #C (DO) buzzer(BuzzerObj,587,0.5,0.1) #D (RE) buzzer(BuzzerObj,659,0.5,0.1) #E (MI) buzzer(BuzzerObj,698,0.5,0.1) #F (FA) buzzer(BuzzerObj,784,0.5,0.1) #G (SOL) buzzer(BuzzerObj,880,0.5,0.1) #A (LA) buzzer(BuzzerObj,987,0.5,0.1) #B (SI)  BuzzerObj.deinit()

El código está disponible para descargar desde este enlace: wukong2040-buzzer.py

Otros proyectos

Puede usar la placa de expansión Wukong2040 con muchos otros proyectos de Raspberry PI Pico. Deberá prestar atención a la adaptación del código a los puertos disponibles, ya que algunos de los PIN Wukong2040 ya están preconectados con los sensores que se muestran anteriormente. Por lo general, el código MicroPython brinda la posibilidad de cambiar el número de puerto al comienzo del código. Puede hacer coincidir el puerto identificado por su proyecto con el Wukong2040 comparando el pinout mostrado anteriormente y el pinout de Raspberry PI Pico.

Puede intentar ver mis tutoriales de Raspberry PI Pico para proyectos útiles y divertidos con su Wukong2040.

Más información

Puede encontrar la Wiki completa de ELECFREAKS en http://wiki.elecfreaks.com/en/pico/extension-module/wukong2040-pico/.

Conclusiones finales

ELEFREAKS Wukong2040 es una excelente placa de expansión Raspberry PI Pico.

Desde el punto de vista de la seguridad, agregar una batería significa que su Raspberry PI Pico obtendrá una entrada de corriente más estable y sus sensores se alimentarán de la batería (en lugar de drenar la corriente del circuito RPI Pico).

La placa es sólida y está bien construida, y viene con un embalaje seguro:

No puedo encontrar ninguna área de mejora específica de este tablero, ya que ofrece algunas cosas básicas bien organizadas y producidas. Incluso el interruptor de encendido, que suele ser la parte más solicitada desde el punto de vista mecánico, ha funcionado mostrando solidez.

Desde el punto de vista del precio, también ofrece una alternativa competitiva a la compra de sensores individuales: puede comparar fácilmente la suma de los precios del zumbador, el soporte de la batería, el interruptor de encendido y los LED NeoPixel con el Wukong2040 para encontrar la solución más económica.