[Diao Ye aprende a programar] Indicador de latido WiPy manual de MicroPython

Insertar descripción de la imagen aquí
MicroPython es una versión ligera del intérprete diseñada para ejecutar el lenguaje de programación Python 3 en sistemas integrados. En comparación con Python normal, el intérprete de MicroPython es pequeño (solo alrededor de 100 KB) y se compila en un archivo ejecutable binario para su ejecución, lo que resulta en una mayor eficiencia de ejecución. Utiliza un mecanismo de recolección de basura liviano y elimina la mayor parte de la biblioteca estándar de Python para adaptarse a microcontroladores con recursos limitados.

Las características principales de MicroPython incluyen:
1. La sintaxis y las funciones son compatibles con Python estándar, lo que facilita su aprendizaje y uso. Admite la mayor parte de la sintaxis principal de Python.
2. Acceda y controle directamente el hardware, controle GPIO, I2C, SPI, etc. como Arduino.
3. Potente sistema de módulos, que proporciona sistema de archivos, red, interfaz gráfica y otras funciones.
4. Admite compilación cruzada para generar código nativo eficiente, que es entre 10 y 100 veces más rápido que el intérprete.
5. La cantidad de código es pequeña y el uso de memoria es pequeño, adecuado para ejecutarse en MCU y placas de desarrollo con poca memoria.
6. Licencia de código abierto, de uso gratuito. El entorno interactivo de Shell proporciona comodidad para el desarrollo y las pruebas.
7. El controlador de E/S incorporado admite una gran cantidad de plataformas de microcontroladores, como ESP8266, ESP32, STM32, micro:bit, placa de control y PyBoard, etc. Hay una comunidad activa.

Los escenarios de aplicación de MicroPython incluyen:
1. Crear rápidamente prototipos e interacciones de usuario para productos integrados.
2. Realice algunos pequeños proyectos de hardware programables.
3. Como herramienta educativa, ayuda a los principiantes a aprender programación en Python e IoT.
4. Cree firmware para dispositivos inteligentes para lograr control avanzado y conectividad en la nube.
5. Diversas aplicaciones de microcontroladores como Internet de las cosas, inteligencia integrada, robots, etc.

Cosas a tener en cuenta al utilizar MicroPython:
1. La memoria y el espacio Flash son limitados.
2. La eficiencia de explicación y ejecución no es tan buena como la del lenguaje C.
3. Algunas funciones de la biblioteca son diferentes a las de la versión estándar.
4. Optimice la sintaxis de la plataforma y corrija las diferencias con Python estándar.
5. Utilice los recursos de memoria de forma racional y evite asignar grandes bloques de memoria con frecuencia.
6. Utilice código nativo para mejorar el rendimiento de las piezas críticas para la velocidad.
7. Utilice la abstracción de forma adecuada para encapsular las operaciones de hardware subyacentes.

En términos generales, MicroPython lleva Python al campo de los microcontroladores, lo cual es una innovación importante que no solo reduce el umbral de programación sino que también proporciona buenas capacidades de control de hardware. Es muy adecuado para el desarrollo de varios tipos de Internet de las cosas y hardware inteligente.
Insertar descripción de la imagen aquí
WiPy es un módulo de microcontrolador inalámbrico basado en MicroPython que proporciona una solución completa de hardware y software diseñada para simplificar el desarrollo y la implementación de dispositivos de Internet de las cosas (IoT).

1. Módulo microcontrolador: WiPy es un módulo de microcomputadora que integra un procesador, memoria, módulo de comunicación inalámbrica y otros componentes necesarios. Está diseñado para proporcionar una plataforma de hardware compacta y de bajo consumo capaz de ejecutar lenguajes de programación de alto nivel como MicroPython y tener la capacidad de conectarse a Internet y otros dispositivos.
2. MicroPython: MicroPython es una versión optimizada del lenguaje de programación Python, especialmente desarrollada para sistemas integrados y diseño de microcontroladores. Proporciona las funciones principales y la sintaxis del lenguaje Python, lo que permite a los desarrolladores utilizar la sintaxis familiar de Python para el control de hardware y el desarrollo de aplicaciones de IoT. Como entorno operativo de MicroPython, WiPy puede interpretar y ejecutar directamente código MicroPython.
3. Internet de las cosas (IoT): El Internet de las cosas se refiere a una red que conecta varios dispositivos físicos (como sensores, actuadores, sistemas integrados, etc.) a través de Internet para lograr inteligencia e interconexión. Como módulo de microcontrolador inalámbrico, WiPy tiene capacidades de comunicación inalámbrica y se puede conectar a otros dispositivos y plataformas en la nube en Internet de las cosas para lograr control remoto e intercambio de datos.
4. Módulo de comunicación inalámbrica: WiPy tiene uno o más módulos de comunicación inalámbrica integrados, los más comunes incluyen Wi-Fi, Bluetooth, LoRa, etc. Estos módulos de comunicación inalámbrica permiten a WiPy comunicarse con otros dispositivos a través de redes inalámbricas para lograr transmisión de datos, control remoto, conexión a la nube y otras funciones. Los desarrolladores pueden elegir módulos de comunicación inalámbrica apropiados según necesidades específicas.
5. Desarrollo e implementación: WiPy proporciona un conjunto de herramientas de desarrollo convenientes y un entorno de desarrollo que permite a los desarrolladores desarrollar, depurar y probar aplicaciones rápidamente. Una vez desarrollado, WiPy se puede implementar directamente en dispositivos IoT reales para comunicarse e interactuar con otros dispositivos. El diseño compacto y el bajo consumo de energía de WiPy lo hacen ideal para su implementación en sistemas integrados y dispositivos IoT.

