1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 用Xbox360游戏手柄通过python代码控制树莓派4B点亮LED灯

用Xbox360游戏手柄通过python代码控制树莓派4B点亮LED灯

时间:2023-09-09 18:11:33

相关推荐

用Xbox360游戏手柄通过python代码控制树莓派4B点亮LED灯

材料:

1.树莓派4B一个(系统我安装的是Ubuntu 20.04.2 LST arm64位)

2.Xbox360游戏手柄一个

3.LED灯一个

Xbox手柄简介:

只介绍本次要用到的按键部分:

X键和Y键的编号分别2号键和3号键,编程中用函数获取这两个键是否按下的状态,来控制LED灯的亮灭。用Y控制树莓派针脚输出高电平使LED灯亮,用X控制针脚输出低电平使LED灯灭,代码及注释下文给出。

开始:

1)在系统上安装软件joystick和xboxdrv

sudo apt-get install joystick

sudo apt-get install xboxdrv

2)安装python以及pygame库

sudo apt-get install python

sudo apt-get install python-pygame

3)将LED灯的正极接到树莓派的以BCM编码的21号针脚(GPIO.29),负极接到相邻的GND(接地)

手柄连接到树莓派上,输入指令lsusb

lsusb

有如下红框显示则连接成功

4)创建xbox.py文件,添加如下代码并保存

#coding:utf-8import pygameimport RPi.GPIO as GPIOimport time#BCM编号方式GPIO.setmode(GPIO.BCM)#BCM编码21号针脚设置成输出模式 GPIO.setup(21,GPIO.OUT) GPIO.setwarnings(False)# 模块初始化pygame.init()pygame.joystick.init()# 若只连接了一个手柄,此处带入的参数一般都是0joystick = pygame.joystick.Joystick(0)# 手柄对象初始化joystick.init()done = Falsewhile not done:#pygame.event.get()可以获得当前用户所做动作的事件列表for event_ in pygame.event.get():#pygame.JOYBUTTONDOWN和event_.type == pygame.JOYBUTTONUP分别为操作杆动作"按键按下"和"按键抬起"if event_.type == pygame.JOYBUTTONDOWN or event_.type == pygame.JOYBUTTONUP:#joystick.get_button(3)为获取按键3(Y键)动作,返回1为按下,0为抬起if joystick.get_button(3)==1:#21号针脚输出高电平GPIO.output(21,GPIO.HIGH)#joystick.get_button(2)为获取按键2(X键)动作,返回1为按下,0为抬起if joystick.get_button(2)==1: #21号针脚输出低电平GPIO.output(21,GPIO.LOW)pygame.quit()

5)在命令行中输入以下指令运行xbox.py

python xbox.py

随后操作手柄,按下Y键LED灯亮,按下X键LED灯灭

按Y键:

按X键:

参考资料:

/xingqilui126com/article/details/52075823

/qq_41556318/article/details/86305263

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。