一键导入
ke3036-keyes-pico
KE3036 是 Keyes 推出的基于 Raspberry Pi Pico(RP2040)的开源学习套件配套主板/开发板,集成 LED、按键、蜂鸣器、OLED、传感器接口与扩展座,配合 MicroPython / C SDK 适合 IoT、机器人与 STEM 教学。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
KE3036 是 Keyes 推出的基于 Raspberry Pi Pico(RP2040)的开源学习套件配套主板/开发板,集成 LED、按键、蜂鸣器、OLED、传感器接口与扩展座,配合 MicroPython / C SDK 适合 IoT、机器人与 STEM 教学。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
面向 AI 编程助手的开源 GIS、CAD、C#、AI、IoT、3D 技能集合。覆盖 65 个开源项目,提供一站式技能索引、标签搜索、按需加载指南,让 AI 助手在 GIS/CAD/C#/AI/3D 领域获得更准确的代码生成与问题排查能力。
DocuTranslate(xunbu/docutranslate)是基于大语言模型的轻量级本地文件翻译工具,支持 PDF/Word/Excel/Markdown/EPUB/字幕/JSON 等多格式翻译,内置 MinerU PDF 解析、术语表自动生成、Web UI、REST API、Client SDK 与 MCP 接入。
AI/LLM 技能分类索引,覆盖 LLM 应用开发平台、自学习智能体、个人 AI 助手 Gateway、终端编码代理、多模型编排插件、文件翻译工具、AI 编程方法论等领域共 8 个开源项目,按需加载即可获得 Dify、Hermes Agent、OpenClaw、OpenCode、DocuTranslate 等工具的精准 AI 辅助。
geometry-api-net 是一个 .NET Standard 2.0 的空间几何计算库,提供对二维和三维几何对象的创建、解析、序列化以及空间关系运算能力。
GIS(地理信息系统)技能分类索引,覆盖空间数据处理、地图服务、几何运算、Web 可视化等领域共 23 个开源工具,按需加载即可获得 GDAL、QGIS、GeoServer、PostGIS、JTS 等工具的精准 AI 辅助。
robotgo-flow(znlgis/robotgo-flow)是基于 go-vgo/robotgo 构建的 Windows 桌面 RPA 自动化框架,通过声明式 YAML 定义工作流,利用图像模板匹配定位屏幕 UI 元素,自动执行鼠标/键盘/浏览器操作,内置人类行为模拟、交互式录制器与 .NET 10 WPF 托盘应用。
| name | ke3036-keyes-pico |
| description | KE3036 是 Keyes 推出的基于 Raspberry Pi Pico(RP2040)的开源学习套件配套主板/开发板,集成 LED、按键、蜂鸣器、OLED、传感器接口与扩展座,配合 MicroPython / C SDK 适合 IoT、机器人与 STEM 教学。 |
| tags | ["micropython","rp2040","sensor","iot","pico"] |
项目地址(资料/示例): https://github.com/keyestudio/ke3036(具体仓库请以 znlgis.github.io 与 keyestudio 官方为准)
Pico 官方文档: https://www.raspberrypi.com/documentation/microcontrollers/raspberry-pi-pico.html
MicroPython for RP2040: https://docs.micropython.org/en/latest/rp2/quickref.html
许可证: 配套示例多为 MIT / GPL(视具体文件)
KE3036 套件常见组成:
# 1. 下载固件:
# https://micropython.org/download/RPI_PICO/ → .uf2
# 2. 按住 Pico 上的 BOOTSEL 键插入 USB → 出现 RPI-RP2 磁盘
# 3. 拷贝 .uf2 到该磁盘 → 自动重启进入 MicroPython
pip install thonny # 推荐 IDE
pip install mpremote esptool # 命令行
mpremote connect /dev/ttyACM0 ls
mpremote connect /dev/ttyACM0 cp main.py :main.py
mpremote connect /dev/ttyACM0 run main.py
from machine import Pin
from time import sleep
led = Pin(25, Pin.OUT)
while True:
led.toggle()
sleep(0.5)
Pico W 板载 LED:
from machine import Pin
led = Pin("LED", Pin.OUT)
btn = Pin(15, Pin.IN, Pin.PULL_UP)
while True:
if btn.value() == 0: print("pressed")
sleep(0.1)
from machine import PWM, Pin
buz = PWM(Pin(14)); buz.freq(880); buz.duty_u16(20000)
sleep(0.5); buz.deinit()
from machine import ADC, Pin
adc = ADC(Pin(26)) # GP26 = ADC0
val = adc.read_u16() # 0..65535
volt = val * 3.3 / 65535
板载温度传感器:
adc = ADC(4)
v = adc.read_u16() * 3.3 / 65535
temp = 27 - (v - 0.706) / 0.001721
from machine import I2C, Pin
import ssd1306
i2c = I2C(0, sda=Pin(0), scl=Pin(1), freq=400_000)
oled = ssd1306.SSD1306_I2C(128, 64, i2c)
oled.fill(0); oled.text("Hello KE3036", 0, 0); oled.show()
import dht, machine
d = dht.DHT11(machine.Pin(28))
d.measure(); print(d.temperature(), d.humidity())
import network, time
wlan = network.WLAN(network.STA_IF); wlan.active(True)
wlan.connect("SSID","PWD")
while not wlan.isconnected(): time.sleep(0.5)
print(wlan.ifconfig())
from umqtt.simple import MQTTClient
c = MQTTClient("pico", "broker.emqx.io", 1883)
c.connect()
c.publish(b"ke3036/temp", str(d.temperature()).encode())
git clone https://github.com/raspberrypi/pico-sdk
export PICO_SDK_PATH=$PWD/pico-sdk
mkdir build && cd build && cmake .. && make
# 生成 *.uf2,按 BOOTSEL 后拷贝到 RPI-RP2
#include "pico/stdlib.h"
int main() {
gpio_init(25); gpio_set_dir(25, GPIO_OUT);
while (1) { gpio_put(25, 1); sleep_ms(500);
gpio_put(25, 0); sleep_ms(500); }
}
| 外设 | 接法 | 库 |
|---|---|---|
| OLED 0.96 | I²C SDA/SCL | ssd1306 |
| DHT11/22 | 单线 | dht |
| 超声波 HC-SR04 | TRIG/ECHO | machine.time_pulse_us |
| 舵机 SG90 | PWM 50 Hz | PWM |
| 直流电机 + L298N | PWM + IN1/IN2 | PWM/Pin |
| MQ-2 烟雾 | ADC | ADC |
| RFID RC522 | SPI | mfrc522 |
Thonny → Stop / Restart 进入 REPLfrom machine import freq; freq(125_000_000)mpremotepico_w 程序需 urequests 等库通过 mip 安装:import mip; mip.install("umqtt.simple")
# 1. 硬件连接:DHT11 接 GP28,OLED 接 I2C0 (SDA=GP0, SCL=GP1)
# 2. main.py
from machine import Pin, I2C
from time import sleep
import dht, ssd1306
# 初始化传感器
sensor = dht.DHT11(Pin(28))
i2c = I2C(0, sda=Pin(0), scl=Pin(1), freq=400_000)
oled = ssd1306.SSD1306_I2C(128, 64, i2c)
while True:
sensor.measure()
temp = sensor.temperature()
hum = sensor.humidity()
# 显示到 OLED
oled.fill(0)
oled.text(f"Temp: {temp:.1f} C", 0, 0)
oled.text(f"Hum: {hum:.1f} %", 0, 20)
oled.show()
# 可选:通过 Wi-Fi (Pico W) 上报 MQTT
# client.publish(b"ke3036/temp", str(temp).encode())
sleep(5)
# 3. 用 mpremote 部署
# mpremote cp main.py :main.py
# mpremote run main.py
# 硬件:L298N 电机驱动 + HC-SR04 超声波
# 电机:IN1=GP2, IN2=GP3, ENA=GP4, IN3=GP5, IN4=GP6, ENB=GP7
# 超声波:TRIG=GP8, ECHO=GP9
from machine import Pin, PWM
from time import sleep_us, sleep
import time
trig = Pin(8, Pin.OUT)
echo = Pin(9, Pin.IN)
ena = PWM(Pin(4)); enb = PWM(Pin(7))
ena.freq(1000); enb.freq(1000)
def distance():
trig.low(); sleep_us(2)
trig.high(); sleep_us(10); trig.low()
while echo.value() == 0: pass
start = time.ticks_us()
while echo.value() == 1: pass
return time.ticks_diff(time.ticks_us(), start) * 0.0343 / 2
while True:
if distance() < 20: # 障碍物 < 20cm → 转向
# 左转
ena.duty_u16(30000); enb.duty_u16(0)
else:
# 前进
ena.duty_u16(40000); enb.duty_u16(40000)
sleep(0.1)
.uf2 → 自动重启main.py 通过 mpremote 部署到 Pico,上电自启动network.country('CN')| 场景 | 推荐方案 |
|---|---|
| 快速原型 / STEM 教学 | MicroPython + Thonny |
| 高性能 / 实时控制 | C/C++ SDK (pico-sdk) |
| Wi-Fi 数据上报 | Pico W + MQTT |
| 简单桌面自动化 | 不用 Pico,用 openclaw |
| 问题 | 解决 |
|---|---|
| 烧录后无 LED | 检查 GP25(Pico)/ "LED"(Pico W)使用正确 |
| ADC 抖动 | 多次平均;接旁路电容 |
| I²C 找不到设备 | i2c.scan() 查看;上拉电阻 4.7kΩ |
| Wi-Fi 不连 | 仅支持 2.4 GHz;密码与国别码(network.country('CN')) |
| 串口在 Linux 需要权限 | sudo usermod -aG dialout $USER |