micro python 读写u盘_MicroPython开发板TPYBoard关于USB-HID的应用
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的应用相关推荐
- linux 开发板模拟u盘,linux 开发板(Linux USB Gadget) 模拟u盘
前几天,搞了 hid设备,通过usb hid设备和windows进行通信.现在开始搞这个 mass storge 首先说明 环境:linux版本:3.15 使用开发板:SAMa5d3 ...
- 嵌入式Linux操作系统移植IMX6开发板之实现USB 自动挂载
学习交流加 个人qq: 1126137994 个人微信: liu1126137994 学习交流资源分享qq群: 962535112 本篇文章讲述如何实现USB自动挂载,U盘即插即用,不用手动挂载的方法 ...
- 用digispark开发板制作Bad USB
用digispark开发板制作Bad USB 材料: digispark开发板一个(某宝8块8包邮) 软件: arduino IDE Automator https://github.com/CYRO ...
- STC8H开发(九): STC8H8K64U模拟USB HID外设
目录 STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解) ST ...
- python 开发板 播放音乐_MicroPython开发板:TPYBoard v102 播放音乐实例
0x00前言 前段时间看到TPYBoard的技术交流群(群号:157816561)里有人问关于TPYBoard播放音乐的问题.最近抽空看了一下文档介绍,着手做了个实验. 0x01实验器材 TPYBoa ...
- python开发板卡驱动开发_一款能让你发挥无限创意的MicroPython开发板—TPYBoard开发板测...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 今天 静电袋包装,打开袋子简单明了:TPYBoard开发板一块.跳线帽一个.数据线一条.说明书一份.通过数据线将开发板与电脑连接就可以DIY各种你想要的P ...
- python stm32f401_NUCLEO-F401RE(STM32F401RE)开发板跑Micropython平台
NUCLEO-F401RE(STM32F401RE)开发板跑Micropython平台 开发准备: 软件:DfuSeDemo.STM32 ST-LINK Utility.虚拟串口驱动.OpenIOE. ...
- linux 开发板模拟u盘,S5P4418开发板Linux下实现模拟U盘教程飞凌嵌入式
飞凌嵌入式ARMCortex-A9 S5P4418开发板上能否满足U盘的功能?其实可通过修改内核配置和文件系统相关内容,在OK4418开发板上实现模拟U盘功能,模拟U盘可以帮助我们实现开发板与Wind ...
- 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 ...
最新文章
- openshift scc解析
- Android使用Apache HttpClient发送GET、POST请求
- Logstash 推送告警到阿里钉钉(Dingtalk)
- PC,移动端H5实现实现小球加入购物车效果
- yolov1-v5学习笔记及源码解读
- Forking AfterBurn into Maya
- 在线制作车牌效果图_厦门车牌识别系统生产厂家直销
- linux挂载windows上的共享文件夹
- luogu4360 锯木厂选址 (斜率优化dp)
- 为什么需要数据库外键
- 天网防火墙去掉更新提示对话框
- 【蓝桥杯Java组】数论基础—素数筛、最大公约数、最小公倍数
- RTKLIB-RTKPOST设置介绍
- android通过adb设置以太网共享
- 三星官方smdkv210 uboot移植到我的s5pv210开发板
- linux上配置zabbix并设置企业微信,机器人以及自主告警
- Python去除列表中元素的前后空格和换行
- 如何通过形态选股构建量化策略?
- mysql实现统计查询_MySQL 统计查询实现代码
- c语言编程计算c上0下n,计算方法C语言编程讲解.doc
热门文章
- 解析:云计算应用现状与关键技术
- 深度linux_X230换装深度linux系统,国产系统逐步进入可用阶段
- ios android跨服务器,《大话西游》手游_iOS安卓跨系统角色转移功能介绍_《大话西游》手游官网...
- 串口编程需要注意的地方
- 期刊印刷时间大概多久
- Android万能的指示器
- 模具铜公的加工方法与质量鉴别
- Java毕设项目视频点播系统(java+VUE+Mybatis+Maven+Mysql)
- 滴滴外卖开启连锁模式,距离全国连锁还有多远?
- 50页智慧校园解决方案[附下载]