硬件
//掌控板
//扩展板
| 引脚 | 类型 | 描述 |
|---|---|---|
| P0 | I/O | 模拟/数字输入,模拟/数字输出,TouchPad |
| P1 | I/O | 模拟/数字输入,模拟/数字输出,TouchPad |
| P2 | I | 模拟/数字输入 |
| P3 | I | 模拟/数字输入,连接掌控板EXT鳄鱼夹,可连接阻性传感器 |
| P4 | I | 模拟输入/数字输入,连接掌控板光线传感器 |
| P5 | I/O | 数字输入,模拟/数字输出, 连接掌控板按键A,neopixel |
| P6 | I/O | 数字输入,模拟/数字输出, 连接掌控板蜂鸣器,不使用蜂鸣器时,可以作为数字IO使用,neopixel |
| P7 | I/O | 数字输入,模拟/数字输出, 连接掌控板RGB LED |
| P8 | I/O | 数字输入,模拟/数字输出,neopixel |
| P9 | I/O | 数字输入,模拟/数字输出,neopixel |
| P10 | I | 模拟/数字输入,连接掌控板声音传感器 |
| P11 | I/O | 数字输入,模拟/数字输出, 连接掌控板按键B,neopixel |
| P12 | I/O | 保留 |
| P13 | I/O | 数字输入,模拟/数字输出,neopixel |
| P14 | I/O | 数字输入,模拟/数字输出,neopixel |
| P15 | I/O | 数字输入,模拟/数字输出,neopixel |
| P16 | I/O | 数字输入,模拟/数字输出,neopixel |
| 3V3 | POWER | 电源正输入:连接USB时,掌控板内部稳压输出3.3V,未连接USB可以通过输入(2.7-3.6)V电压为掌控板供电 |
| P19 | I/O | 数字输入,模拟/数字输出,I2C总线SCL,与内部的OLED和加速度传感器共享I2C总线,neopixel |
| P20 | I/O | 数字输入,模拟/数字输出,I2C总线SDA,与内部的OLED和加速度传感器共享I2C总线,neopixel |
| GND | GND | 电源GND |
| Touch_P(P23) | I/O | TouchPad |
| Touch_Y(P24) | I/O | TouchPad |
| Touch_T(P25) | I/O | TouchPad |
| Touch_H(P26) | I/O | TouchPad |
| Touch_O(P27) | I/O | TouchPad |
| Touch_N(P28) | I/O | TouchPad |
以下是为ESP32掌控板整理的MicroPython快速参考卡,涵盖硬件配置、核心模块、外设控制、网络连接及开发工具等关键内容,便于开发时快速查阅:
Quick reference card for 掌控板
🛠️ 一、硬件概览
| 项目 | 参数/说明 | 相关引脚 |
|---|---|---|
| 主控芯片 | ESP32-WROOM(双核,240MHz) | - |
| 板载资源 | 128×64 OLED、RGB LED×3、按键(A/B)、蜂鸣器、光线/声音/加速度/地磁传感器 | P5(按键A)、P11(按键B)、P4(光线)、P10(声音)、P7(RGB LED)、P6(蜂鸣器) |
| GPIO引脚 | P0-P16, P19-P20, P23-P28 (TouchPad) | P19(SCL)、P20(SDA)共享I²C总线;P23-P28为电容触摸引脚 |
| 电源 | 3.3V稳压输入(USB供电或外部2.7-3.6V) | 3V3(输出/输入)、GND |
| 通信接口 | UART×3、SPI(软/硬件)、I²C(板载传感器共享) | 默认UART0:TX=GPIO1, RX=GPIO3 |
⚙️ 二、核心模块速查
1. 引脚控制 (machine.Pin)
from machine import Pin
led = Pin(2, Pin.OUT) # 初始化GPIO2为输出(板载LED)
led.on() # 高电平
led.off() # 低电平
btn = Pin(0, Pin.IN, Pin.PULL_UP) # 初始化GPIO0为输入(内部上拉)
print(btn.value()) # 读取电平(0/1)
2. 定时器 (machine.Timer)
from machine import Timer
tim = Timer(0) # 使用硬件定时器0(ID范围0-3)
tim.init(period=1000, mode=Timer.PERIODIC, callback=lambda t: print("Tick")) # 周期1秒
3. 系统控制 (machine, esp)
import machine, esp
machine.freq(240000000) # 设置CPU频率为240MHz
esp.osdebug(None) # 关闭厂商调试信息
machine.reset() # 软重启
4. 时间管理 (time)
import time
time.sleep(1) # 延时1秒
start = time.ticks_ms() # 获取启动毫秒数
delta = time.ticks_diff(time.ticks_ms(), start) # 计算时间差
📡 三、外设与传感器
1. 板载资源控制
- OLED显示(I²C地址
0x3C):import ssd1306 oled = ssd1306.SSD1306_I2C(128, 64, I2C(0)) # 使用I²C0初始化 oled.text("Hello", 0, 0); oled.show() # 显示文本 - 加速度计 (MSA300):
import msa300 accel = msa300.MSA300(I2C(0)) x, y, z = accel.acceleration # 读取三轴加速度 - RGB LED控制:
from neopixel import NeoPixel np = NeoPixel(Pin(7), 3) # 绑定P7引脚,3个LED np[0] = (255, 0, 0); np.write() # 点亮第一个LED为红色
2. 模拟信号 (ADC, DAC)
from machine import ADC, Pin
adc = ADC(Pin(4)) # 初始化GPIO4为ADC(光线传感器)
val = adc.read() # 读取0-4095原始值
# 注:ESP32 DAC仅支持GPIO25/26,掌控板未直接引出
🌐 四、网络功能 (network)
1. WiFi连接
import network
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect("SSID", "password") # 连接AP
while not wlan.isconnected(): pass
print("IP:", wlan.ifconfig()[0]) # 打印IP
2. AP模式
ap = network.WLAN(network.AP_IF)
ap.config(essid="ESP-AP", max_clients=5)
ap.active(True)
3. HTTP请求 (urequests)
import urequests
resp = urequests.get("http://example.com")
print(resp.text)
🛠️ 五、开发工具
1. 文件传输 (ampy 或 pyboard.py)
# 使用ampy上传文件
ampy --port /dev/ttyUSB0 put main.py
# 使用pyboard.py复制文件
pyboard.py --device /dev/ttyUSB0 -f cp main.py :
2. REPL调试
- 串口参数:
115200bps(默认UART0) - 快捷键:
Ctrl+E→ 粘贴模式;Ctrl+D→ 软复位
⚠️ 六、注意事项
- 引脚限制:
- 避免使用GPIO6-11、16-17(内部Flash)。
- GPIO34-39仅支持输入,无内部上拉。
- 低功耗优化:
pin.hold(True) # 设置引脚保持状态(DeepSleep时省电) machine.deepsleep() # 进入深度睡眠 - 传感器校准:
- 温度传感器受芯片发热影响,建议唤醒后立即读取。
📚 资源链接
- 官方文档:mPython掌控板文档
- GitHub仓库:labplus-cn/mPython
- MicroPython ESP32参考:中文社区论坛
将此参考卡保存为单页PDF,可高效开发ESP32掌控板项目!💾
开机日志
ets Jun 8 2016 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:4300
load:0x40078000,len:12740
load:0x40080400,len:3248
entry 0x40080610
=$%#=
=$%#=
=$%#=
MicroPython v2.4.0-2-g3651c21 on 2023-07-26; mpython with ESP32
Type "help()" for more information.
>>> help()
Welcome to MicroPython on the ESP32!
For generic online docs please visit http://docs.micropython.org/
For access to the hardware use the 'machine' module:
import machine
pin12 = machine.Pin(12, machine.Pin.OUT)
pin12.value(1)
pin13 = machine.Pin(13, machine.Pin.IN, machine.Pin.PULL_UP)
print(pin13.value())
i2c = machine.I2C(scl=machine.Pin(21), sda=machine.Pin(22))
i2c.scan()
i2c.writeto(addr, b'1234')
i2c.readfrom(addr, 4)
Basic WiFi configuration:
import network
sta_if = network.WLAN(network.STA_IF); sta_if.active(True)
sta_if.scan() # Scan for available access points
sta_if.connect("<AP_name>", "<password>") # Connect to an AP
sta_if.isconnected() # Check for successful connection
Control commands:
CTRL-A -- on a blank line, enter raw REPL mode
CTRL-B -- on a blank line, enter normal REPL mode
CTRL-C -- interrupt a running program
CTRL-D -- on a blank line, do a soft reset of the board
CTRL-E -- on a blank line, enter paste mode
For further help on a specific object, type help(obj)
For a list of available modules, type help('modules')
>>> i2c.scan()
[38, 48, 60]
>>>
//掌控板的开机就执行其文件系统根目录的main.py
开发环境
mind+
//打开mind+后,如果直接打开代码,点击"运行",可能会报错,需要安装响应的库,类似如下:
C:\Users\MateBook Xpro>"C:\Users\MateBook Xpro\Documents\mindplus-py\environment\Python3.6.5-64\python.exe" -m pip install --upgrade pip
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple/
Collecting pip
Downloading https://pypi.tuna.tsinghua.edu.cn/packages/a4/6d/6463d49a933f547439d6b5b98b46af8742cc03ae83543e4d7688c2420f8b/pip-21.3.1-py3-none-any.whl (1.7 MB)
|████████████████████████████████| 1.7 MB 1.1 MB/s
Installing collected packages: pip
WARNING: The scripts pip.exe, pip3.6.exe and pip3.exe are installed in 'C:\Users\MateBook Xpro\Documents\mindplus-py\environment\Python3.6.5-64\Scripts' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed pip-21.3.1
C:\Users\MateBook Xpro>"C:\Users\MateBook Xpro\Documents\mindplus-py\environment\Python3.6.5-64\python.exe" -m pip install mpython
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple/
Collecting mpython
Downloading https://pypi.tuna.tsinghua.edu.cn/packages/89/c9/636b134923253bccfdeeccff026622a0e32d42e4490ef11e36443b59765e/mpython-1.0.tar.gz (4.7 kB)
Preparing metadata (setup.py) ... done
Using legacy 'setup.py install' for mpython, since package 'wheel' is not installed.
Installing collected packages: mpython
Running setup.py install for mpython ... done
Successfully installed mpython-1.0
micropython编程API
盛思公司
mpythonsoftware.readthedocs.io/zh/latest/b…
BXY开发工具
语法和盛思的不兼容,参考 bxy.dfrobot.com.cn/mpy-basics