MBC 掌控者 PS2/PS4 × EV3-G(EV3 官方軟體)

三個步驟用 EV3-G 讀掌控者

在 EV3 官方軟體(EV3-G)裡,掌控者 PS2/PS4會被當成樂高的紅外線感應器,所以不用匯入函式庫,直接用紅外線感應器的積木、選對模式就能讀。左邊一步一步做,右邊的積木會跟著長出來;這些圖是在 EV3-G 裡打開程式後直接截下來的(100% 大小,英文介面),跟你在軟體裡看到的一樣。

1

開始:開始積木+迴圈

讀感應器要一直重複讀。新程式裡已經有綠色的「開始」積木,後面接一個橘色的「迴圈(Loop)」,迴圈裡放「等待(Wait)」積木,每 0.1 秒讀一次。

  1. 打開 EV3 官方軟體(EV3-G),新增一個專案。
  2. 從橘色的「流程控制」拖出「迴圈」,接在開始積木後面(預設就是一直重複)。
  3. 再拖一顆「等待」放進迴圈,模式選「時間」,秒數改成 0.1。
2

認識讀值積木(紅外線感應器)

掌控者 PS2/PS4插在 EV3 上會被當成樂高的紅外線感應器。從黃色的「感應器」拖出「紅外線感應器」積木,按積木左下角選模式;右上角是孔號,選 1(感應器插 1 號孔)。產品把不同的值放在不同的模式裡:

積木讀到的是範圍
測量 → 近接(Proximity)方向鍵0 ~ 15
測量 → 信標(Beacon)頻道 2:方向(Heading)形狀鍵0 ~ 15
測量 → 信標(Beacon)頻道 3:方向(Heading)肩鍵0 ~ 15
測量 → 信標(Beacon)頻道 4:方向(Heading)功能鍵0 ~ 15
測量 → 信標(Beacon)頻道 1:近接(Proximity)左搖桿(第 1 個:LX)0 ~ 99(50 = 中間)
測量 → 信標(Beacon)頻道 2:近接(Proximity)左搖桿(第 2 個:LY)0 ~ 99(50 = 中間)
測量 → 信標(Beacon)頻道 3:近接(Proximity)右搖桿(第 1 個:RX)0 ~ 99(50 = 中間)
測量 → 信標(Beacon)頻道 4:近接(Proximity)右搖桿(第 2 個:RY)0 ~ 99(50 = 中間)

一支程式只用同一種模式的積木(近接、信標、遙控三選一)。EV3 每換一次模式要卡約 1.1 秒。

3

顯示在 EV3 螢幕上

用紅色「資料運算」裡的「文字(Text)」積木,把名字(例如 POS)和讀到的數字接在一起,再接到綠色「顯示(Display)」積木(模式「文字 → 格點」,Y 填行數)。黃色、橘色的線是資料線:從感應器拉到文字積木,再拉到顯示積木。迴圈前面先放一顆「顯示 → 重設螢幕」。點一個功能,積木和結果會換成它的範例。

模擬手把:點按鍵、拖動搖桿,看右邊的輸出怎麼變

模擬畫面是示意:點一下按鍵=按住,再點一下放開;拖動搖桿的圓點改變位置(放開滑鼠會停在那裡,按「全部放開」回到中間)。EV3 上搖桿是 0 ~ 99、50 = 中間,往右、往上數字變大。

每個功能的積木範例

EV3-G 讀得到的值,每個都有一支可以照著拼的小程式(感應器插 1 號孔)。按「試試看」會切到第 3 步。

EV3-G 讀不到的:16 鍵合成數字、手把有沒有連上(模式 3)、電量、L2/R2 按多深、PS 鍵與觸控板、手把種類、裝置 ID 與韌體版本;PS4 才有的震動、燈條是「命令」,EV3 接頭不能送命令。韌體 v4.0 新增的模式 3~6(例如公釐距離、位元圖、連線狀態、裝置 ID)EV3-G 的積木也讀不到。要用這些,改用 Pybricks(EV3 要換開機卡)或 clev3r。

使用注意

  1. 感應器插 1 號孔。插別的孔,就把積木上的孔號改成那一孔。EV3 要先開機再插感應器;數字一直不動時拔掉重插一次。
  2. 一支程式只用一種模式。近接、信標、遙控三種模式,EV3 每換一次要卡約 1.1 秒,比賽時車子可能失控。
  3. 拔掉感應器時:EV3 讀不到,數字變成「不是數字」,螢幕顯示 ----,而且每讀一次要等約 1.2 秒;程式不會停,插回去會自動恢復。
  4. 一個模式就夠:信標(Beacon)模式同時有全部按鍵和兩支搖桿(方向 = 按鍵、近接 = 搖桿),開車程式只用它就不會切換模式。
  5. 手把沒連線時:按鍵都是 0、搖桿都是 50(在中間),車子不會亂衝。PS2 和 PS4 接收器在 EV3 上的數字完全一樣。
  6. 積木是英文介面截圖:中文版 EV3-G 的積木圖示一樣,只是選單文字不同。
  7. 想看完整的應用範例(循線、避障、開車……):到 EV3 範例頁,大部分範例都有 EV3-G 檔可以下載。