2018-06-20

以 PFx Brick 運用 Under-actuation 建構具有三個自由度的 LEGO 搬運設備

即使 PFx Brick  比起 SBrick 少了兩個 Power Functions Ports, 不過它所具有的多樣化周邊, 包含: 音效 與 燈光, 對 LEGO 的創作者而言, 更增添了創作的空間與樂趣.

以下的 Demo 影片示範以 PFx Brick 的兩個 Motor Ports 驅動一個具有: 抓取' 抬起' 旋轉等三個動作(自由度)的搬運設備, 包含了兩個主要功能:
  1. 抓取機構: 將貨物 抓取後抬起 或 放下後釋放 的功能.
  2. 旋轉機構: 以 順時針 或 逆時針方向 旋轉抓取機構的功能.
同時配合機構的運作, 再加上音效與燈光等警示效果, 一方面可凸顯不同作業時的特性, 亦能夠模擬真實世界的作業實況, 這些都是 PFx Brick 團隊推出這項產品的企圖心.


PFx Brick的控制界面設定


PFx Brick 具有兩個 LEGO Power Functions Ports, 一個 8 Channels 的 Lighting Dock 以及一個外接喇叭, 其中 Lighting Dock 目前可以接兩種介面板, 分別是傳統 LED 與 Brickstuff 的高亮度 Pico LED, 前面影片中的警示燈即是使用此種微型 LED 燈.

PFx Brick 內建 Flash memory 用來儲存 設定資料(Profile) 與 音效檔, 不同於 SBrick 是將 Profile 存放在手機端, 會這樣設計的原因是為了要能夠同時提供 手機(BLE) 與 LEGO IR 遙控器兩種無線控制方式.

因此, 在手機上所使用的 PFx Mobile App 控制界面也是模擬目前 LEGO 兩種不同類型的 IR 遙控器, 分別如下圖左側的 8879(Speed Remote Control) 與右側的 8885 或 EV3 IR Beacon.
這兩種控制界面都具有對應 LEGO IR 遙控器相同的控制項, 所以當完成了所有控制項的設定並將 Profile 下載至 PFx Brick 之後, 則無論是使用手機 或 IR 遙控器, 操控的方式都將會是一樣.



PFx Brick 的 Profile 透過電腦端的 PFx Desktop APP 進行設定, 在示範影片中採用如下圖的 Dual Joystick 控制界面, 共有 7 個控制項, 分別對應遙控器左' 右兩邊搖桿的前推' 後拉與置中 以及 EV3 Beacon 按鍵等 7 個動作:



每個控制項包含三種設定項目: Motor Action' Light Action 以及 Audio , 以下就示範影片中兩個主要功能的設定方式進行說明:

(1) 抓取機構設定:

如下圖, 以控制界面右側的上' 下鍵分別設定為操控: 將貨物抓取後抬起 以及 放下貨物後釋放 等兩個 Actions, 這是運用單一馬達完成兩個自由度的動作(也稱為 Underactuated Mechanism), 其中向上鍵的設定內容如下圖右邊 [Edit Action - Right Joystick Forward] 畫面所示:


設定的內容如下:
  • Motor Action: 當持續按著向上鍵時, 接在 Port B 的馬達會以 50% 的 Speed 運轉, 此時抓取機構會開始夾住貨物, 一旦夾緊之後隨即將貨物抬起.
    至於向下鍵的 放下後釋放 反向動作設定, 則只需於 [Right Joystick Forward] 控制項中將 Motor Speed 改成 -50% 即可.
  • Light Action: 當 Motor Action 啟動時, 8 個 Channels 的 Pico LED 會依單' 雙數順序, 以間隔 1 秒的週期交替輪流顯示, 作為抓取動作時的警示燈號.
  • Audio: 當 Motor Action 啟動時, 會以外接喇叭播放 Servo2.wav 音效檔, 作為抓取機構的運轉音效.

當放開按鍵時, 會中止馬達的運轉以及關閉警示燈顯示與音效的播放, 這些動作設定於 [Right Joystick Center] 控制項中: (如下圖)


(2) 旋轉機構設定:

如下圖, 以控制界面左側的上' 下鍵分別設定為: 將機構順時針與 逆時針旋轉 等兩個 Actions, 其中向上鍵的設定內容如下圖左邊 [Edit Action - Left Joystick Forward] 畫面所示:

設定的內容如下:
  • Motor Action: 當持續按著向上鍵時, 接在 Port A 的馬達會以 67% 的 Speed 運轉, 此時機構會 往右以順時針方向旋轉.
    至於向下鍵的逆時針旋轉動作設定, 則需於 [Left Joystick Forward] 控制項中將 Motor Speed 改成 -67% 即可.
  • Light Action: 當 Motor Action 啟動時, 右側的前方向燈(編號: 6' 7' 8) 與 後方向燈(編號 4) 等 4 個 Pico LED 會閃爍顯示, 作為旋轉動作時的方向指示燈號.
    而向下鍵的逆時針旋轉動作, 則改為使用編號 1' 2' 3 與 5 等 4 個位於左側的 Pico LED.
  • Audio: 當 Motor Action 啟動時, 會以外接喇叭播放 ReverseBeep1.wav 音效檔, 作為旋轉動作時的警示音效.

當放開按鍵時, 會中止馬達的運轉以及關閉警示燈顯示與音效的播放, 這些動作設定於 [Left Joystick Center] 控制項中: (如下圖)


透過 Underactuation 增加機構自由度(DOF)的方式


PFx Brick 只有兩個 Motor Ports, 通常以兩個馬達驅動的機構至多僅能有兩個動作 (DOF 自由度), 不過由示範影片中可以看出整個機構實際上共有三個動作: 抓取' 抬起(或 放下' 釋放)與 旋轉, 這是因為在抓取機構中使用了 Under-actuation 的設計: 以一顆馬達來完成兩個動作. 運作的方式參考下圖說明:


上圖的抓取機構中, 輸入齒輪(1) 的動力來源為馬達, 再透過 惰齒輪(2) 將動力傳遞給 輸出齒輪(3), 當馬達開始運轉時, 輸出齒輪(3) 會驅動夾具機構夾緊物品, 而一旦物品被夾緊而造成 輸出齒輪 停滯(halted)時, 原 惰齒輪 的角色將會轉變成 輸出齒輪 將被夾緊的物品舉起, 因此而完成了兩個自由度的動作, 這是克服 PFx Brick 只有兩個 Motor Ports 而增加機構自由度比較簡易的方式.

另外, 也可以在同一個 Motor Port 上接兩個馬達同時運轉, 不過這樣必須考量運作的協調性, 機構設計上較複雜也更耗費電力. 



2018-06-05

PFx Brick - 兼具聲光效果的 LEGO PF 馬達 BLE 控制器

雖然目前以藍芽遙控傳統 LEGO Power Functions 馬達的控制器, 最熱門的至少還有 SBrickBuWizz 兩種, 不過位於加拿大的 Fx Bricks 在 2017 年透過 Kickstarters 籌資, 也成功推出了另一款能以 BLE 遙控 PF 馬達的控制器: PFx Brick, 以下的 Demo 影片, 大致就可以看出 Fx Bricks 團隊何以在已經有強大競爭者的情況下仍然推出這項產品的企圖心.



如上面影片所展示的效果, 相較於 SBrick 或 BuWizz , 最大的差異在於 PFx Brick 多了 音效 與 燈光 功能, 此外還具有許多獨有的特性, 以下這些就是它的主要亮點:

  • 內建 Flash Memory 儲存音效檔 , 可以透過外接喇叭直接撥放歌曲或音效.
  • 外接 Lighting 介面, 具備 8 組可獨立控制的 channels 顯示燈光效果, 除了可接傳統的 LED 之外, 也支援 Brickstuff 的高亮度 Pico LED.
  • 具備 Lego IR 接收器, 所以, 也可以使用 Lego 8879' 8885 或 EV3 的 IR Becon 遙控器進行控制 ( ** EV3 或 NXT 就可以使用 Mindsensors 或 Hitechnic 的 IR 發射器控制 PFx Brick ^^)
  • 具備 Micro USB 接口, 除了作為連接電腦進行設定之外, 還可以外接行動電源供電, 大大的支援 LEGO 創作的長時間操作.



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 控制項偵測車輛是否處於左' 右轉向狀態, 以自動啟動 或 關閉左' 右轉向指示燈的閃爍顯示, 模擬真實車輛的運作.


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