Insertar descripción de la imagen aquí
El indicador de latido WiPy de MicroPython es una función que se utiliza para indicar el estado y el funcionamiento de un dispositivo.

caracteristica principal:

Indicación de estado del dispositivo: la función de indicación de latido del corazón de WiPy muestra el estado y el funcionamiento del dispositivo al usuario a través de luces LED u otras indicaciones visuales. Se pueden utilizar diferentes modos de indicación y colores para representar diferentes estados, como luces intermitentes, de respiración, etc.
Comentarios en tiempo real: el indicador de latidos de WiPy puede proporcionar comentarios en tiempo real sobre los cambios de estado del dispositivo. Al observar la frecuencia de parpadeo y los cambios de color de la luz indicadora, los usuarios pueden comprender si el dispositivo está funcionando normalmente y si se ha producido alguna anomalía o error.
Configurabilidad: la función de indicación de latido del corazón de WiPy generalmente tiene parámetros configurables, y los usuarios pueden personalizar el modo de indicación, el color y los efectos de iluminación de acuerdo con sus necesidades para adaptarse a diferentes escenarios y necesidades de aplicación.

Escenarios de aplicación:

Indicación de estado del dispositivo integrado: la función de indicación de latido del corazón de WiPy es adecuada para dispositivos integrados y se utiliza para indicar el estado y el funcionamiento del dispositivo. A través de luces LED u otros métodos de indicación, el estado de funcionamiento del equipo se puede mostrar al usuario de una manera intuitiva, lo que hace que sea conveniente para el usuario monitorear el estado del equipo.
Enseñanza y depuración: la función de indicador de latidos de WiPy se puede utilizar con fines de enseñanza y depuración. Durante el proceso de enseñanza, las luces indicadoras se pueden utilizar para demostrar y explicar cambios en el estado del equipo; durante el proceso de depuración, los problemas y fallas se pueden localizar rápidamente a través de la retroalimentación de las luces indicadoras.
Comentarios de la interfaz de usuario: la función de indicador de latidos de WiPy también se puede utilizar para comentarios de la interfaz de usuario. Por ejemplo, se puede recordar al usuario los resultados de la operación, los mensajes de advertencia o las notificaciones del sistema encendiendo o apagando las luces indicadoras o cambiando los colores para mejorar la experiencia del usuario y los efectos de interacción.

Precauciones:

Racionalidad del diseño: cuando se utiliza la función de indicación de latidos del corazón de WiPy, el modo de indicación, el color y los efectos de iluminación deben diseñarse razonablemente para garantizar que los usuarios puedan comprender e identificar con precisión los diferentes estados del dispositivo.
Compatibilidad: la implementación de la función de indicación de latidos de WiPy debe considerar la compatibilidad del hardware del dispositivo y las interfaces periféricas. Asegúrese de que el método de indicación seleccionado y la luz indicadora coincidan con la interfaz de hardware del dispositivo WiPy y funcionen correctamente.
Impacto en el consumo de energía: al utilizar la función de indicación de latidos del corazón de WiPy, debe prestar atención a su impacto en el consumo de energía del dispositivo. Si el consumo de energía de la luz indicadora es alto, puede tener un impacto en la duración de la batería o el consumo de energía del dispositivo, y es necesario hacer concesiones razonables en el diseño.

