树莓派装载手柄驱动
通过这篇文章了解到手柄驱动装载的方法:
感觉所有的手柄都可以使用这种方法(这个后面再进行尝试)
1、载入joydev模块
# 载入 joydev 模块
pi@raspberrypi:~ $ modprobe joydev
2、查看模块是否已经安装
#查看模块是否安装
pi@raspberrypi:~ $ lsmod
如下图所示,出现joydev即可
3、安装手柄软件
pi@raspberrypi:~ $ sudo apt-get install joystick
依赖问题
在这一步的时候,我另外一块板子出现了一些插曲,发现无法安装:
pi@raspberrypi:~ $ sudo apt-get install joystick
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
基于此,我找了一些方法:E: Could not get lock /var/lib/dpkg/lock-frontend问题的解决方法,跟着这个方法做完之后,又发现了另外一个问题:
pi@raspberrypi:~ $ sudo apt-get install joystick
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
chromium-browser-l10n : Depends: chromium-browser (>= 92.0.4515.98~buster-rpt2) but 86.0.4240.197-rpt1 is to be installed
cups-daemon : Depends: libcups2 (= 2.2.10-6+deb10u7) but 2.2.10-6+deb10u4 is to be installed
libcupsimage2 : Depends: libcups2 (= 2.2.10-6+deb10u7) but 2.2.10-6+deb10u4 is to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).
基于以上问题,找到了其解决方法:The following packages have unmet dependencies。
最终成功安装!亲测有效!
4、测试手柄与树莓派之间是否通信(注意:在测试前,一定要将无线手柄的USB接收口插在树莓派上)
pi@raspberrypi:~ $ jstest /dev/input/js0
可以看到手柄数据随着手柄的按动,发生了变化
树莓派使用python读取手柄数据
这里有一篇大佬的文章有讲到使用python3提取手柄数据,暂时保留,查看是否拥有更好的。
通过不懈的努力,有找到一篇简单获取手柄摇杆数据python 简单获取手柄摇杆输入的文章,并且做了验证,发现可行。下面是我结合他的文章做出的代码调试:
import pygame
import time
pygame.init()
pygame.joystick.init()
done=False
while (done != True):
for event in pygame.event.get(): # User did something
if event.type == pygame.QUIT: # If user clicked close
done = True # Flag that we are done so we exit this loop
joystick_count = pygame.joystick.get_count()
print(joystick_count)
for i in range(joystick_count):
joystick = pygame.joystick.Joystick(i)
joystick.init() # 对手柄对象进行初始化操作,否则在IDE中无法操作,但是在pycharm中可以执行
# axes = joystick.get_numaxes() # 通过打印”axes”可知,摇杆输出共有六个数据
print('***',joystick.get_axis(0),'***',joystick.get_axis(1),'***',joystick.get_axis(2),'***',joystick.get_axis(3),'***',joystick.get_axis(4),'***',joystick.get_axis(5))
# 为了寻求对应关系,我将遥感数据一次性全部打印
print('================')
'''for i in range(axes): # 原文章提供的代码是通过循环分别打印六个数据,但是这样很快,无法通过调试得到对应关系,
axis = joystick.get_axis(i)
print(axis)'''
关于详细的joystick 模块使用可以参考这位大佬的文章Pygame详解(十七):joystick 模块
为了后面能够独立学习代码,我想实现能够查看python中一些库函数的使用方法,或者查看库函数或者package或者module的使用情况。通过查找相关资料,发现查询Python模块的使用方法这篇挺不错的。
文中提到了三种查询方式:
1、dir(库名)可以导出该库下所有的模块信息
2、help(函数名)可以导出使用方法
3、按住ctrl键在用鼠标左键点击所需要查看的函数或者文件,就可以看到他的使用方法
import pygame
print(dir(pygame.joystick))
'''joystick类中的方法
['Joystick', 'JoystickType', '_PYGAME_C_API', '__doc__', '__file__', '__loader__', '__name__',
'__package__', '__spec__', 'get_count', 'get_init', 'init', 'quit']
'''
print(help(pygame.joystick))
pip大法
我在树莓派中使用的是pycharm进行编程,当我想使用pygame库时,发现通过setting进行解释器配置有时候会出现无法下载或者获取不到信息的情况。这个时候我就找到一篇大神发的方法pip大法
# 在pycharm终端运行该命令
pip install pygame