USB-HID是Human Interface Device的缩写,属于人机交互操作的设备,如USB鼠标,USB键盘,USB游戏操纵杆,USB触摸板,USB轨迹球、电话拨号设备、VCR遥控等等设备。 TPYBoard借助micropython除了具有usb host功能以外,还可作为USB-HID设备来应用,这里重点讲述如果作为鼠标和键盘使用。

一、作为鼠标应用

(1)编辑 boot.py 文件以更改 USB—mouse 的确认方式。具体如下:# boot.py -- run on boot-

up
# can run arbitrary Python, but best to keep it minimal
import 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')前的注释符。这里pyb.usb_mode(),定义了HID的设备,默认为mouse,也可以用pyb.usb_mode('CDC+HID',hid=pyb.hid_mouse)。如果是键盘,应改为pyb.usb_mode('CDC+HID',hid=pyb.hid_keyboard)。

(2)REPL调试鼠标事件

这里依然用putty进行REPL调试。当进行完(1)再次启动时,会发现原本会出现的u盘没有了,此时设备的串口也可能发生了改变,因此在连接Putty前要先确认一下串口。在putty中,输入:pyb.hid((0,10,0,0))  #注意这里两层括号

回车后,会发现鼠标向右移动了10个像素。pyb.hid()的具体用法:pyb.hid((buttons, x, y, z))

这里buttons取0,1,2,3分别表示0移动,1按下左键,2按下中键,3按下右键。这句也可以用pyb.USB_HID().send((buttons, x, y, z)),效果是一样的。

(3)鼠标左右摇晃,代码如下:>>> 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)

这段代码也可以写到main.py中,这时大家可能会问,u盘没了,main.py怎么编辑啊。这里需要进入TPYBV101的安全模式。按住usr键,按一下reset,此时led2与led3交替亮,当led3亮起,led2没亮时,松开usr,此时led3快闪后,可以发现u盘挂载出来了,这时可以修改main.py文件。#main.py

import math

import pyb

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)

保存后,按reset重启后,就可以看到效果了。

二、作为键盘应用

(1) 编辑 boot.py 文件,定义usb-keyboard# boot.py -- run on boot-up

# can run arbitrary Python, but best to keep it minimal

import machine

import 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',hid=pyb.hid_keyboard) # act as a serial device and a keyboard

(2)按键测试,这里为了便于查看,我们修改main.py文件:# main.py -- put your code here!

hid=pyb.USB_HID()

def release_key_once():

buf = bytearray(8) # report is 8 bytes long

buf[2] = 0

hid.send(buf) # key released

pyb.delay(10)

def press_key_once(key):

buf = bytearray(8) # report is 8 bytes long

buf[2] = key

hid.send(buf) # key released

pyb.delay(10)

def press_2key(key1,key2):

buf = bytearray(8) # report is 8 bytes long

buf[2] = key1

buf[3] = key2

hid.send(buf) # key released

pyb.delay(10)

def release_2key():

buf = bytearray(8) # report is 8 bytes long

buf[2] = 0

buf[3] = 0

hid.send(buf) # key released

pyb.delay(10)

pyb.delay(1000)

press_key_once(0x04)

release_key_once()

pyb.delay(1000)

press_key_once(0x05)

release_key_once()

pyb.delay(1000)

press_key_once(0x2B)

release_key_once()

pyb.delay(1000)

press_key_once(0x28)

release_key_once()

pyb.delay(1000)

press_key_once(0x06)

release_key_once()

pyb.delay(1000)

press_key_once(0x07)

release_key_once()

pyb.delay(1000)

press_2key(0x08,0x09)

release_2key()

pyb.delay(1000)

这个程序定义了按下一个键press_key_once(key),抬起一个键 release_key_once(),按下两个键press_2key(key1,key2),抬起两个键release_2key()的方法。具体运行效果,可先打开一个记事本,然后按一下reset键,或者插拔一次usb口,最后可以看到在记事本里,先打入ab,接着是tab,回车,接着cdef,除了ef几乎同时出现,前面的输入间都间隔了1秒。

