Micropy 官方教程 08 将 pyborad 作为 USB 鼠标

来源:本站
导读:目前正在解读《Micropy 官方教程 08 将 pyborad 作为 USB 鼠标》的相关信息,《Micropy 官方教程 08 将 pyborad 作为 USB 鼠标》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《Micropy 官方教程 08 将 pyborad 作为 USB 鼠标》的详细说明。
简介:本文章是关于Micropy 官方教程 08 将 pyborad 作为 USB 鼠标。

pyboard 板属于USB 设备,并且可当成鼠标的功能使用而非仅仅是默认的 USB 闪存设备。

为此我们首先需要编辑 boot.py 文件以更改 USB 的确认方式。如果没接触过 boot.py 文件,那么其打开差不多是这么个样子:

# boot.py -- run on boot-up# can run arbitrary Python, but best to keep it minimalimport pyb#pyb.main('main.py')# main script to run after this one#pyb.usb_mode('CDC+MSC')# act as a serial and a storage device#pyb.usb_mode('CDC+HID')# act as a serial device and a mouse

为使能鼠标模式,将文件最后一行的注释号去掉,如下所示:

pyb.usb_mode('CDC+HID') # act as a serial device and a mouse

修改完boot.py 文件后,使其工作的最小量代码如下所示:

import pybpyb.usb_mode('CDC+HID')

这告知 pyboard 板在其启动时将自身设置为一个CDC(串口连接) 和 HID(人机交互设备,在本例中即鼠标) 的 USB 设备。

退出/卸载 pybord 设备并通过复位按键重置,之后你的 PC 机就可以将 pyboard 板当作鼠标使用了!

8.1 手动发送鼠标事件

为让 py鼠标 能够将我们想要发送的事件传递到 PC 机中,我们先通过交互式解释器(REPL)完成这个目标。连接 pyboard 板,在串口程序里边打入如下代码:

>>> pyb.hid((0, 10, 0, 0))

你的鼠标现在向右移动了十个像素!上述代码中你发送了四个信息:按键状态,x 坐标,y坐标和滚动值(?)。数字即告知 PC 机在 x轴上移动十个像素。

下面代码实现鼠标左右摇晃:

>>> import math>>> def osc(n, d):... for i in range(n):... pyb.hid((0, int(20 * math.sin(i / 10)), 0, 0))... pyb.delay(d)...>>> osc(100, 50)

osc 函数的第一个参数即要发送的鼠标事件,第二个参数即每个事件中的毫秒级别延迟时间。尝试用不同的数值代替。

练习: 让鼠标围着圈圈转动。

8.2 加上加速度传感器的鼠标

用加速度传感器制作一个能根据 pyboard 板角度移动而移动的鼠标。相关的代码可以直接在 交互式解释器里边完成,或者放入 main.py 文件中。在这里我们选择放入 main.py 文件,因为这样做我们可以学到如何进入安全模式。

当 pyboard 作为 USB 串口设备和 HID 鼠标时,无法连接文件系统以编辑更改 main.py 的内容。

因此我们需要进入安全模式实现我们的目标。这在上一篇教程里已有提及,这里再重复一遍:

按下用户按键;保持用户按键按下的同时,按下重置按键后松开LED灯将持续亮绿灯,然后橙灯再到绿橙灯一起亮的循环;保持按下用户按键直到橙色的LED灯亮起,然后就可松开用户按键;橙色的 LED 灯将快速闪烁四次,然后熄灭;现在你进入了安全模式

安全模式下 boot.py 和 main.py 文件不被执行,所以 pyboard 板将按照默认的设置启动。这意味着可以连接到文件系统(USB设备将出现),且可以对 main.py 文件进行编辑。(保持 boot.py 文件不动,因为在编辑完 main.py 文件后我们需要返回 HID 模式)。

在 main.py 中我们打入如下代码:

import pybswitch = pyb.Switch()accel = pyb.Accel()while not switch(): pyb.hid((0, accel.x(), accel.y(), 0)) pyb.delay(20)

保存文件,退出或卸载 pyboard 设备。通过复位按键重置,其将再次成为鼠标,且不同的板的角度将移动鼠标。试试看能否保持鼠标的静止不动。

按下复位按键将停止鼠标姿态。

你应该能注意到 y轴方向是颠倒的。这个问题很容易解决:在上述的 pyb.hid( )行里,y 轴方向前边加上负号即可。

8.3 恢复pyboard 为普通模式

上述实验后不做更改,那么每次连接上 pyboard 板其只能作为鼠标被使用。或许你想要回到普通状态。为此首先你需要进入安全模式(如上所示),然后编辑 boot.py 文件。在 boot.py 文件中注释 CDC_HID 的设置(在前边加上 # 号),如下所示:

#pyb.usb_mode('CDC+HID') # act as a serial device and a mouse

保存文件,退出或卸载设备,重置板子则进入普通操作模式。

提醒:《Micropy 官方教程 08 将 pyborad 作为 USB 鼠标》最后刷新时间 2024-03-14 00:54:59,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《Micropy 官方教程 08 将 pyborad 作为 USB 鼠标》该内容的真实性请自行鉴别。