• 正文
  • 相关推荐
申请入驻 产业图谱

使用claude code和对应skills生成规范化MicroPython外围设备驱动代码包文件

04/29 11:39
574
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

这份指南会手把手教你,用 Claude Code 的自动化工具,把你写的 MicroPython 驱动代码,变成一份格式标准、自带测试、文档齐全、可一键安装开源驱动包。

Skill 源代码地址:https://github.com/FreakStudioCN/MicroPython_Skills

零、前置知识

一、前置安装

1.1 claude code 安装

关于 claude code 安装可以查看下面的文档:用 Claude 对 MicroPython 代码进行 AI 审查:零基础手把手教你

1.2 原始代码下载

接着,把你写好 / 下载好的 MicroPython 驱动 .py 文件(比如例子里的 mpr121.py),放到一个全新的、空的文件夹里,原始代码地址:https://github.com/mcauser/micropython-mpr121/blob/master/mpr121.py:

下载下来后,放到文件夹 G:bmp280 中:

特别注意!

文件夹名字和路径里不能有中文、空格、特殊符号!比如 G:我的驱动 不行,改成 G:my_drivers驱动文件名字也别带中文,比如 bmp280.py 就很好暂时不要放其他文件,比如不要提前写 main.py,工具会自动生成

举个例子:你可以在 G 盘新建一个叫 mpr121_project 的文件夹,把 mpr121.py 放进去,路径就是 G:mpr121_project,记好这个路径!

1.3 安装 Skill

1.3.1 远程安装(国内不推荐)

打开终端,复制下面这串命令,回车执行,把所有自动化工具一次性装完(只需要装一次):

npx skillfish add FreakStudioCN/MicroPython_Skills upy-norm-driver
npx skillfish add FreakStudioCN/MicroPython_Skills upy-norm-main
npx skillfish add FreakStudioCN/MicroPython_Skills upy-gen-main
npx skillfish add FreakStudioCN/MicroPython_Skills upy-gen-readme
npx skillfish add FreakStudioCN/MicroPython_Skills upy-gen-pkg
npx skillfish add FreakStudioCN/MicroPython_Skills upy-norm-pkg
npx skillfish add FreakStudioCN/MicroPython_Skills upy-opt-driver
npx skillfish add FreakStudioCN/MicroPython_Skills upy-slim-driver
npx skillfish add FreakStudioCN/MicroPython_Skills upy-pack-driver

或

for skill in upy-norm-driver upy-norm-main upy-gen-main upy-gen-readme 
             upy-gen-pkg upy-norm-pkg upy-opt-driver upy-slim-driver upy-pack-driver; do
  npx skillfish add FreakStudioCN/MicroPython_Skills $skill
done

安装过程会自动下载工具,等终端提示安装完成就可以了。

1.3.2 本地安装(国内推荐)

克隆本仓库(或直接下载 ZIP 解压):

git clone https://github.com/FreakStudioCN/MicroPython_Skills.git

将 skill 目录复制到 Claude Code 的 skills 目录,本地 skills 目录固定为 ~/.claude/skills/,根据操作系统展开如下:

macOS / Linux

# 安装单个 skill
cp -r MicroPython_Skills/upy-norm-driver ~/.claude/skills/

# 安装全部 skill(在克隆目录内执行)
cd MicroPython_Skills
for skill in upy-norm-driver upy-norm-main upy-gen-main upy-gen-readme 
             upy-gen-pkg upy-norm-pkg upy-opt-driver upy-slim-driver upy-pack-driver; do
  cp -r $skill ~/.claude/skills/
done

**Windows(PowerShell)**:

# 安装单个 skill
Copy-Item -Recurse MicroPython_Skillsupy-norm-driver $env:USERPROFILE.claudeskills

# 安装全部 skill(在克隆目录内执行)
cd MicroPython_Skills
$skills = @("upy-norm-driver","upy-norm-main","upy-gen-main","upy-gen-readme",
"upy-gen-pkg","upy-norm-pkg","upy-opt-driver","upy-slim-driver","upy-pack-driver")
foreach ($skillin$skills) {
  Copy-Item -Recurse $skill$env:USERPROFILE.claudeskills
}