En resumen, la función de indicación de latido WiPy de MicroPython puede indicar el estado y el funcionamiento del dispositivo, y es adecuada para escenarios como indicación del estado del dispositivo integrado, enseñanza y depuración, y retroalimentación de la interfaz de usuario. Al utilizar la función de indicación de latidos de WiPy, debe prestar atención a factores como la racionalidad del diseño, la compatibilidad y el impacto en el consumo de energía para garantizar la precisión y confiabilidad de la indicación.

Insertar descripción de la imagen aquí

Caso 1: uso del módulo WiPy de MicroPython para implementar la indicación de latidos

from machine import Pin, UART
import time

uart = UART(2, baudrate=9600)
heartbeat_pin = Pin(2, Pin.OUT)

while True:
    # 发送心跳信号
    heartbeat_pin.value(1)
    time.sleep(0.5)
    heartbeat_pin.value(0)
    time.sleep(0.5)

    # 接收心跳信号
    if uart.any():
        print("Heartbeat received")
        break

Caso 2: uso del módulo WiPy de MicroPython para implementar la indicación de latidos programados

from machine import Pin, UART
import time

uart = UART(2, baudrate=9600)
heartbeat_pin = Pin(2, Pin.OUT)

while True:
    # 发送心跳信号
    heartbeat_pin.value(1)
    time.sleep(0.5)
    heartbeat_pin.value(0)
    time.sleep(0.5)

    # 等待指定时间后再次发送心跳信号
    time.sleep(60)

Caso 3: uso del módulo WiPy de MicroPython para implementar la indicación de latidos inalámbricos

from machine import Pin, UART, SPI
import time

uart = UART(2, baudrate=9600)
heartbeat_pin = Pin(2, Pin.OUT)
spi = SPI(1, baudrate=40000000, polarity=0, phase=0, sck=Pin(18), mosi=Pin(23))

while True:
    # 发送心跳信号
    heartbeat_pin.value(1)
    time.sleep(0.5)
    heartbeat_pin.value(0)
    time.sleep(0.5)

    # 通过SPI模块发送心跳信号
    data = bytearray([0xFF])
    spi.xfer2(data)

Caso 4: No existe una función específica de "indicación de latido" para el dispositivo WiPy de MicroPython. Sin embargo, puede crear una indicación de latido utilizando otros módulos y funciones.

Aquí hay un código de muestra para crear una función simple de "indicación de latido" en WiPy:

Utilice el LED parpadeante como indicación de latido del corazón:

import machine  
import utime  
  
# 设置LED引脚  
led = machine.Pin(5, machine.Pin.OUT)  
  
# 心跳间隔(秒)  
heartbeat_interval = 1  
  
while True:  
    # 点亮LED  
    led.on()  
    utime.sleep(heartbeat_interval)  
    # 关闭LED  
    led.off()  
    utime.sleep(heartbeat_interval)

Este código de ejemplo conecta una luz LED al pin GPIO 5 del dispositivo WiPy e implementa un efecto de parpadeo en la luz LED mediante un bucle. Puede controlar la velocidad de parpadeo ajustando la variable heartbeat_interval.

Caso 5: Uso de una pantalla OLED como indicador de latidos:
si tiene una pantalla OLED conectada a un dispositivo WiPy, puede usar la biblioteca OLED para mostrar una animación de latidos simple.

