用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)在系统上安
材料:
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-8
import pygame
import RPi.GPIO as GPIO
import time
#BCM编号方式
GPIO.setmode(GPIO.BCM)
#BCM编码21号针脚设置成输出模式
GPIO.setup(21,GPIO.OUT)
GPIO.setwarnings(False)
# 模块初始化
pygame.init()
pygame.joystick.init()
# 若只连接了一个手柄,此处带入的参数一般都是0
joystick = pygame.joystick.Joystick(0)
# 手柄对象初始化
joystick.init()
done = False
while 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键:
参考资料:
https://blog.csdn.net/xingqilui126com/article/details/52075823
https://blog.csdn.net/qq_41556318/article/details/86305263
更多推荐
所有评论(0)