原文地址
先上两张照片
八位堂出品的ZERO游戏手柄,只有一个钥匙扣大小,携带非常方便,颜值也是非常高
树莓派3B+,内置蓝牙模块单元,卡片式电脑
1. 更新树莓派软件列表和软件
$sudo apt-get update && apt-get upgrade -y
2. 树莓派蓝牙连接
(也可以从桌面软件打开,此处不在介绍,有关此命令的详细使用方法,也请自行搜索)
在Raspbian中,基本的蓝牙操作可以通过bluez中的bluetoothctl命令进行。该命令运行后,将进入到一个新的Shell,可以看到,命令提示符由$变成了#:
$sudo bluetoothctl
查看命令帮助信息
#help
显示树莓派上可用的蓝牙模块
#list
打开power
#power on
Changing power on succeed
设置agent
#agent on
Agent registered
设置default agent
#default-agent
Default agent request successful
开始扫描
#scan on
Discovery started
当查看到自己要配对的蓝牙设备后,停止扫描
#scan off
Discovery stopped
蓝牙配对(换成自己的蓝牙设备地址Mac)
#pair XX:XX:XX:XX:XX:XX
Pairing successful
连接蓝牙(换成自己的蓝牙设备地址Mac)
#connect XX:XX:XX:XX:XX:XX
Connection successful
退出蓝牙配置shell
#quit
Agent unregistrted
3. 验证RPi和手柄之间的通信
$ls /dev/input
event0 js0 mice
输入一下命令(X填写自己设备的实际值),按下手柄上的任意一个按钮,此时界面上应该跟随自己的按键输出一些乱码,先不管它,Ctrl+C退出。
$cat /dev/input/eventX
4.使用EVDEV库测试与开发树莓派与游戏手柄之间的蓝牙通信
安装python开发环境以及evdev库
$sudo apt-get install python-dev
$sudo apt-get install python-pip
$sudo pip install evdev
Installing collected packages: evdev
Successfully installed evdev-1.1.2
运行测试程序,根据提示选择自己的设备,然后按下不同的按键,查看输出,然后可以根据time、type、code、value值解析出对应的按键和对应的动作,so easy,马上用你的小手柄去控制其它的外部设备吧,Enjoy it!
$python /usr/local/lib/python2.7/dist-packages/evdev/evtest.py
time 1552112983.06 --------- SYN_REPORT --------
time 1552112983.2 type 3 (EV_ABS), code 1 (ABS_Y), value 127
time 1552112983.2 --------- SYN_REPORT --------
time 1552112983.35 type 3 (EV_ABS), code 1 (ABS_Y), value 0
time 1552112983.35 --------- SYN_REPORT --------
time 1552112983.44 type 3 (EV_ABS), code 1 (ABS_Y), value 127
time 1552112983.44 --------- SYN_REPORT --------
time 1552112983.59 type 3 (EV_ABS), code 1 (ABS_Y), value 0
time 1552112983.59 --------- SYN_REPORT --------
time 1552112983.65 type 3 (EV_ABS), code 1 (ABS_Y), value 127
time 1552112983.65 --------- SYN_REPORT --------
time 1552112983.96 type 3 (EV_ABS), code 1 (ABS_Y), value 255
time 1552112983.96 --------- SYN_REPORT --------
time 1552112984.07 type 3 (EV_ABS), code 1 (ABS_Y), value 127