Primero, asegúrese de tener instalada la biblioteca OLED:
!
pip install micro-oled-ssd1306`
Luego, use el siguiente código de ejemplo para mostrar una animación de latido:

from micro_oled import AdafruitOLED  
import utime  
import machine  
import neopixel  
  
# 设置OLED显示屏引脚  
RESET = machine.Pin(4, machine.Pin.OUT)  
DC = machine.Pin(3, machine.Pin.OUT)  
SPI_MOSI = machine.Pin(15, machine.Pin.OUT)  
SPI_SCK = machine.Pin(14, machine.Pin.OUT)  
SPI_CE = machine.Pin(13, machine.Pin.OUT)  
AdafruitOLED(RESET, DC, SPI_MOSI, SPI_SCK, SPI_CE)  
display = AdafruitOLED()  
  
# 设置像素颜色(红色)  
RED = (255, 0, 0)  
  
# 动画帧数组  
HEARTBEAT_FRAMES = [    [8, 0, 1],    [7, 1, 1],    [6, 2, 1],    [5, 3, 1],    [4, 4, 1],    [3, 5, 1],    [2, 6, 1],    [1, 7, 1],] + \   utterances = []  
HEARTBEAT_FRAMES += [    [8, 0, 0],    [7, 1, 0],    [6, 2, 0],    [5, 3, 0],    [4, 4, 0],    [3, 5, 0],    [2, 6, 0],    [1, 7, 0],] + \   utterances += [f"我", f"爱", f"你"] * int(len(HEARTBEAT_FRAMES) / 2)   # 将所有帧循环两次以形成动画循环的效果

Caso 6: Un caso 1 del uso de la biblioteca wipy para controlar la luz LED azul en WiPy. wipy es una biblioteca que se utiliza para controlar algunas funciones especiales en WiPy. Puede usar la función de latido para encender o apagar la luz LED azul, u obtener su estado actual. El código se muestra a continuación:

# 导入 wipy 库
import wipy

# 关闭蓝色 LED 灯
wipy.heartbeat(False)

# 开启蓝色 LED 灯
wipy.heartbeat(True)

# 获取蓝色 LED 灯的状态
wipy.heartbeat()

Caso 7: Un caso 2 que utiliza la biblioteca de la máquina y la biblioteca de tiempo para implementar un indicador de latido simple. La máquina es una biblioteca utilizada para controlar las funciones de hardware en WiPy. Puede operar pines GPIO a través de objetos Pin e implementar modulación de ancho de pulso a través de objetos PWM. time es una biblioteca que se utiliza para manejar funciones relacionadas con el tiempo y el retraso se puede implementar a través de la función de suspensión. El código se muestra a continuación:

# 导入 machine 库和 time 库
import machine
import time

# 创建一个 Pin 对象,连接到 G16 引脚,设置为输出模式
pin = machine.Pin('G16', mode=machine.Pin.OUT)

# 创建一个 PWM 对象,连接到 pin,设置频率为 1000 Hz
pwm = machine.PWM(pin, freq=1000)

# 定义一个模拟心跳的函数
def heartbeat():
    # 循环 10 次
    for i in range(10):
        # 将占空比从 0% 增加到 100%
        for duty in range(0, 101, 5):
            # 设置 PWM 的占空比
            pwm.duty_cycle(duty)
            # 延时 0.01 秒
            time.sleep(0.01)
        # 将占空比从 100% 减少到 0%
        for duty in range(100, -1, -5):
            # 设置 PWM 的占空比
            pwm.duty_cycle(duty)
            # 延时 0.01 秒
            time.sleep(0.01)
        # 延时 0.5 秒
        time.sleep(0.5)

# 调用心跳函数
heartbeat()

Caso 8: Un caso 3 que utiliza la biblioteca de red y la biblioteca de sockets para enviar paquetes de latidos al servidor remoto. network es una biblioteca que se utiliza para controlar las funciones de red en WiPy. Se puede crear un objeto WLAN y configurarlo en modo STA o AP. Socket es una biblioteca utilizada para implementar funciones de comunicación de red. Puede crear un objeto socket para conectarse a un servidor remoto e interactuar con él. El código se muestra a continuación:

# 导入 network 库和 socket 库
import network
import socket

# 创建一个 WLAN 对象,设置为 STA 模式
wlan = network.WLAN(mode=network.WLAN.STA)

# 连接到指定的 WiFi 网络,使用自己的 SSID 和密码
wlan.connect('your-ssid', auth=(network.WLAN.WPA2, 'your-password'))

# 等待连接成功
while not wlan.isconnected():
    pass

# 获取 WiPy 的 IP 地址和 MAC 地址
ip = wlan.ifconfig()[0]
mac = wlan.mac()

# 创建一个 socket 对象,设置为 TCP 模式和 IPv4 协议
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 连接到远程服务器的 IP 地址和端口号,使用自己的服务器信息
s.connect(('your-server-ip', your-server-port))

# 定义一个发送心跳包的函数
def send_heartbeat():
    # 构造一个心跳包的内容,包含 WiPy 的 IP 地址和 MAC 地址
    data = 'Heartbeat from {} ({})'.format(ip, mac)
    # 向服务器发送心跳包,编码为字节串
    s.send(data.encode())

# 循环发送心跳包,每隔 10 秒发送一次
while True:
    # 调用发送心跳包的函数
    send_heartbeat()
    # 延时 10 秒
    time.sleep(10)

Tenga en cuenta que los casos anteriores son sólo para ampliar ideas y pueden contener errores o inaplicabilidad. Diferentes plataformas de hardware, escenarios de uso y versiones de MicroPython pueden dar lugar a diferentes métodos de uso. En la programación real, debe ajustarla de acuerdo con la configuración de su hardware y sus necesidades específicas, y realizar múltiples pruebas reales. Es importante asegurarse de que el hardware esté conectado correctamente y comprender las especificaciones y características de los sensores y dispositivos utilizados.

Insertar descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_41659040/article/details/133414889
Recomendado
Clasificación