micropython固件编译——把自己的py库添加进固件

news/2024/10/19 11:51:18/

目录

  • 0. 前言
  • 1. 编写自己库的代码
  • 2. 移植库
  • 3. 验证

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 timeRED = (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 npnp = NeoPixel(Pin(GPIO, Pin.OUT), 1)passdef color(self,rgb):np[0] = rgbnp.write()def circle(self):for i in COLOR:np[0] = inp.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. 验证

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


http://www.ppmy.cn/news/96732.html

相关文章

leetcode刷题之链表相关问题(js)

21.合并两个有序链表 var mergeTwoLists function(list1, list2) {if(list1null) return list2if(list2null) return list1let newHead new ListNode(0,null) //创建一个虚拟节点let cur newHeadlet cur1 list1,cur2 list2while(cur1&&cur2){if(cur1.val<cur2.…

有哪些信息安全/网络安全/渗透测试/众测/CTF/红蓝攻防/漏洞测试等前沿技术/研究/技巧获取渠道?

​前言 护网的定义是以国家组织组织事业单位、国企单位、名企单位等开展攻防两方的网络安全演习。进攻方一个月内采取不限方式对防守方展开进攻&#xff0c;不管任何手段只要攻破防守方的网络并且留下标记即成功&#xff0c;直接冲到防守方的办公大楼&#xff0c;然后物理攻破…

Unity的IPreprocessBuild:深入解析与实用案例

Unity IPreprocessBuild Unity IPreprocessBuild是Unity引擎中的一个非常有用的功能&#xff0c;它可以让开发者在构建项目时自动执行一些操作。这个功能可以帮助开发者提高工作效率&#xff0c;减少手动操作的时间和错误率。在本文中我们将介绍Unity IPreprocessBuild的使用方…

mybatisplus递归传递多个参数 | mybatisplus传递多个参数获取层级数据 | mybatisplus传递多个参数获取树形数据

搜索关键字&#xff1a; mybatisplus关联查询传递参数|"select""树形结构"|"select""树形结构""传参"| "select""many""传参"| "select""column""传参" 1、…

基于MAX-10 FPGA 超声波测距模块HC_SR04

文章目录 一、介绍超声波测距模块HC_SR04二、模块框图三、模块编写1. 测距信号源2. 距离计算3. 数码管模块4. 顶层模块 四、实验现象总结 一、介绍超声波测距模块HC_SR04 HC-SR04是一种基于超声波的测距模块。该模块向前15度内发送超声波并接收回响&#xff0c;通过发出超声波…

数据结构之排序专题 —— 快速排序原理以及改进方法(添加随机,三路快排)

内容概述 尽管此类博客已经非常非常多&#xff0c;而且也有很多写得很好&#xff0c;但还是想记录一下&#xff0c;用最容易理解的方式&#xff0c;并且多补充了一些例子。 整理云盘的时候发现大一时候的笔记&#xff0c;用的是 txt 文本文件记录的&#xff0c;格式之丑陋可想…

Linux-0.11 boot目录setup.s详解

Linux-0.11 boot目录setup.s详解 模块简介 setup.s用于加载操作系统的一些信息&#xff0c;其主要处理了如下一些事情&#xff1a; 打印硬件信息重新搬运system的位置设置IDT和GDT打开A20地址线切换32位保护模式跳转到system.s中运行 过程详解 打印硬件信息 这里将ds设置…

深入理解Qt对象树内存管理

深入理解Qt对象树内存管理 一、Qt内存管理概述1.1 Qt内存管理的重要性1.2 Qt内存管理的基本原则1.3 Qt内存管理与C内存管理的关系 二、Qt对象树与内存管理&#xff08;Qt Object Tree and Memory Management&#xff09;2.1 Qt对象树的结构&#xff08;Structure of Qt Object …