重启 Claude Code,skills 即生效。

1.4 小白必看:避坑指南

路径里绝对不能有中文 / 空格!

比如 G:我的驱动 会导致命令出错,改成 G:my_drivers所有确认命令都复制终端里的提示!

不要自己打字,比如「确认写入原文件 G:mpr121_projectmpr121.py」,直接复制粘贴最保险,避免打错字

不要中途关掉终端!

每个步骤都要等它跑完,出现「确认写入 / 继续?」的提示再操作

出错了怎么办?

如果中途想改之前的步骤,输入 重做当前步骤,工具会重新跑这一步,不会影响已经做好的文件

文件权限问题?

    •  Windows 用户如果提示权限不足,把文件夹放到 D 盘 / G 盘,不要放到桌面或系统文件夹里,右键文件夹「属性 - 安全」,给当前用户加上「完全控制」权限

依赖库找不到?

如果你的驱动用到了第三方库,工具会自动帮你查找 upypi 上的包,如果找不到会标注出来,你可以手动去 upypi 确认包名,修改 package.json 里的依赖即可

打包失败?

     检查文件夹里的文件是否齐全:必须有驱动文件、main.py、README.md、package.json,缺失的话要先完成对应的步骤

二、完整操作步骤

2.1 进入你的驱动文件夹

打开终端(Windows 右键开始菜单,选「终端 / Windows PowerShell」)。

用 cd 命令进入你放驱动文件的文件夹,比如你的文件在 G:mpr121_project,就输入:

cd G:mpr121_project

注意:cd和路径之间要加空格!

输入 claude,回车,打开 Claude Code 的交互界面(黑框框会变成 Claude 的界面)。

2.2 启动「全流程规范化总工具」

在 Claude 界面里输入总调度命令,把你的文件夹路径改成你自己的:

运行命令:

/upy-norm-pkg [需要修改的文件所在文件夹位置]

这里,我们运行:

/upy-norm-pkg G:bmp280

工具会先扫描你的文件夹,给你看扫描结果,比如:

目录:G:/mpr121_project/
驱动文件(1个):mpr121.py
测试文件:未找到(将自动生成main.py)

它会问你:「确认这是正确的驱动文件名吗?」,输入  或者直接按回车确认即可。

2.3 第 1 步:规范化你的驱动文件

工具会自动分析你的驱动文件,按官方规范改写(比如补全注释、优化代码、添加异常处理),界面会显示:

    • 改写规则:

P0必改项(必须改的基础规范,比如文件头注释、异常处理)、P2可选项(优化项,比如复用缓冲区)预览文件:会生成一个 xxx_normalized.py 的预览文件,你可以先打开看看有没有问题,避免把原文件改坏

等它分析完成,会提示:「确认写入原文件 G:mpr121_projectmpr121.py 吗?」

检查无误后,复制**【确认 xxx】**:

直接复制这串提示文字,粘贴到 Claude 里,回车执行(别自己打,复制最保险!)

确认写入原文件 G:bmp280mpr121.py

界面会显示:已写入mpr121.py,共462行,P0全部执行,然后提示:[步骤 1/5 — norm-driver 完成] 确认继续?

按下回车,进行执行。

2.4 第 2 步:自动生成测试文件 main.py

如果你的文件夹里没有 main.py,工具会自动运行 upy-gen-main,帮你生成一份完整的测试文件,包含:

    所有驱动 API 的测试(比如读取数据、设置参数)三种测试场景:正常参数、边界极限值、错误参数(验证驱动会不会报错)高频函数注释调用(方便你在开发板上手动调试)

生成完成后,会提示:「确认写入同目录下的 main.py 吗?」

复制**【确认 xxx】**:

确认继续第 2 步(gen-main)

按下回车,进行执行。

