材料:
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