树莓派PiPico BadUSB 教程

news/2026/1/18 12:12:04/文章来源:https://www.cnblogs.com/bzjvip/p/19498158

树莓派PiPico BadUSB 教程

安装 CircuitPython for Pi Pico

过程省略

添加adafruit_hid库到Lib文件夹

过程省略

核心模块说明

模块 用途
usb_hid.devices 获取已连接的 HID 设备列表(通常只有 1 个)
adafruit_hid.keyboard.Keyboard 模拟键盘按键
adafruit_hid.keycode.Keycode 定义按键常量(如 Keycode.A, Keycode.ENTER
adafruit_hid.mouse.Mouse 模拟鼠标移动/点击
adafruit_hid.consumer_control.ConsumerControl 控制音量、播放等
adafruit_hid.consumer_control_code.ConsumerControlCode 多媒体按键常量

具体操作

模拟键盘

先导入以下库

import time
import usb_hid  # 提供对USB HID设备(如键盘、鼠标)的底层访问接口
import digitalio  # 用于控制数字输入/输出引脚(如LED、按钮等)
import board  # 提供对开发板引脚的标准化访问(如 board.D13)
from adafruit_hid.keyboard import Keyboard  # 用于创建虚拟USB键盘,模拟按键操作
from adafruit_hid.keycode import Keycode  # 提供标准键盘按键的常量(如 ENTER、CTRL 等)
from adafruit_hid.keyboard_layout_us import KeyboardLayoutUS  #键盘布局类,可以自动处理字母、数字、常见符号和大小写

可以先time.sleep(2)来等待系统识别设备

接下来,定义主程序函数

# === 主程序函数 ===
def main():keyboard = Keyboard(usb_hid.devices)  # 初始化键盘layout = KeyboardLayoutUS(keyboard)  #初始化文本# keyboard.send(Keycode.CAPS_LOCK)# 示例:打开记事本并输入文本(完全可见、无害)keyboard.send(Keycode.GUI, Keycode.R)time.sleep(0.3)layout.write("notepad\n")time.sleep(1)layout.write("This is a safe demo from Raspberry Pi Pico!\n")layout.write("Time: " + str(time.monotonic()) + "\n")# keyboard.send(Keycode.CAPS_LOCK)

配置紧急停止引脚(使用 GP1)

# === 配置紧急停止引脚(使用 GP1)===
# 用杜邦线将 GP1 短接到 GND 表示“停止”
emergency_stop = digitalio.DigitalInOut(board.GP1)
emergency_stop.direction = digitalio.Direction.INPUT
emergency_stop.pull = digitalio.Pull.UP  # 上拉:未短接时为 True,短接 GND 时为 Falsedef wait_with_abort(seconds, abort_pin):"""倒计时,期间检测是否触发紧急停止"""print(f"倒计时 {seconds} 秒... (短接 GP1 到 GND 可取消)")for i in range(seconds, 0, -1):if not abort_pin.value:  # 检测到短接(低电平)print("⚠️ 检测到紧急停止!程序终止。")return False  # 中止print(f"{i}...")time.sleep(1)return True  # 正常完成

然后就是主程序

# === 主程序 ===
print("程序启动!")
if not wait_with_abort(2, emergency_stop):# 用户在 2 秒内短接了 GP1 → 安全退出print("已安全退出,未执行任何操作。")
else:# 超时未停止 → 执行自动化print("开始执行自动化任务...")try:main()print("✅ 任务完成!")except Exception as e:print("❌ 执行出错:", e)

演示代码

# code.py - 带紧急停止的自动化脚本import time
import usb_hid
import digitalio
import board
from adafruit_hid.keyboard import Keyboard
from adafruit_hid.keycode import Keycode
from adafruit_hid.keyboard_layout_us import KeyboardLayoutUS# === 配置紧急停止引脚(使用 GP1)===# 用杜邦线将 GP1 短接到 GND 表示“停止”emergency_stop = digitalio.DigitalInOut(board.GP1)
emergency_stop.direction = digitalio.Direction.INPUT
emergency_stop.pull = digitalio.Pull.UP  # 上拉:未短接时为 True,短接 GND 时为 Falsedef wait_with_abort(seconds, abort_pin):"""倒计时,期间检测是否触发紧急停止"""print(f"倒计时 {seconds} 秒... (短接 GP1 到 GND 可取消)")for i in range(seconds, 0, -1):if not abort_pin.value:  # 检测到短接(低电平)print("⚠️ 检测到紧急停止!程序终止。")return False  # 中止print(f"{i}...")time.sleep(1)return True  # 正常完成# === 主程序函数 ===def main():keyboard = Keyboard(usb_hid.devices)layout = KeyboardLayoutUS(keyboard)# keyboard.send(Keycode.CAPS_LOCK)# 示例:打开记事本并输入文本(完全可见、无害)keyboard.send(Keycode.GUI, Keycode.R)time.sleep(0.3)layout.write("notepad\n")time.sleep(1)layout.write("This is a safe demo from Raspberry Pi Pico!\n")layout.write("Time: " + str(time.monotonic()) + "\n")# keyboard.send(Keycode.CAPS_LOCK)# === 主程序 ===print("程序启动!")
if not wait_with_abort(2, emergency_stop):# 用户在 2 秒内短接了 GP1 → 安全退出print("已安全退出,未执行任何操作。")
else:# 超时未停止 → 执行自动化print("开始执行自动化任务...")try:main()print("✅ 任务完成!")except Exception as e:print("❌ 执行出错:", e)print("程序结束。")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1178084.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【SSM毕设全套源码+文档】基于SSM的商城系统设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

【SSM毕设全套源码+文档】基于SSM的手机商城管理系统的设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

【SSM毕设源码分享】基于SSM+vue的学生作业管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

【小程序毕设全套源码+文档】基于微信小程序的大学生体检预约小程序设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026年诚信的商业美陈,新年美陈,互动美陈公司选购参考名录 - 品牌鉴赏师

《2026年诚信的商业美陈、新年美陈、互动美陈公司选购参考名录》引言在商业美陈、新年美陈以及互动美陈行业蓬勃发展的当下,如何挑选一家优质、诚信的美陈公司成为众多企业和商家关注的焦点。为了给广大客户提供客观、…

最新知名的非标钣金定制产品选哪家,非标钣金定制源头厂家哪个好技术领航,品质之选 - 品牌推荐师

随着制造业向智能化、定制化方向加速转型,非标钣金定制市场迎来爆发式增长。据行业数据显示,2024年国内非标钣金市场规模突破1200亿元,年复合增长率达12%,但市场集中度不足15%,企业间技术实力、交付能力与服务质量…

cdrx4安装出现时msxml6r.dll

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

django微信小程序-基于python的服装穿搭推荐系统

目录摘要技术栈开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!摘要 随着移动互联网的快速发展,微信小程序凭借其轻量级、无需安装的特点成为用户获取服务的重要入口。基于Pytho…

必看!2026年TOP5靠谱防火玻璃公司推荐,确保您能找到满足需求的优质产品 - 睿易优选

在2026年,挑选一家可靠的防火玻璃公司变得尤为重要。优质的防火玻璃不仅关系到建筑的安全,更能提升整体美观。现今市场上,有几家表现突出的公司,它们在防火技术、产品质量及售后服务方面均有良好口碑。青岛茳森工程…

【SSM毕设全套源码+文档】基于SSM的学生干部管理系统设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

【SSM毕设全套源码+文档】基于SSM的学生选课管理系统设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

必看!2026年正规防火卷帘门厂家推荐榜单,帮助您在市场中找到适合的产品 - 睿易优选

在2026年,选择正规的防火卷帘门厂家至关重要,确保建筑的安全性与质量。这些厂家不仅实力雄厚,还以诚信为本,提供高性能的产品。本文将为您介绍信誉良好的厂商,包括诚信的抗风卷帘门厂家与钢质卷帘门公司。我们精选…

【SSM毕设全套源码+文档】基于SSM的学生选课系统设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

AMD rocr-libhsakmt分析系列6-2:共享机制-import - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Olib 2.4.4|免梯下载Zlibrary电子书 开源免费 需要自己的Zlib账号

Olib是一款专为书籍爱好者设计的免费开源软件,它允许用户从ZLibrary高速下载各种语言的电子书。该软件支持上百种语言的电子书下载,非常适合需要多语言资源的读者和研究人员使用。Olib的操作界面非常直观,使得书籍的搜索与下载变得异常简单。…

学霸同款2026 AI论文平台TOP9:继续教育写作全解析

学霸同款2026 AI论文平台TOP9:继续教育写作全解析 2026年学术写作工具测评:为何选择这些平台? 在当前继续教育和科研需求日益增长的背景下,AI论文平台已成为许多学习者和研究者的必备工具。然而,面对市场上琳琅满目的产…

同昌新材料产品好用吗?在行业内地位怎样? - 工业品牌热点

问题1:安阳同昌新材料有限公司的核心产品是什么?能解决哪些行业痛点? 安阳同昌新材料有限公司深耕有色金属冶炼和压延加工领域,是专业的真空电炉设备研发制造厂家,核心产品聚焦真空电炉系列、配套产品及一体化技术…

【SSM毕设全套源码+文档】基于SSM的疫情健康上报管理系统设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

【SSM毕设全套源码+文档】基于SSM的优选农产品销售管理系统设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

【SSM毕设源码分享】基于SSM+vue的学生干部管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…