micropython相关的库、相关汇总

陆飞捷
2023-12-01

本文基于https://github.com/pfalcon/awesome-micropython汇总而来,并加入自己的理解,推荐给大家,方便大家在自己的micropython上发挥更多创意,去做更多更好更棒的作品。
MicroPython(以下用mpy简称)被称为“Python的嵌入式版本”。其内容远远不止于此。
首先,不得不介绍的就是mpy的官方代码仓库,它的维护人是Damien George。官方github是这里:https://github.com/micropython/micropython。它的官网则是这里:https://micropython.org/

有名的forks

mpy在Github有超过2000个forks,以下是几个值得了解的forks:

Pycopy

mpy的第二大贡献者(〜35%)。致力于进一步开发最初对主线起作用的所有重要功能-流I / O接口,异步支持,节省内存的API等。还用于优化,错误修复和改进的文档。与主线同步。地址:https://github.com/pfalcon/pycopy

Pycom MicroPython

支持现代通信标准,例如LoRa,Sigfox等。地址:https://github.com/pycom/pycom-micropython-sigfox

CircuitPython

具有教育意义的mpy fork,专注于特定供应商的微控制器板。在线教程和教育资源的丰富性。地址:https://github.com/adafruit/circuitpython

OpenMV

用于机器视觉板的mpy fork。地址:https://github.com/openmv/openmv

Loboris ESP32

专注于ESP32。包装了许多C库。地址:https://github.com/loboris/MicroPython_ESP32_psRAM_LoBo

相关的文档资料(不懂英文的用谷歌浏览器自带的翻译)

mpy的README.md

不要错过这个项目README,除了最外面的,它项目里面还有很多README,学会了解开源项目。地址:https://github.com/micropython/micropython

mpy官方的文档

官方的文档,比mpy更新要慢。地址:http://docs.micropython.org/en/latest/

Pycopy文档

更完整,语言方面和内置模块的在线可搜索文档。地址:https://pycopy.readthedocs.io/en/latest/

Python 3.5文档

MicroPython是Python语言的一种实现,因此可以查看相关python官方文档去了解语法方面的知识。地址:https://docs.python.org/3.5/

upycraft文档

这是一款编辑器的文档,也有很多内置库的相关说明,重点是有中文。地址:http://docs.dfrobot.com.cn/upycraft/

工具

mpy交互式解释器(REPL)

本地访问

mpy本身自带REPL,我们通过USB连接到uart就可以通过终端或者串口查看器就访问。

远程访问

WebREPL,通过开启了weberpl后通过wifi可以在浏览器中进行REPL。官方链接:https://micropython.org/webrepl/,也可以在本地部署:https://github.com/micropython/webrepl/

shell

有直接在MicroPython设备上(或在MicroPython进程中)运行的shell,也有在主机上运行并连接到设备的shell

在设备上:

upysh

使用Python语法的最小文件shell,即使内存很少也适用于设备。源自于pycopy-lib。 链接:https://github.com/pfalcon/pycopy-lib/tree/master/upysh

upy-shell

基于cmd的简单shell。链接:https://github.com/dhylands/upy-shell

在主机上

rshell

mpy的远程shell。地址:https://github.com/dhylands/rshell

mpfshell

用于基于mpy设备的基于shell的简单文件浏览器。地址:https://github.com/wendlers/mpfshell

ampy

通过串行连接与MicroPython开发板交互的实用程序。地址:https://github.com/scientifichackers/ampy

包管理

软件包可以通过包索引(PyPl)分发,就像其他任何python实现的软件包一样。对于可以上网的设备,可以使用upip软件包管理器进行安装,对于不可上网的设备,可以通过将软件包下载到主机上,然后复制到设备。为了获得最高的ram效率,可以将软件包打包成为micropython二进制文件。

开发环境

vscode插件

https://marketplace.visualstudio.com/items?itemName=RT-Thread.rt-thread-micropython

thonny IDE

https://thonny.org/

pycharm插件

https://blog.jetbrains.com/pycharm/2018/01/micropython-plugin-for-pycharm/

IDEA插件

https://plugins.jetbrains.com/plugin/9777-micropython

mu编辑器

https://github.com/mu-editor/mu

uPyCraft编辑器

https://github.com/DFRobot/uPyCraft

uPyLoader

https://github.com/BetaRavener/uPyLoader

相关库总结:

标准库

micropython-lib

官方的标准库,如果想看源码的可以看这里。地址:https://github.com/micropython/micropython-lib

pycopy-lib

