十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

让手柄“活”起来:源师兄手柄震动控制+蜂鸣器音调玩法(含代码)

让手柄“活”起来:源师兄手柄震动控制+蜂鸣器音调玩法(含代码) 让手柄“活”起来源师兄手柄震动控制蜂鸣器音调玩法含代码【免费下载链接】gamepad源师兄扩展项目: 手柄 | 由源师兄组织创建项目地址: https://gitcode.com/yuanshixiong/gamepad这篇教程面向新手带你快速上手源师兄手柄gamepad扩展项目用图形化编程积木完成手柄震动控制、蜂鸣器音调播放还能读取摇杆方向和按键状态让你的开源硬件作品动起来。为什么新手值得玩手柄模块手柄模块是源师兄组织创建的图形化编程扩展它把「源师兄手柄模块」的底层接口封装成了拖拽积木结合星闪还能控制其他的源师兄设备。你不需要写复杂代码拖几块积木就能实现能力积木能做什么 震动控制手柄 震动一键开/关马达震动 蜂鸣器音调手柄 播放按音调Hz发声⏹ 停止播放手柄 停止播放让蜂鸣器安静 方向检测手柄 获取摇杆状态判断上/下/左/右/中间 数值读取手柄 获取摇杆的x/y轴的值拿到摇杆原始数值⌨ 按键检测手柄 获取按键C/D/E/F的值读取C、D、E、F四个按键模块设备信息定义在 config.json全部可用积木的清单在 category.json。一键获取项目最快安装步骤在终端执行一条命令即可把仓库拉到本地git clone https://gitcode.com/yuanshixiong/gamepad克隆后把项目导入你的图形化编程环境侧边栏就会出现蓝色的「手柄模块」分类分类颜色定义见 category.json。手柄震动控制教程2个积木搞定打开震动只需一块积木手柄 震动 → 打开它的底层实现非常直接——往 16 号引脚写数字信号见 library/Joystick.pydef shake(self, state): self.shake_.write_digital(0 if state else 1)提示初始化时 16 号引脚默认已拉高震动关闭所以「打开」和「关闭」互斥切换即可无需额外复位。积木定义参见 blocksdef.js。蜂鸣器音调玩法让手柄“唱歌”手柄 播放 → 音调积木里填一个频率值单位 Hz默认 1000对应蜂鸣器驱动def play(self, freq): if freq 0: self.spaker.on(freq) # 蜂鸣器(0号)发声 else: self.spaker.off()代码位置library/Joystick.py。想停声就用手柄 停止播放等价于音调传 0见 blocksdef.js。音调小抄长尾玩法音调 262 / 349 / 392 / 523 → 简易“do re mi sol”音阶可做提示音音调 1000 → 清脆提示音适合按键反馈音调 2000 → 尖锐报警音适合告警场景摇杆方向检测最快配置方法手柄 获取摇杆状态返回up / down / left / right / center五种方向阈值判断逻辑在 library/Joystick.pydef joystick_state(self): if self.joystick_ud.read_analog() 2800: return left elif self.joystick_ud.read_analog() 200: return right ...如果还需要精确数值用手柄 获取摇杆的 x轴 / y轴 的值返回 ADC 原始值范围约 0~4095可用来做灵敏度判断引脚功能代码位置ADC 1摇杆上下轴Joystick.pyADC 2摇杆左右轴Joystick.pyGPIO 12 / 13 / 14 / 15按键 C / D / E / FJoystick.py按键C/D/E/F检测按下与松开都能判断手柄 获取按键C/D/E/F的值返回 0按下或 1松开底层实现见 get_key_value手柄 摇杆向上/按键C按下…布尔积木直接判断「按下」事件积木定义在 blocksdef.js手柄 摇杆复位/按键C松开…布尔积木判断「松开/回中」事件摇杆复位要求 x、y 轴都落在 500~2000 区间见 blocksdef.js 小技巧用「按下」触发、用「松开」结束就能做出长按震动、点按发声的效果避免持续误触发。实战点子3分钟做出“按键提示音震动反馈”把积木串起来当按键C按下→播放 音调1000震动 打开当按键C松开→停止播放震动 关闭当摇杆向上→播放 音调262用不同音调区分方向生成的 Python 代码会自动带上from Joystick import Joystick的导入语句由积木自动生成见 blocksdef.js无需手写导入。项目文件导读每个文件是干嘛的文件作用README.md项目简介源师兄扩展项目——手柄config.json设备名称与描述IDE 据此识别模块category.json积木分类与 8 个积木块的注册清单blocksdef.js积木外观定义 生成 Python 代码的规则library/Joystick.py核心驱动引脚映射、震动、蜂鸣器、摇杆与按键读取搞定震动与音调这两个基础玩法后你可以继续探索摇杆数值读取与按键组合检测做出更多有趣的互动作品。【免费下载链接】gamepad源师兄扩展项目: 手柄 | 由源师兄组织创建项目地址: https://gitcode.com/yuanshixiong/gamepad创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表