检查生成的 main.py 文件,确认无误后,复制**【确认 xxx】**:

确认写入同目录下的 main.py

按下回车,进行执行。

这里,我们可以看到 main.py 文件写入文件夹完成:

2.5 第 3 步:自动生成 README 说明文档

工具会根据你的驱动文件,自动生成一份标准的 README.md 文档,一共包含 13 个必填章节,别人下载你的驱动后,不用问你就能看懂:

    驱动简介、功能说明硬件接线表格(比如 I2C 的 SCL/SDA 引脚接哪里,例子里的 MPR121 就有详细的接线说明)软件环境要求(需要的 MicroPython 版本)快速开始代码示例(复制就能跑,已经自动把 main.py 的内容整合进去了)注意事项、版本记录、开源协议

接下来,我们进入生成 README 文件的环节:

复制**【确认 xxx】**:

确认继续第 3 步(gen-readme)

按下回车,进行执行。

生成完成后,会提示:「确认写入同目录下的 README.md 吗?」

检查无误后,复制**【确认 xxx】**:

确认写入同目录下的 README.md

按下回车,进行执行。

我们打开对应文件夹,可以看到 README.md 文件可以执行:

2.6 第 4 步:生成 package.json 配置文件

这一步工具会自动运行 upy-gen-pkg,分析你的驱动用到的模块,生成符合 MicroPython 规范的 package.json 文件,这是驱动包的「身份证」,后面上传 upypi 和别人用 mip 安装都要靠它。

工具会自动做这些事:

识别你的驱动用到的内置模块(比如 machinetime),这些不用写进依赖识别用到的第三方库,优先从 upypi 找对应的包,自动写进配置里生成安装命令,后面上传 upypi 后,别人可以直接用命令安装

接下来,进行下一步生成 package.json 文件的环节:

生成完成后,会提示:「确认写入同目录下的 package.json 吗?」

检查无误后,复制**【确认 xxx】**:

确认继续第 4 步(gen-pkg)

按下回车,进行执行。

我们可以看到,生成完毕:

打开你的文件夹,能看到 package.json 文件,里面会有驱动的名字、版本、依赖库等信息,就像例子里的一样。

2.7 第 5 步:打包成标准驱动包

最后一步,工具会运行 upy-pack-driver,把所有文件整理成标准的开源驱动包结构,自动生成 LICENSE 开源协议文件,整理后的目录是这样的:

<你的芯片名>_driver/
├── code/
│   ├── 你的驱动文件.py   ✓
│   └── main.py(测试文件) ✓
├── package.json(配置文件) ✓
├── README.md(说明文档) ✓
└── LICENSE(开源协议) ✓

关键操作包括:

    1. 工具会先检查所有文件是否齐全(驱动文件、main.py、README.md、package.json),如果缺失会提示你先完成前面的步骤确认文件齐全后,会提示:「确认创建 xxx_driver 目录并整理文件吗?」复制提示的确认命令,粘贴回车,执行打包界面显示:

[步骤 5/5 — 打包完成]

    ,就说明全部做完了!

检查无误后,下一步,我们进入到了打包文件夹的环节,复制**【确认 xxx】**:

确认继续第 5 步(pack-driver)

按下回车,进行执行。

执行如下:

我们可以看到,执行完毕后,全部整理好了:

打开你的文件夹,会出现一个新的文件夹,名字是 <芯片名>_driver(比如例子里的 mpr121_driver),点进去就能看到上面说的标准目录结构,所有文件都已经整理好了,还自动生成了 LICENSE 协议文件。

三、上传到 upypi,测试一键安装

我们将其压缩后,上传到 upypi 上看一下(关于上传可以看 uPyPi 平台下载和上传驱动包使用说明):

复制下载安装命令,到终端中执行:

我们可以看到,下载的文件就是我们的驱动代码。

原文地址:https://f1829ryac0m.feishu.cn/wiki/CMJlwDwyTiRvN0ky849cXl1Knmh?from=from_copylink

相关推荐