树莓派pico做鼠标与键盘

这篇具有很好参考价值的文章主要介绍了树莓派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)文章来源地址https://www.toymoban.com/news/detail-496669.html

到了这里,关于树莓派pico做鼠标与键盘的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 树莓派PICO入门:电脑连接简易树莓派PICO单片机,烧录,使用python进行简单代码操作。

    需求:pico树莓派一个,python,thonny工具 需求: 1,pico树莓派一个;     2,thonny工具:   通过数据线连接电脑后,桌面会弹出一个文件夹,点击弹出的网络链接到指定网站下载烧录文件,下载完毕后,将烧录文件拖入该文件夹中开始烧录:(注意下载的是mircropython,不要下载

    2024年02月10日
    浏览(49)
  • RPI pico(树莓派 pico RP2040微控制器) 教程1:刷固件

       树莓派pico搭载了两个ARM Cortex-M0+内核最高频率133MHz、 264KB的内部RAM、DMA控制器,支持挂最高达16MB的片外Flash。它有30个GPIO,4个可以作为模拟输入。外设包含2个UART、2个SPI、2个I2C、16个PWM通道以及一个USB1.1控制器。树莓派pico支持c/c++和 python两种编程方式, 我们这里使用p

    2024年02月13日
    浏览(81)
  • 如何用树莓派Pico针对IoT编程?

    目录 一、Raspberry Pi Pico 系列和功能 二、Raspberry Pi Pico 的替代方案 三、对 Raspberry Pi Pico 进行编程 硬件 软件 第 1 步:连接计算机 第 2 步:在 Pico 上安装 MicroPython 第 3 步:为 Thonny 设置解释器 第 4 步:编写程序 第5步:运行程序 四、小结 众所周知,Raspberry Pi(树莓

    2024年02月12日
    浏览(45)
  • 【39元linux开发板-ADB远程教程】-[ADB远程终端]-幸狐Luckfox Pico-超越树莓派PICO

    【教程-持续更新】 幸狐Luckfox Pico RV1103 教程合集 【39元linux开发板-ADB远程教程】-[ADB远程终端]-幸狐Luckfox Pico-超越树莓派PIC

    2024年02月10日
    浏览(44)
  • 编译Micropython固件For树莓派Raspberry Pi Pico

    1. 前言 由于想把自己编写的py文件打包的固件中,所以记录下如何编译micropython固件和打包。 2. 编译 最简单的方式就是在你的树莓派上进行,我用的是RP Pi2 下载所需文件: 更新子模块 更新编译工具 准备编译 编译最终文件存放在 3. 打包py文件 将需要打包的py文件放在 然后在

    2024年02月10日
    浏览(43)
  • 【学习笔记】unity脚本学习(四)【inputManager、键盘输入、鼠标输入、Raycast】

    参考:极客学院unity3d教程 inputManager Horizontal虚拟轴的各个属性含义(摘选自ChatGpt,部分回答不准确) Name :虚拟轴的名称,用于在代码中访问该虚拟轴。这个名称应该是唯一的,用于区分其他虚拟轴。 Descriptive Name :描述虚拟轴的名称,用于在Inspector中显示。这个名称通常

    2024年02月15日
    浏览(38)
  • Linux驱动开发(十四)---USB驱动开发学习(键盘+鼠标)

    《Linux驱动开发(一)—环境搭建与hello world》 《Linux驱动开发(二)—驱动与设备的分离设计》 《Linux驱动开发(三)—设备树》 《Linux驱动开发(四)—树莓派内核编译》 《Linux驱动开发(五)—树莓派设备树配合驱动开发》 《Linux驱动开发(六)—树莓派配合硬件进行字

    2024年02月08日
    浏览(49)
  • 【前端学习日记】Vue中的鼠标事件和键盘事件

    Vue提供了很好用的模板语法,包括插值语法 {{ }} 和指令语法v-?。使用指令语法很容易就可以为文档对象添加事件。 比较常用到的事件就是鼠标事件了。当用户使用鼠标点击网页上的某个元素,或者使用键盘按下某个键,会执行对应的回调(callback),进而在短时间内产生动

    2024年02月11日
    浏览(40)
  • 树莓派Pico W无线开发板MQTT协议通信MicroPython编程实践

    本博文介绍采用Thonny+MicroPython和umqtt.simple库MQTTClient类的对象方法编制树莓派Pico W无线开发板MQTT协议通信程序,将Pico W无线开发板、电脑或Android手机无线连接到远程MQTT服务器,给出采用电脑MQTTX应用程序及手机Android MQTT客户端App远程控制Pico W无线开发板板载LED灯和扩展LED灯亮

    2024年02月06日
    浏览(46)
  • 树莓派zero2W学习四OpenCV初探索(人体检测,运动物体检测)

    这么插入 然后修改树莓派配置,开启摄像头模块。 sudo raspi-config 再次检查 vcgencmd get_camera supported = 1 detected = 0 detected = 0 表明没有接入摄像头设备,看下设备是否插反了 supported = 1 detected = 1 # detected=1 表示识别到1个摄像头 测试拍照功能 $ raspistill -o test.jpg motion 安装 motion $ sud

    2024年02月21日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包