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

news2024/11/26 18:41:33

目录

  • 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 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. 验证

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/578059.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

antV 事件多次触发问题,解绑

由于最近刚刚接触 antV - 数据可视化,对于他的事件应用还比较陌生,在应用中莫名其妙多次调用,想了很多方式如节流……,但是没有用。 业务介绍 当我点击流程图中的某一项进行提示,每次双击都会递增调用。 解决过程 当时想着用节流的方式,但是很遗憾,他还是疯狂递增调用…

Go语言的命令

常用命令 假如你已安装了golang环境,你可以在命令行执行go命令查看相关的Go语言命令: Go语言是一门编译型语言,通过命令行工具来编译、运行和管理代码。以下是Go语言的一些常用命令及其用法: go run:用于编译并直接…

chatgpt赋能python:Python补全:介绍和优点

Python补全:介绍和优点 Python是一种高级编程语言,自20世纪90年代以来一直广受欢迎。Python被认为是一种非常易学易用的语言,因为它的代码看起来就像是英文一样流畅自然。它是一种解释性语言,这意味着代码可以直接在计算机上运行…

LeetCode 24. 两两交换链表中的节点

C代码: class Solution { public:ListNode* swapPairs(ListNode* head) {ListNode* dummyHead new ListNode(0);//设置一个虚拟头结点dummyHead->next head;// 将虚拟头结点指向head,这样方面后面做删除操作ListNode* cur dummyHead;//初始时&…

Android SharedPreferences转为MMKV

开篇 开局一张图,说明一切问题。 MMKV优势 可以看出MMKV相比SP的优势还是比较大的,除了需要引入库,有一些修改上的成本以外,就没有什么能够阻挡MMKV了。当然了,MMKV也有着不广为人知的缺点,放在最后。 MM…

【STM32F103ZE实验】【实验1】点亮LED

STM32CubeMx生成keil工程 步骤1:打开STM32CubeMx, 选择MCU类型 步骤2: 设置Debug类型 步骤3: 选择时钟源 步骤4: 配置时钟 步骤5: 配置GPIO控制LED 首先配置PE5 点击GPIO_Output进行相关配置&#…

如何使用Node.js REPL

目录 1、Nodejs REPL 2、_特殊变量 3、向上箭头键 4、点命令 5、从JavaScript文件运行REPL 1、Nodejs REPL REPL代表Read-Evaluate-Print-Loop,是交互式解释器。 node命令是我们用来运行Node.js脚本的命令: node script.js 如果我们运行node命令…

chatgpt赋能python:Python数据处理中如何选取指定范围的数据

Python数据处理中如何选取指定范围的数据 Python已经成为了数据科学家和工程师的标配,尤其在数据处理和数据分析中,Python具有广泛的应用。在数据处理中,选取指定范围的数据是一个很重要的功能。本文将介绍Python中如何实现指定范围的数据选…

SpringBoot——原理(起步依赖+自动配置(概述和案例))

在Spring家族中提供了很多优秀的框架,所有的框架都是基于同一个基础框架——Spring Framework. 使用spring框架开发麻烦的一批,光是搞依赖和配置就够人喝一壶了。因此在spring4.0版本之后又推出了springboot框架。springboot框架用起来比spring框架简单…

chatgpt赋能python:Python行长度的重要性及最佳实践

Python 行长度的重要性及最佳实践 Python 行长度的重要性 对于一门编程语言而言,行长度是指每一行代码的字符数,Python 也不例外。同时,Python 的行长度限制也是相当明确的,官方建议不要超过 79 个字符,而 PEP 8 规范…

【编译、链接、装载一】预处理、编译、汇编、链接

【编译和链接一】预处理、编译、汇编、链接 一、被隐藏了的过程二、预处理器(Prepressing)——cpp1、预处理指令2、预处理过程3、预处理生成的hello.i文件 三、编译器(Compilation)——cc1、编译指令2、编译的过程3、编译生成的文…

chatgpt赋能python:Python读取Mat文件的完整教程

Python 读取Mat文件的完整教程 在数据科学领域,Matlab(或简称Mat)是最受欢迎的编程语言之一。Matlab可用于数学计算、数据预处理、建模和数据分析。然而,Matlab的开销和许可证成本会限制公司和个人的使用。因此,Pytho…

渗透必学神器:BurpSuite教程(一)

0x00 前言 Burp Suite (简称BP,下同)是用于攻击web 应用程序的集成平台。它包含了许多工具,并为这些工具设计了许多接口,以促进加快攻击应用程序的过程。 从本节开始将为大家陆续带来BP各个模块的使用说明 0x01 中间人攻击 中间人攻击&am…

ChatGPT | Bing | Google Bard | 讯飞星火 | 到底哪家强?实测

最近AIGC战场依然热闹,微软的new bing、Google的Bard、国内的讯飞星火认知大模型,都接连上阵,我们对比ChatGPT一起来看看,我把实际使用测试结果发出,供大家参考。有些测试结果可能会出乎大家的预料哦… 今天我们暂时主…

第十四章 (Set)

一、Set 接口(P518) 1. Set 接口基本介绍 (1)无序(添加和取出的顺序不一致),没有索引。 (2)不允许重复元素,所以最多包含一个 null。 2. Set 接口的常用方法…

阿里云服务器ECS云盘扩容

前言 对于云服务器,相信大多数开发的铁子们都玩过,但是云盘爆满的情况,对于新手或者没有自己运营业务的铁子们,平台给的初始容量也不算小,所以这种情况碰到的概率还是比较小。由于我的服务器应用的复杂度随着业务的发…

ubuntu安装搜狗输入法,图文详解+踩坑解决

搜狗输入法已支持Ubuntu16.04、18.04、19.10、20.04、20.10,本教程系统是基于ubuntu18.04 一、添加中文语言支持 系统设置—>区域和语言—>管理已安装的语言—>在“语言”tab下—>点击“添加或删除语言”。 弹出“已安装语言”窗口,勾选中文…

chatgpt赋能python:Python在SEO领域的优势

Python在SEO领域的优势 Python作为一种高效、灵活的编程语言,已经被广泛应用于多个领域,包括Web应用、数据科学、自然语言处理等。在SEO领域,Python也有其独特的优势。 爬虫 Python强大的爬虫库和框架,如BeautifulSoup、Scrapy…

chatgpt赋能python:Python行列转换教程:如何轻松实现行列转换

Python行列转换教程:如何轻松实现行列转换 在数据处理和分析中,经常需要将行和列进行转换。Python是一种优秀的编程语言,提供了多种方法来实现行列转换。在本教程中,我们将介绍如何使用Python实现行列转换,并提供简单…

《Spring Guides系列学习》guide66 - guide68及小结

要想全面快速学习Spring的内容,最好的方法肯定是先去Spring官网去查阅文档,在Spring官网中找到了适合新手了解的官网Guides,一共68篇,打算全部过一遍,能尽量全面的了解Spring框架的每个特性和功能。 接着上篇看过的gui…