• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
又见炊烟升起
      新随笔    联系   管理    订阅  订阅

Quick reference card - ESP32的掌控板

目录
  • 硬件
  • Quick reference card for 掌控板
      • 🛠️ 一、硬件概览
      • ⚙️ 二、核心模块速查
        • 1. 引脚控制 (machine.Pin)
        • 2. 定时器 (machine.Timer)
        • 3. 系统控制 (machine, esp)
        • 4. 时间管理 (time)
      • 📡 三、外设与传感器
        • 1. 板载资源控制
        • 2. 模拟信号 (ADC, DAC)
      • 🌐 四、网络功能 (network)
        • 1. WiFi连接
        • 2. AP模式
        • 3. HTTP请求 (urequests)
      • 🛠️ 五、开发工具
        • 1. 文件传输 (ampy 或 pyboard.py)
        • 2. REPL调试
      • ⚠️ 六、注意事项
      • 📚 资源链接
  • 开机日志
  • 开发环境
    • mind+
  • micropython编程API
    • 盛思公司
    • BXY开发工具

硬件

image.png

image.png

image.png
//掌控板
image

//扩展板
image

image

引脚 类型 描述
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 → 软复位

⚠️ 六、注意事项

  1. 引脚限制:
    • 避免使用GPIO6-11、16-17(内部Flash)。
    • GPIO34-39仅支持输入,无内部上拉。
  2. 低功耗优化:
    pin.hold(True)  # 设置引脚保持状态(DeepSleep时省电)
    machine.deepsleep()  # 进入深度睡眠
    
  3. 传感器校准:
    • 温度传感器受芯片发热影响,建议唤醒后立即读取。

📚 资源链接

  • 官方文档: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

盛思公司

https://mpythonsoftware.readthedocs.io/zh/latest/blocks/

BXY开发工具

语法和盛思的不兼容,参考
https://bxy.dfrobot.com.cn/mpy-basics

posted on 2023-09-10 20:43  ni_sy  阅读(267)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3