目录

使用树莓派读取游戏手柄数据

使用树莓派读取游戏手柄数据

使用树莓派读取游戏手柄数据

本教程使用树莓派读取游戏手柄数据,python3版本,可将数据读取为list。

大致思路是使用joystick软件,解析出手柄的数据,保存在文件中,再读文件数据。考虑到sd卡读写次数有限,将上述临时文件放在内存当中。

一、在shell环境下先安装手柄的操作软件

#1.更新包信息

sudo apt-get update

#2.安装手柄软件

sudo apt-get install joystick

二、测试软件是否正常工作

插上手柄,在shell中输入

cat /dev/input/js0 | hexdump

正常应该出现一堆数字,而且数字会随着手柄按键活动变化。

https://i-blog.csdnimg.cn/blog_migrate/ae596c157644e0ea613ddadd3fd9fc40.png

三、增加虚拟硬盘文件

在文件:/etc/fatab末尾增加:

tmpfs /var/jstestRes tmpfs defaults,noatime,nosuid,mode=0777,size=1m 0 0

重启树莓派后检查是否出现文件夹:/var/jstestRes

四、运行python文件:

该文件在子进程中调用文件:/home/pi/app/starter,该地址可自行确定。按照本文目录设定,应该如下:

https://i-blog.csdnimg.cn/blog_migrate/46c353ba7455dd4454516136de0eb480.png 必须具备starter文件和joyStick.py文件。

文件为脚本:

 #!/bin/bash
jstest /dev/input/js0 > /var/jstestRes/res.txt

五、运行:python3 joyStick.py

https://i-blog.csdnimg.cn/blog_migrate/ad8659738b454641f9c76bbda50ad3d4.png

六、部分代码如下:

初始化:

def __init__(self):
    self.process =subprocess.Popen("/home/pi/app/starter", shell=True)
    self.f = open('/var/jstestRes/res.txt', 'w+')
    time.sleep(0.5)
    self.CleanBufFile(

读数据:

def ReadStcick(self):
    while True:
        self.Buf = self.f.read()
        if self.Buf != '':
            # print(self.Buf)
            print(self.AnsisStickData())
            self.CleanBufFile()

得到手柄数据位于list:StickAxes, StickBtn当中

 def AnsisStickData(self):
        StickAxes = [0, 0, 0, 0, 0, 0]
        StickBtn = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

        tmp = self.Buf.split("Buttons:")
        StickAxesData = tmp[-2]
        StickBtnsData = tmp[-1]
        StickAxesData = StickAxesData.split("Axes:")[-1]
        StickAxesData = StickAxesData.replace(" ","")
        for i in range(len(StickAxes)):
            StickAxes[i] = self.GetData(StickAxesData, i)

        for i in range(len(StickBtn)):
            StickBtn[i] = self.GetData(StickBtnsData, i)

        return StickAxes, StickBtn
        pass

手柄就是普通的usb手柄,我买的时候特意在淘宝上找了一家自称可以兼容树莓派的,实测可用,20一个。链接如下:

https://item.taobao.com/item.htm?spm=a1z09.2.0.0.475b2e8dA84SaS&id=546529614303&_u=82113089bc4

https://i-blog.csdnimg.cn/blog_migrate/d0d8d4b4193a5e8ca34e79cb940ca05a.png

附上代码链接:https://download.csdn.net/download/lianqingde/22031214