5. 将pyboard用作USB鼠标¶
Pyboard是一个USB设备,可配置为代替默认USB闪存驱动器的鼠标。
要实现这一功能,首先我们需编辑 boot.py
文件来改变USB配置。
若您从未接触过您的 boot.py
文件,此文件应形似下示:
# boot.py -- run on boot-up 启动时运行
# can run arbitrary Python, but best to keep it minimal 可运行任何Python,但最好保持其最小化
import pyb
#pyb.main('main.py') # main script to run after this one 在此之后运行的主要脚本
#pyb.usb_mode('VCP+MSC') # act as a serial and a storage device 用作一个串行和储存设备
#pyb.usb_mode('VCP+HID') # act as a serial device and a mouse 用作一个串行设备和鼠标
启用鼠标模式,取消文件最后一行的注释,使其形如:
pyb.usb_mode('VCP+HID') # act as a serial device and a mouse 用作一个串行设备和鼠标
若您已更改您的 boot.py
文件,则其运行需要的最小代码为:
import pyb
pyb.usb_mode('VCP+HID')
此代码使墨星stm32在启动时将自身配置为VCP(虚拟COM端口,即串行端口)和HID(人机接口设备,在我们这种情况下即为鼠标)USB设备。
使用RST开关弹出墨星stm32驱动并重置。您的个人电脑现在应扫描到显示为鼠标!
5.1. 手动发送鼠标事件¶
要使py-mouse正常工作,我们需要向个人电脑发送鼠标事件。首先我们使用REPL提示符手动进行。使用串行程序连接到您的墨星stm32,并输入以下内容:
>>> hid = pyb.USB_HID()
>>> hid.send((0, 10, 0, 0))
您的鼠标应向右移动10个像素!在以上指令中,您正在发送4条信息:按键状态、x、y和屏幕滚动。数字10即告知电脑鼠标在x方向上移动了10个像素。
现在让鼠标左右摆动:
>>> import math
>>> def osc(n, d):
... for i in range(n):
... hid.send((0, int(20 * math.sin(i / 10)), 0, 0))
... pyb.delay(d)
...
>>> osc(100, 50)
osc
函数的首个参数为发送的鼠标事件的数量,第二个参数为事件间的延迟(以毫秒为单位)。尝试使用不同数字。
练习:使鼠标在圆圈内运动。
5.2. 将pyboard恢复至常态¶
若您保持pyboard的状态不变,则每次插入时pyboard都会显示为鼠标。您可能想将其恢复至常态。
首先您需要进入安全模式(见上),然后编辑 boot.py
文件。
在 boot.py
文件中,为带有 VCP+HID
设置的行添加注释,其将形如:
#pyb.usb_mode('VCP+HID') # act as a serial device and a mouse 用作一个串行设备和鼠标
保存您的文件,弹出/卸载驱动,并重置pyboard。现在pyboard返回至正常运行模式。