Pycopy项目的标准库。从CPython移植的数十个模块,数十个专门为Pycopy开发的模块。地址:https://github.com/pfalcon/pycopy-lib

Pycopy API模块向CPython的反向移植

pycopy-lib还提供了在CPython上运行的Pycopy模块的重新实现(“反向端口”)。地址:https://github.com/pfalcon/pycopy-lib#cpython-backports

异步调度和IO

uasyncio

uasyncio是一个极简主义的异步调度库,大致仿照Python的asyncio。地址:https://pypi.org/project/pycopy-uasyncio/

图像操作

framebuf

内置模块,用于简单的与设备无关的图形。文档地址:http://docs.micropython.org/en/latest/library/framebuf.htm

图形用户界面(GUI)

micropython-nano-gui

基于framebuf类的显示驱动程序的轻量级MicroPython GUI库。地址:https://github.com/peterhinch/micropython-nano-gui

LittlevGL_bindings

基于LittlevGL GUI库的绑定。地址:https://github.com/littlevgl/lv_binding_micropython

文字使用者介面(TUI)

picotui

具有最小依赖性的轻量级TUI小部件工具包。在MicroPython和CPython中均可使用。地址:https://github.com/pfalcon/picotui

FBConsole

帧缓冲区上的MicroPython终端(dupterm)。地址:https://github.com/boochow/FBConsole

数据库

btree

内置模块,简单的“ NoSQL”数据库,具有类似于字典的界面,基于著名的BerkeleyDB 1.xx库。文档地址:https://pycopy.readthedocs.io/en/latest/library/btree.html

sqlite3

pycopy模块,重新实现了Python的sqlite3。地址:https://pypi.org/project/pycopy-sqlite3/

micropython-redis

Redis客户端。地址:https://github.com/dwighthubbard/micropython-redis

picoredis

另一个Redis客户。地址:https://github.com/SpotlightKid/picoredis

uPyMySQL

MySQL客户端。地址:https://github.com/dvrhax/uPyMySQL

协议

urequests

pycopy模块,实现了python的requests库。地址:https://pypi.org/project/pycopy-sqlite3/

udnspkt

DNS查询。地址:https://pypi.org/project/pycopy-udnspkt/

Web框架

picoweb

基于“ uasyncio”模块的真正最小的Web应用程序框架。地址:https://github.com/pfalcon/picoweb/

MicroWebSrv2

适用于MicroPython和CPython的功能强大的新型嵌入式Web服务器。地址:https://github.com/jczic/MicroWebSrv2

与其他语言接口

ffi

MicroPython的外函数接口模块。从动态库或仅在内存中调用C等函数。地址:https://pycopy.readthedocs.io/en/latest/library/ffi.html

uctypes

MicroPython的“外部数据”接口。用C语言的表达能力访问二进制数据结构。通常一起使用的“ ffi”和“ uctypes”模块。地址:https://pycopy.readthedocs.io/en/latest/library/uctypes.html

jni

JavaVM集成模块(使用JNI)。地址:https://github.com/pfalcon/pycopy/blob/pfalcon/ports/unix/modjni.c

pycopy-ffigen

自动从C头文件为ffi/uctypes模块生成绑定。地址:https://github.com/pfalcon/pycopy-ffigen

micropython-wrap

C ++包装器,可轻松将C ++代码与MicroPython进行接口。地址:https://github.com/stinos/micropython-wrap

ullvm

LLVM C API的绑定。地址:https://github.com/pfalcon/ullvm

文字数据处理

ure(micro-re)

内置模块,可实现正则表达式语法的子集。文档地址:https://pycopy.readthedocs.io/en/latest/library/ure.html

re-pcre

基于PCRE库的更完整的正则表达式实现,在很大程度上与完整的CPython re语法兼容。地址:https://pypi.org/project/pycopy-re-pcre/

utemplate

基于生成器的内存使用率低的微型模板引擎。地址:https://github.com/pfalcon/utemplate

科学计算

uMath

符号计算机代数系统(CAS)地址:https://github.com/AaronKel/uMath

ulab

ulab是numpy用于micropython和CircuitPython的类似数组操作库。地址:https://github.com/v923z/micropython-ulab

外设

IMU

姿态传感器。地址:https://github.com/micropython-IMU/micropython-fusion

ws18b20

rgb led驱动。地址:https://github.com/JanBednarik/micropython-ws2812

HC-SR04

超声波传感器。地址:https://github.com/rsc1975/micropython-hcsr04

mpu9250

姿态传感器。地址:https://github.com/tuupola/micropython-mpu9250

 类似资料: