首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
external-speaker外接喇叭进阶:仿照它的积木架构开发你自己的硬件扩展(完整教程)
📅 2026/9/25 8:24:05
✍️ 爱科研究院
👁 阅读 3,247
external-speaker外接喇叭进阶仿照它的积木架构开发你自己的硬件扩展完整教程【免费下载链接】external-speaker源师兄扩展项目: 外接喇叭 | 由源师兄组织创建项目地址: https://gitcode.com/yuanshixiong/external-speakerexternal-speaker外接喇叭是由源师兄组织创建的硬件扩展示例项目它用 5 个轻量文件把外接喇叭接入积木编程平台让新手可以拖拽积木完成播放音调、播放频率、停止播放。这篇完整教程带你逐文件拆解它的积木架构学会开发自己的硬件扩展。 先认识 external-speaker 外接喇叭能做什么这个扩展在积木侧边栏新增了一个外接喇叭分类提供 3 块积木积木作用可选参数喇叭播放音调播放 do/re/mi/fa/sol/la/si 七个音端口 p0、p1、p2、p8、p12、p13喇叭播放频率播放任意指定频率默认 1000Hz端口 频率数值停止播放让喇叭停止发声端口妙处在于积木拼好后会自动生成 Python 代码比如 blocksdef.js 中定义的代码生成器会把播放 do一块积木转成from ohcode import beepbeep(端口).on(262)这样的驱动调用——你不用手写代码硬件扩展照样能跑。 核心5 个文件搭起一套积木扩展架构这是仿写前最该看懂的部分。external-speaker 的整个扩展只由这几样东西组成config.json —— 设备档案声明我是谁blocksdef.js —— 积木长什么样 积木如何生成代码category.json —— 积木在侧边栏如何分组、摆什么默认值library/screen_extend.py —— 设备端 Python 库示例laba.zip —— 喇叭设备驱动包README.md —— 项目说明记住这个档案 → 定义 → 分类 → 驱动四层结构你自己的硬件扩展也只需要照葫芦画瓢。第 1 步用 config.json 注册设备档案打开 config.json只有 4 个字段Device设备全称如源师兄外接扩展喇叭Name侧边栏显示名称Description功能一句话说明HelpUrl帮助链接可留空 仿写提示开发新扩展时先把这四个字段填好这是平台识别你设备的身份证。第 2 步在 blocksdef.js 里画出你的第一块积木积木的外观由Blockly.Blocks定义。以播放音调积木为例blocksdef.js#L4-L19用FieldDropdown加下拉框端口p0~p13、音调do~si 对应 262~494HzsetPreviousStatement / setNextStatement让它能前后拼接成为语句块setColour统一配色本项目用#df21dcsetTooltip写一句鼠标悬停提示积木的灵魂是pythonGenerator.forBlockblocksdef.js#L21-L29它读取用户选择的端口和音调拼出驱动代码。三个积木共用同一套套路——先确保from ohcode import beep被导入再按端口创建beep(端口)实例最后调用.on(频率)或.off()。 仿写套路新增积木 写一个Blockly.Blocks[你的积木名] 一个同名的pythonGenerator.forBlock。第 3 步用 category.json 把积木装进分类面板category.json#L2-L37 声明了一个CATEGORYname为外接喇叭colour为#e11f71分类标题色contents里按顺序放一个LABEL说明文字 三个BLOCK条目频率积木的value_name输入口配了shadow默认值1000这样没插积木时也不会报错⚠️ 常见坑积木在 blocksdef.js 里定义好了但忘加进 category.json 的contents侧边栏就不会显示它。第 4 步设备端驱动怎么接library laba.zip积木负责前端驱动负责后端laba.zip 是喇叭设备驱动包运行环境据此加载beep等能力library/screen_extend.py#L3-L21 展示了设备库的写法风格把显示文字 / 显示图片封装成函数内部拼好带包头\xee\x81的串口协议字节串再返回开发你自己的硬件扩展时前端照抄本项目的三件套后端只需换成你设备的驱动库即可。❓ 新手仿写常见 3 问Q1想加一块播放 2 秒再停的积木改哪个文件主要改 blocksdef.js新增积木定义 代码生成器再到 category.json 的contents里加一个BLOCK条目。Q2为什么端口下拉只有 p0、p1、p2、p8、p12、p13这些是该主控板可驱动喇叭的可用引脚在FieldDropdown里集中维护换硬件时改这一处即可。Q3积木颜色和分类颜色不一样正常——积木色由 blocksdef.js 的globalcolor控制分类标题色由 category.json 的colour控制两者独立设置。 小结你的硬件扩展开发清单建config.json填设备档案写blocksdef.js积木外观 Python 代码生成器配category.json分类名、颜色、积木列表、默认值准备library/驱动库与设备驱动包对照 external-speaker 这 5 个文件逐项仿写你就能为自己的屏幕、电机、传感器快速做出一个完整的积木硬件扩展。【免费下载链接】external-speaker源师兄扩展项目: 外接喇叭 | 由源师兄组织创建项目地址: https://gitcode.com/yuanshixiong/external-speaker创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/9/25 8:24:05
【图像处理】基于双目视觉的物体体积测量算法研究附Matlab代码
2026/9/25 8:19:04
如何用Auto-Empirical-Research-Skills在10分钟跑通第一篇DID论文?新手快速上手教程
2026/9/25 8:19:04
IT技术岗转网络安全值得吗?成本、路线与就业全景解析
2026/9/25 8:54:06
业务开发视角的可观测体系建设:从日志、链路到告警的实战指南
2026/9/25 8:54:06
Java毕设实战:基于SpringBoot+SSM的蛋糕购物平台系统解析
2026/9/25 8:54:06
Java变量深度解析:内存模型、作用域、常量与命名规范
2026/9/25 8:54:06
影刀RPA实战:微信聊天记录自动导出Excel的完整方案
2026/9/25 8:54:06
PaddleSpeech 语音特征提取实战:解析 python_kaldi_features 的 MFCC、Fbank 实现与 Kaldi 对齐细节
2026/9/25 8:49:06
PHP弱类型比较绕过:md5字符串相等性陷阱解析
2026/9/25 0:03:37
AI元人文:从工具使用到思维重构的深度探索
2026/9/25 0:03:37
Python+CNN车牌识别实战:从数据预处理到模型训练与部署
2026/9/25 0:03:37
Vim基础操作全攻略:保存退出、模式切换与高频命令实战
2026/9/25 5:41:44
深入解析Transformer多头注意力机制与工程优化
2026/9/25 5:41:44
OpenClaw 的 Skills 跑学习任务,模型通道改到 TaoToken 通道行不行?
2026/9/25 5:41:44
ChatGPT报错Oops, an error occurred! 全链路排查指南