2018-05-13

SBrick 筆記 - 三種進階功能測試 (Clinometer' Sequence' Circuit)

SBrick 的 Profile Designer 提供了 6 種控制項 (Controls) 作為遙控 LEGO PF 裝置的操作介面 :
  • Slider: 以移動滑條方式控制單 Channel 的動作. 
  • Joystick: 以雙向搖桿方式控制雙 Channels 的動作. 
  • Button: 以按鈕的 On/Off 開關方式控制單 Channel 的動作.
  • Clinometer: 測斜儀, 藉由偵測作為遙控裝置(手機 或 平板)的三種運動方式 - Pitch(俯仰)' Yaw(偏擺) 與 Roll(翻滾), 控制三 Channels 的動作.
  • Sequence: 同時控制多個 Channels 依據時間序列執行指定的動作.
  • Circuit: 藉由讀取指定 Channel 或 感應器的值(Input), 比對設定的條件(Logic), 觸發符合條件的控制指令(Target).
其中後三種屬於較進階的控制項, 即使 SBrick 原廠也一直延到產品上市幾個月之後才提供正常的運作功能, 尤其 SequenceCircuit 兩個控制項具備可程式化的特性, 能夠運用 PF 周邊建構如同 EV3 與 NXT 一樣彈性的自動化應用, 對於 Lego Technic 玩家具有相當的吸引力.

功能測試


為了測試這三種進階控制項, 將製作一台以 PF 馬達驅動的四輪車(如下圖), 主要功能包含:
  1. 以 PF Servo motor 控制車輛的轉向以及以 PF L motor 驅動車輛的行進, 另以三個 PF LED 燈分別作為車頭燈 與 左右轉向指示燈.
  2. 以 Clinometer 控制項偵測手機的 俯仰 與 偏擺 動作, 遙控車輛的 進退 與 轉向, 
  3. 以兩個 Sequence 控制項顯示左' 右轉向指示燈的閃爍效果.
  4. 以一個 Circuit 控制項偵測車輛是否處於前進狀態, 以自動點亮 或 關閉 車頭燈.
  5. 以兩個 Circuit 控制項偵測車輛是否處於左' 右轉向狀態, 以自動啟動 或 關閉左' 右轉向指示燈的閃爍顯示, 模擬真實車輛的運作.


上述功能的實作, 可以參考以下影片:





控制介面設計

要使用 SBrick 手機 app 的控制介面, 須先於電腦以 Profile Designer 進行設計與建立, 包含: 設定背景圖片與加入所有會使用到的控制項(Controls), 完成之後將 Profile 存放在 SBrick 的網站中, 接著再以手機 app 連結下載之後, 對 Profile 控制項的 Channels 與  SBrick 的實體 Ports 進行對應, 這樣才可以在 SBrick 的手機 app 中使用設計好的控制介面遙控連接在 SBrick 上的 PF 馬達或 LED 燈.

一、設計控制介面的 Profile:



如上圖所示, 在本次測試的控制介面中共使用了 8 個控制項, 每個控制項的用途與設定方式, 如以下說明(依序自左上起): 

(1) Clinometer - 透過手機姿態的變化遙控車輛的行進與轉向, 共包含三個 Channels: Pitch(俯仰)' Yaw(偏擺) 與 Roll(翻滾), 但車輛的控制只需要其中兩種, 實際以 iPhone 測試驗證此控制項的回應方式, 選擇以 Pitch Channel 作為轉向控制(左右偏擺), 而以 Roll Channel 作為行進控制(前後俯仰), 這樣似乎與Channel 的名稱定義不同, 不過這是經由實際測試得到的結論, 所以可能是 SBrick 原廠的失誤.


(2) Close button - 結束 app 

(3) FlashLeftLights - 以 0.5 秒的間隔週期, 閃爍顯示左轉燈的 Sequence 控制項


(4) HeadLights - 開關頭燈的 Button 控制項:


(5) FlashRightLights - 以 0.5 秒的間隔週期, 閃爍顯示右轉燈的 Sequence 控制項:


(6) Circuit-SteerLeft - 偵測若車輛正在左轉時, 會自動啟動 FlashLeftLights Sequence Circuit 控制項



(7) LitHeadLights - 偵測當車輛前進時, 會自動設定 HeadLights 為 ON  Circuit 控制項



(8) Circuit-SteerRight - 當偵測到車輛正在右轉時, 會自動啟動 FlashRightLights Sequence  Circuit 控制項

二、設定 SBrick 實體 Ports 與 Profile Control - Channels 的對應:


完成設計控制介面的 Profile 之後, 接下來需要在 SBrick 的手機 app 中將 Profile 所有控制項的 Channels 對應到連接實體 PF 設備的 SBrick Ports, 這樣手機 app 才能夠使用自行設計的控制介面遙控以 SBrick 所建構的車輛.

SBrick app 設定:


SBrick 實體 Ports 與 Profile Channels 的對應:



沒有留言:

張貼留言