0. 前言

本节编译自己写的py库,增强移植性,往后烧录自己的固件即可轻易移植代码

没装好环境或者没有基础可以先看看这个:
Ubuntu下ESP-IDF的环境搭建
Ubuntu下编译esp32micropython固件编译

注意!全程在ESP-IDF虚拟环境完成
开发环境:ESP-IDF 4.2
操作系统:Ubuntu
开发板:自制的ESP32-WROOM-32E

1. 编写自己库的代码

如:

#led.py 
#三色led灯操作
from machine import Pin
from neopixel import NeoPixel
import time


RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)
YELLOW = (255, 255, 0)
PURPLE = (255, 0, 255)
CYAN = (0, 255, 255)
WHITE = (255, 255, 255)
OFF = (0, 0, 0)

COLOR = [RED,GREEN,BLUE,YELLOW,PURPLE,CYAN,WHITE,OFF]

class LED():
    """
    初始化示例
    ws2812b = LED(16)
    ws2812b.circle()
    ws2812b.color(CYAN)
    """
    def __init__(self,GPIO):
        global np
        np = NeoPixel(Pin(GPIO, Pin.OUT), 1)
        pass
        
    def color(self,rgb):
        np[0] = rgb
        np.write()
        
    def circle(self):
        for i in COLOR:
            np[0] = i
            np.write()
            time.sleep(0.3)

if __name__ == '__main__':
    ws2812b = LED(16)
    ws2812b.circle()
    ws2812b.color(CYAN)

2. 移植库

将代码移植到micropython/ports/esp32/modules之中,你的modules目录之下要有你自己的库文件(如我的是led.py)
在这里插入图片描述

然后回到上一级目录重新make:

make clean
make

没有错误后可以烧录

idf.py -p /dev/ttyUSB0

3. 验证

能够正确导入库并且在文件系统中是看不到的
在这里插入图片描述

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