micro python 读写u盘_MicroPython开发板TPYBoard关于USB-HID的应用相关推荐

  1. linux 开发板模拟u盘,linux 开发板(Linux USB Gadget) 模拟u盘

    前几天,搞了 hid设备,通过usb hid设备和windows进行通信.现在开始搞这个 mass storge 首先说明 环境:linux版本:3.15        使用开发板:SAMa5d3   ...

  2. 嵌入式Linux操作系统移植IMX6开发板之实现USB 自动挂载

    学习交流加 个人qq: 1126137994 个人微信: liu1126137994 学习交流资源分享qq群: 962535112 本篇文章讲述如何实现USB自动挂载,U盘即插即用,不用手动挂载的方法 ...

  3. 用digispark开发板制作Bad USB

    用digispark开发板制作Bad USB 材料: digispark开发板一个(某宝8块8包邮) 软件: arduino IDE Automator https://github.com/CYRO ...

  4. STC8H开发(九): STC8H8K64U模拟USB HID外设

    目录 STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解) ST ...

  5. python 开发板 播放音乐_MicroPython开发板:TPYBoard v102 播放音乐实例

    0x00前言 前段时间看到TPYBoard的技术交流群(群号:157816561)里有人问关于TPYBoard播放音乐的问题.最近抽空看了一下文档介绍,着手做了个实验. 0x01实验器材 TPYBoa ...

  6. python开发板卡驱动开发_一款能让你发挥无限创意的MicroPython开发板—TPYBoard开发板测...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 今天 静电袋包装,打开袋子简单明了:TPYBoard开发板一块.跳线帽一个.数据线一条.说明书一份.通过数据线将开发板与电脑连接就可以DIY各种你想要的P ...

  7. python stm32f401_NUCLEO-F401RE(STM32F401RE)开发板跑Micropython平台

    NUCLEO-F401RE(STM32F401RE)开发板跑Micropython平台 开发准备: 软件:DfuSeDemo.STM32 ST-LINK Utility.虚拟串口驱动.OpenIOE. ...

  8. linux 开发板模拟u盘,S5P4418开发板Linux下实现模拟U盘教程飞凌嵌入式

    飞凌嵌入式ARMCortex-A9 S5P4418开发板上能否满足U盘的功能?其实可通过修改内核配置和文件系统相关内容,在OK4418开发板上实现模拟U盘功能,模拟U盘可以帮助我们实现开发板与Wind ...

  9. python微控制器编程从零开始 开发板_Python微控制器编程从零开始 使用MicroPython 文轩网正版图书...

    章概述1 1.1MicroPython简介1 1.2设计思想2 1.3MicroPython探究2 1.4面向对象编程和一些Python基础4 1.4.1面向对象的概念4 1.4.2建模一个机器人7 ...

最新文章

  1. openshift scc解析
  2. Android使用Apache HttpClient发送GET、POST请求
  3. Logstash 推送告警到阿里钉钉(Dingtalk)
  4. PC,移动端H5实现实现小球加入购物车效果
  5. yolov1-v5学习笔记及源码解读
  6. Forking AfterBurn into Maya
  7. 在线制作车牌效果图_厦门车牌识别系统生产厂家直销
  8. linux挂载windows上的共享文件夹
  9. luogu4360 锯木厂选址 (斜率优化dp)
  10. 为什么需要数据库外键
  11. 天网防火墙去掉更新提示对话框
  12. 【蓝桥杯Java组】数论基础—素数筛、最大公约数、最小公倍数
  13. RTKLIB-RTKPOST设置介绍
  14. android通过adb设置以太网共享
  15. 三星官方smdkv210 uboot移植到我的s5pv210开发板
  16. linux上配置zabbix并设置企业微信,机器人以及自主告警
  17. Python去除列表中元素的前后空格和换行
  18. 如何通过形态选股构建量化策略?
  19. mysql实现统计查询_MySQL 统计查询实现代码
  20. c语言编程计算c上0下n,计算方法C语言编程讲解.doc

热门文章

  1. 解析:云计算应用现状与关键技术
  2. 深度linux_X230换装深度linux系统,国产系统逐步进入可用阶段
  3. ios android跨服务器,《大话西游》手游_iOS安卓跨系统角色转移功能介绍_《大话西游》手游官网...
  4. 串口编程需要注意的地方
  5. 期刊印刷时间大概多久
  6. Android万能的指示器
  7. 模具铜公的加工方法与质量鉴别
  8. Java毕设项目视频点播系统(java+VUE+Mybatis+Maven+Mysql)
  9. 滴滴外卖开启连锁模式,距离全国连锁还有多远?
  10. 50页智慧校园解决方案[附下载]