PS2 鍵值配置
- R3, L3 僅在類比模式可用
- R/L-UR, UL, DR, DL 數位模式可用
函式庫 MyKitPS2
請先將函式庫 MyKitPS2 上傳至 MCU。
- read(間隔毫秒):用來讀取所動作的按鈕鍵名與鍵值
- gamepad(鍵值功能字典) :可用以查詢與自訂按鍵值與對應的功能
- is_started :判斷 START 鍵是否已被按下, 可開始操控
- is_analog :判斷 GAMEPAD 是否處於 Analog Mode
***如果需要進一步了解如何上傳檔案至 MCU 的方法, 建議您可先參考我的另一篇 “MicroPython 如此簡單: 檔案管理”. ***
測試範例
以 ESP32 腳位為例:
範例一: 讀取 PS2 鍵值
from MyKitPS2 import myPS2
ps2 = myPS2(26, 27, 14, 12)
while True:
k, v = ps2.read()
if v >= 0: # v >= 0, 找到按鍵中已定義的鍵值
print('Analog:{}, {}={}'.format(ps2.is_analog, k, v))
範例二: 啟動與結束的判斷
某些專案的情形, 必須要 PS2 按下某鍵 (例如, 預設的 START 鍵) 才開始, 或按下某鍵 (例如, 此例的 CROSS 鍵) 才結束。
from MyKitPS2 import myPS2
ps2 = myPS2(26, 27, 14, 12)
while True:
k, v = ps2.read()
if v >= 0 and ps2.is_started: # 判斷是否有按下 START 啟動的控制
print('Analog:{}, {}={}'.format(ps2.is_analog, k, v))
if k == 'CROSS': # 按 CROSS 離開
break
同此例的 CROSS 鍵, 可依此方式處理其他按鍵的對應作業方式。
範例三: 自訂按鍵值
有些時候, 我們希望按鍵的名稱與對應的作業, 能有較佳的可讀性, 例如結束遊戲的按鍵應該是 ’QUIT’ 而不是上面範例隨意取個 ‘CROSS’ 鍵來替代時, 就需要自行重新定義按鍵名稱與對應的鍵值。
例如, 將預設結束鍵值 CROSS 更名為 ‘QUIT’, TRIANGLE 更名為 ‘GREEN’ 時
pad_dict = {'QUIT': 57343, 'GREEN': 63487}
print('\nNEW Gamepad:', ps2.gamepad(pad_dict))
- 按鍵值重新定義後, 後續的程式就可以改用新的按鍵名稱來加以控制了。
如此而已, 就是這麼簡單, 希望能對你/妳有了一點點小幫助 !
作者:Yungger 勇哥
若覺得此文真對您有幫助, 點點左上方的拍手圖示, 鼓勵一下。若還想 請喝杯咖啡 鼓勵一下勇哥的繼續創作, 也感謝 😘 😘 !!