SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Downloaden Sie, um offline zu lesen
繪師: 梁榆 老師
高畫質修飾: RB 魔人
從入門到初階
LabVIEW&RoBoard
無痛上手指南
1
第一幕 來作機器人吧!
本節目由瞻營全(DMP)公司贊助播出,在此由衷感
謝。
碧靈與威爺齊聲說道:「「大家好! 歡迎各位收看由
威爺與碧靈兩位所主持的『RoBoard Lab』特別節
目。」」
「本節目由 DMP 公司贊助播出。」碧靈微笑的說
著。
威爺看著碧靈說著:「這剛剛已經提過了…話說碧
靈啊,您有聽過”電子寵物”這個東西嗎?」
「有啊,我小時候有過一隻愛寶(AIBO)。」碧靈驕
傲的說。
「什麼…真的嗎!?」驚訝的威爺問道。
碧靈:「假的。」
「…………」威爺無言。
「唉,不是啊,你也知道愛寶剛出來的時候瞬間就
被秒殺了餒,而且沒幾年就停產了。」碧靈無奈的
說著。
威爺:「一下熱賣一下停產好像有點怪,不過沒想
到您對這個領域還算相當有概念嘛。」
碧靈驕傲的說:「當然囉,你以為我誰啊?」
威爺:「……那想必大小姐您也一定聽過由郭董代
工的 Pleo。」
碧靈:「就是公司破產的那隻恐龍嘛!」
「………嗚~~導播我接不下去了啦,又是停產又是
破產的。」無奈的威爺看著不在鏡頭內的導播。
「威爺你真的很弱餒,靠別人不如靠自己啊!」碧靈
有點生氣的說。
「什麼意思?」驚訝的威爺問道。
碧靈:「我是說,外面那些電子寵物總是賣的又貴
又不見得符合需求,想加個小套件、擴充軟體總得
耗掉大把銀子,那何不自己挖坑給自己跳…」
「咦?」威爺疑惑的看著碧靈。
碧靈:「我的意思是,那何不自己做一隻呢?」
「這、這談何容易呀?」威爺皺著眉頭。
碧靈不耐煩的說著:「……今天我們兩個特別上這
個節目,喇滴賽這麼久,不就是要為大家介紹如何
使用 RoBoard 這個神奇的產品,為自己量身打造一
台機器人嗎?」
2
威爺:「是呀!」
「……你把自己今天的目的都給忘了。」碧靈敲著
威爺的頭。
威爺:「慚愧!」
「唉……」碧靈嘆著氣。「可那您得說說,這 RoBoard
是個怎麼樣的寶貝呢?」威爺問著碧靈。
碧靈:「它是一台電腦,可以跑 XP。」
「可以跑 XP?」威爺疑惑樣。
碧靈:「是呀。」
威爺:「這又有什麼了不起的呢? 誰家的電腦跑不
動 XP 的。」
「…它才這麼丁點大。」碧靈拿出 RoBoard 展示給
威爺看。
威爺接下 RoBoard 並打量著說:「您說這手機般大
小的玩意兒是電腦? 大小姐您可別誆人啊,我家外
接碟都比這大!」
碧靈:「你不信?」
威爺:「不信,沒圖沒真相。」
「要圖? 在這!」碧靈拿出證據。
威爺驚訝的說:「…這可真是了得啊!」
碧靈:「這還可是 MIT,台灣設計的呢!」
威爺大喊:「台灣之光!」
「重點是,它不單純是一台普通的 PC,其硬體規
格跟介面都是專為機器人設計的!」碧靈解釋。
「而且在裡面存一百部影片也不會變重!」威爺對著
鏡頭說。
無言的碧靈:「…這老哏了。」
「對不起。」威爺抓著頭。
碧靈看著手稿說著:「嗯哼哼,看來字數也差不多
了。所以下一回就要介紹如何運用 LabVIEW 語言
來控制這台機器人的心臟囉!」
威爺:「同時也會介紹使用 RoBoard 時的一些視窗
設定技巧!」
威爺與碧靈齊聲:「「感謝各位收看,下次再會。」」
(本集完)
3
4
第二幕 企鵝歸你,XP 娘歸我
威爺與碧靈齊聲:「「大家好! 歡迎各位收看由威爺
與碧靈兩位所主持的『RoBoard Lab』特別節目 Part
II !。」」
「感謝願意賞光蒞臨的各位觀眾以及贊助本節目
的 DMP 公司。」碧靈鞠躬。
威爺:「台灣的瞻營全(DMP)公司提供專為機器人愛
好者所設計之 RoBoard 小主板,實用、可靠、低功
耗,為使用者帶來前所未有的全新體驗!」
「……全新體驗?」碧靈搔著頭。
「怎麼了嗎? 碧靈。」威爺疑惑的看著碧靈。
碧靈:「市場上那些廠商所謂的全新體驗說好聽是
新玩意、新花招,實際上不過就是陌生的環境與詭
異的操作方式咩!」
「不,這個…」威爺一臉困惑。
「最好的例子不就是那奇怪的 Vista 嗎? 我是絕對
不會接受 Win 7 娘的,誰也別想從我這裡搶走 XP
娘!」碧靈激動樣。
威爺:「這是哪國的百合宣言啊? …不不,碧靈您誤
會了,事實上 RoBoard 對於開發環境的支援是最豐
富親切,從古早的 DOS 到 WIN CE、XP,以及傳
奇的 Linux 都有支援。」
「……」碧靈摀住嘴,像是說錯話的樣子。
「除了可以使用最普遍的 C 語言來操作 RoBoard
之外,在以 DMP 的工程師為祭品進行招喚後,經
典的 VB、JAVA、Python、.NET 等也可以用來撰寫
機器人程式囉!」威爺解釋道。
「這真是太 Nice 了! 感謝 DMP 工程師的犧牲與奉
獻。」碧玲看著鏡頭說著。
(更進一步的詳情請至 RoBoard 的官網查詢
http://www.roboard.com)
威爺:「而在本系列節目中我們將使用 WIN XP 平
台,以及 LabVIEW 圖控程式語言進行機器人的程
式開發工作喔!」
「……LabVIEW 圖控程式語言?」碧靈再度搔著頭。
威爺:「是呀!」
5
「那我們再從牌組抽出一張『DMP 工程師』……」
碧靈拿出一堆名片。
威爺伸出手,阻止了碧靈「大小姐,ちょっと待っ
て一下! 事實上,來自荷蘭的 Ries 先生、來自荷蘭
的 Ries 先生,為我們完成了 RoBoIO 與 LabVIEW
的整合工作。」
碧靈:「感謝來自荷蘭的 Ries 網友。」
威爺:「來自荷蘭的 Ries 網友所調用的模組為
RoBoIO 1.5b 版本,適用於 LabVIEW 8.6.1,有需要
的觀眾可衝浪至 DMP 的 RoBoard 官網下載!」
「1.5b? 8.6.1?」碧靈疑惑樣。
威爺:「希低!」
碧靈:「現在最新的 RoBoIO 已經是 1.8 版了,
LabVIEW 也到了 2011 啦?」
「沒錯,所以我們之後也會指導大家怎麼在
LabVIEW 裡調用 RoBoIO 的 DLL。」威爺指著鏡
頭,對著觀眾說著。
碧靈與威爺齊聲:「那各位觀眾,我們就下次再會
啦!」
6
第三幕 來還原吧!...咦?
威爺與碧靈齊聲:「「大家好! 歡迎各位收看由威爺
與碧靈兩位所主持的『RoBoard Lab』特別節目 Part
III !。」」
「今天我們將現場由攝影棚轉移到實驗室這邊,讓
各位使用者了解從開機到關機,從搖籃到墳墓的整
個程序。」碧靈微笑的說著。
「在這邊要說明的是,RoBoard 的規格與操作規範
以官方公布為準,本節目所提供之內容、程序不提
供任何保證。」威爺露出陰險的笑容。
碧靈:「咦?」
威爺半開玩笑的說:「一般來說,斯斯有兩種,
RoBoard 有三種。其分別為 RB-100、RB-110 與
RB-050。」
「有沒有 RB-050 市面上買不到的八卦?」碧靈看著
威爺。
威爺:「同樣的,地球只有一個,但歐派有兩個,
所以 RB-100 也有兩個子型號,其新型為
RB-100RD。」
碧靈:「在本節目發佈的同時,RB-100RD 尚未發售,
煩請見諒。」
「所以今天在節目中,我們將利用 RB-100RD 這塊
RoBoard 建置機器人開發環境。所以請各位觀眾拿
起您們手上的 RB-100RD,跟著一起操作。」威爺
拿出了不知從哪 A 來的 RB-100RD。
「…………」碧玲看著 RB-100RD。
威爺對著鏡頭解釋道:「RoBoard 跟一般電腦、筆電
不同的地方在於,其使用 microSD 作為主要儲存裝
置,跟傳統的 2.5、3.5 吋硬碟及 SSD 有相當大的不
同。」
碧靈:「我覺得 SSD 並不傳統…」
「由於對 RoBoard 來說,microSD 的讀寫速度算
是主要的效能瓶頸之一,因此強烈建議使用 Class 6
以上並採用國際知名大廠的產品。」威爺指著大螢
幕上的幾家知名大廠的 LOGO。
碧靈:「User 注意! 記憶卡的讀寫性能應以實測為
準!」
「現在我們將一塊全新的 microSD 卡插進去。」
威爺拿出一片 microSD 卡。
碧靈:「嗯哼。」
「這個時候,我們再拿出之前用 Ghost 準備好的
RB-100 系統備份檔。」威爺開啟了 Ghost 程式。
碧靈:「咦?」
「Ghost 是個非常好的軟體,可以將整個硬碟備分
成單一.gho 檔,提供多個電腦進行還原工作。現在
請各位使用者準備好跟我們一起拿出備份檔進行
還原工作。」威爺解釋道。
碧靈:「咦咦?」
「恩,很好,這樣就能省去繁複的安裝工作,快速
建立起開發環境…糟糕。」威爺看著螢幕。
「………當機了!」碧靈冷靜的說著。
「快、快把攝影機關掉!」威爺大喊。
7
(本集完…咦??)
(RB-100 與 RB-100RD 使用的核心不相同,故還
原檔不能混用喔!)
8
第四幕 如何建構開發環境?
威爺與碧靈齊聲:「大家好! 歡迎各位收看由威爺與
碧靈所主持的『RoBoard Lab』特別節目第四集!」
「恩,在節目開始之前呢,節目製作人有幾句話要
轉告給觀眾。」威爺說。
「節目製作人有幾句話要說。」碧靈對著鏡頭說著。
「他說啊,『最近幾集節目會 Delay,都是因為節
目時段被總統選舉廣告買完的關係,絕對不是因為
某人缺乏誠意』醬。」威爺笑著說。
碧靈:「嘿! 那總統大選沒選完,節目不就別播啦!」
威爺語重心長的說:「所以我們可以看得出來,台
灣政治活動對於百姓生活有著很深遠的影響…」
「威爺你別跩文了,說些正經的。」碧靈小聲的說
著。
威爺:「是的是的,相信各位觀眾在上一集節目中,
跟我們一起成功的(?)安裝 XP 作業系統之後,已經
開始在 RoBoard 進行一些簡單的基本操作。」
「…那個(?)……」碧靈似乎想起當機事件。
「因此在本集節目中,我們將對於 RoBoard 的實
際運用上,提出一些技巧和建議。」威爺沒有理會
碧靈說的話。
碧靈:「………」
「碧靈大小姐,有意見?」威爺看著碧靈。
碧靈:「我說啊,RoBoard 不也就是一台迷你的、
袖珍的、宇宙第一無敵小的…普通 PC 嘛! 那還有什
麼技巧咧?」
威爺:「沒錯。事實上,RoBoard 的特點正是讓使
用者能在熟悉的開發環境下,使用那些多樣的 I/O
介面來開發自己的機器人…不過這並非這一集所要
討論的重點。」
「喔?」碧靈疑惑的看著威爺。
威爺:「雖說開發環境相似,但它與一般電腦在應
用情境上,有著很大的不同喔!」
「什、什麼!?」碧靈似乎很驚訝。
「讓我們從一個實務的角度來切入吧,一般電腦上
開發程式多半是直接撰寫、編譯、執行。但由於
RoBoard 的產品定位是安裝在機器人上的嵌入式
電腦,所以其性能……」威爺說著。
「…悲劇?」 碧靈看著威爺。
威爺:「…並不適合直接將 Visual studio、LabVIEW
等程式開發環境直接安裝在上面,而應該在一般電
腦上將程式編譯好後,再將執行檔放入 RoBoard
執行…DMP 工程師大人是這樣說的、沒錯!」
碧靈:「這樣說來 RB-100 跑起來的感覺,跟初期
型 EPC 感覺差不多呢。」
威爺:「或…或許吧。附帶一提,本節目是由 DMP
公司獨家贊助播出。」
「既然照你剛剛說,編譯跟執行要分隔兩地進行,
那檔案不就要常常傳來傳去嗎?」碧靈問著。
「沒錯,這個時候就要用上喜歡到處亂插的(?)萬惡
隨身碟,然後插來插去插來插去插來插去插來插去
插來插去插來插去插來插去插來插去插來插去插
插去插來插去…」威爺像跳針一樣的念著。
9
碧靈:「恩……」
「插來插去插來插去插來插去插來插去插來插去
插來插去插來插去……」威爺繼續跳針。
「夠了! 這樣下去別人會懷疑我們…不,是 DMP
公司的品味的說。」受不了的碧靈阻止威爺。
「沒錯,這實在是很困擾人的問題呢! 而且還會到
處散布傳染病…」威爺說著。
碧靈:「那,這該如何是好~?」
威爺:「放心! 不所不能的 USB 周邊商品提供了具
體解決方案。只需要買一條傳說中的『鼠‧鍵盤共享
&資料共享傳輸線』,就能一次解決滑鼠鍵盤以及檔
案共享的問題!」
「這真是太神奇了少卿,不對,威爺~」碧靈說著。
威爺:「沒錯,只要一個滑鼠、鍵盤就能控制兩台
電腦,不只將 USB 埠使用量從三個減少到一個。
而且還能共用剪貼簿來分享文字跟檔案,具備
USB2.0 的高速傳輸能力與隨插即用能力,攻防無
死角,輕鬆無負擔!」
碧靈:「原本是應該這麼完美的,只可惜……」
「可惜……?」威爺看著碧靈。
「喵的,威爺你陰我…」碧靈生氣的說著。
威爺:「是的,在剛剛我們提到了使用 USB 資料傳
輸線的小技巧。」
「……」碧靈無言了。
威爺:「然而這玩意兒用在 RB100 上面,反應就變
慢了…」
「那可不成啊。」碧靈說。
「唉………」威爺嘆著氣。
「好了,威爺你別再蹲角落畫圈圈了,快起來!」碧
靈安慰著威爺。
威爺:「唉………」
碧靈:「說實在的,如果把 RoBoard 裝在機器人、
自走車上面,還要裝著螢幕才能操作,這…太不方
便了。」
威爺:「是,沒錯! Debug 的簡易性在開發過程當
中是非常重要的,不然一不小心就會看到有一塊
RoBoard 從窗外飛出去。」
「要不是會被當掉,我就……」碧靈小聲的說著。
威爺:「咦,碧靈同胞您剛剛有說什麼嗎?」
碧靈:「恩,所以我們將介紹目前本節目所採用的
方法。」
威爺:「沒錯,也就是所謂的『遠端桌面』!」
「『遠端桌面』? 也沒什麼了不起的,不過就是
Window內建的基本功能而已嘛。」碧靈看著威爺。
威爺:「碧靈同志您話可別這麼說,透過『遠端桌
面連線』不只可以共享螢幕、滑鼠鍵盤,也能輕易
的實現檔案分享;不需要額外安裝軟體,也不需要
添購多餘的硬體。」
「非常的輕巧實用呢。」碧靈感慨的說著。
威爺:「沒錯。」
10
「那『遠端桌面連線』應當如何設定呢?」碧靈問
著威爺。
威爺:「如果各位觀眾對於其相關設定有所疑問的
話,那我們將在這裡一步一腳印的指引您;首先您
可以看向眼前瀏覽器的右上方,那裡有個搜尋列,
在裡面輸入『遠端桌面連線』就可以了。」
「那如果觀眾用的是 Chrome 怎麼辦呢?」碧靈接
著問。
「如果您用的是 Chrome,那就更方便啦! 在正上
方的網址列填入『遠端桌面連線』即可搜尋到相關
解決方案。」威爺回答著。
「真的是非常簡單好用呢。」碧靈說著。
威爺:「沒錯。Google 搜尋簡單好用,輕巧大方,
是您居家旅行的最佳選擇;有問題,請愛用股溝。
有疑義,請愛用谷歌。對於以上內容如有疑問,請
使用 Google 關鍵字查詢。」
威爺:「是的。」
碧靈:「可是,威爺。既然谷歌這麼好用,那我們
為何不乾脆在節目開始打上 www.Google.com 就
好了呢?」
「這個節目企劃不錯,我想製作人一定會很高興
的。」威爺解釋著。
碧靈:「是。但是事情有這麼簡單嗎? 在實際的過
程中一定會遇到奇怪的問題的吧? 比方說,如果我
們要用搭載 RoBoard 的自走車出去比賽,那……」
威爺:「沒錯,第一個碰到的就是主控電腦必須跟
RoBoard 有網路連結才能實現遠端桌面;由於有線
網路並不是個很好的選擇。因此我們會建議搭載小
型 USB 無線網路卡並搭配內建網卡的筆記型電腦
來操作,這樣就能以無線網路來實現遠端桌面囉!」
「理論上是這樣沒錯,但是如果會場沒有提供無線
網路服務,也就是沒有無線網路基地台(AP)可以用,
那要怎麼辦呢?」碧靈問著威爺。
「這個時候就要 GOOGLE 一下。」威爺開啟瀏覽
器。
「………」碧靈無言。
威爺:「恩,事實上根據威爺股溝後的結果,會建
議採用『電腦對電腦(臨機操作) 網路』(Ad-hoc)
設定,這樣透過無線網卡把兩台電腦『連』起來!」
碧靈:「沒錯,如對操作細節有疑問,請愛用股溝
搜尋,亦可 Call in 本節目詢問。」
威爺:「預錄節目也能現場 Call in,真的是很厲害
呢!」
碧靈:「這都拜網路發達所賜。不過在這裡又碰到
一個問題,我在 RoBoard 裡已經設定讓 XP 在登入
後執行一個程式,可是開機後 RoBoard 都不動……」
「沒錯,由於一般內建的遠端桌面功能要求使用者
必須輸入帳號密碼才能進行連線,所以使用者帳號
不能使用空白密碼…可是這樣開機時就必須輸入密
碼才能登入,不能一開機就直接 Run 囉科科。」威
爺急忙解釋。
碧靈:「……………這確實是很麻煩的問題呢,那該
怎麼辦?」
「恩,在威爺對股溝仔細的檢索後,發現只要將『本
機安全性原則』裡『限制使用空白密碼……』的選
項停用,不用另設密碼也能使用遠端操作喔!」威爺
看著電腦念著。
碧靈:「很多糟糕的事情好像也可以做了……所以各
11
位觀眾要記得風險自負。」
威爺:「恩,那我想節目到此也將進入尾聲了。」
「要結束了嗎? 不過我想觀眾們應該還有很多使
用上的疑問吧?」碧靈看著導演。
威爺:「如果在使用上有疑義,可以仔細看看股溝
上的解答。如果還有疑問可以在本節目上 Call in,
我們會盡可能提供『親切』與詳盡的指導。」
碧靈:「真是有誠意…那麼各位觀眾,我們下次再會
啦!」
(本集完)
12
第五幕 自從有了 Google,
我每次考試都一百分(?)
WWW.GOOGLE.COM
關鍵字:"RoBoard"、LABVIEW DLL
(感謝您的收看,我們下次再會。)
(本集內容要用 RJ45 接頭插這本書才看的到喔!)
13
第六幕 如何在 LabVIEW 上使
用 RoBoIO?
碧靈:「大家好! 歡迎各位收看由威爺與碧靈所主持
的『RoBoard Lab』特別節目第六集!」
「姆!」威爺發出聲音。
「威爺,請把芒果乾放下來。」碧靈散發出有殺氣
的笑容。
威爺:「咕嚕…我、我只是在緬懷遠去的夏日風情罷
了。」
「逝者已矣,再說冬天應該要吃柑橘…」碧靈語調
平平的說著。
「沒錯! 所以今天我們將鏡頭轉到實驗室這邊,為
各位觀眾介紹如何用 LabVIEW 撰寫 RoBoard 的應
用程式。」威爺指著鏡頭。
「………」碧靈無言。
很快的,鏡頭轉到了實驗室。
「如果各位觀眾有定時收看前幾集的節目,那麼手
上應該會有一塊已經安裝好 XP、可以正常操作的
RB-100;我們在節目後續會以此進行示範。」威
爺說著。
碧靈:「威爺你一句話就破綻百出啊,誰教你的?」
「嗯哼、如果各位觀眾有定時收看前幾集的節目,
那麼應該還記得來自荷蘭的 Ries 先生、來自荷蘭
的 Ries 先生,提供 RoBoIO 1.5b 版本的 LabVIEW
模組。」威爺看著鏡頭。
「所以我們今天……」碧靈看著威爺。
威爺:「不過因為 Ries 先生不再對模組提供更新支
援了,所以我們今天將介紹如何在 LabVIEW 中自
行引入 DLL (Dynamic Link Library)來實現對
RoBoard 的控制。」
「………………」碧靈再度沉默。
威爺:「當然啦,第一步是先開啟 LabVIEW 開發環
境,不過我們通常不建議直接將其安裝在
RoBoard。」
「沒錯,因為其頗占資源,在 RoBoard 上進行開
發並不實際,不如先在桌機上…」碧靈說著。
威爺:「唉呀,一時手滑,不小心將 LabVIEW 8.61
給安裝到 RB-100 上了。」
「………小心 DMP 的工程師站在你背後,他非常
火。」碧靈看著後台的工作人員。
威爺:「既然如此,就請觀眾跟我們一起在 RoBoard
上直接操作吧。在 LabVIEW 要載入 DLL,可以直
接在後面板中開啟 Functions >> Connectivity
>> Libraries & Executables >> Call Library
Function Node,並根據我們的需求作進一步的設
定…」
14
..........進廣告..........
碧靈:「大家好,感謝大家繼續收看。在本節目的
後半段,將由我碧靈繼續為各位介紹於 LabVIEW
載入 DLL 的步驟,以及相關設定。」
「至於威爺同學,很遺憾的,他在兩天前轉學去加
拿大了……」碧靈假裝擦拭著眼淚。
碧靈:「接下來我們將以引入”pwm_SetPulse”這
個函式為作為範例。請先至 RoBoard 官網
(http://www.roboard.com/download_ml.htm)
下載『RoBoIO 1.8 binary』這個檔案以供後續使
用。」
「如果各位看官的電腦都一直開著沒關的話,請按
照節目上半段的介紹,使用 Call Library Function
面板,跟著大姊姊一起作,按照下圖完成設定。」
碧靈在電腦上操作著。
「圖中所使用之 DLL 檔,位於方才所下載之壓縮檔
中(RoBoIO-bin-v1.8-winxpLibVC2008)」
「而函式輸入及輸出之設定,可參考標頭檔 pwm.h
之內容(RoBoIO-bin-v1.8-winxpInclude)」
「使用者可以此作為參考,設定輸出入之資料型態;
完成設定後按下『OK』即可。」碧靈對鏡頭微笑。
「在本例中,由於輸出值應為布林(BOOL),因此
應將回傳值判斷是否非零後,再將結果輸出;使用
者若對不同資料型態應如何設定有所疑問,可參考
LabVIEW 範例(Find Examples…)中的『Call
DLL.vi』」
「如觀眾能不厭其煩以以上所舉之範例,依序完成
所需函式之設定,便能實現 RoBoard 應用程式之
撰寫。」
15
(多通道 PWM 輸出實作)
「然設定之繁複、辨識之不易,非可行之法;故應
整經包裹,化繁為簡,分群別類,以饗大眾,為民
謀福,實為未來發展之方向。」碧靈微笑。
碧靈:「那各位觀眾,我們就下次再會啦!」
(本集完)
16
第七幕 如何在 RoBoard 上
快速建立影像處理程序?
威爺及碧靈齊聲:「「大家好! 歡迎各位收看由威爺
與碧靈所主持的『RoBoard Lab』特別節目第七集!」」
「今個呢,我們要向各位觀眾介紹,如何透過
LabVIEW 來實現影像擷取。」碧靈指著投影幕上
的畫面。
威爺:「是。」
「當下台灣家家戶戶都有電腦,人人手裡皆有相機;
不論是要自拍,抑或是保存風景之美,都可說是相
當隨意的啦 !」碧靈微笑。
「輕鬆拍,隨意拍;不論是要保存、欣賞或進行後
製,都沒什麼好顧慮的。」威爺比劃著。
碧靈:「尤其拜消費電子發展之賜,現在想跟遠方
的朋友見個面、打聲招呼,只要接上網路,架個網
路攝影機(Webcam)就可以了,也花不了幾個大洋。」
威爺:「就看有沒有心。」
「可是在咱們還年輕的時候,想拍個照、或是想錄
段影片作生活記錄,那可不容易囉;攝影機又貴又
重,底片沖洗又還要花錢。更別提若想消除臉上幾
個痘疤,得下多少功夫啊 !」碧靈嘆著氣。
威爺:「還年輕……話說碧靈大小姐您今年高壽?」
「竟敢問本姑娘芳齡…汝此舉未免也太過失禮 ?!」
碧靈生氣樣。
威爺:「對不低…話說,數位影像在這幾年確實是有
很大的進展。」
「是呀,不論是電荷耦合元件、大容量儲存裝置、
高速通訊界面都有爆發性的成長,其代價卻日益低
廉…別看現在自拍影片滿天飛,以前電腦想獲得影
像,必須透過影像擷取卡讀入攝影機的類比信號才
成。那像現在把 USB 插上就好了,成本還花不到
過去的 1/10。」碧靈說著。
威爺:「所以電腦視覺的應用,也應該變的更普遍
囉?」
碧靈:「唉……『視覺』說是萬能感測器也當之無愧,
因為其中所含資訊可謂包羅萬象;但也因為電腦還
不具備人腦般的處理能力,所以獲取所需資訊的前
處理步驟堪稱藝術……」
「不過目前應該有許多工具可以應用了吧?」威爺
看著碧靈。
「沒錯,像 OpenCV 就是一個相當知名的電腦視
覺函式庫,不但免費還可作為商業使用;日前大陸
知名的綠壩娘,就是用其來分析一個人的皮膚是不
是露出太多,是的話就關起來。」碧靈說著。
「真的是非常可口跟好用呢 !」威爺差點流下口水。
碧靈:「是的,不論是要作影像處理、Webcam 擷
17
取,物件追蹤、人臉辨識等專題應用也沒問題。泛
用性高、低成本,網路上的資源與指導也非常多,
相關書籍亦有出版,故不在此贅述! 」
「沒錯,都花哪麼多錢買 LabVIEW 怎麼可以不用。」
威爺小聲的說。
「咦? 剛剛威爺你有說什麼嗎?」碧靈看著威爺。
威爺:「沒事…」
碧靈:「其實 OpenCV 要用在 RoBoard 上也是需
要訣竅的,因為 CPU…」
威爺:「STOP!」
「…所以我們現在將為大家介紹,如何在 RoBoard
上透過 LabVIEW 來讀入 Webcam 的影像。」碧靈
指著畫面。
威爺:「嗯嗯。」
碧靈:「雖然本節目由 DMP 獨家贊助播出,不過美
國國家儀器公司(NI)在機器視覺上不論軟硬體皆有
相當多的支援,諸如 Vision Development
Module、NI-IMAQdx、影像擷取卡、智慧型相機
等多種商品一應俱全,滿足使用者在自動化量測系
統上……」
「STOP!」威爺又激動的喊。
碧靈:「…不過早期的 NI Vision 只有支援影像擷取
卡、智慧型相機、IEEE 1394 介面等類型的周邊,
沒有支援 USB 介面的 Webcam。」
「這、這該如何是好!?」威爺緊張樣。
碧靈:「所以有使用者自行開發了相關模組…不過那
都過去了。」
「NI 聽到了廣大使用者的心聲……」威爺擦拭著眼
淚。
碧靈:「NI 聽到了廣大使用者的心聲(大概),提供
了『NI-IMAQ for USB Cameras』這個外掛,至
此,我們便能讀入 Webcam 的影像,並透過 Vision
Development Module 來取得我們所需要的資
訊。」
「上帝說要有光,便有了光。」威爺拍了兩下手。
「…………」碧靈瞪著威爺。
威爺:「對不起!」
碧靈:「因此,理論上來說,我們便能藉助低成本
的網路攝像機,作出具有視覺感測能力的機器人…」
「那實際上呢?」威爺問著。
碧靈:「新版的 LabVIEW 已經不支援『NI-IMAQ for
18
USB Cameras』這個外掛了。」
「新版的 LabVIEW 不支援『NI-IMAQ for USB
Cameras』?」威爺問著。
碧靈:「恩,是的。」
威爺:「那碧靈您剛剛還在觀眾面前費這麼多口舌
騙字數,這豈不明擺著欠…」
「嗯?」碧靈瞪了威爺一眼。
威爺:「對不起。」
碧靈:「事實上,由於 USB 介面被廣泛使用,在新
版本的 NI-IMAQdx(需付費)裡已經能直接支援
USB 介面的影像擷取裝置了!」
「那尼!?」威爺驚訝得大喊。
碧靈:「沒錯!這樣一來大大擴展了對攝影裝置的相
關支援。不但能透過 MAX 直接對 Webcam 的解
析度、取樣率跟白平衡等作細部調整,還能在程式
中直接透過 Property Node 進行設定!!!」
威爺:「什麼? 是那個…那個傳說中的『Property
Node』嗎?!」
碧靈:「能力變化萬千卻又捉摸不定,文獻上的記
載也極少;在這蒼茫紅塵間,視得其廬山真面目的
又有幾人?」
「唉…」威爺嘆著氣。
碧靈:「關於那個男人,實在還有很多未解的謎團
呢…」
威爺:「是…咦咦??」
「所以,各位觀眾如果對於如何運用 Property
Node 調整取樣率與解析度以及藉助 IMAQdx 擷
19
取影像,可參考 LabVIEW 內建範例檔『Grab and
Select Mode.vi』,這樣一定就能對於如何使用有完
整的了解~」碧靈繼續說著。
威爺:「什麼? 竟然這樣打發觀眾啊?」
「………」碧靈無言。
整個攝影棚鴉雀無聲。
碧靈:「總、總之,可以透過 IMAQdx 操作 Webcam,
其實對於實務上來說有著相當顯著、重要的影響!」
「…這話怎麼說?」威爺問著。
碧靈:「早期在使用『NI-IMAQ for USB Cameras』
進行影像擷取的時候,Webcam 的解析度多半都
會預設成 640*480,因此每次 RoBoard 跑起程式
來就悲催了…」
「………」威爺無言。
碧靈說著:「雖說也是有調整設定用的 vi,不過每
次啟動程式還要透過滑鼠點選才能進行調整,實在
是很麻煩呢。」
威爺:「確實如此。」
碧靈:「So,只要透過屬性節點進行設定,機器人
運動時回傳即時影像就用低解析度畫面,定點環境
影像回傳就用高解析度;這樣就能兼顧頻寬、流暢
度跟系統效能了。」
「そうか…」威爺敲手,一副恍然大悟的樣子。
碧靈:「嗯嗯。」
「既然這樣,我想觀眾應該也對於
RoBoard+LabVIEW+Webcame 這套組合的應用
方式,有了相當的了解…是不是、節目也該告一段
落了呢?」威爺問著。
「喔呵呵~威爺你太天真了…」碧靈奸笑。
威爺:「這…碧靈您這話怎說?」
碧靈:「節目進行至此,提了不少關於 RoBoard 應
用上的細節,卻沒有實作幾個項目給大夥看看,這
說不過去吧。」
威爺:「嗯嗯。」
碧靈:「若叫人說是:『狗掀門簾子-光說不練』,這
樣印象就不好了。」
「是沒錯! 但節目已然進入尾聲…」威爺似乎很想
趕快結束掉節目。
「無妨,正巧手上有個項目,能為大家示範
RoBoard 與 LabVIEW 視覺開發模組快速發展的簡
便之處!」碧靈笑著。
威爺:「喔?」
碧靈:「試試『追蹤一個小紅球』如何?」
20
「可以我們的觀眾大多都是專家,這樣不會有班門
弄斧之嫌嗎?」威爺心虛的說著。
碧靈:「反正坊間對於『National Instruments
Vision Assistant』的參考資料也不多嘛!」
「好!那我們就來試試…不過一般人手上應該不會
有這個軟體吧?」威爺開啟軟體。
碧靈:「佈署用的 Run-time 就比 RoBoard 貴了…
那首先就先請觀眾準備好相關軟體跟參考資料;沒
軟體的人可以到這裡下載試用版,沒基礎知識的人
可以先去購買由繆紹綱大師所譯之『數位影像處理』
一書,個人絕讚但不負責任推薦。」
威爺:「附帶一提,本節目依然由 DMP 公司獨家贊
助播出。」
碧靈:「是,現在就請觀眾們跟我們一起開啟軟體
實際操作一遍啦!不要忘記將 Webcam 接上。」
威爺:「進入軟體之後呢,先進行點選右上框的
『Acquire Images』進入本頁面,然後在點選左下
的『Acquire Image(1394…or USB)』取像。」
「這就是這部分的重點啦!如果這邊無法用
Webcam 取像,哪麼日子也就過不下去了…」碧靈
指著鏡頭強調著。
威爺:「咦咦? 是之後也就作不下去了吧? 這部分
需要借助前面所說的新版 IMAQdx 方能進行,不
過影 像開發模組本身就包含該驅動,不需再另外
取得。」
「若成功應該就能看到列表中應該有至少一個攝
影機可用,此時務必先行挑選適當之取樣解析度。」
碧靈跟著一起操作電腦。
「為什麼??」威爺問。
碧靈:「因為如果調到 640*480 以上,它的取樣率
可能會變得像睪丸癌級的蛋蛋哀傷…考慮到之後的
影像處理不要帶來太大負擔,個人比較偏好
160*120,不過實際選項還是得依廠家規格而定。」
威爺:「是。」
碧靈:「之後按下上列的播放鍵就能連續讀入影像,
右邊點的選項則可實際擷取影像,作更進一步的處
理。」
「上方的影像儲列則可存入多個影像,建議在這裡
多拍幾張不同情況下的畫面。」威爺說著。
21
碧靈:「這個時候就要選擇右上方的『Process
Images』進行影像處理程序啦! 這時可以看到左上
方的影像儲列下排有個往下轉的小按鈕,其可選擇
欲處理之圖片。」
威爺:「左下方則是影像處理項目的功能列表,也
是精華所在,理應詳加研究但在此略過不提。」
碧靈:「下方那一排則是影像處理程序序列,照理
說應該只有一個項目…但是由於主持人沒有笨到不
事先演練一遍,所以裡面已經放滿了。」
威爺:「這裡最方便的是,在完成了 N 個程序後,
您仍然可以點選中間的項目觀察每個程序所造成
的影響,同時也可以再編輯、調整。」
「討論了這麼多,應該開始決定要怎麼找到『小紅
球』了唄!」碧靈微笑。
威爺:「沒錯,剛才已經說了這只是個『簡單』示
範,所以不考慮實際環境的複雜性以及程式的強健
性;因此我們將背景單純化使其不具備紅色色調,
從而使顏色易於突顯。」
「哦? 所以第一步『分離背景』就是從顏色下手囉?」
碧靈看著威爺。
威爺:「沒錯,簡單來說就是告訴 RoBoard:『紅色
就是目標物件』。」
碧靈:「既然這樣我們就是應該從三原色中的 R 下
手…」
威爺:「不。考慮到 RGB 影像空間亦受到光線影響,
像是太亮的光線會使紅色像是白色,我們應該使用
將亮度剃除在外的色彩空間…」
「HSL?」碧靈疑惑的說著。
威爺:「沒錯,HSL 將色彩分為色相、飽和度跟亮
度,因此我們可以很容易的從 H 區別出影像中那些
部分是紅色。」
「說來簡單…」碧靈。
威爺:「確實…在這要注意的是 Hue 從 255-0 中間
是連續的,而我們所選用的 251-5 之間的色相,S、
L 的影響幾乎不考慮。」
「這時我們可以看到鮮紅色的部分就是我們所選
取的部分,經過這個部分後影像將由 32 位元彩色
變成二元紅黑影像。」碧靈說著。
威爺:「再來就是透過刪除小物件跟膨脹來移除無
關的雜點了。當然啦! 之前的閥值設定是否妥當在
這裡就會有關鍵性的影響了。」
22
碧靈:「沒錯,該使用哪些程序、使用的順序也會
有極大影響。 」
威爺:「再來就是利用『Particle Analysis』來取得
物件的參數特徵了!」
「YES! 像在此處我們就是利用物件的的質心位置
來決定修正量,從而使物件對準中心以達到追蹤目
的。」碧靈開心的笑著。
威爺:「完成影像處理程序後,再來就是匯出成 VI
作後續開發、整合囉!」
碧靈:「只要利用偏差量修正伺服馬達的角度,就
能實線持續追蹤。」
碧靈:「威爺...不是我在說,你這影片看起來弱爆了,
就像是用手轉的...也沒看到 RoBoard....」
威爺:「對不起!」
「好啦! 歡迎有興趣的觀眾回應索取程式範例,我
們就下次再見啦! 揪咪!」碧靈可愛的揮著手。
(本集完)
23
第八幕 UART 與
Ultrasonic Sensor
威爺與碧靈齊聲:「「大家好!歡迎各位收看由威爺與
碧靈所主持的『RoBoardLab』特別節目第八集。」」
威爺:「非常感謝來自 DMP 公司的協助與贊助!」
碧靈:「那今天我將為大家介紹『非同步串列通訊
介面』(UART)的實作囉!」
「等一下!!!」威爺打斷了碧靈的話。
「怎…怎麼了,威爺?」碧靈有點結巴。
威爺:「大姐您今天第一次上台嗎?節目的規矩您懂
不懂啊?」
「這……」碧靈拉長音。
威爺指著碧靈說著:「大家來看我們的節目,開心、
尋個樂子,順便長些知識(?)。您這樣直接切入主題,
是把觀眾放哪去了?」
「咦…是、是這樣嗎?」碧靈無辜的看著威爺。
威爺:「還不懂啊!?您應該先抓住話柄,然後甩呀甩
呀把它加速到第二宇宙速度,直接脫離主題…如此
這般,明白沒有?」
碧靈:「明白了、明白了。」
威爺:「那就好。」
「唉呀,沒想到今天能有這榮幸,能與威爺您這樣
的大師同台。」碧靈話中帶刺的說著。
「好說好說。」威爺似乎沒聽出碧靈的意思。
碧靈:「小妹碧靈,充其量不過是個新手、同好,
不敢在大師面前班門弄斧,能否請您為本節目開個
場?」
威爺:「由我開場?」
「是呀!」碧靈一副看好戲的樣子。
威爺:「那我可得說些新鮮的、熱門的、大夥關注
的。」
碧靈:「是。」
威爺:「好!就說『Makiyo』。」
「MA…MAK…啊,您說『Make』是吧?」碧靈發
現狀況不對勁,趕緊轉移話題。
「………」全場鴉雀無聲。
威爺:「果然大師一出手,便知有沒有;沒錯!雖然
本節目是由 DMP 獨家贊助播出,但是由知名出版
社歐萊禮(O’REILLY)發行,馥林文化代理的
『Make』國際中文版在台上市囉!」
碧靈:「『Make』雜誌主打 DIY 的概念,每期都有
令人興奮的想法跟實作專題,讓玩家不再只能對
24
NASA 跟 DARPA 的昂貴玩具乾瞪眼…想玩?自己作
唄!」
威爺:「希滴!雖然目前國際中文版內容是以日文版
為主,但是隨著台灣讀者玩家的參與,估計也會有
越來越多的本土作品出現喔!」
「不過我記得本節目不也是……」碧靈看著威爺。
威爺:「某通路第一期特價七折,絕讚發售中!」
碧靈:「……話說回來,威爺,你也只有看過第三期
不是嗎?」
威爺:「對不起。」
「………」再度進入鴉雀無聲的狀態。
碧靈:「這下可好,我們的話柄脫離地球重力不知
飛到哪去了。」
威爺:「找話柄啊…要不打給『NORAD』問問?」
碧靈:「你當它是聖誕老人嗎?」
威爺:「事實上,LabVIEW 對於電腦的介面都有相
當的支援。」
「是…威爺你不覺得,節目這樣轉折實在是太硬了。」
碧靈看著威爺。
威爺:「我們節目向來都是有轉折沒原則的不是?」
「晤晤…話不是這麼說的吧!?」碧靈有點無法反
駁。
威爺:「什麼…唉!大姐您可別又把話柄給抖掉了。」
碧靈:「是是,不管怎麼說,RoBoard 有四個
COMport;而在一般的情況下,可以透過 RoBoIO
中的 COMlib 來操作它。」
威爺:「沒錯,但是今天我們用的可是 LabVIEW 啊!」
碧靈:「那又怎麼樣咧?」
威爺:「LabVIEW 本身即具備豐富的通訊介面支援
能力,COMport 自然也不例外。」
「喔?那你可得示範示範。」碧靈奉承的說著。
威爺:「沒問題,這個實驗很容易的,觀眾也可以
一起作。」
碧靈:「對…觀眾沒辦法作的幹嘛示範啊!?」
威爺:「隔壁棚的『C4 燉肉』作不太出來。」
碧靈:「別胡鬧了!」
威爺:「這真的很容易的…首先先選 COMPort,就
選 COM3 唄,然後將 TX 跟 RX 接起來。」
碧靈:「嗯嗯…」
威爺:「這個時候再開啟 LabVIEW 中的
『FindExamples』,以『RS-232』搜尋
25
『BasicSerialWriteandRead.vi』這個範例…」
碧靈:「嗯嗯…」
威爺:「把 COM3 選好之後在 stringtowrite 內隨
便寫些訊息然後 run 就好啦…」
「唉唉唉,威爺你呼嚨觀眾啊!?」碧靈生氣的說著。
威爺:「什麼叫我呼嚨觀眾啊?就是這麼容易!」
碧靈:「嘿…」
威爺:「嗯?」
碧靈:「嘿……」
威爺:「嗯嗯??」
碧靈:「是不是應該要有一個,實際應用的例子呢?」
威爺:「呃……」
碧靈:「那我們就拿 SRF02 這個超音波距離感測器
作範例吧!」
威爺:「…相當的古老呢。」
碧靈:「沒錯,SRF02 可以透過 UART 跟 I2C 介面
下達命令並接收感測結果;同時也可為每個感測器
設定自己的位址,單一接點就可以同時串接數個感
測器來使用,非常的方便。」
威爺:「喔?」
碧靈:「而且可以設定直接回傳”公分”、”英吋”
等量測結果,不需再另行處理、換算…」
26
威爺:「…使用者可參考 SRF02 指令表,依照需求
對 SRF02 下達指令,即可取得感測結果。」
碧靈:「那麼 LabVIEW 部分的實作又是怎麼進行
呢?」
威爺:「這部分我們可以拿前述的
『BasicSerialWriteandRead.vi』範例程式加以修
改,結果如下:
碧靈:初始化設定部分依照參考資料『Serial data
is fixed at 9600 baud 1 start, 2 stop and no
parity bits.』而設。」
威爺:「那為何寫入部分是『0x0054』呢?」
碧靈:「那是因為 SRF02 位址預設是 0x00,而要
求回傳公分距離的指令是 0x54…因此寫入
『0x0054』則代表命令位址為 00 的 SRF02 傳回
距離資料;考慮到感測器運作必須花點時間,因此
在下達命令,再等待 100ms 後,我們才讀入感測
結果。」
威爺:「那讀回來的資料又要再經過什麼處理呢?」
碧靈:「雖然 SRF02 會直接回傳距離數值,但是對
電腦來說,COMPort 傳回的都是字串…因此我們
要將傳回的結果從字串強制轉換為 U16 的資料型
態,才方便我們直接判讀以及進行訊號處理…要注
意的是,只有 TTL 準位的 COM3 可以直接跟 SRF02
連結喔!」
威爺:「原來如此,感謝您抽空接受訪問。各位觀
眾,我們下次再見囉!」
「咦咦??...」碧靈還沒回過神的樣子。
(本集完)
27
第九幕 ADC
威爺與碧靈齊聲:「「大家好! 歡迎各位收看由威爺
與碧靈所主持的『RoBoard Lab』特別節目第九集。」」
「今天要向大家介紹『類比輸入』(ADC,類比轉數
位)的使用,紅外線距離感測器 GP2D12 跟…嘿嘿
嘿……。」威爺露出陰險的表情。
碧靈:「嘿嘿嘿…?」
威爺:「嘿嘿嘿…。」
「嘿嘿…威爺你欠揍啊!?」碧靈伸出拳頭。
「嘿嘿嘿…其實我在 Cosplay 呂前副總統。」威爺
擺出 POSE。
碧靈:「六大報頭版正在等你的道歉啟事。況且我
看你除了身形體態與前副總略顯神似之外,神韻一
點都不像…」
「宋酋長在您背後,他非常火!」威爺看著碧靈身後
說著。
碧靈:「別鬧了威爺,該進入主題啦! 可別又讓話柄
飛走了。」
「大姐說的是。話說前幾集多半都是在討論
RoBoard 跟 LabVIEW 結合的應用,像是應用 Wi-Fi
遙傳數據、Webcam 擷取影像,以及應用 VISA 來
讀取 COM 等等…。」威爺對著鏡頭說。
碧靈:「是…等會,差點被你矇過去了。我們什麼時
候有講過 Wi-Fi 遙傳數據? 對不對,導播……對嘛!
明明只有使用 Wi-Fi 遠端操作 Windows。」
「是這樣嗎?」威爺搔著頭。
碧靈:「本來就是這樣啊!」
威爺:「那…這…瞧您都把話題給扯遠了,真是的!」
「合着是我錯啦!?」碧靈看著威爺。
「總之,咱們前段日子幹啥都得跟 LabVIEW 扯上
關係,是唄?」威爺也看著碧靈。
碧靈:「是呀!」
「所以今個兒…」威爺拉著長音。
碧靈:「今個兒不同?」
「……還是照例脫不了干係。」威爺嘆了一口氣。
碧靈:「格老子滴!那你喇哩這一圈幹嘛呢? 直接講
白不就得了!」
威爺緊張的說著:「總、總之,整合 ADC 介面在電
腦系統上是比較少見的,這也是RoBoard獨到之處。」
碧靈:「如果音源不算的話…確實,常見的介面不過
就 PS/2、USB、RS-232、平行埠或 IEEE1394、e-SATA
等庸俗之輩,沒什麼好神氣的。」
威爺:「網路孔被無視了…然而類比訊號又是無所不
在的,舉凡聲音、溫度、距離、亮度、壓力等;雖
說有些感測器,如前集所用 SRF02 已將距離資料轉
為數位訊號,但許多較簡單、廉價之感測元件還是
只有類比訊號輸出而已。」
「確實,如果機器人玩家的主控制器不具備類比輸
入的機能,實在是綁手綁腳的。所以我都用 PIC 作
28
資料擷取。」碧靈說著。
威爺:「當然啦,如果碧靈您手頭上有個萬把銀兩,
也可弄張NI出品的資料擷取卡(DAQ Card)來玩玩,
現在不也能模擬 I2C 了嗎?」
碧靈:「我想本節目要討論的不是百萬造價機器人…
扯遠了,只要用 RoBoard 就可以省掉下層,也可讓
新手省卻摸索新系統的時間、金錢成本。」
「沒錯。」威爺看著鏡頭。
碧靈:「既然 ADC 這麼重要,那威爺你還不趕快教
觀眾怎麼用!」
「碧靈大小姐您不要踩我…其實現在已經能很輕鬆
的透過 LabVIEW 讀取類比輸入了!」威爺說著。
碧靈:「什麼…這是!?」
威爺:「沒錯!只要三個基本 VI 就能實現類比輸入!」
「恩…」碧靈深思著。
威爺:「好,各位觀眾!接下來就要進入『GP2D12
實戰』單元啦!請大家拿起您手上的 GP2D12…」
碧靈:「等一下!…威爺,這不是 LabVIEW 內建的吧?
你還沒說這要去哪下載呢!」
「嗯嗯,包含 ADC 模組的 RoBoIO1.8 套件已在
Robofun 論壇的安東尼小主板提供下載囉!」威爺笑
著。
碧靈:「那個是獨家配佈限定嗎?」
「…附帶一提,目前為止下載的人次勉強用兩手手
指也能數出來。」威爺小聲的念著。
碧靈:「咦咦咦咦!?」
碧靈:「…所以我們該請威爺切腹謝罪,讓我來擔任
介錯吧!」
「啊啊,這個,我們之前提到該進行『GP2D12 實
戰』單元了,沒錯。」威爺轉移話題。
碧靈:「GP2D12 是什麼東西呢?」
威爺:「GP2D12 也是一個距離感測器,不過跟我們
日前提過使用超音波的 SRF02 略有不同,是以紅外
線為作媒介來實現測距的。」
「那 SRF02 是透過 UART 對其下達指令後直接回
傳距離資料,GP2D12 呢?」碧靈追問著。
威爺:「GP2D12 是直接回授一個 0~2.55V 的電壓值,
接法非常簡單,如下圖所示。」
29
碧靈:「那顆『ADC0831』是怎麼回事?」
威爺:「啊,那個是一顆使用串列通訊的類比-數位
轉換 IC;附帶一提,我們在 RoBoard 上所使用的是
使用 SPI 通訊的,所以使用外接 SPI 接口的時候不
能使用 ADC 喔!」
「這麼重要的事情不要隨便帶過啊! 那我們將電壓
值讀入後,要如何得知實際距離呢?」碧靈問著。
「實、實際距離?」威爺有點緊張。
碧靈疑惑的看著威爺。
威爺:「那個、如果您只是要讓小車車在距離牆壁
太近時迴避的話,可以簡單訂個閥值觸發迴避行
為……」
碧靈:「那這樣我們只需要用紅外線近接開關就好
啦!」
「嗯哼,若要實際求得距離,可用回饋回來的電壓
進行換算,其關係圖如下圖所示…」威爺說著。
碧靈:「咦? 在其有效範圍 10-80cm 內,距離與電
壓關係是非線性的呢。」
威爺:「嗯,這樣就不能用單純 y=ax+b 的方式來進
行轉換了…如果是運算能力比較差的控制器,我們
可以運用查表的方式,將電壓與距離的關係建表、
或是再加上內插法,就能求得約略的實際距離。」
「那我想用 RoBoard 的話就能有更好的作法吧?」
碧靈拿起 RoBoard 問著威爺。
「嗯,我們可以先將電壓-距離的數據以迴歸分析求
得關係式,這樣就可以直接代入電壓值求出距離了!」
威爺說著。
碧靈:「迴歸分析? 那應該要如何進行呢?」
威爺:「比較簡單的方式可以用 Excel 來做;記得每
顆感測器的特性都不同,各位觀眾務必要乖乖用手
上的感測器實際操作求得數據,至少要求得 20 筆
以上喔!」
「20 筆!? 那如果以 5 公分為間距不就要量測 300
次以上?」碧靈驚訝的看著威爺。
威爺:「當然啦,如果有單軸滑台跟使用 LabVIEW
內建的迴歸函式來進行自動取樣的話,實驗很快就
30
能完成了呢!」
碧靈:「原來如此…咦?!」
「OK,Well…那我先去吃晚餐,碧靈大小姐您慢慢
測啊。」畫面已經沒有看到威爺了。
碧靈:「啊啊啊啊!!!!可惡啊!!!」
(本集完)
31
終焉~特別節目
『威爺必須死 RoBoIO1.8 lvlib』
「今天,」一位少女在舞台上向鼓譟著的觀眾伸出
雙手,雪白色的曲裾長袍與一頭秀麗長髮在舞台燈
的強力照耀下,消融在炫目的銀光之中。
少女接著說著:「我們很榮幸的在此向各位宣布,
RoBoard 正式的與 LabVIEW 結合在一起。」
「我們向來堅信,任何長遠發展的產品,都必須要
建立在穩固可靠的基石上。」少女振臂一揮,其棕
色眼眸映照出耀人的神采。
「在 RoBoIO 1.8 DLL 的支持下,我們在此推出用
於 LabVIEW 開發平台的 RoBoard library,
『RoBoIO1.8_lvlib』!」少女感動的說著。
此言一出,台下的群眾高舉『碧靈大好!』的牌子,
爆出陣陣呼聲。
「從當下此刻! LabVIEW 強大的資源不再是遙不
可及的幻影;從當下此刻! RoBoard 的輕巧機動與
豐富介面不再只是他人手中的禁臠!」碧靈向台下觀
眾高舉右手,在熱情雀躍的粉絲眼中,宛若未來女
神在他們面前降下神諭。
碧靈:「從當下此刻! 我們將為機器人注入靈魂、我
們將為機器人注入生命;這就是『Robotic Heart』!」
瞬間台下的群眾由鼓譟變成震天動地吶喊,令人窒
息卻又狂熱的氛圍壟罩全場;幾個粉絲抱在一起又
叫又跳;有人緊捂著胸口癱軟在地,臉上卻露出幸
福至極的笑容。
碧靈微笑的看著眼前情景,深知一切皆在掌握之
中。
「怎麼會這樣?」威爺看著眼前的情景不禁顫抖。
手抓著濕軟拰皺的講稿,身上的衣服早已汗濕,威
爺手抓著下巴,不敢相信事情會演變成現在這個局
面。他用手抓了抓頭,思索到底是哪個環節出了
錯。
「今天應該只是簡單的發佈 lvlib 的早期測試版本,
讓 Maker 們回去試用並回饋意見以供後續版本舖
路。應該只是這樣而已啊 ? 可現在這個場面……」
威爺突然覺得自己像是安隆的主管;等到碧靈大小
姐的開場結束之後,就是自己要被送上斷頭台了。
將濃稠的唾液吞下乾涸的咽喉,威爺用手拉了拉衣
領,瞄了後台方向一眼。
「要跑嗎?」威爺自言自語滴咕著。
「…感謝碧靈小姐! 那現在請威爺上台為大家發佈
這項產品。」威爺的腦袋頓時一片空白。等到回過
神時,自己已經站在講台後方,被一大群觀眾盯著
瞧。
方才熱絡的氣氛宛若雲煙,整場瀰漫抑鬱的低氣壓
以及不滿的低語,像是剛從天堂回到人間後馬上踩
到一坨狗屎;而工程師的座席更傳來毫不掩飾的噓
聲。
「呃…。」威爺顫抖的說:「我很榮幸的向大家宣布,
各位將能從 Robofun 論壇下載到最新的
RoBoIO1.8_lvlib 壓縮檔。」
「…...」全場鴉雀無聲。
威爺:「使用者解壓縮後,可以在資料夾中看
到.mnu 檔與_RoBoIO1.8_lvlib 資料夾…。」
32
「沒圖沒真相啊!」「滾下去!」「蠢貨,叫碧靈大姐
回來!」剛開始會場還只是如蚊蠅般嗡嗡作響,很快
就變成蝗蟲過境般的喧鬧。
威爺:「使用者只需要將這兩者放入 C:Program
FilesNational InstrumentsLabVIEW
XXuser.lib 資料夾中…」威爺緊抓著眼前講台,宛
若驚濤駭浪中的一塊浮木:「就能在 Functions 的
UserLibraries 面板中看到…」
會場中浮躁的氣氛已然達到臨界點,觀眾席突然開
始躁動並漣漪開來。人群開始離開座位像海嘯朝舞
台湧去,就連工程師們也偷偷拿出棍棒混入人群之
中。
「目前發佈的套件皆適用於 8.6 以上版本,」臨時
搭蓋的舞台像是地震般開始搖動扭曲,威爺整個身
子趴在講台上:「…未未來的更新…新將會…。」
威爺話還不及說完,便被憤怒的人海掩蓋過去。 而
整個舞台也發出陣陣悲鳴,扭曲倒塌在煙塵之
中…….。
(全劇終)

Weitere ähnliche Inhalte

Mehr von roboard

LinuxCNC 入門簡介
LinuxCNC 入門簡介LinuxCNC 入門簡介
LinuxCNC 入門簡介roboard
 
3D Printer 韌體原始碼解析心得 (以 Marlin 為對象)
3D Printer 韌體原始碼解析心得 (以 Marlin 為對象)3D Printer 韌體原始碼解析心得 (以 Marlin 為對象)
3D Printer 韌體原始碼解析心得 (以 Marlin 為對象)roboard
 
Introduction to Vortex86EX Motion Control Modules
Introduction to Vortex86EX Motion Control ModulesIntroduction to Vortex86EX Motion Control Modules
Introduction to Vortex86EX Motion Control Modulesroboard
 
BLDC FOC 控制原理
BLDC FOC 控制原理BLDC FOC 控制原理
BLDC FOC 控制原理roboard
 
Introduction to Vortex86DX2 Motion-Control Evaluation Board
Introduction to Vortex86DX2 Motion-Control Evaluation BoardIntroduction to Vortex86DX2 Motion-Control Evaluation Board
Introduction to Vortex86DX2 Motion-Control Evaluation Boardroboard
 
Robotis Servo 與 RoBoard 之連接介面
Robotis Servo 與 RoBoard 之連接介面Robotis Servo 與 RoBoard 之連接介面
Robotis Servo 與 RoBoard 之連接介面roboard
 
六足機器人超入門簡介
六足機器人超入門簡介六足機器人超入門簡介
六足機器人超入門簡介roboard
 
馬達基本認識與 BLDC 驅動實驗
馬達基本認識與 BLDC 驅動實驗馬達基本認識與 BLDC 驅動實驗
馬達基本認識與 BLDC 驅動實驗roboard
 

Mehr von roboard (8)

LinuxCNC 入門簡介
LinuxCNC 入門簡介LinuxCNC 入門簡介
LinuxCNC 入門簡介
 
3D Printer 韌體原始碼解析心得 (以 Marlin 為對象)
3D Printer 韌體原始碼解析心得 (以 Marlin 為對象)3D Printer 韌體原始碼解析心得 (以 Marlin 為對象)
3D Printer 韌體原始碼解析心得 (以 Marlin 為對象)
 
Introduction to Vortex86EX Motion Control Modules
Introduction to Vortex86EX Motion Control ModulesIntroduction to Vortex86EX Motion Control Modules
Introduction to Vortex86EX Motion Control Modules
 
BLDC FOC 控制原理
BLDC FOC 控制原理BLDC FOC 控制原理
BLDC FOC 控制原理
 
Introduction to Vortex86DX2 Motion-Control Evaluation Board
Introduction to Vortex86DX2 Motion-Control Evaluation BoardIntroduction to Vortex86DX2 Motion-Control Evaluation Board
Introduction to Vortex86DX2 Motion-Control Evaluation Board
 
Robotis Servo 與 RoBoard 之連接介面
Robotis Servo 與 RoBoard 之連接介面Robotis Servo 與 RoBoard 之連接介面
Robotis Servo 與 RoBoard 之連接介面
 
六足機器人超入門簡介
六足機器人超入門簡介六足機器人超入門簡介
六足機器人超入門簡介
 
馬達基本認識與 BLDC 驅動實驗
馬達基本認識與 BLDC 驅動實驗馬達基本認識與 BLDC 驅動實驗
馬達基本認識與 BLDC 驅動實驗
 

RoBoard x LabVIEW 特別節目劇情版

  • 1. 繪師: 梁榆 老師 高畫質修飾: RB 魔人 從入門到初階 LabVIEW&RoBoard 無痛上手指南
  • 2.
  • 3. 1 第一幕 來作機器人吧! 本節目由瞻營全(DMP)公司贊助播出,在此由衷感 謝。 碧靈與威爺齊聲說道:「「大家好! 歡迎各位收看由 威爺與碧靈兩位所主持的『RoBoard Lab』特別節 目。」」 「本節目由 DMP 公司贊助播出。」碧靈微笑的說 著。 威爺看著碧靈說著:「這剛剛已經提過了…話說碧 靈啊,您有聽過”電子寵物”這個東西嗎?」 「有啊,我小時候有過一隻愛寶(AIBO)。」碧靈驕 傲的說。 「什麼…真的嗎!?」驚訝的威爺問道。 碧靈:「假的。」 「…………」威爺無言。 「唉,不是啊,你也知道愛寶剛出來的時候瞬間就 被秒殺了餒,而且沒幾年就停產了。」碧靈無奈的 說著。 威爺:「一下熱賣一下停產好像有點怪,不過沒想 到您對這個領域還算相當有概念嘛。」 碧靈驕傲的說:「當然囉,你以為我誰啊?」 威爺:「……那想必大小姐您也一定聽過由郭董代 工的 Pleo。」 碧靈:「就是公司破產的那隻恐龍嘛!」 「………嗚~~導播我接不下去了啦,又是停產又是 破產的。」無奈的威爺看著不在鏡頭內的導播。 「威爺你真的很弱餒,靠別人不如靠自己啊!」碧靈 有點生氣的說。 「什麼意思?」驚訝的威爺問道。 碧靈:「我是說,外面那些電子寵物總是賣的又貴 又不見得符合需求,想加個小套件、擴充軟體總得 耗掉大把銀子,那何不自己挖坑給自己跳…」 「咦?」威爺疑惑的看著碧靈。 碧靈:「我的意思是,那何不自己做一隻呢?」 「這、這談何容易呀?」威爺皺著眉頭。 碧靈不耐煩的說著:「……今天我們兩個特別上這 個節目,喇滴賽這麼久,不就是要為大家介紹如何 使用 RoBoard 這個神奇的產品,為自己量身打造一 台機器人嗎?」
  • 4. 2 威爺:「是呀!」 「……你把自己今天的目的都給忘了。」碧靈敲著 威爺的頭。 威爺:「慚愧!」 「唉……」碧靈嘆著氣。「可那您得說說,這 RoBoard 是個怎麼樣的寶貝呢?」威爺問著碧靈。 碧靈:「它是一台電腦,可以跑 XP。」 「可以跑 XP?」威爺疑惑樣。 碧靈:「是呀。」 威爺:「這又有什麼了不起的呢? 誰家的電腦跑不 動 XP 的。」 「…它才這麼丁點大。」碧靈拿出 RoBoard 展示給 威爺看。 威爺接下 RoBoard 並打量著說:「您說這手機般大 小的玩意兒是電腦? 大小姐您可別誆人啊,我家外 接碟都比這大!」 碧靈:「你不信?」 威爺:「不信,沒圖沒真相。」 「要圖? 在這!」碧靈拿出證據。 威爺驚訝的說:「…這可真是了得啊!」 碧靈:「這還可是 MIT,台灣設計的呢!」 威爺大喊:「台灣之光!」 「重點是,它不單純是一台普通的 PC,其硬體規 格跟介面都是專為機器人設計的!」碧靈解釋。 「而且在裡面存一百部影片也不會變重!」威爺對著 鏡頭說。 無言的碧靈:「…這老哏了。」 「對不起。」威爺抓著頭。 碧靈看著手稿說著:「嗯哼哼,看來字數也差不多 了。所以下一回就要介紹如何運用 LabVIEW 語言 來控制這台機器人的心臟囉!」 威爺:「同時也會介紹使用 RoBoard 時的一些視窗 設定技巧!」 威爺與碧靈齊聲:「「感謝各位收看,下次再會。」」 (本集完)
  • 5. 3
  • 6. 4 第二幕 企鵝歸你,XP 娘歸我 威爺與碧靈齊聲:「「大家好! 歡迎各位收看由威爺 與碧靈兩位所主持的『RoBoard Lab』特別節目 Part II !。」」 「感謝願意賞光蒞臨的各位觀眾以及贊助本節目 的 DMP 公司。」碧靈鞠躬。 威爺:「台灣的瞻營全(DMP)公司提供專為機器人愛 好者所設計之 RoBoard 小主板,實用、可靠、低功 耗,為使用者帶來前所未有的全新體驗!」 「……全新體驗?」碧靈搔著頭。 「怎麼了嗎? 碧靈。」威爺疑惑的看著碧靈。 碧靈:「市場上那些廠商所謂的全新體驗說好聽是 新玩意、新花招,實際上不過就是陌生的環境與詭 異的操作方式咩!」 「不,這個…」威爺一臉困惑。 「最好的例子不就是那奇怪的 Vista 嗎? 我是絕對 不會接受 Win 7 娘的,誰也別想從我這裡搶走 XP 娘!」碧靈激動樣。 威爺:「這是哪國的百合宣言啊? …不不,碧靈您誤 會了,事實上 RoBoard 對於開發環境的支援是最豐 富親切,從古早的 DOS 到 WIN CE、XP,以及傳 奇的 Linux 都有支援。」 「……」碧靈摀住嘴,像是說錯話的樣子。 「除了可以使用最普遍的 C 語言來操作 RoBoard 之外,在以 DMP 的工程師為祭品進行招喚後,經 典的 VB、JAVA、Python、.NET 等也可以用來撰寫 機器人程式囉!」威爺解釋道。 「這真是太 Nice 了! 感謝 DMP 工程師的犧牲與奉 獻。」碧玲看著鏡頭說著。 (更進一步的詳情請至 RoBoard 的官網查詢 http://www.roboard.com) 威爺:「而在本系列節目中我們將使用 WIN XP 平 台,以及 LabVIEW 圖控程式語言進行機器人的程 式開發工作喔!」 「……LabVIEW 圖控程式語言?」碧靈再度搔著頭。 威爺:「是呀!」
  • 7. 5 「那我們再從牌組抽出一張『DMP 工程師』……」 碧靈拿出一堆名片。 威爺伸出手,阻止了碧靈「大小姐,ちょっと待っ て一下! 事實上,來自荷蘭的 Ries 先生、來自荷蘭 的 Ries 先生,為我們完成了 RoBoIO 與 LabVIEW 的整合工作。」 碧靈:「感謝來自荷蘭的 Ries 網友。」 威爺:「來自荷蘭的 Ries 網友所調用的模組為 RoBoIO 1.5b 版本,適用於 LabVIEW 8.6.1,有需要 的觀眾可衝浪至 DMP 的 RoBoard 官網下載!」 「1.5b? 8.6.1?」碧靈疑惑樣。 威爺:「希低!」 碧靈:「現在最新的 RoBoIO 已經是 1.8 版了, LabVIEW 也到了 2011 啦?」 「沒錯,所以我們之後也會指導大家怎麼在 LabVIEW 裡調用 RoBoIO 的 DLL。」威爺指著鏡 頭,對著觀眾說著。 碧靈與威爺齊聲:「那各位觀眾,我們就下次再會 啦!」
  • 8. 6 第三幕 來還原吧!...咦? 威爺與碧靈齊聲:「「大家好! 歡迎各位收看由威爺 與碧靈兩位所主持的『RoBoard Lab』特別節目 Part III !。」」 「今天我們將現場由攝影棚轉移到實驗室這邊,讓 各位使用者了解從開機到關機,從搖籃到墳墓的整 個程序。」碧靈微笑的說著。 「在這邊要說明的是,RoBoard 的規格與操作規範 以官方公布為準,本節目所提供之內容、程序不提 供任何保證。」威爺露出陰險的笑容。 碧靈:「咦?」 威爺半開玩笑的說:「一般來說,斯斯有兩種, RoBoard 有三種。其分別為 RB-100、RB-110 與 RB-050。」 「有沒有 RB-050 市面上買不到的八卦?」碧靈看著 威爺。 威爺:「同樣的,地球只有一個,但歐派有兩個, 所以 RB-100 也有兩個子型號,其新型為 RB-100RD。」 碧靈:「在本節目發佈的同時,RB-100RD 尚未發售, 煩請見諒。」 「所以今天在節目中,我們將利用 RB-100RD 這塊 RoBoard 建置機器人開發環境。所以請各位觀眾拿 起您們手上的 RB-100RD,跟著一起操作。」威爺 拿出了不知從哪 A 來的 RB-100RD。 「…………」碧玲看著 RB-100RD。 威爺對著鏡頭解釋道:「RoBoard 跟一般電腦、筆電 不同的地方在於,其使用 microSD 作為主要儲存裝 置,跟傳統的 2.5、3.5 吋硬碟及 SSD 有相當大的不 同。」 碧靈:「我覺得 SSD 並不傳統…」 「由於對 RoBoard 來說,microSD 的讀寫速度算 是主要的效能瓶頸之一,因此強烈建議使用 Class 6 以上並採用國際知名大廠的產品。」威爺指著大螢 幕上的幾家知名大廠的 LOGO。 碧靈:「User 注意! 記憶卡的讀寫性能應以實測為 準!」 「現在我們將一塊全新的 microSD 卡插進去。」 威爺拿出一片 microSD 卡。 碧靈:「嗯哼。」 「這個時候,我們再拿出之前用 Ghost 準備好的 RB-100 系統備份檔。」威爺開啟了 Ghost 程式。 碧靈:「咦?」 「Ghost 是個非常好的軟體,可以將整個硬碟備分 成單一.gho 檔,提供多個電腦進行還原工作。現在 請各位使用者準備好跟我們一起拿出備份檔進行 還原工作。」威爺解釋道。 碧靈:「咦咦?」 「恩,很好,這樣就能省去繁複的安裝工作,快速 建立起開發環境…糟糕。」威爺看著螢幕。 「………當機了!」碧靈冷靜的說著。 「快、快把攝影機關掉!」威爺大喊。
  • 9. 7 (本集完…咦??) (RB-100 與 RB-100RD 使用的核心不相同,故還 原檔不能混用喔!)
  • 10. 8 第四幕 如何建構開發環境? 威爺與碧靈齊聲:「大家好! 歡迎各位收看由威爺與 碧靈所主持的『RoBoard Lab』特別節目第四集!」 「恩,在節目開始之前呢,節目製作人有幾句話要 轉告給觀眾。」威爺說。 「節目製作人有幾句話要說。」碧靈對著鏡頭說著。 「他說啊,『最近幾集節目會 Delay,都是因為節 目時段被總統選舉廣告買完的關係,絕對不是因為 某人缺乏誠意』醬。」威爺笑著說。 碧靈:「嘿! 那總統大選沒選完,節目不就別播啦!」 威爺語重心長的說:「所以我們可以看得出來,台 灣政治活動對於百姓生活有著很深遠的影響…」 「威爺你別跩文了,說些正經的。」碧靈小聲的說 著。 威爺:「是的是的,相信各位觀眾在上一集節目中, 跟我們一起成功的(?)安裝 XP 作業系統之後,已經 開始在 RoBoard 進行一些簡單的基本操作。」 「…那個(?)……」碧靈似乎想起當機事件。 「因此在本集節目中,我們將對於 RoBoard 的實 際運用上,提出一些技巧和建議。」威爺沒有理會 碧靈說的話。 碧靈:「………」 「碧靈大小姐,有意見?」威爺看著碧靈。 碧靈:「我說啊,RoBoard 不也就是一台迷你的、 袖珍的、宇宙第一無敵小的…普通 PC 嘛! 那還有什 麼技巧咧?」 威爺:「沒錯。事實上,RoBoard 的特點正是讓使 用者能在熟悉的開發環境下,使用那些多樣的 I/O 介面來開發自己的機器人…不過這並非這一集所要 討論的重點。」 「喔?」碧靈疑惑的看著威爺。 威爺:「雖說開發環境相似,但它與一般電腦在應 用情境上,有著很大的不同喔!」 「什、什麼!?」碧靈似乎很驚訝。 「讓我們從一個實務的角度來切入吧,一般電腦上 開發程式多半是直接撰寫、編譯、執行。但由於 RoBoard 的產品定位是安裝在機器人上的嵌入式 電腦,所以其性能……」威爺說著。 「…悲劇?」 碧靈看著威爺。 威爺:「…並不適合直接將 Visual studio、LabVIEW 等程式開發環境直接安裝在上面,而應該在一般電 腦上將程式編譯好後,再將執行檔放入 RoBoard 執行…DMP 工程師大人是這樣說的、沒錯!」 碧靈:「這樣說來 RB-100 跑起來的感覺,跟初期 型 EPC 感覺差不多呢。」 威爺:「或…或許吧。附帶一提,本節目是由 DMP 公司獨家贊助播出。」 「既然照你剛剛說,編譯跟執行要分隔兩地進行, 那檔案不就要常常傳來傳去嗎?」碧靈問著。 「沒錯,這個時候就要用上喜歡到處亂插的(?)萬惡 隨身碟,然後插來插去插來插去插來插去插來插去 插來插去插來插去插來插去插來插去插來插去插 插去插來插去…」威爺像跳針一樣的念著。
  • 11. 9 碧靈:「恩……」 「插來插去插來插去插來插去插來插去插來插去 插來插去插來插去……」威爺繼續跳針。 「夠了! 這樣下去別人會懷疑我們…不,是 DMP 公司的品味的說。」受不了的碧靈阻止威爺。 「沒錯,這實在是很困擾人的問題呢! 而且還會到 處散布傳染病…」威爺說著。 碧靈:「那,這該如何是好~?」 威爺:「放心! 不所不能的 USB 周邊商品提供了具 體解決方案。只需要買一條傳說中的『鼠‧鍵盤共享 &資料共享傳輸線』,就能一次解決滑鼠鍵盤以及檔 案共享的問題!」 「這真是太神奇了少卿,不對,威爺~」碧靈說著。 威爺:「沒錯,只要一個滑鼠、鍵盤就能控制兩台 電腦,不只將 USB 埠使用量從三個減少到一個。 而且還能共用剪貼簿來分享文字跟檔案,具備 USB2.0 的高速傳輸能力與隨插即用能力,攻防無 死角,輕鬆無負擔!」 碧靈:「原本是應該這麼完美的,只可惜……」 「可惜……?」威爺看著碧靈。 「喵的,威爺你陰我…」碧靈生氣的說著。 威爺:「是的,在剛剛我們提到了使用 USB 資料傳 輸線的小技巧。」 「……」碧靈無言了。 威爺:「然而這玩意兒用在 RB100 上面,反應就變 慢了…」 「那可不成啊。」碧靈說。 「唉………」威爺嘆著氣。 「好了,威爺你別再蹲角落畫圈圈了,快起來!」碧 靈安慰著威爺。 威爺:「唉………」 碧靈:「說實在的,如果把 RoBoard 裝在機器人、 自走車上面,還要裝著螢幕才能操作,這…太不方 便了。」 威爺:「是,沒錯! Debug 的簡易性在開發過程當 中是非常重要的,不然一不小心就會看到有一塊 RoBoard 從窗外飛出去。」 「要不是會被當掉,我就……」碧靈小聲的說著。 威爺:「咦,碧靈同胞您剛剛有說什麼嗎?」 碧靈:「恩,所以我們將介紹目前本節目所採用的 方法。」 威爺:「沒錯,也就是所謂的『遠端桌面』!」 「『遠端桌面』? 也沒什麼了不起的,不過就是 Window內建的基本功能而已嘛。」碧靈看著威爺。 威爺:「碧靈同志您話可別這麼說,透過『遠端桌 面連線』不只可以共享螢幕、滑鼠鍵盤,也能輕易 的實現檔案分享;不需要額外安裝軟體,也不需要 添購多餘的硬體。」 「非常的輕巧實用呢。」碧靈感慨的說著。 威爺:「沒錯。」
  • 12. 10 「那『遠端桌面連線』應當如何設定呢?」碧靈問 著威爺。 威爺:「如果各位觀眾對於其相關設定有所疑問的 話,那我們將在這裡一步一腳印的指引您;首先您 可以看向眼前瀏覽器的右上方,那裡有個搜尋列, 在裡面輸入『遠端桌面連線』就可以了。」 「那如果觀眾用的是 Chrome 怎麼辦呢?」碧靈接 著問。 「如果您用的是 Chrome,那就更方便啦! 在正上 方的網址列填入『遠端桌面連線』即可搜尋到相關 解決方案。」威爺回答著。 「真的是非常簡單好用呢。」碧靈說著。 威爺:「沒錯。Google 搜尋簡單好用,輕巧大方, 是您居家旅行的最佳選擇;有問題,請愛用股溝。 有疑義,請愛用谷歌。對於以上內容如有疑問,請 使用 Google 關鍵字查詢。」 威爺:「是的。」 碧靈:「可是,威爺。既然谷歌這麼好用,那我們 為何不乾脆在節目開始打上 www.Google.com 就 好了呢?」 「這個節目企劃不錯,我想製作人一定會很高興 的。」威爺解釋著。 碧靈:「是。但是事情有這麼簡單嗎? 在實際的過 程中一定會遇到奇怪的問題的吧? 比方說,如果我 們要用搭載 RoBoard 的自走車出去比賽,那……」 威爺:「沒錯,第一個碰到的就是主控電腦必須跟 RoBoard 有網路連結才能實現遠端桌面;由於有線 網路並不是個很好的選擇。因此我們會建議搭載小 型 USB 無線網路卡並搭配內建網卡的筆記型電腦 來操作,這樣就能以無線網路來實現遠端桌面囉!」 「理論上是這樣沒錯,但是如果會場沒有提供無線 網路服務,也就是沒有無線網路基地台(AP)可以用, 那要怎麼辦呢?」碧靈問著威爺。 「這個時候就要 GOOGLE 一下。」威爺開啟瀏覽 器。 「………」碧靈無言。 威爺:「恩,事實上根據威爺股溝後的結果,會建 議採用『電腦對電腦(臨機操作) 網路』(Ad-hoc) 設定,這樣透過無線網卡把兩台電腦『連』起來!」 碧靈:「沒錯,如對操作細節有疑問,請愛用股溝 搜尋,亦可 Call in 本節目詢問。」 威爺:「預錄節目也能現場 Call in,真的是很厲害 呢!」 碧靈:「這都拜網路發達所賜。不過在這裡又碰到 一個問題,我在 RoBoard 裡已經設定讓 XP 在登入 後執行一個程式,可是開機後 RoBoard 都不動……」 「沒錯,由於一般內建的遠端桌面功能要求使用者 必須輸入帳號密碼才能進行連線,所以使用者帳號 不能使用空白密碼…可是這樣開機時就必須輸入密 碼才能登入,不能一開機就直接 Run 囉科科。」威 爺急忙解釋。 碧靈:「……………這確實是很麻煩的問題呢,那該 怎麼辦?」 「恩,在威爺對股溝仔細的檢索後,發現只要將『本 機安全性原則』裡『限制使用空白密碼……』的選 項停用,不用另設密碼也能使用遠端操作喔!」威爺 看著電腦念著。 碧靈:「很多糟糕的事情好像也可以做了……所以各
  • 14. 12 第五幕 自從有了 Google, 我每次考試都一百分(?) WWW.GOOGLE.COM 關鍵字:"RoBoard"、LABVIEW DLL (感謝您的收看,我們下次再會。) (本集內容要用 RJ45 接頭插這本書才看的到喔!)
  • 15. 13 第六幕 如何在 LabVIEW 上使 用 RoBoIO? 碧靈:「大家好! 歡迎各位收看由威爺與碧靈所主持 的『RoBoard Lab』特別節目第六集!」 「姆!」威爺發出聲音。 「威爺,請把芒果乾放下來。」碧靈散發出有殺氣 的笑容。 威爺:「咕嚕…我、我只是在緬懷遠去的夏日風情罷 了。」 「逝者已矣,再說冬天應該要吃柑橘…」碧靈語調 平平的說著。 「沒錯! 所以今天我們將鏡頭轉到實驗室這邊,為 各位觀眾介紹如何用 LabVIEW 撰寫 RoBoard 的應 用程式。」威爺指著鏡頭。 「………」碧靈無言。 很快的,鏡頭轉到了實驗室。 「如果各位觀眾有定時收看前幾集的節目,那麼手 上應該會有一塊已經安裝好 XP、可以正常操作的 RB-100;我們在節目後續會以此進行示範。」威 爺說著。 碧靈:「威爺你一句話就破綻百出啊,誰教你的?」 「嗯哼、如果各位觀眾有定時收看前幾集的節目, 那麼應該還記得來自荷蘭的 Ries 先生、來自荷蘭 的 Ries 先生,提供 RoBoIO 1.5b 版本的 LabVIEW 模組。」威爺看著鏡頭。 「所以我們今天……」碧靈看著威爺。 威爺:「不過因為 Ries 先生不再對模組提供更新支 援了,所以我們今天將介紹如何在 LabVIEW 中自 行引入 DLL (Dynamic Link Library)來實現對 RoBoard 的控制。」 「………………」碧靈再度沉默。 威爺:「當然啦,第一步是先開啟 LabVIEW 開發環 境,不過我們通常不建議直接將其安裝在 RoBoard。」 「沒錯,因為其頗占資源,在 RoBoard 上進行開 發並不實際,不如先在桌機上…」碧靈說著。 威爺:「唉呀,一時手滑,不小心將 LabVIEW 8.61 給安裝到 RB-100 上了。」 「………小心 DMP 的工程師站在你背後,他非常 火。」碧靈看著後台的工作人員。 威爺:「既然如此,就請觀眾跟我們一起在 RoBoard 上直接操作吧。在 LabVIEW 要載入 DLL,可以直 接在後面板中開啟 Functions >> Connectivity >> Libraries & Executables >> Call Library Function Node,並根據我們的需求作進一步的設 定…」
  • 16. 14 ..........進廣告.......... 碧靈:「大家好,感謝大家繼續收看。在本節目的 後半段,將由我碧靈繼續為各位介紹於 LabVIEW 載入 DLL 的步驟,以及相關設定。」 「至於威爺同學,很遺憾的,他在兩天前轉學去加 拿大了……」碧靈假裝擦拭著眼淚。 碧靈:「接下來我們將以引入”pwm_SetPulse”這 個函式為作為範例。請先至 RoBoard 官網 (http://www.roboard.com/download_ml.htm) 下載『RoBoIO 1.8 binary』這個檔案以供後續使 用。」 「如果各位看官的電腦都一直開著沒關的話,請按 照節目上半段的介紹,使用 Call Library Function 面板,跟著大姊姊一起作,按照下圖完成設定。」 碧靈在電腦上操作著。 「圖中所使用之 DLL 檔,位於方才所下載之壓縮檔 中(RoBoIO-bin-v1.8-winxpLibVC2008)」 「而函式輸入及輸出之設定,可參考標頭檔 pwm.h 之內容(RoBoIO-bin-v1.8-winxpInclude)」 「使用者可以此作為參考,設定輸出入之資料型態; 完成設定後按下『OK』即可。」碧靈對鏡頭微笑。 「在本例中,由於輸出值應為布林(BOOL),因此 應將回傳值判斷是否非零後,再將結果輸出;使用 者若對不同資料型態應如何設定有所疑問,可參考 LabVIEW 範例(Find Examples…)中的『Call DLL.vi』」 「如觀眾能不厭其煩以以上所舉之範例,依序完成 所需函式之設定,便能實現 RoBoard 應用程式之 撰寫。」
  • 18. 16 第七幕 如何在 RoBoard 上 快速建立影像處理程序? 威爺及碧靈齊聲:「「大家好! 歡迎各位收看由威爺 與碧靈所主持的『RoBoard Lab』特別節目第七集!」」 「今個呢,我們要向各位觀眾介紹,如何透過 LabVIEW 來實現影像擷取。」碧靈指著投影幕上 的畫面。 威爺:「是。」 「當下台灣家家戶戶都有電腦,人人手裡皆有相機; 不論是要自拍,抑或是保存風景之美,都可說是相 當隨意的啦 !」碧靈微笑。 「輕鬆拍,隨意拍;不論是要保存、欣賞或進行後 製,都沒什麼好顧慮的。」威爺比劃著。 碧靈:「尤其拜消費電子發展之賜,現在想跟遠方 的朋友見個面、打聲招呼,只要接上網路,架個網 路攝影機(Webcam)就可以了,也花不了幾個大洋。」 威爺:「就看有沒有心。」 「可是在咱們還年輕的時候,想拍個照、或是想錄 段影片作生活記錄,那可不容易囉;攝影機又貴又 重,底片沖洗又還要花錢。更別提若想消除臉上幾 個痘疤,得下多少功夫啊 !」碧靈嘆著氣。 威爺:「還年輕……話說碧靈大小姐您今年高壽?」 「竟敢問本姑娘芳齡…汝此舉未免也太過失禮 ?!」 碧靈生氣樣。 威爺:「對不低…話說,數位影像在這幾年確實是有 很大的進展。」 「是呀,不論是電荷耦合元件、大容量儲存裝置、 高速通訊界面都有爆發性的成長,其代價卻日益低 廉…別看現在自拍影片滿天飛,以前電腦想獲得影 像,必須透過影像擷取卡讀入攝影機的類比信號才 成。那像現在把 USB 插上就好了,成本還花不到 過去的 1/10。」碧靈說著。 威爺:「所以電腦視覺的應用,也應該變的更普遍 囉?」 碧靈:「唉……『視覺』說是萬能感測器也當之無愧, 因為其中所含資訊可謂包羅萬象;但也因為電腦還 不具備人腦般的處理能力,所以獲取所需資訊的前 處理步驟堪稱藝術……」 「不過目前應該有許多工具可以應用了吧?」威爺 看著碧靈。 「沒錯,像 OpenCV 就是一個相當知名的電腦視 覺函式庫,不但免費還可作為商業使用;日前大陸 知名的綠壩娘,就是用其來分析一個人的皮膚是不 是露出太多,是的話就關起來。」碧靈說著。 「真的是非常可口跟好用呢 !」威爺差點流下口水。 碧靈:「是的,不論是要作影像處理、Webcam 擷
  • 19. 17 取,物件追蹤、人臉辨識等專題應用也沒問題。泛 用性高、低成本,網路上的資源與指導也非常多, 相關書籍亦有出版,故不在此贅述! 」 「沒錯,都花哪麼多錢買 LabVIEW 怎麼可以不用。」 威爺小聲的說。 「咦? 剛剛威爺你有說什麼嗎?」碧靈看著威爺。 威爺:「沒事…」 碧靈:「其實 OpenCV 要用在 RoBoard 上也是需 要訣竅的,因為 CPU…」 威爺:「STOP!」 「…所以我們現在將為大家介紹,如何在 RoBoard 上透過 LabVIEW 來讀入 Webcam 的影像。」碧靈 指著畫面。 威爺:「嗯嗯。」 碧靈:「雖然本節目由 DMP 獨家贊助播出,不過美 國國家儀器公司(NI)在機器視覺上不論軟硬體皆有 相當多的支援,諸如 Vision Development Module、NI-IMAQdx、影像擷取卡、智慧型相機 等多種商品一應俱全,滿足使用者在自動化量測系 統上……」 「STOP!」威爺又激動的喊。 碧靈:「…不過早期的 NI Vision 只有支援影像擷取 卡、智慧型相機、IEEE 1394 介面等類型的周邊, 沒有支援 USB 介面的 Webcam。」 「這、這該如何是好!?」威爺緊張樣。 碧靈:「所以有使用者自行開發了相關模組…不過那 都過去了。」 「NI 聽到了廣大使用者的心聲……」威爺擦拭著眼 淚。 碧靈:「NI 聽到了廣大使用者的心聲(大概),提供 了『NI-IMAQ for USB Cameras』這個外掛,至 此,我們便能讀入 Webcam 的影像,並透過 Vision Development Module 來取得我們所需要的資 訊。」 「上帝說要有光,便有了光。」威爺拍了兩下手。 「…………」碧靈瞪著威爺。 威爺:「對不起!」 碧靈:「因此,理論上來說,我們便能藉助低成本 的網路攝像機,作出具有視覺感測能力的機器人…」 「那實際上呢?」威爺問著。 碧靈:「新版的 LabVIEW 已經不支援『NI-IMAQ for
  • 20. 18 USB Cameras』這個外掛了。」 「新版的 LabVIEW 不支援『NI-IMAQ for USB Cameras』?」威爺問著。 碧靈:「恩,是的。」 威爺:「那碧靈您剛剛還在觀眾面前費這麼多口舌 騙字數,這豈不明擺著欠…」 「嗯?」碧靈瞪了威爺一眼。 威爺:「對不起。」 碧靈:「事實上,由於 USB 介面被廣泛使用,在新 版本的 NI-IMAQdx(需付費)裡已經能直接支援 USB 介面的影像擷取裝置了!」 「那尼!?」威爺驚訝得大喊。 碧靈:「沒錯!這樣一來大大擴展了對攝影裝置的相 關支援。不但能透過 MAX 直接對 Webcam 的解 析度、取樣率跟白平衡等作細部調整,還能在程式 中直接透過 Property Node 進行設定!!!」 威爺:「什麼? 是那個…那個傳說中的『Property Node』嗎?!」 碧靈:「能力變化萬千卻又捉摸不定,文獻上的記 載也極少;在這蒼茫紅塵間,視得其廬山真面目的 又有幾人?」 「唉…」威爺嘆著氣。 碧靈:「關於那個男人,實在還有很多未解的謎團 呢…」 威爺:「是…咦咦??」 「所以,各位觀眾如果對於如何運用 Property Node 調整取樣率與解析度以及藉助 IMAQdx 擷
  • 21. 19 取影像,可參考 LabVIEW 內建範例檔『Grab and Select Mode.vi』,這樣一定就能對於如何使用有完 整的了解~」碧靈繼續說著。 威爺:「什麼? 竟然這樣打發觀眾啊?」 「………」碧靈無言。 整個攝影棚鴉雀無聲。 碧靈:「總、總之,可以透過 IMAQdx 操作 Webcam, 其實對於實務上來說有著相當顯著、重要的影響!」 「…這話怎麼說?」威爺問著。 碧靈:「早期在使用『NI-IMAQ for USB Cameras』 進行影像擷取的時候,Webcam 的解析度多半都 會預設成 640*480,因此每次 RoBoard 跑起程式 來就悲催了…」 「………」威爺無言。 碧靈說著:「雖說也是有調整設定用的 vi,不過每 次啟動程式還要透過滑鼠點選才能進行調整,實在 是很麻煩呢。」 威爺:「確實如此。」 碧靈:「So,只要透過屬性節點進行設定,機器人 運動時回傳即時影像就用低解析度畫面,定點環境 影像回傳就用高解析度;這樣就能兼顧頻寬、流暢 度跟系統效能了。」 「そうか…」威爺敲手,一副恍然大悟的樣子。 碧靈:「嗯嗯。」 「既然這樣,我想觀眾應該也對於 RoBoard+LabVIEW+Webcame 這套組合的應用 方式,有了相當的了解…是不是、節目也該告一段 落了呢?」威爺問著。 「喔呵呵~威爺你太天真了…」碧靈奸笑。 威爺:「這…碧靈您這話怎說?」 碧靈:「節目進行至此,提了不少關於 RoBoard 應 用上的細節,卻沒有實作幾個項目給大夥看看,這 說不過去吧。」 威爺:「嗯嗯。」 碧靈:「若叫人說是:『狗掀門簾子-光說不練』,這 樣印象就不好了。」 「是沒錯! 但節目已然進入尾聲…」威爺似乎很想 趕快結束掉節目。 「無妨,正巧手上有個項目,能為大家示範 RoBoard 與 LabVIEW 視覺開發模組快速發展的簡 便之處!」碧靈笑著。 威爺:「喔?」 碧靈:「試試『追蹤一個小紅球』如何?」
  • 22. 20 「可以我們的觀眾大多都是專家,這樣不會有班門 弄斧之嫌嗎?」威爺心虛的說著。 碧靈:「反正坊間對於『National Instruments Vision Assistant』的參考資料也不多嘛!」 「好!那我們就來試試…不過一般人手上應該不會 有這個軟體吧?」威爺開啟軟體。 碧靈:「佈署用的 Run-time 就比 RoBoard 貴了… 那首先就先請觀眾準備好相關軟體跟參考資料;沒 軟體的人可以到這裡下載試用版,沒基礎知識的人 可以先去購買由繆紹綱大師所譯之『數位影像處理』 一書,個人絕讚但不負責任推薦。」 威爺:「附帶一提,本節目依然由 DMP 公司獨家贊 助播出。」 碧靈:「是,現在就請觀眾們跟我們一起開啟軟體 實際操作一遍啦!不要忘記將 Webcam 接上。」 威爺:「進入軟體之後呢,先進行點選右上框的 『Acquire Images』進入本頁面,然後在點選左下 的『Acquire Image(1394…or USB)』取像。」 「這就是這部分的重點啦!如果這邊無法用 Webcam 取像,哪麼日子也就過不下去了…」碧靈 指著鏡頭強調著。 威爺:「咦咦? 是之後也就作不下去了吧? 這部分 需要借助前面所說的新版 IMAQdx 方能進行,不 過影 像開發模組本身就包含該驅動,不需再另外 取得。」 「若成功應該就能看到列表中應該有至少一個攝 影機可用,此時務必先行挑選適當之取樣解析度。」 碧靈跟著一起操作電腦。 「為什麼??」威爺問。 碧靈:「因為如果調到 640*480 以上,它的取樣率 可能會變得像睪丸癌級的蛋蛋哀傷…考慮到之後的 影像處理不要帶來太大負擔,個人比較偏好 160*120,不過實際選項還是得依廠家規格而定。」 威爺:「是。」 碧靈:「之後按下上列的播放鍵就能連續讀入影像, 右邊點的選項則可實際擷取影像,作更進一步的處 理。」 「上方的影像儲列則可存入多個影像,建議在這裡 多拍幾張不同情況下的畫面。」威爺說著。
  • 23. 21 碧靈:「這個時候就要選擇右上方的『Process Images』進行影像處理程序啦! 這時可以看到左上 方的影像儲列下排有個往下轉的小按鈕,其可選擇 欲處理之圖片。」 威爺:「左下方則是影像處理項目的功能列表,也 是精華所在,理應詳加研究但在此略過不提。」 碧靈:「下方那一排則是影像處理程序序列,照理 說應該只有一個項目…但是由於主持人沒有笨到不 事先演練一遍,所以裡面已經放滿了。」 威爺:「這裡最方便的是,在完成了 N 個程序後, 您仍然可以點選中間的項目觀察每個程序所造成 的影響,同時也可以再編輯、調整。」 「討論了這麼多,應該開始決定要怎麼找到『小紅 球』了唄!」碧靈微笑。 威爺:「沒錯,剛才已經說了這只是個『簡單』示 範,所以不考慮實際環境的複雜性以及程式的強健 性;因此我們將背景單純化使其不具備紅色色調, 從而使顏色易於突顯。」 「哦? 所以第一步『分離背景』就是從顏色下手囉?」 碧靈看著威爺。 威爺:「沒錯,簡單來說就是告訴 RoBoard:『紅色 就是目標物件』。」 碧靈:「既然這樣我們就是應該從三原色中的 R 下 手…」 威爺:「不。考慮到 RGB 影像空間亦受到光線影響, 像是太亮的光線會使紅色像是白色,我們應該使用 將亮度剃除在外的色彩空間…」 「HSL?」碧靈疑惑的說著。 威爺:「沒錯,HSL 將色彩分為色相、飽和度跟亮 度,因此我們可以很容易的從 H 區別出影像中那些 部分是紅色。」 「說來簡單…」碧靈。 威爺:「確實…在這要注意的是 Hue 從 255-0 中間 是連續的,而我們所選用的 251-5 之間的色相,S、 L 的影響幾乎不考慮。」 「這時我們可以看到鮮紅色的部分就是我們所選 取的部分,經過這個部分後影像將由 32 位元彩色 變成二元紅黑影像。」碧靈說著。 威爺:「再來就是透過刪除小物件跟膨脹來移除無 關的雜點了。當然啦! 之前的閥值設定是否妥當在 這裡就會有關鍵性的影響了。」
  • 24. 22 碧靈:「沒錯,該使用哪些程序、使用的順序也會 有極大影響。 」 威爺:「再來就是利用『Particle Analysis』來取得 物件的參數特徵了!」 「YES! 像在此處我們就是利用物件的的質心位置 來決定修正量,從而使物件對準中心以達到追蹤目 的。」碧靈開心的笑著。 威爺:「完成影像處理程序後,再來就是匯出成 VI 作後續開發、整合囉!」 碧靈:「只要利用偏差量修正伺服馬達的角度,就 能實線持續追蹤。」 碧靈:「威爺...不是我在說,你這影片看起來弱爆了, 就像是用手轉的...也沒看到 RoBoard....」 威爺:「對不起!」 「好啦! 歡迎有興趣的觀眾回應索取程式範例,我 們就下次再見啦! 揪咪!」碧靈可愛的揮著手。 (本集完)
  • 25. 23 第八幕 UART 與 Ultrasonic Sensor 威爺與碧靈齊聲:「「大家好!歡迎各位收看由威爺與 碧靈所主持的『RoBoardLab』特別節目第八集。」」 威爺:「非常感謝來自 DMP 公司的協助與贊助!」 碧靈:「那今天我將為大家介紹『非同步串列通訊 介面』(UART)的實作囉!」 「等一下!!!」威爺打斷了碧靈的話。 「怎…怎麼了,威爺?」碧靈有點結巴。 威爺:「大姐您今天第一次上台嗎?節目的規矩您懂 不懂啊?」 「這……」碧靈拉長音。 威爺指著碧靈說著:「大家來看我們的節目,開心、 尋個樂子,順便長些知識(?)。您這樣直接切入主題, 是把觀眾放哪去了?」 「咦…是、是這樣嗎?」碧靈無辜的看著威爺。 威爺:「還不懂啊!?您應該先抓住話柄,然後甩呀甩 呀把它加速到第二宇宙速度,直接脫離主題…如此 這般,明白沒有?」 碧靈:「明白了、明白了。」 威爺:「那就好。」 「唉呀,沒想到今天能有這榮幸,能與威爺您這樣 的大師同台。」碧靈話中帶刺的說著。 「好說好說。」威爺似乎沒聽出碧靈的意思。 碧靈:「小妹碧靈,充其量不過是個新手、同好, 不敢在大師面前班門弄斧,能否請您為本節目開個 場?」 威爺:「由我開場?」 「是呀!」碧靈一副看好戲的樣子。 威爺:「那我可得說些新鮮的、熱門的、大夥關注 的。」 碧靈:「是。」 威爺:「好!就說『Makiyo』。」 「MA…MAK…啊,您說『Make』是吧?」碧靈發 現狀況不對勁,趕緊轉移話題。 「………」全場鴉雀無聲。 威爺:「果然大師一出手,便知有沒有;沒錯!雖然 本節目是由 DMP 獨家贊助播出,但是由知名出版 社歐萊禮(O’REILLY)發行,馥林文化代理的 『Make』國際中文版在台上市囉!」 碧靈:「『Make』雜誌主打 DIY 的概念,每期都有 令人興奮的想法跟實作專題,讓玩家不再只能對
  • 26. 24 NASA 跟 DARPA 的昂貴玩具乾瞪眼…想玩?自己作 唄!」 威爺:「希滴!雖然目前國際中文版內容是以日文版 為主,但是隨著台灣讀者玩家的參與,估計也會有 越來越多的本土作品出現喔!」 「不過我記得本節目不也是……」碧靈看著威爺。 威爺:「某通路第一期特價七折,絕讚發售中!」 碧靈:「……話說回來,威爺,你也只有看過第三期 不是嗎?」 威爺:「對不起。」 「………」再度進入鴉雀無聲的狀態。 碧靈:「這下可好,我們的話柄脫離地球重力不知 飛到哪去了。」 威爺:「找話柄啊…要不打給『NORAD』問問?」 碧靈:「你當它是聖誕老人嗎?」 威爺:「事實上,LabVIEW 對於電腦的介面都有相 當的支援。」 「是…威爺你不覺得,節目這樣轉折實在是太硬了。」 碧靈看著威爺。 威爺:「我們節目向來都是有轉折沒原則的不是?」 「晤晤…話不是這麼說的吧!?」碧靈有點無法反 駁。 威爺:「什麼…唉!大姐您可別又把話柄給抖掉了。」 碧靈:「是是,不管怎麼說,RoBoard 有四個 COMport;而在一般的情況下,可以透過 RoBoIO 中的 COMlib 來操作它。」 威爺:「沒錯,但是今天我們用的可是 LabVIEW 啊!」 碧靈:「那又怎麼樣咧?」 威爺:「LabVIEW 本身即具備豐富的通訊介面支援 能力,COMport 自然也不例外。」 「喔?那你可得示範示範。」碧靈奉承的說著。 威爺:「沒問題,這個實驗很容易的,觀眾也可以 一起作。」 碧靈:「對…觀眾沒辦法作的幹嘛示範啊!?」 威爺:「隔壁棚的『C4 燉肉』作不太出來。」 碧靈:「別胡鬧了!」 威爺:「這真的很容易的…首先先選 COMPort,就 選 COM3 唄,然後將 TX 跟 RX 接起來。」 碧靈:「嗯嗯…」 威爺:「這個時候再開啟 LabVIEW 中的 『FindExamples』,以『RS-232』搜尋
  • 27. 25 『BasicSerialWriteandRead.vi』這個範例…」 碧靈:「嗯嗯…」 威爺:「把 COM3 選好之後在 stringtowrite 內隨 便寫些訊息然後 run 就好啦…」 「唉唉唉,威爺你呼嚨觀眾啊!?」碧靈生氣的說著。 威爺:「什麼叫我呼嚨觀眾啊?就是這麼容易!」 碧靈:「嘿…」 威爺:「嗯?」 碧靈:「嘿……」 威爺:「嗯嗯??」 碧靈:「是不是應該要有一個,實際應用的例子呢?」 威爺:「呃……」 碧靈:「那我們就拿 SRF02 這個超音波距離感測器 作範例吧!」 威爺:「…相當的古老呢。」 碧靈:「沒錯,SRF02 可以透過 UART 跟 I2C 介面 下達命令並接收感測結果;同時也可為每個感測器 設定自己的位址,單一接點就可以同時串接數個感 測器來使用,非常的方便。」 威爺:「喔?」 碧靈:「而且可以設定直接回傳”公分”、”英吋” 等量測結果,不需再另行處理、換算…」
  • 28. 26 威爺:「…使用者可參考 SRF02 指令表,依照需求 對 SRF02 下達指令,即可取得感測結果。」 碧靈:「那麼 LabVIEW 部分的實作又是怎麼進行 呢?」 威爺:「這部分我們可以拿前述的 『BasicSerialWriteandRead.vi』範例程式加以修 改,結果如下: 碧靈:初始化設定部分依照參考資料『Serial data is fixed at 9600 baud 1 start, 2 stop and no parity bits.』而設。」 威爺:「那為何寫入部分是『0x0054』呢?」 碧靈:「那是因為 SRF02 位址預設是 0x00,而要 求回傳公分距離的指令是 0x54…因此寫入 『0x0054』則代表命令位址為 00 的 SRF02 傳回 距離資料;考慮到感測器運作必須花點時間,因此 在下達命令,再等待 100ms 後,我們才讀入感測 結果。」 威爺:「那讀回來的資料又要再經過什麼處理呢?」 碧靈:「雖然 SRF02 會直接回傳距離數值,但是對 電腦來說,COMPort 傳回的都是字串…因此我們 要將傳回的結果從字串強制轉換為 U16 的資料型 態,才方便我們直接判讀以及進行訊號處理…要注 意的是,只有 TTL 準位的 COM3 可以直接跟 SRF02 連結喔!」 威爺:「原來如此,感謝您抽空接受訪問。各位觀 眾,我們下次再見囉!」 「咦咦??...」碧靈還沒回過神的樣子。 (本集完)
  • 29. 27 第九幕 ADC 威爺與碧靈齊聲:「「大家好! 歡迎各位收看由威爺 與碧靈所主持的『RoBoard Lab』特別節目第九集。」」 「今天要向大家介紹『類比輸入』(ADC,類比轉數 位)的使用,紅外線距離感測器 GP2D12 跟…嘿嘿 嘿……。」威爺露出陰險的表情。 碧靈:「嘿嘿嘿…?」 威爺:「嘿嘿嘿…。」 「嘿嘿…威爺你欠揍啊!?」碧靈伸出拳頭。 「嘿嘿嘿…其實我在 Cosplay 呂前副總統。」威爺 擺出 POSE。 碧靈:「六大報頭版正在等你的道歉啟事。況且我 看你除了身形體態與前副總略顯神似之外,神韻一 點都不像…」 「宋酋長在您背後,他非常火!」威爺看著碧靈身後 說著。 碧靈:「別鬧了威爺,該進入主題啦! 可別又讓話柄 飛走了。」 「大姐說的是。話說前幾集多半都是在討論 RoBoard 跟 LabVIEW 結合的應用,像是應用 Wi-Fi 遙傳數據、Webcam 擷取影像,以及應用 VISA 來 讀取 COM 等等…。」威爺對著鏡頭說。 碧靈:「是…等會,差點被你矇過去了。我們什麼時 候有講過 Wi-Fi 遙傳數據? 對不對,導播……對嘛! 明明只有使用 Wi-Fi 遠端操作 Windows。」 「是這樣嗎?」威爺搔著頭。 碧靈:「本來就是這樣啊!」 威爺:「那…這…瞧您都把話題給扯遠了,真是的!」 「合着是我錯啦!?」碧靈看著威爺。 「總之,咱們前段日子幹啥都得跟 LabVIEW 扯上 關係,是唄?」威爺也看著碧靈。 碧靈:「是呀!」 「所以今個兒…」威爺拉著長音。 碧靈:「今個兒不同?」 「……還是照例脫不了干係。」威爺嘆了一口氣。 碧靈:「格老子滴!那你喇哩這一圈幹嘛呢? 直接講 白不就得了!」 威爺緊張的說著:「總、總之,整合 ADC 介面在電 腦系統上是比較少見的,這也是RoBoard獨到之處。」 碧靈:「如果音源不算的話…確實,常見的介面不過 就 PS/2、USB、RS-232、平行埠或 IEEE1394、e-SATA 等庸俗之輩,沒什麼好神氣的。」 威爺:「網路孔被無視了…然而類比訊號又是無所不 在的,舉凡聲音、溫度、距離、亮度、壓力等;雖 說有些感測器,如前集所用 SRF02 已將距離資料轉 為數位訊號,但許多較簡單、廉價之感測元件還是 只有類比訊號輸出而已。」 「確實,如果機器人玩家的主控制器不具備類比輸 入的機能,實在是綁手綁腳的。所以我都用 PIC 作
  • 30. 28 資料擷取。」碧靈說著。 威爺:「當然啦,如果碧靈您手頭上有個萬把銀兩, 也可弄張NI出品的資料擷取卡(DAQ Card)來玩玩, 現在不也能模擬 I2C 了嗎?」 碧靈:「我想本節目要討論的不是百萬造價機器人… 扯遠了,只要用 RoBoard 就可以省掉下層,也可讓 新手省卻摸索新系統的時間、金錢成本。」 「沒錯。」威爺看著鏡頭。 碧靈:「既然 ADC 這麼重要,那威爺你還不趕快教 觀眾怎麼用!」 「碧靈大小姐您不要踩我…其實現在已經能很輕鬆 的透過 LabVIEW 讀取類比輸入了!」威爺說著。 碧靈:「什麼…這是!?」 威爺:「沒錯!只要三個基本 VI 就能實現類比輸入!」 「恩…」碧靈深思著。 威爺:「好,各位觀眾!接下來就要進入『GP2D12 實戰』單元啦!請大家拿起您手上的 GP2D12…」 碧靈:「等一下!…威爺,這不是 LabVIEW 內建的吧? 你還沒說這要去哪下載呢!」 「嗯嗯,包含 ADC 模組的 RoBoIO1.8 套件已在 Robofun 論壇的安東尼小主板提供下載囉!」威爺笑 著。 碧靈:「那個是獨家配佈限定嗎?」 「…附帶一提,目前為止下載的人次勉強用兩手手 指也能數出來。」威爺小聲的念著。 碧靈:「咦咦咦咦!?」 碧靈:「…所以我們該請威爺切腹謝罪,讓我來擔任 介錯吧!」 「啊啊,這個,我們之前提到該進行『GP2D12 實 戰』單元了,沒錯。」威爺轉移話題。 碧靈:「GP2D12 是什麼東西呢?」 威爺:「GP2D12 也是一個距離感測器,不過跟我們 日前提過使用超音波的 SRF02 略有不同,是以紅外 線為作媒介來實現測距的。」 「那 SRF02 是透過 UART 對其下達指令後直接回 傳距離資料,GP2D12 呢?」碧靈追問著。 威爺:「GP2D12 是直接回授一個 0~2.55V 的電壓值, 接法非常簡單,如下圖所示。」
  • 31. 29 碧靈:「那顆『ADC0831』是怎麼回事?」 威爺:「啊,那個是一顆使用串列通訊的類比-數位 轉換 IC;附帶一提,我們在 RoBoard 上所使用的是 使用 SPI 通訊的,所以使用外接 SPI 接口的時候不 能使用 ADC 喔!」 「這麼重要的事情不要隨便帶過啊! 那我們將電壓 值讀入後,要如何得知實際距離呢?」碧靈問著。 「實、實際距離?」威爺有點緊張。 碧靈疑惑的看著威爺。 威爺:「那個、如果您只是要讓小車車在距離牆壁 太近時迴避的話,可以簡單訂個閥值觸發迴避行 為……」 碧靈:「那這樣我們只需要用紅外線近接開關就好 啦!」 「嗯哼,若要實際求得距離,可用回饋回來的電壓 進行換算,其關係圖如下圖所示…」威爺說著。 碧靈:「咦? 在其有效範圍 10-80cm 內,距離與電 壓關係是非線性的呢。」 威爺:「嗯,這樣就不能用單純 y=ax+b 的方式來進 行轉換了…如果是運算能力比較差的控制器,我們 可以運用查表的方式,將電壓與距離的關係建表、 或是再加上內插法,就能求得約略的實際距離。」 「那我想用 RoBoard 的話就能有更好的作法吧?」 碧靈拿起 RoBoard 問著威爺。 「嗯,我們可以先將電壓-距離的數據以迴歸分析求 得關係式,這樣就可以直接代入電壓值求出距離了!」 威爺說著。 碧靈:「迴歸分析? 那應該要如何進行呢?」 威爺:「比較簡單的方式可以用 Excel 來做;記得每 顆感測器的特性都不同,各位觀眾務必要乖乖用手 上的感測器實際操作求得數據,至少要求得 20 筆 以上喔!」 「20 筆!? 那如果以 5 公分為間距不就要量測 300 次以上?」碧靈驚訝的看著威爺。 威爺:「當然啦,如果有單軸滑台跟使用 LabVIEW 內建的迴歸函式來進行自動取樣的話,實驗很快就
  • 33. 31 終焉~特別節目 『威爺必須死 RoBoIO1.8 lvlib』 「今天,」一位少女在舞台上向鼓譟著的觀眾伸出 雙手,雪白色的曲裾長袍與一頭秀麗長髮在舞台燈 的強力照耀下,消融在炫目的銀光之中。 少女接著說著:「我們很榮幸的在此向各位宣布, RoBoard 正式的與 LabVIEW 結合在一起。」 「我們向來堅信,任何長遠發展的產品,都必須要 建立在穩固可靠的基石上。」少女振臂一揮,其棕 色眼眸映照出耀人的神采。 「在 RoBoIO 1.8 DLL 的支持下,我們在此推出用 於 LabVIEW 開發平台的 RoBoard library, 『RoBoIO1.8_lvlib』!」少女感動的說著。 此言一出,台下的群眾高舉『碧靈大好!』的牌子, 爆出陣陣呼聲。 「從當下此刻! LabVIEW 強大的資源不再是遙不 可及的幻影;從當下此刻! RoBoard 的輕巧機動與 豐富介面不再只是他人手中的禁臠!」碧靈向台下觀 眾高舉右手,在熱情雀躍的粉絲眼中,宛若未來女 神在他們面前降下神諭。 碧靈:「從當下此刻! 我們將為機器人注入靈魂、我 們將為機器人注入生命;這就是『Robotic Heart』!」 瞬間台下的群眾由鼓譟變成震天動地吶喊,令人窒 息卻又狂熱的氛圍壟罩全場;幾個粉絲抱在一起又 叫又跳;有人緊捂著胸口癱軟在地,臉上卻露出幸 福至極的笑容。 碧靈微笑的看著眼前情景,深知一切皆在掌握之 中。 「怎麼會這樣?」威爺看著眼前的情景不禁顫抖。 手抓著濕軟拰皺的講稿,身上的衣服早已汗濕,威 爺手抓著下巴,不敢相信事情會演變成現在這個局 面。他用手抓了抓頭,思索到底是哪個環節出了 錯。 「今天應該只是簡單的發佈 lvlib 的早期測試版本, 讓 Maker 們回去試用並回饋意見以供後續版本舖 路。應該只是這樣而已啊 ? 可現在這個場面……」 威爺突然覺得自己像是安隆的主管;等到碧靈大小 姐的開場結束之後,就是自己要被送上斷頭台了。 將濃稠的唾液吞下乾涸的咽喉,威爺用手拉了拉衣 領,瞄了後台方向一眼。 「要跑嗎?」威爺自言自語滴咕著。 「…感謝碧靈小姐! 那現在請威爺上台為大家發佈 這項產品。」威爺的腦袋頓時一片空白。等到回過 神時,自己已經站在講台後方,被一大群觀眾盯著 瞧。 方才熱絡的氣氛宛若雲煙,整場瀰漫抑鬱的低氣壓 以及不滿的低語,像是剛從天堂回到人間後馬上踩 到一坨狗屎;而工程師的座席更傳來毫不掩飾的噓 聲。 「呃…。」威爺顫抖的說:「我很榮幸的向大家宣布, 各位將能從 Robofun 論壇下載到最新的 RoBoIO1.8_lvlib 壓縮檔。」 「…...」全場鴉雀無聲。 威爺:「使用者解壓縮後,可以在資料夾中看 到.mnu 檔與_RoBoIO1.8_lvlib 資料夾…。」
  • 34. 32 「沒圖沒真相啊!」「滾下去!」「蠢貨,叫碧靈大姐 回來!」剛開始會場還只是如蚊蠅般嗡嗡作響,很快 就變成蝗蟲過境般的喧鬧。 威爺:「使用者只需要將這兩者放入 C:Program FilesNational InstrumentsLabVIEW XXuser.lib 資料夾中…」威爺緊抓著眼前講台,宛 若驚濤駭浪中的一塊浮木:「就能在 Functions 的 UserLibraries 面板中看到…」 會場中浮躁的氣氛已然達到臨界點,觀眾席突然開 始躁動並漣漪開來。人群開始離開座位像海嘯朝舞 台湧去,就連工程師們也偷偷拿出棍棒混入人群之 中。 「目前發佈的套件皆適用於 8.6 以上版本,」臨時 搭蓋的舞台像是地震般開始搖動扭曲,威爺整個身 子趴在講台上:「…未未來的更新…新將會…。」 威爺話還不及說完,便被憤怒的人海掩蓋過去。 而 整個舞台也發出陣陣悲鳴,扭曲倒塌在煙塵之 中…….。 (全劇終)