2018-04-10

以 LEGO Boost 與 Scratch 2 製作互動遊戲

LEGO Boost 除了使用行動裝置上官方所提供的 app 編寫程式外, 也可以在電腦上透過 S2Bot 以 Scratch 2 控制,  這樣正好能夠運用 Scratch 的遊戲編程功能 以及 Boost 的馬達與感應器, 製作出生動有趣的互動遊戲.
下面的影片就是一個結合兩者所製作的「顏色輪盤遊戲」, 玩法如下: 
  1. 先由 Scratch 2 顯示讓玩遊戲的人可以挑選所要下注顏色的畫面.
  2. 下注之後啟動Boost 的顏色輪盤隨機旋轉至某一個顏色, 再藉由 Boost 的顏色感應器讀取比對輸贏狀態.
  3. Scratch 會因應本局的輸贏, 變更舞台背景並計算剩餘的籌碼, 而且當贏局時 Boost 還會表演一小段歡呼動作作為獎勵.
  4. 一旦輸光所有籌碼, 本次的遊戲就隨之結束.


LEGO Boost 「顏色輪盤遊戲機」構造

遊戲機的構造全部都是使用 LEGO Boost 17101 的零件組合而成, 包含兩個內建馬達與一個外接馬達以及顏色感應器全部都用上, 各部分的功能如以下圖片說明:


使用 S2Bot app 連接 Boost 與 Scratch 2


S2Bot app 的功能是提供 Scratch 2 能夠以藍芽方式無線遙控 LEGO Boost, 包含: 馬達控制讀取感應器, 而執行 Scratch 的電腦, 無論是 Windows 或 Mac,  都必須使用 BLED112 藍芽配接器, 才能連接 Boost. 
  1. 此處 下載安裝 S2Bot app .
  2. 執行 S2Bot app, 由左上方下拉選單中挑選 LEGO Boost , 接著點按 Scan for Devices 開啟對話框連接 Boost.
  3. 若是首次連接 Boost, 再點按右上方的下拉選單按鈕, 選擇 New Scratch template 產生 Boost 的 Scratch 程式積木範本: boost_template.sb2 並存檔於電腦中.
  4. 在 Scratch 2 中透過 File->Open 開啟 boost_template.sb2, 即可於腳本區的 More Blocks 中使用 Boost 的程式積木.

以 Scratch2 製作劇場版的機器人控制體驗:結合 S2Bot 遙控 SBRick

PICAXE 這家公司的教育部門,推出了 S2BotScratch Helper Apps,提供了透過 Scratch 2 可以用來控制多種機器人系統,包含 LEGO 的 Wedo、Wedo 2.0、NXT、EV3以及 SBrick PF 馬達藍芽控制器

由於 Scratch 2 擅長於製作遊戲動畫,因此結合 S2Bot 就可以將對實體機器人的控制,融入到 Scratch 2 設計的劇情中,這會是相當有趣的體驗,也是其他程式語言很難做到的情境。
以下的影片,就是對上述的構想所做的嘗試。

影片首先開始的武器測試 (Weapon System Test) ,是展示以 Scratch 2 + S2Bot 遙控 SBrick PF 馬達控制器的功能,由 Pico 角色執行,包含:順/逆時針方向旋轉雷射槍座、改變瞄準方向以及發射雷射槍等動作。
而雷射槍
燈光閃爍特效是使用 Brickstuff 的照明系統 ( 參考本文 )。

接著是一個射擊遊戲,太空船 (Spaceship 角色) 會以隨機的高度與方向出現並飛越螢幕畫面,而 Pico 角色則一方面發射雷射槍 (Shoot laser gun 角色) 同時遙控 SBrick 射擊動作。

當 Spaceship 角色偵測到已碰觸到 Shoot laser gun 角色時,表示太空船被雷射槍擊中,這時候 Spaceship 角色以及舞台背景都會切換成為爆炸的造型,而 Pico 角色也呈現為歡呼的造型。

而配合劇情進行的各種音效,也更加凸顯出每個情境所強調的效果。