API类库参考
本文引用的文件
firmware/port/modules/urequests.pyfirmware/port/modules/ssd1106.pyfirmware/port/modules/neopixel.pyfirmware/port/modules/sdcard.pyfirmware/port/modules/dht.pyfirmware/port/modules/onewire.pyfirmware/port/modules/ntptime.pyfirmware/port/modules/webrepl.pyfirmware/port/modules/logging.pyfirmware/port/modules/flashbdev.pyfirmware/port/modules/inisetup.pyfirmware/port/modules/adafruit_miniqr.pyfirmware/port/modules/hrcalc.pyfirmware/port/modules/forece.pyfirmware/port/modules/apds9960.pyfirmware/port/modules/paj7620.pyfirmware/port/modules/spl06_001.pyfirmware/port/modules/max30102.pyfirmware/port/modules/mddrv8837.pyfirmware/port/modules/apa106.pyfirmware/port/modules/pm25.pyfirmware/port/modules/weather.pyfirmware/port/modules/solar.pyfirmware/port/modules/ATGM336H_5N.pyfirmware/port/modules/CSK6011A.pyfirmware/port/modules/acd1200.pyfirmware/port/modules/ir_remote.pyfirmware/port/modules/websocket_helper.pyfirmware/port/modules/upip.pyfirmware/port/modules/upip_utarfile.pyfirmware/port/modules/font/*.pyfirmware/port/modules/mpython_ble/*firmware/port/builtins/modmachine.cfirmware/port/builtins/machine_pin.cfirmware/port/builtins/machine_touchpad.cfirmware/port/builtins/machine_servo.cfirmware/port/builtins/modmusic.cfirmware/port/builtins/modmusictunes.cfirmware/port/builtins/modcodec.cfirmware/port/builtins/modmotion.cfirmware/port/builtins/modnetwork.cfirmware/port/builtins/modradio.cfirmware/port/builtins/modrfid.cfirmware/port/builtins/modrgbLED5x5.cfirmware/port/builtins/modxunfeiAI.cfirmware/port/builtins/esp32_nvs.cfirmware/port/builtins/modframebuf.c
产品概述
本手册面向mPython掌控板及其ESP32-S3升级产品线,提供“内置库(MicroPython C级扩展)—MicroPython类库—Python标准库”三层API的完整参考,并给出与固件源码的对照关系。文档覆盖:
mPython专属库:板载传感器、显示、音频、无线、网络等高级封装
MicroPython类库:machine、network、neopixel、framebuf等底层能力
Python标准库:ujson、uos、utime等微型化标准模块 同时标注各API在固件中的实现位置(C级builtins或Python级modules),便于开发者定位源码、理解行为差异与限制。
核心业务流程
传感器采集流程:MPythonPin/Touch/Button读取 → MOTION(加速度/陀螺仪/磁力计) → 可选BME280环境数据 → 通过wifi/网络上传或本地处理
显示流程:OLED/TFT_displayer绘制 → framebuf缓冲 → show刷新
音频流程:music播放音符/曲库;audio录音/播放/音量控制;可选讯飞TTS在线合成
通信流程:WiFi STA/AP连接 → urequests/umqtt发送HTTP/MQTT;radio/ubluetooth进行短距通信
存储流程:NVS持久化(校准偏移等)→ flashbdev文件系统 → SD卡扩展
sequenceDiagram
participant App as "应用代码"
participant MP as "mpython模块"
participant MB as "machine/驱动"
participant Net as "network/urequests"
participant FS as "NVS/文件系统"
App->>MP : 初始化传感器/显示/网络
MP->>MB : 配置Pin/I2C/ADC/PWM
MB-->>MP : 传感器原始数据
MP->>FS : 读取/写入校准参数(NVS)
App->>Net : 连接WiFi/发起HTTP请求
Net-->>App : 返回数据
App->>MP : 更新显示/播放音频
图表来源
章节来源
功能模块清单
mPython专属库
mpython:板载资源统一封装(显示、按键、触摸、传感器、RGB、I2C、WiFi)
music:兼容micro:bit的音乐播放与曲库
audio:ESP32音频编解码、录音、TTS(需联网)
radio:2.4G无线广播收发
urequests:HTTP客户端
umqtt.simple:轻量MQTT客户端
servo:舵机控制
bluebit/parrot:扩展板驱动
ds18x20:单总线温度传感器
bluetooth:BLE基础能力
iat:语音识别(讯飞)
其他:sdcard、gui等
MicroPython类库
machine:Pin/ADC/PWM/I2C/SPI/UART/Timer/RTC/WDT等硬件抽象
network:WiFi/以太网等网络栈
neopixel:WS2812灯带控制
framebuf:帧缓冲绘图
其他:ubluetooth、cryptolib、uctypes、random、ntptime、onewire等
Python标准库(微型化)
builtins/array/math/sys/ubinascii/ucollections/uerrno/uhashlib/uheapq/uio/ujson/uos/ure/uselect/usocket/ussl/ustruct/utime/uzlib等
章节来源
数据与状态
传感器数据模型
加速度/角速度/磁场:单位分别为mg、°/s、mG;支持量程、分辨率、偏移校准与NVS持久化
环境传感器:BME280温度/气压/湿度;DHT温湿度;SPL06气压;MAX30102心率;APDS9960/PJ7620手势
显示状态
OLED:128x64黑白,继承framebuf,支持文本模式、自定义字体、图形绘制
TFT_displayer(ESP32-S3):320x172 RGB565,字符显示与刷新
音频状态
播放器/录音器状态机:初始化、播放、暂停、停止、释放
TTS:在线服务调用,依赖网络与配置
网络状态
WiFi STA/AP切换、连接超时、断开清理
HTTP/MQTT会话生命周期管理
存储状态
NVS键值对用于保存校准偏移、设备ID等
文件系统:flashbdev虚拟块设备、SD卡挂载
classDiagram
class MOTION {
+Accelerometer
+Gyroscope
+Magnetic
+set_offset()
+get_nvs_offset()
+set_nvs_offset()
}
class Display {
+oled / TFT_displayer
+DispChar()
+show()
+fill()/pixel()/rect()
}
class Audio {
+player_init()
+play()/pause()/stop()
+recorder_init()
+record()
+xunfei_tts()
}
class Network {
+connectWiFi()
+enable_APWiFi()
+disconnectWiFi()
}
class Storage {
+NVS读写
+flashbdev/SD
}
MOTION --> Storage : "持久化偏移"
Display --> Storage : "缓存/刷新"
Audio --> Network : "TTS在线"
Network --> Storage : "配置/日志"
图表来源
章节来源
关键约束与边界
平台差异
ESP32:内置modradio/modcodec/modnetwork/modrgbLED5x5/modxunfeiAI等C级模块
ESP32-S3:移除部分C级模块,新增machine_i2c_extmod/network_wlan独立模块;显示替换为TFT_displayer
引脚与外设限制
P4/P10分别用于光线/声音传感器,不可作为通用IO
I2C默认使用P19/P20;不同板型引脚映射可能不同
性能与功耗
WiFi开启会增加功耗,不使用时建议关闭
高频采样/刷屏会影响实时性与电量
兼容性
music模块兼容micro:bit,但曲库与接口以固件实现为准
标准库采用u前缀命名(如ujson),可通过同名Python模块覆盖以实现兼容
安全与稳定性
回调在中断上下文执行,避免阻塞操作
网络/音频在线功能依赖外部服务,需处理超时与异常
章节来源
附录:API与固件源码对照(按层级)
一、mPython专属库(Python层为主,部分C级实现)
mpython
职责:板载资源统一封装(显示、按键、触摸、传感器、RGB、I2C、WiFi)
源码路径:firmware/port/boards/*/modules/mpython.py(多板型共享/定制)
文档路径:docs/docs/zh_CN/library/mPython/mpython.rst
关联C模块:modmachine/machine_pin/machine_touchpad/modmotion/esp32_nvs/modframebuf
music
职责:播放音符/曲库,兼容micro:bit
源码路径:firmware/port/builtins/modmusic.c, modmusictunes.c
文档路径:docs/docs/zh_CN/library/mPython/music.rst
audio(仅ESP32)
职责:音频播放/录音/音量控制/讯飞TTS
源码路径:firmware/port/builtins/modcodec.c
文档路径:docs/docs/zh_CN/library/mPython/audio.rst
radio(仅ESP32)
职责:2.4G无线广播收发
源码路径:firmware/port/builtins/modradio.c
文档路径:docs/docs/zh_CN/library/mPython/radio.rst
urequests
职责:HTTP客户端
源码路径:firmware/port/modules/urequests.py
文档路径:docs/docs/zh_CN/library/mPython/urequests.rst
umqtt.simple
职责:轻量MQTT客户端
源码路径:firmware/port/modules/umqtt/simple.py(仓库中常见)
文档路径:docs/docs/zh_CN/library/mPython/umqtt.simple.rst
servo
职责:舵机控制
源码路径:firmware/port/builtins/machine_servo.c(C级PWM/定时器)
文档路径:docs/docs/zh_CN/library/mPython/servo.rst
bluebit/parrot
职责:扩展板驱动
源码路径:firmware/port/modules/bluebit.py, parrot.py
文档路径:docs/docs/zh_CN/library/mPython/bluebit.rst, parrot.rst
ds18x20
职责:单总线温度传感器
源码路径:firmware/port/modules/ds18x20.py(依赖onewire)
文档路径:docs/docs/zh_CN/library/mPython/ds18x20.rst
bluetooth
职责:BLE基础能力
源码路径:MicroPython ubluetooth(端口实现)
文档路径:docs/docs/zh_CN/library/mPython/bluetooth.rst
iat(语音识别)
职责:讯飞语音听写
源码路径:firmware/port/builtins/modxunfeiAI.c
文档路径:docs/docs/zh_CN/library/mPython/iat.rst
其他
sdcard:firmware/port/modules/sdcard.py
gui:firmware/port/modules/gui.py(GUI绘制辅助)
章节来源
二、MicroPython类库(底层能力)
machine
职责:Pin/ADC/PWM/I2C/SPI/UART/Timer/RTC/WDT等
源码路径:firmware/port/builtins/modmachine.c, machine_pin.c, machine_touchpad.c, machine_servo.c
文档路径:docs/docs/zh_CN/library/micropython/machine/machine.rst
network
职责:WiFi/以太网等网络栈
源码路径:firmware/port/builtins/modnetwork.c(ESP32)/network_wlan(ESP32-S3)
文档路径:docs/docs/zh_CN/library/micropython/network.rst(由索引引用)
neopixel
职责:WS2812灯带控制
源码路径:firmware/port/modules/neopixel.py
文档路径:docs/docs/zh_CN/library/micropython/neopixel.rst
framebuf
职责:帧缓冲绘图
源码路径:firmware/port/builtins/modframebuf.c
文档路径:docs/docs/zh_CN/library/micropython/framebuf.rst
其他
ubluetooth/cryptolib/uctypes/random/ntptime/onewire等:见micropython索引
章节来源
三、Python标准库(微型化)
builtins/array/math/sys/...
职责:微型化标准函数与模块
源码路径:MicroPython内置(C级)
文档路径:docs/docs/zh_CN/library/pythonStd/builtins.rst 及对应子模块文档
章节来源
详细组件分析
mpython模块(板载封装)
职责:统一封装OLED/TFT显示、按键/触摸、传感器、RGB、I2C、WiFi等
关键类与方法
显示:oled.DispChar/DispChar_font/show/fill/pixel/rect等
传感器:accelerometer/gyroscope/magnetic/BME280
输入:Button/Touch/MPythonPin
网络:wifi.connectWiFi/disconnectWiFi/enable_APWiFi/disable_APWiFi
源码路径:firmware/port/boards/*/modules/mpython.py
文档路径:docs/docs/zh_CN/library/mPython/mpython.rst
flowchart TD
Start["应用调用"] --> Mode{"选择功能"}
Mode --> |显示| Disp["oled/tft_displayer<br/>DispChar/show"]
Mode --> |传感器| Sens["accelerometer/gyroscope/magnetic<br/>read/set_range/set_offset"]
Mode --> |输入| Inp["Button/Touch/MPythonPin<br/>is_pressed/read/write"]
Mode --> |网络| Net["wifi.connectWiFi/enable_APWiFi"]
Disp --> End["刷新/绘制"]
Sens --> End["获取/校准/持久化"]
Inp --> End["事件/状态"]
Net --> End["连接/断开"]
图表来源
章节来源
music模块(音乐播放)
职责:播放音符列表/内置曲目,设置节奏,兼容micro:bit
关键方法:play/pitch/stop/set_tempo/get_tempo/reset
源码路径:firmware/port/builtins/modmusic.c, modmusictunes.c
文档路径:docs/docs/zh_CN/library/mPython/music.rst
章节来源
firmware/port/builtins/modmusic.cfirmware/port/builtins/modmusictunes.c
audio模块(音频与TTS,ESP32)
职责:音频播放/录音/音量控制;讯飞TTS在线合成
关键方法:player_init/play/pause/stop/set_volume/recorder_init/record/xunfei_tts_config/xunfei_tts
源码路径:firmware/port/builtins/modcodec.c
文档路径:docs/docs/zh_CN/library/mPython/audio.rst
章节来源
firmware/port/builtins/modcodec.c
radio模块(无线广播,ESP32)
职责:2.4G无线广播发送/接收
关键方法:on/off/send/send_bytes/receive/receive_bytes/config
源码路径:firmware/port/builtins/modradio.c
文档路径:docs/docs/zh_CN/library/mPython/radio.rst
章节来源
firmware/port/builtins/modradio.c
网络与存储
urequests:HTTP客户端(Python层)
源码路径:firmware/port/modules/urequests.py
文档路径:docs/docs/zh_CN/library/mPython/urequests.rst
umqtt.simple:MQTT客户端(Python层)
文档路径:docs/docs/zh_CN/library/mPython/umqtt.simple.rst
NVS存储:校准偏移、设备ID等
源码路径:firmware/port/builtins/esp32_nvs.c
文件系统:flashbdev/SD卡
源码路径:firmware/port/modules/flashbdev.py, sdcard.py
章节来源
firmware/port/builtins/esp32_nvs.cfirmware/port/modules/flashbdev.pyfirmware/port/modules/sdcard.py
传感器与外设
六轴传感器(MOTION):加速度/陀螺仪/磁力计
源码路径:firmware/port/builtins/modmotion.c
单总线与温度:onewire/ds18x20
源码路径:firmware/port/modules/onewire.py, ds18x20.py
手势与环境:apds9960/paj7620/spl06_001/max30102
源码路径:firmware/port/modules/apds9960.py, paj7620.py, spl06_001.py, max30102.py
电机与灯带:mddrv8837/apa106/neopixel
源码路径:firmware/port/modules/mddrv8837.py, apa106.py, neopixel.py
其他:pm25/weather/solar/ATGM336H_5N(CSK6011A)/acd1200/ir_remote
源码路径:对应modules文件
章节来源
firmware/port/builtins/modmotion.cfirmware/port/modules/onewire.pyfirmware/port/modules/ds18x20.pyfirmware/port/modules/apds9960.pyfirmware/port/modules/paj7620.pyfirmware/port/modules/spl06_001.pyfirmware/port/modules/max30102.pyfirmware/port/modules/mddrv8837.pyfirmware/port/modules/apa106.pyfirmware/port/modules/neopixel.pyfirmware/port/modules/pm25.pyfirmware/port/modules/weather.pyfirmware/port/modules/solar.pyfirmware/port/modules/ATGM336H_5N.pyfirmware/port/modules/CSK6011A.pyfirmware/port/modules/acd1200.pyfirmware/port/modules/ir_remote.py
显示与GUI
OLED(ESP32):SSD1106驱动,framebuf衍生
源码路径:firmware/port/modules/ssd1106.py
TFT_displayer(ESP32-S3):LCD彩屏,framebuf衍生
文档路径:docs/docs/zh_CN/library/mPython/mpython.rst(TFT相关)
GUI工具:gui.py、lv_utils(ESP32-S3)
源码路径:firmware/port/modules/gui.py
章节来源
firmware/port/modules/ssd1106.pyfirmware/port/modules/gui.py
蓝牙与扩展库
mpython_ble:BLE高级库(包结构advertising/application/characteristics/descriptors/gatts/services)
源码路径:firmware/port/modules/mpython_ble/*
bluebit/parrot:扩展板驱动
源码路径:firmware/port/modules/bluebit.py, parrot.py
章节来源
firmware/port/modules/mpython_ble/*firmware/port/modules/bluebit.pyfirmware/port/modules/parrot.py
工具与系统模块
logging:日志记录
源码路径:firmware/port/modules/logging.py
webrepl:Web REPL
源码路径:firmware/port/modules/webrepl.py
upip/upip_utarfile:包管理器
源码路径:firmware/port/modules/upip.py, upip_utarfile.py
其他:hrcalc/forece/adafruit_miniqr/inisetup等
源码路径:对应modules文件
章节来源
firmware/port/modules/logging.pyfirmware/port/modules/webrepl.pyfirmware/port/modules/upip.pyfirmware/port/modules/upip_utarfile.pyfirmware/port/modules/hrcalc.pyfirmware/port/modules/forece.pyfirmware/port/modules/adafruit_miniqr.pyfirmware/port/modules/inisetup.py
依赖分析
模块耦合
mpython依赖machine/SSD1106/neopixel/framebuf/NVS等底层能力
audio/music依赖machine(PWM/定时器)与网络(TTS)
radio依赖底层射频驱动(ESP32)
传感器模块普遍依赖I2C/单总线/ADC
外部依赖
网络:WiFi路由器/云端服务(HTTP/MQTT/TTS)
存储:NVS/Flash/SD卡
潜在循环依赖
通过分层设计(应用→mpython→machine→驱动)降低耦合
graph TB
App["应用代码"] --> MP["mpython模块"]
MP --> MB["machine/驱动"]
MP --> NET["network/urequests"]
MP --> FS["NVS/文件系统"]
MP --> DISP["SSD1106/framebuf"]
MP --> AUDIO["modcodec/modmusic"]
MP --> RADIO["modradio"]
NET --> Cloud["云端服务"]
FS --> Flash["Flash/SD"]
图表来源
章节来源
结论
本参考手册系统化梳理了mPython掌控板的三层API(内置库、MicroPython类库、Python标准库),并提供与固件源码的明确对照,帮助开发者快速定位实现、理解行为差异与限制。建议在开发中优先使用mPython高层封装提升效率,必要时深入machine/驱动层优化性能与功耗;网络与在线功能需考虑可靠性与异常处理;跨平台差异(ESP32 vs ESP32-S3)应在选型与适配阶段充分考虑。