树莓派pico做鼠标与键盘

参考

键盘检测网站

学习网站(重要)

学习网站

thonny开发常见指令

寻求帮助----------help(func)

查看支持的按键-----import board dir(board)

本项目现象

法一为发送指定数据(终端函数调用)

最终成品为按键发送,GP19与GP20分别接按键,按下后分别打印出a,b(可自定义)

鼠标为按键控制(也可终端控制),按下按键分别向左右两边移动

键盘

法一(单纯发送数据,但可一次发送多个(数组))

1:将配置所需里的文件放进pico中
  1. uf2------先放进去配置circuitpython环境,重启后为CIRCUITPY
  2. lib-------可以整个放进去
  3. code.py---------主程序,替换掉之前的
2:运行效果
def send(this_input, sleep=0.25):

主文件定义了如上的函数,无论是在code.py后面还是另外单开的终端上,调用 send([0x13,0x15,6], sleep=0.25)就会打字

法二(只需要添加lib中的adafruit_hid支持)

不需要lib中的 usb_hid_map.py ,直接运行即可

import usb_hid
from adafruit_hid.keyboard import Keyboard
from adafruit_hid.keycode import Keycode

# Set up a keyboard device.
kbd = Keyboard(usb_hid.devices)

# Type lowercase 'a'. Presses the 'a' key and releases it.
kbd.send(Keycode.A)
kbd.send(0x3a)

send语法对应map表在 对照表

最终成品(使用法二即可)

结合按键,按下一个键发送制定数据,防抖避免按下一次发送多个数据

import usb_hid
from adafruit_hid.keyboard import Keyboard
from adafruit_hid.keycode import Keycode
import time
import board
import digitalio
# Set up a keyboard device.
kbd = Keyboard(usb_hid.devices)
# 用GP20和GP19,并设置成上拉输出,按下button_up.value为false
button_up = digitalio.DigitalInOut(board.GP20)
button_up.switch_to_input(pull=digitalio.Pull.UP)
button_dw = digitalio.DigitalInOut(board.GP19)
button_dw.switch_to_input(pull=digitalio.Pull.UP)

while(True):
    if(button_up.value == False):
        time.sleep(0.2)
        if(button_up.value == False):
            kbd.send(Keycode.A)
    if(button_dw.value == False):
        time.sleep(0.2)
        if(button_dw.value == False):
            kbd.send(Keycode.B)

做鼠标(拓展)

环境支持和法二一样

import time
import analogio
import board
import digitalio
import usb_hid
from adafruit_hid.mouse import Mouse

mouse = Mouse(usb_hid.devices)

button_up = digitalio.DigitalInOut(board.GP20)
button_up.switch_to_input(pull=digitalio.Pull.UP)

button_dw = digitalio.DigitalInOut(board.GP19)
button_dw.switch_to_input(pull=digitalio.Pull.UP)

while(True):
    if(button_up.value == False):
        time.sleep(0.1)
        if(button_up.value == False):
            mouse.move(10)
    if(button_dw.value == False):
        time.sleep(0.1)
        if(button_dw.value == False):
            mouse.move(-10)

点击左(右)键------------mouse.click(Mouse.RIGHT_BUTTON)

x轴移动--------------------mouse.move(x=10)

y轴移动--------------------mouse.move(y=10)

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值