编程软件工具
本文引用的文件
README.mddocs/examples/scratch/scratch.pyesp32s3/firmware/modules/mpython_ble/application/codexpad.pyesp32s3/firmware/examples/mpython_ble/codexpad.md
产品概述
本指南面向使用 mPython 掌控板(ESP32)与 ESP32-S3 系列产品的学习者与教师,聚焦三款编程软件的定位、功能差异与上手路径:mPython IDE、Labplus 3、Mind+。三者均服务于 K12 创客教育场景,分别覆盖“图形化 + Python 双模式”“Scratch 3.0 入门”“多主控通用平台”的不同需求层次,帮助用户在不同学段与项目中选择合适的工具链。
mPython IDE:官方推荐,支持硬件编程模式、Python 模式、Jupyter 模式;可离线使用;支持 hex/python/blockly 代码读写与云端项目存取、代码库扩展等。
Labplus 3:基于 Scratch 3.0,适合小学阶段入门,通过积木式编程快速体验传感器、显示、音乐等能力。
Mind+:国产青少年编程软件,具备多主控板通用能力,并集成 AI/IoT 生态,便于跨设备复用项目。
章节来源
核心业务流程
下图展示从“选择编程软件”到“在设备上运行程序”的通用流程,以及三类软件与底层固件的协作关系。
graph TB
A["用户选择编程软件"] --> B{"目标设备"}
B --> |ESP32 掌控板| C["mPython IDE / Labplus 3 / Mind+"]
B --> |ESP32-S3 掌控板3.0/乐动版| D["mPython IDE / VSCode / Mind+"]
C --> E["生成或导入代码<br/>hex/python/blocks"]
D --> E
E --> F["通过 USB/串口烧录或在线编辑"]
F --> G["设备运行 MicroPython 固件"]
G --> H["调用 mpython 模块/内置模块<br/>驱动外设显示/音频/传感器/网络"]
图示来源
README.md:105-112
章节来源
功能模块清单
mPython IDE
多种编程模式:硬件编程模式、Python 模式、Jupyter 模式,覆盖小初高不同学习阶段。
多格式代码读写:支持 hex、python、blockly 三种代码读写,Blockly 模式下支持函数。
离线可用:不依赖网络,可在无网环境安装使用。
仿真与云端:提供部分功能的仿真;支持云端存取项目与代码库扩展。
适用设备:ESP32 掌控板与 ESP32-S3 产品线均可使用。
Labplus 3
基于 Scratch 3.0 的图形化编程,适合小学入门。
通过串口通信与设备交互,示例中可见对触摸按键、RGB、OLED 等的控制。
典型用法:将 Scratch 工程与设备固件配合,实现传感器读取与显示反馈。
Mind+
多主控板通用平台,支持 BLE 手柄连接(如 CodexPad),并提供与 MicroPython API 一致的调用习惯。
在 ESP32-S3 上可通过蓝牙主机扫描并连接手柄,支持按 MAC 地址或按键组合筛选设备。
与固件中的 mpython_ble 应用层协同,提供图形化积木与原生 API 的映射。
章节来源
docs/examples/scratch/scratch.py:49-97esp32s3/firmware/examples/mpython_ble/codexpad.md:64-78esp32s3/firmware/modules/mpython_ble/application/codexpad.py:172-196
数据与状态
图形化与代码的转换
mPython IDE 支持 blockly/python/hex 互转,便于教学与分享。
Labplus 3 通过串口协议向设备发送指令,设备侧解析后驱动外设(如 RGB、触摸按键)。
Mind+ 通过 BLE 与外设(如 CodexPad)建立连接,维护连接状态与输入事件流。
设备端状态机(以 BLE 手柄为例)
扫描 → 发现服务 → 订阅通知 → 就绪 → 自动重连(断开时由 poll 维护)。
sequenceDiagram
participant U as "用户"
participant IDE as "编程软件"
participant DEV as "设备(MicroPython)"
participant MOD as "mpython_ble/CodexPad"
U->>IDE : 选择连接方式(名称/MAC/按键组合)
IDE->>DEV : 发起BLE扫描/连接
DEV->>MOD : 初始化并进入扫描状态
MOD-->>DEV : 发现服务/特征
DEV-->>IDE : 返回连接结果与设备信息
IDE->>DEV : 订阅输入事件
loop 主循环
DEV->>MOD : poll() 维护连接与重连
MOD-->>DEV : 按钮/摇杆事件
DEV-->>IDE : 上报实时输入
end
图示来源
esp32s3/firmware/modules/mpython_ble/application/codexpad.py:172-236esp32s3/firmware/examples/mpython_ble/codexpad.md:64-78
章节来源
docs/examples/scratch/scratch.py:49-97esp32s3/firmware/modules/mpython_ble/application/codexpad.py:172-236
关键约束与边界
设备与软件匹配
ESP32 掌控板:推荐使用 mPython IDE;也可使用 Labplus 3;Mind+ 可用于 BLE 外设场景。
ESP32-S3 产品线:可使用 mPython IDE 或 VSCode 进行 Python 开发;Mind+ 用于 BLE 手柄等外设交互。
运行时依赖与限制
mPython IDE:支持离线使用;部分仿真能力有限;云端存取需联网。
Labplus 3:依赖 Scratch 运行时与设备固件的串口协议一致性。
Mind+:BLE 连接受限于设备广播名、MAC 稳定性与权限;同一时刻仅一个对象占用 BLE IRQ。
安全与资源
云端项目存储注意隐私设置;避免在公共环境上传敏感信息。
BLE 连接需考虑距离与干扰;频繁断连时应检查电量与信号强度。
章节来源
esp32s3/firmware/examples/mpython_ble/codexpad.md:64-78esp32s3/firmware/modules/mpython_ble/application/codexpad.py:172-236