貼上讀值小幫手
官方 App 的 Python 專案只有一個檔案,不能匯入自己的 .py,所以把「讀值小幫手」整段貼在程式最上面(小幫手開頭也寫了:照抄就好、不用改)。沒有它,後面寫的 GamepadApp 主機看不懂,會出現 NameError。
- 打開樂高官方 SPIKE App(教育版,SPIKE Prime 黃色主機),新增專案,選「Python」。
- 把右邊標 ① 的程式貼到最上面(小幫手只露第一行,按「顯示小幫手」看全部;「複製程式」一定是完整的)。小幫手也可以單獨下載:MBC_gamepad_App_helper.py(用記事本打開、全選複製)。
- 接收器插主機 A~F 任一孔,由主機供電;接收器要是 SPIKE 版韌體。PS2、PS4 接收器寫法一樣(小幫手也放在 PS4 的下載資料夾:PS4 版下載,內容相同),模擬手把下面可以切換 PS2/PS4。
小幫手幫你把官方 App 讀到的數字拆好(跟官方 App 積木頁同一套換算):
| 官方 App 讀到的 | 裝的是 | 小幫手的功能 |
|---|---|---|
color_sensor.reflection()(反射光) | 方向鍵+圖形鍵:上 1、右 2、下 4、左 8、△ 16、○ 32、✕ 64、□ 128,同時按就相加 | pressed('UP')…、buttons() 的低 8 位元 |
color_sensor.color()(顏色) | 肩鍵+功能鍵:L2 1、R2 2、L1 4、R1 8、SELECT(PS4:SHARE)16、L3 32、R3 64、START(PS4:OPTIONS)−128 | pressed('L1')…、buttons() 的高 8 位元 |
color_sensor.rgbi() 第 1 個(原始紅) | 左搖桿 X×10+Y(各 1 ~ 9,放開 55) | stick('LX')(÷ 10 取整數)、stick('LY')(÷ 10 的餘數) |
rgbi() 第 2 個(原始綠) | 右搖桿 X×10+Y | stick('RX'), stick('RY') |
rgbi() 第 3 個(原始藍) | 16 個鍵的另一種排法(PSX) | 不用(跟官方 App 積木頁一樣,見下面「讀不到的值」) |