0

0
0

文字

分享

0
0
0

輕鬆使用Android裝置控制樂高機器人:多點觸控

馥林文化_96
・2012/08/21 ・2658字 ・閱讀時間約 5 分鐘 ・SR值 560 ・八年級

立即填寫問卷,預約【課程開賣早鳥優惠】與送你【問卷專屬折扣碼】!

 

文/曾吉弘(CAVE教育團隊

最近溫度屢破新高,還是做一台機器人幫您分勞解憂吧!本期CAVE的App Inventor機器人專欄延續了七月號的[單點觸控],但這次要請您使用左右手的姆指來控制樂高機器人,左手拇指控制機器人左側馬達正反轉動,右手就是右側馬達囉。本範例使用了兩個畫布Canvas元件,分別追蹤畫布上的觸控點的Y軸向變化量後轉換為馬達電力。因此相較於[單點觸控]還用到了atan、sin與cos等三角函數,本次的程式相較之下簡單多了。

圖1  使用左右手拇指在螢幕上滑動。

首先請把NXT機器人準備好,並將左側馬達接在NXT的輸出端B,右側則是輸出端C(註1)。請確認NXT主機的藍牙是啟動的,接著將NXT主機與Android手機進行藍牙配對(註2),完成之後就可以把機器人放到一邊了,啟動藍牙之後您可以從NXT主機的螢幕左上角看到藍牙的符號。

接下來依序介紹程式的各個功能:

STEP1  登入畫面:

首次進入程式的畫面如圖2a,這時觸控板被隱藏起來了,只有 [連線]按鈕可以按,其它所有按鈕都無法操作。點選[連線]按鈕後進入藍牙裝置清單(圖2b),請找到剛剛配對完成的NXT主機名稱(本範例為abc),點選之後就會由Android裝置對NXT主機發起藍牙連線。順利連線成功的話,就可以看到兩個黃色的觸控板出現了,還有可愛的CAVE小圖案(圖2c)。

圖2a(左)  程式首次執行的畫面

圖2b(中)  點選連線按鈕後進入藍牙裝置清單

圖2c(右)  連線成功後出現觸控板

 

STEP2  程式初始化:

接著是在程式初始化(Screen1.Initialize事件)時,將NXTList清單指定為藍牙配對裝置清單(圖3a)。在連線之前之所以無法看到黃色觸控板,是因為我們先將它隱藏起來了,要等到連線成功之後(圖3b)才會顯示觸控板,原本無法按下的「停止」、「Orientation ON」以及「斷線」等按鈕這時也都可以操作了。

圖3a  指定藍牙配對裝置清單並隱藏觸控板。

圖3b  連線成功後開啟觸控板。

 

STEP3  根據方位感測器來旋轉CAVE小圖案:

本次程式多了一個附加功能,就是讓CAVE小圖案根據手機的指向來轉動,這是藉由擷取Android裝置上的方位感測器(Orientation sensor)的Z軸數值所完成的。只要方位感測器的值發生變化,azimuth這個變數就會自動更新,我們將它指定為CAVE小圖案的指向欄位就可以了(ImageSprite_L.Heading與ImageSprite_R.Heading)。

圖4  根據方位感測器值來改變小圖案指向。

 

STEP4  計算馬達電力:

我們使用了兩個Canvas,分別控制機器人的左右兩顆馬達。由於兩側的觸控程式概念是相同的,在此僅說明左側的Canvas_L.Dragged拖拉事件:

1.將Lpower設為(150-CurrentY) / 150,CurrentY就是觸控點的Y座標,Canvas的高度為300像素,這樣一來當手指頭在畫布中央時,Lpower為0,向上移動為正,向下則為負。接著將Lpower數值顯示在標籤LabelB上。

2.使用ImageSprite.MoveTo指令,將XY欄位指定為20與CurrentY-30,這樣就能用手指拉著可愛的CAVE小圖案走。CurrentY-30的原因是因為CAVE小圖案的尺寸為60 x 60,需要30像素的修正量。

注意:由於本範例只使用觸控點的Y軸向變化,因此將X欄位固定為20,即便您左右移動姆指,CAVE小圖案也不會移動。

3.最後將B馬達電力指定為Lpower變數值就可以了,這樣當我們在黃色觸控板上移動左手拇指時,B馬達就會轉動,向上移動為正轉,向下則為反轉,手指頭離螢幕中心愈遠轉愈快。

圖5a  左側Canvas.Dragged拖拉事件。

圖5b  右側Canvas.Dragged拖拉事件。

注意:在右側拖拉事件中我們多使用了一個ceiling四捨五入指令,將計算結果直接取整數。您可以從圖9a~圖9c中看到沒有使用ceiling指令的Lpower值是會有小數點的,Rpower則無小數點。

 

STEP5  /關方位感測器

覺得CAVE小圖案轉來轉去有點頭暈嗎?新增一個Button_Orientation按鈕來開/關方位感測器(OrientationSensor1.Enabled指令),一旦方位感測器被關閉之後,小圖案就會自動歸正(Heading欄位設為0)。請注意,在此我們只是設定方位感測器是否可用,您還是可以拉動CAVE小圖案來控制機器人。

圖6a  藉由Button_Orientation按鈕來開關方位感測器。

圖6b  方位感測器開,CAVE小圖案會根據手機指向而轉動。

圖6c  方位感測器關,CAVE小圖案自動歸正。

 

STEP6  按下停止按鈕:

按下[停止]按鈕之後,會執行三件事:1. 停下機器人;2. 將標籤數值歸零以及3. 使兩個CAVE小圖案歸位。

圖7  按下停止按鈕停下機器人並使ImageSprite歸位。

 

STEP7  斷線:

按下[斷線]按鈕之後,會中止藍牙連線(BluetoothClient.Disconnect指令),並使按鈕恢復到未連線時的狀態,黃色的觸控板也看不到了。這時候您可以再次發起連線。

圖8  按下[斷線]按鈕時中斷藍牙連線。

 

操作:

實際執行的時候,請先確認NXT已經開機且藍牙也啟動了。接著在您的Android裝置上點選程式畫面中的「連線」按鈕,會進到如圖2a的藍牙清單畫面,點選NXT主機名稱連線成功後就會出現兩個黃色觸控板。分別在畫面上移動左右拇指就會讓機器人動起來了,操作方式相當直覺,您一定會喜歡。從觸碰板下方的標籤看到左右馬達的電力值,範圍是-100~100之間。操作過程中您可以隨時點選Button_Orientation按鈕來開關方位感測器。

圖9a  兩個姆指同時往上,機器人前進(方位感測器關閉)。

圖9b  兩個姆指同時往下,機器人後退(方位感測器開啟)。

圖9c  兩個姆指左下右上,機器人原地右轉(方位感測器開啟)。

絕大部分的Android裝置都有多點觸碰的功能,因此我們特別以兩次專欄來介紹如何以單點與雙點來控制樂高機器人的動作。雙點觸控其實只取個別觸控點的Y軸變化,因此程式結構上是比較簡單的。本範例另外新增了方位感測器來使CAVE小圖案跟著手機指向旋轉,我們也可以使用Android手機上的感測器來控制機器人,請繼續注意CAVE的機器人專欄唷!

 

歡迎大家從這連結下載本程式來玩玩看

或掃描以下的QRCode也可以唷!更多有趣的機器人app請在Google Play搜尋「CAVE教育團隊」就找得到了。

註1:機器人運動方向有可能因為車頭指向而和程式設定相反,只要將左右馬達電線互換即可。

註2:將Android手機設定為可安裝非Market下載的程式以及讓手機與樂高NXT主機連線等說明請參考連結

註3: 與NXT連線後如果出現[Error 402]之錯誤訊息請不必理會,程式依然能正確執行。

文章原文刊載於《ROBOCON》國際中文版2012/9月號

 

文章難易度
馥林文化_96
54 篇文章 ・ 6 位粉絲
馥林文化是由泰電電業股份有限公司於2002年成立的出版部門,有鑒於21世紀將是數位、科技、人文融合互動的世代,馥林亦出版科技機械類雜誌及相關書籍。馥林文化出版書籍http://www.fullon.com.tw/

1

133
3

文字

分享

1
133
3
AI 是理科「主場」? AI 也可以成為文科人的助力!
研之有物│中央研究院_96
・2022/08/13 ・5646字 ・閱讀時間約 11 分鐘

立即填寫問卷,預約【課程開賣早鳥優惠】與送你【問卷專屬折扣碼】!

 

本文轉載自中央研究院研之有物,泛科學為宣傳推廣執行單位。

  • 採訪撰文/田偲妤
  • 美術設計/蔡宛潔

AI 的誕生,文理缺一不可

人工智慧(Artificial Intelligence,簡稱 AI)在 21 世紀的今日已大量運用在生活當中,近期掀起熱議的聊天機器人 LaMDA、特斯拉自駕系統、AI 算圖生成藝術品等,都是 AI 技術的應用。多數 AI 的研發秉持改善人類生活的人文思維,除了仰賴工程師的先進技術,更需要人文社會領域人才的加入。

中央研究院「研之有物」專訪院內人文社會科學研究中心蔡宗翰研究員,帶大家釐清什麼是 AI?文科人與工程師合作時,需具備什麼基本 AI 知識?AI 如何應用在人文社會領域的工作當中?

中央研究院人文社會科學研究中心蔡宗翰研究員。圖/研之有物

詩詞大對決:人與 AI 誰獲勝?

一場緊張刺激的詩詞對決在線上展開!人類代表是有「AI 界李白」稱號的蔡宗翰研究員,AI 代表則是能秒速成詩的北京清華九歌寫詩機器人,兩位以「人工智慧」、「類神經」為命題創作七言絕句,猜猜看以下兩首詩各是誰的創作?你比較喜歡哪一首詩呢?

猜猜哪首詩是 AI 做的?哪首詩是人類做的?圖/研之有物

答案揭曉!A 詩是蔡宗翰研究員的創作,B 詩是寫詩機器人的創作。細細賞讀可發覺,A 詩的內容充滿巧思,為了符合格律,將「類神經」改成「類審經」;詩中的「福落天赦」是「天赦福落」的倒裝,多念幾次會發現,原來是 Google 開發的機器學習開源軟體庫「Tensor Flow」的音譯;而「拍拓曲」則是 Facebook 開發的機器學習庫「Pytorch」的音譯,整首詩創意十足,充滿令人會心一笑的魅力!

相較之下,B 詩雖然有將「人工」兩字穿插引用在詩中,但整體內容並沒有呼應命題,只是在詩的既有框架內排列字句。這場人機詩詞對決明顯由人類獲勝!

由此可見,當前的 AI 缺乏創作所需的感受力與想像力,無法做出超越預先設定的創意行為。然而,在不久的將來,AI 是否會逐漸產生情感,演變成電影《A.I. 人工智慧》中渴望人類關愛的機器人?

AI 其實沒有想像中聰明?

近期有一則新聞「AI 有情感像 8 歲孩童?Google 工程師爆驚人對話遭停職」,讓 AI 是否已發展出「自我意識」再度成為眾人議論的焦點。蔡宗翰研究員表示:「當前的 AI 還是要看過資料、或是看過怎麼判讀資料,經過對應問題與答案的訓練才能夠運作。換而言之,AI 無法超越程式,做它沒看過的事情,更無法替人類主宰一切!

會產生 AI 可能發展出情感、甚至主宰人類命運的傳言,多半是因為我們對 AI 的訓練流程認識不足,也缺乏實際使用 AI 工具的經驗,因而對其懷抱戒慎恐懼的心態。這種狀況特別容易發生在文科人身上,更延伸到文科人與理科人的合作溝通上,因不了解彼此領域而產生誤會與衝突。如果文科人可以對 AI 的研發與應用有基本認識,不僅能讓跨領域的合作更加順利,還能在工作中應用 AI 解決許多棘手問題。

「職場上常遇到的狀況是,由於文科人不了解 AI 的訓練流程,因此對 AI 產生錯誤的期待,認為辛苦標注的上千筆資料,應該下個月就能看到成果,結果還是錯誤百出,準確率卡在 60、70% 而已。如果工程師又不肯解釋清楚,兩方就會陷入僵局,導致合作無疾而終。」蔡宗翰研究員分享多年的觀察與建議:

如果文科人了解基本的 AI 訓練流程,並在每個訓練階段協助分析:錯誤偏向哪些面向?AI 是否看過這方面資料?文科人就可以補充缺少的資料,讓 AI 再進行更完善的訓練。

史上最認真的學生:AI

認識 AI 的第一步,我們先從分辨什麼是 AI 做起。現在的數位工具五花八門,究竟什麼才是 AI 的應用?真正的 AI 有什麼樣的特徵?

基本上,有「預測」功能的才是 AI,你無法得知每次 AI 會做出什麼判斷。如果只是整合資料後視覺化呈現,而且人類手工操作就辦得到,那就不是 AI。

數位化到 AI 自動化作業的進程與舉例。圖/研之有物

蔡宗翰研究員以今日常見的語音辨識系統為例,大家可以試著對 Siri、Line 或 Google 上的語音辨識系統講一句話,你會發現自己無法事先知曉將產生什麼文字或回應,結果可能正是你想要的、也可能牛頭不對馬嘴。此現象點出 AI 與一般數位工具最明顯的不同:AI 無法百分之百正確!

因此,AI 的運作需建立在不斷訓練、測試與調整的基礎上,盡量維持 80、90% 的準確率。在整個製程中最重要的就是訓練階段,工程師彷彿化身老師,必須設計一套學習方法,提供有助學習的豐富教材。而 AI 則是史上最認真的學生,可以穩定、一字不漏、日以繼夜地學習所有課程。

AI 的學習方法主要分為「非監督式學習」、「監督式學習」。非監督式學習是將大批資料提供給 AI,讓其根據工程師所定義的資料相似度算法,逐漸學會將相似資料分在同一堆,再由人類檢視並標注每堆資料對應的類別,進而產生監督式學習所需的訓練資料。而監督式學習則是將大批「資料」和「答案」提供給 AI,讓其逐漸學會將任意資料對應到正確答案。

圖/研之有物

學習到一定階段後,工程師會出試題,測試 AI 的學習狀況,如果成績只有 60、70 分,AI 會針對答錯的地方調整自己的觀念,而工程師也應該與專門領域專家一起討論,想想是否需補充什麼教材,讓 AI 的準確率可以再往上提升。

就算 AI 最後通過測試、可以正式上場工作,也可能因為時事與技術的推陳出新,導致準確率下降。這時,AI 就要定時進修,針對使用者回報的錯誤進行修正,不斷補充新的學習內容,讓自己可以跟得上最新趨勢。

在了解 AI 的基本特徵與訓練流程後,蔡宗翰研究員建議:文科人可以看一些視覺化的操作影片,加深對訓練過程的認識,並實際參與檢視與標注資料的過程。現在網路上也有很多 playground,可以讓初學者練習怎麼訓練 AI,有了上述基本概念與實務經驗,就可以跟工程師溝通無礙了。

AI 能騙過人類,全靠「自然語言處理」

AI 的應用領域相當廣泛,而蔡宗翰研究員專精的是「自然語言處理」。問起當初想投入該領域的原因,他充滿自信地回答:因為自然語言處理是「AI 皇冠上的明珠」!這顆明珠開創 AI 發展的諸多可能性,可以快速讀過並分類所有資料,整理出能快速檢索的結構化內容,也可以如同真人般與人類溝通。

著名的「圖靈測試」(Turing Test)便證明了自然語言處理如何在 AI 智力提升上扮演關鍵角色。1950 年代,傳奇電腦科學家艾倫・圖靈(Alan Turing)設計了一個實驗,用來測試 AI 能否表現出與人類相當的智力水準。首先實驗者將 AI 架設好,並派一個人操作終端機,再找一個第三者來進行對話,判斷從終端機傳入的訊息是來自 AI 或真人,如果第三者無法判斷,代表 AI 通過測試。

圖靈測試:AI(A)與真人(B)同時傳訊息給第三者(C),如果 C 分不出訊息來自 A 或 B,代表 AI 通過實驗。圖/研之有物

換而言之,AI 必須擁有一定的智力,才可能成功騙過人類,讓人類不覺得自己在跟機器對話,而這有賴自然語言處理技術的精進。目前蔡宗翰的研究團隊有將自然語言處理應用在:人文研究文本分析、新聞真偽查核,更嘗試以合成語料訓練臺灣人專用的 AI 語言模型。

讓 AI 替你查資料,追溯文本的起源

目前幾乎所有正史、許多地方志都已經數位化,而大量數位化的經典更被主動分享到「Chinese Text Project」平台,讓 AI 自然語言處理有豐富的文本資料可以分析,包含一字不漏地快速閱讀大量文本,進一步畫出重點、分門別類、比較相似之處等功能,既節省整理文本的時間,更能橫跨大範圍的文本、時間、空間,擴展研究的多元可能性。

例如我們想了解經典傳說《白蛇傳》是怎麼形成的?就可以應用 AI 進行文本溯源。白蛇傳的故事起源於北宋,由鎮江、杭州一帶的說書人所創作,著有話本《西湖三塔記》流傳後世。直至明代馮夢龍的《警世通言》二十八卷〈白娘子永鎮雷峰塔〉,才讓流傳 600 年的故事大體成型。

我們可以透過「命名實體辨識技術」標記文本中的人名、地名、時間、職業、動植物等關鍵故事元素,接著用這批標記好的語料來訓練 BERT 等序列標注模型,以便將「文本向量化」,進而找出給定段落與其他文本的相似之處。

經過多種文本的比較之後發現,白蛇傳的原型可追溯自印度教的那伽蛇族故事,傳說那伽龍王的三女兒轉化成佛、輔佐觀世音,或許與白蛇誤食舍利成精的概念有所關連,推測印度神話應該是跟著海上絲路傳進鎮江與杭州等通商口岸。此外,故事的雛型可能早從唐代便開始醞釀,晚唐傳奇《博異志》便記載了白蛇化身美女誘惑男子的故事,而法海和尚、金山寺等關鍵人物與景點皆真實存在,金山寺最初就是由唐宣宗時期的高僧法海所建。

白蛇傳中鎮壓白娘子的雷峰塔。最早為五代吳越王錢俶於 972 年建造,北宋宣和二年(1120 年)曾因戰亂倒塌,大致為故事雛形到元素齊全的時期。照片中雷峰塔為 21 世紀重建。圖/Wikimedia

在 AI 的協助之下,我們得以跨時空比較不同文本,了解說書人如何結合印度神話、唐代傳奇、在地的真人真事,創作出流傳千年的白蛇傳經典。

最困難的挑戰:AI 如何判斷假新聞

除了應用在人文研究文本分析,AI 也可以查核新聞真偽,這對假新聞氾濫的當代社會是一大福音,但對 AI 來說可能是最困難的挑戰!蔡宗翰研究員指出 AI 的弱點:

如果是答案和數據很清楚的問題,就比較好訓練 AI。如果問題很複雜、變數很多,對 AI 來說就會很困難!

困難點在於新聞資訊的對錯會變動,可能這個時空是對的,另一個時空卻是錯的。雖然坊間有一些以「監督式學習」、「文本分類法」訓練出的假新聞分類器,可輸入當前的新聞讓機器去判讀真假,但過一段時間可能會失準,因為新的資訊源源不絕出現。而且道高一尺、魔高一丈,當 AI 好不容易能分辨出假新聞,製造假新聞的人就會破解偵測,創造出 AI 沒看過的新模式,讓先前的努力功虧一簣。

因此,現在多應用「事實查核法」,原理是讓 AI 模仿人類查核事實的過程,尋找權威資料庫中有無類似的陳述,可用來支持新聞上描述的事件、主張與說法。目前英國劍橋大學為主的學者群、Facebook 與 Amazon 等業界研究人員已組成 FEVEROUS 團隊,致力於建立英文事實查核法模型所能運用的資源,並透過舉辦國際競賽,廣邀全球學者專家投入研究。

蔡宗翰教授團隊 2021 年參加 FEVEROUS 競賽勇奪全球第三、學術團隊第一後,也與合作夥伴事實查核中心及資策會討論,正著手建立中文事實查核法模型所需資源。預期在不久的將來,AI 就能幫讀者標出新聞中所有說法的資料來源,節省讀者查證新聞真偽的時間。

AI 的無限可能:專屬於你的療癒「杯麵」

想像與 AI 共存的未來,蔡宗翰研究員驚嘆於 AI 的學習能力,只要提供夠好、夠多的資料,幾乎都可以訓練到讓人驚訝的地步!圖/研之有物

AI 的未來充滿無限可能,不僅可以成為分類與查證資料的得力助手,還能照護並撫慰人類的心靈,這對邁入高齡化社會的臺灣來說格外重要!許多青壯年陷入三明治人(上有老、下有小要照顧)的困境,期待有像動畫《大英雄天團》的「杯麵」(Baymax)機器人出現,幫忙分擔家務、照顧家人,在身心勞累時給你一個溫暖的擁抱。

機器人陪伴高齡者已是現在進行式,新加坡南洋理工大學 Gauri Tulsulkar 教授等學者於 2021 年發表了一項部署在長照機構的機器人實驗。這名外表與人類相似的機器人叫「娜丁」(Nadine),由感知、處理、互動等三層架構組成,可以透過麥克風、3D和網路鏡頭感知用戶特徵、所處環境,並將上述資訊發送到處理層。處理層會依據感知層提供的資訊,連結該用戶先前與娜丁互動的記憶,讓互動層可以進行適當的對話、變化臉部表情、用手勢做出反應。

長照機構的高齡住戶多數因身心因素、長期缺乏聊天對象,或對陌生事物感到不安,常選擇靜默不語,需要照護者主動引導。因此,娜丁內建了注視追蹤模型,當偵測到住戶已長時間處於被動狀態,就會自動發起話題。

實驗發現,在娜丁進駐長照機構一段時間後,住戶有一半的天數會去找她互動,而娜丁偵測到的住戶情緒多為微笑和中性,其中有 8 位認知障礙住戶的溝通能力與心理狀態有明顯改善。

照護機器人娜丁的運作架構。圖/研之有物

至於未來的改進方向,研究團隊認為「語音辨識系統」仍有很大的改進空間,需要讓機器人能配合老年人緩慢且停頓較長的語速,音量也要能讓重聽者可以清楚聽見,並加強對方言與多語混雜的理解能力。

臺灣如要發展出能順暢溝通的機器人,首要任務就是要開發一套臺灣人專用的 AI 語言模型,包含華語、臺語、客語、原住民語及混合以上兩種語言的理解引擎。這需花費大量人力與經費蒐集各種語料、發展預訓練模型,期待政府能整合學界與業界的力量,降低各行各業導入 AI 相關語言服務的門檻。

或許 AI 無法發展出情感,但卻可以成為人類大腦的延伸,協助我們節省處理資料的時間,更可以心平氣和地回應人們的身心需求。與 AI 共存的未來即將來臨,如何讓自己的行事邏輯跟上 AI 時代,讓 AI 成為自己的助力,是值得你我關注的課題。

延伸閱讀

文章難易度
所有討論 1
研之有物│中央研究院_96
253 篇文章 ・ 2220 位粉絲
研之有物,取諧音自「言之有物」,出處為《周易·家人》:「君子以言有物而行有恆」。探索具體研究案例、直擊研究員生活,成為串聯您與中研院的橋梁,通往博大精深的知識世界。 網頁:研之有物 臉書:研之有物@Facebook

0

5
2

文字

分享

0
5
2
史上第一個全裸出演電影的好萊塢巨星,也是Wi-Fi與藍牙技術的奠基者——海蒂.拉瑪
椀濘_96
・2022/03/14 ・2501字 ・閱讀時間約 5 分鐘

立即填寫問卷,預約【課程開賣早鳥優惠】與送你【問卷專屬折扣碼】!

 

做測驗,就有機會獲得免費特製手搖飲品,現場還有大獎等你抽!

她是全球知名好萊塢影星,同時也是發明「展頻技術」(Spread Spectrum;過去稱為秘密通訊系統)的關鍵人物,更被人尊稱為「Wifi 之母」、「藍牙之母」,鮮明的性格、亮麗的外表(她真的很漂亮)、才能與智慧,造就了海蒂.拉瑪戲劇性的一生。

海蒂.拉瑪(Hedy Lamarr,1914-2000)的原名為海德薇希.愛娃.瑪麗亞.基斯勒(Hedwig Eva Maria Kiesler),是個出生於奧地利的匈牙利猶太後裔,父親是維也納知名的銀行家,母親則為一名鋼琴家。

Hedy Lamarr(1914-2000)。圖/Wikipedia

為夢想勇敢前進電影產業

少女時期的海蒂.拉瑪被電影吸引,便毅然決然放棄了當時仍在學習的通訊專業,退學後的她學了鋼琴、芭蕾,幸運地被導演馬克斯.萊因哈特挖掘,將她帶到了位於柏林的表演學校,先是由場記員做起,闖蕩電影界。

1930 年,年僅 17 歲的海蒂.拉瑪出演了她的第一部電影,之後陸陸續續拍攝了多部作品,其中讓她從此聲名大噪的,是在 1933 年的捷克電影《神魂顛倒》(Ecstasy),劇中她不畏世俗眼光,為戲裸泳及全裸在森林奔跑,這也使她成為了第一位在螢光幕前全裸出鏡的女主角。事後海蒂.拉瑪回憶起這部作品:「你用你的想像力,便可以看到任何女演員及她的裸體。」

成名不久後,她便結識了第一任丈夫——弗里茨.曼德爾,是一名奧地利的軍火商。由於生意上的往來,海蒂.拉瑪因此可以在招待客戶時,從旁聽聞丈夫與買賣方之間的交談,這便促成了她擁有無線電通訊知識的機緣。

儘管生活富裕,然而婚後的海蒂.拉瑪並不快樂,處處遭受限制,甚至連熱愛的電影產業也被禁止涉足。1930 年代納粹滲透奧地利,海蒂.拉瑪堅決反對納粹,但身為猶太人的丈夫卻與希特勒及墨索里尼等法西斯主義份子做交易、打交道,終於讓海蒂.拉瑪下定決心逃離不愉快的婚姻生活。

在逃離到倫敦後,結識了老牌電影公司米高梅創始人之一路易.梅耶,他與海蒂.拉瑪簽訂了一份長達七年的影視合約,前往美國踏上好萊塢演藝之路。她由於電影《神魂顛倒》受到不少批評,也是在此時將名字改為我們所熟知的海蒂.拉瑪。隨後便在好萊塢參與多部影視作品,出演許多受人歡迎的電影,成為家喻戶曉的女星,紅極一時。

重新踏入電影產業的海蒂.拉瑪。圖/Wikipedia

1940 年海蒂.拉瑪在聚會上認識了鋼琴家喬治.安塞爾,就在兩人聊天時,她想起了軍火商前夫曾與納粹官員談起如何操控魚雷的內容……。

發明展頻技術

就在某次聽安塞爾彈奏鋼琴時,看著按壓不同琴鍵就能使聲音有所變化,於是海蒂.拉瑪聯想起,直接用無線遙控魚雷,就很容易使之被相同頻率的信號干擾,造成魚雷偏離目標,既然改變鋼琴鍵能直接改變聲音,那麼同理,如果是直接改變無線電信號的頻率就能改變發出的信號!若不停地隨機改變信號頻率,因敵人干擾而影響魚雷的機會就會減少很多。

做為專業且優秀的音樂家,安塞爾想出了具體的實施方法,他曾使用了 16 架自動演奏鋼琴創作了《機械芭蕾》(Ballet Mecanique)一曲,而自動鋼琴的原理為,以打孔紙卷來記錄音譜,透過裝置捲動紙軸,紙卷上的孔位與驅動機械連動,使相對應的裝置擊琴鍵,從而演奏出音樂。

運用自動演奏鋼琴的原理,在魚雷的接收器和艦船發射器內安裝相同編碼的滾筒,在兩者同步運轉時調整頻率,就可以達成透過載波快速切換不同頻率,使得接收端與發射端產生偽隨機(後稱此技術為跳頻展頻;Frequency-hopping spread spectrum, FHSS)。

兩人在 1941 年時向美國專利商標局(USPTO)提出專利申請,並將這項技術發明命名為「秘密通訊系統」(Secret Communications System),隔年順利通過,專利號為 2292387,就是我們現在的展頻技術(Spread Spectrum),值得一提的是,他們共使用了 88 種頻率,而鋼琴鍵數就是 88。

藉由聽鋼琴演奏發明展頻技術。圖/Pexels

由於該技術是由演員與音樂家所發明的,期望為戰爭貢獻心力的兩人,此項發想在當時難以說服軍方使用。但兩人還是將專利無償提供給美國軍方使用,也自行支付相關的專利維護費用,而當時的電子科技發展仍無法支持這樣的技術,一直到冷戰時期,電晶體發明後才真正被運用於軍事上。

成為無線電通信技術發展的基礎

日後展頻技術被應用到眾多無線電通信中,分碼多工存取(Code Division Multiple Acces, CDMA)、無線區域網路(WLAN)、Wi-Fi 與藍牙都是基於此技術發明出的。

海蒂.拉瑪與安塞爾並沒有繼續深入研究他們的發明,而上述新技術與海蒂與安塞爾的專利雖有相通之處,但都沒有觸及其專利權,兩人終其一生未因此專利獲得任一分錢,即便至近年 ,這項技術還是被許多專利所引用。

在這項發明專利公布的 56 年後,1997 年兩人的成就才終於獲得電子前線基金會(Electronic Frontier Foundation;EFF)榮譽技術獎章殊榮,2014 年兩人被選入美國發明家名人堂,直到現代,海蒂.拉瑪才真正獲得世人廣泛的認同。

後記:

在讀完海蒂.拉瑪的故事後,筆者思考起,儘管海蒂.拉瑪不像大眾所熟悉的發明家、科學家,擁有豐富的學識背景,甚至是圈子裡優秀出眾的學者,然而她從生活中發現了他人不曾想過的,也確實把它實踐了,讓以為距離遙遠的科學發明,也有了浪漫親近的一面。

參考資料:

0

0
0

文字

分享

0
0
0
輕鬆使用Android裝置控制樂高機器人:多點觸控
馥林文化_96
・2012/08/21 ・2658字 ・閱讀時間約 5 分鐘 ・SR值 560 ・八年級

立即填寫問卷,預約【課程開賣早鳥優惠】與送你【問卷專屬折扣碼】!

 

文/曾吉弘(CAVE教育團隊

最近溫度屢破新高,還是做一台機器人幫您分勞解憂吧!本期CAVE的App Inventor機器人專欄延續了七月號的[單點觸控],但這次要請您使用左右手的姆指來控制樂高機器人,左手拇指控制機器人左側馬達正反轉動,右手就是右側馬達囉。本範例使用了兩個畫布Canvas元件,分別追蹤畫布上的觸控點的Y軸向變化量後轉換為馬達電力。因此相較於[單點觸控]還用到了atan、sin與cos等三角函數,本次的程式相較之下簡單多了。

圖1  使用左右手拇指在螢幕上滑動。

首先請把NXT機器人準備好,並將左側馬達接在NXT的輸出端B,右側則是輸出端C(註1)。請確認NXT主機的藍牙是啟動的,接著將NXT主機與Android手機進行藍牙配對(註2),完成之後就可以把機器人放到一邊了,啟動藍牙之後您可以從NXT主機的螢幕左上角看到藍牙的符號。

接下來依序介紹程式的各個功能:

STEP1  登入畫面:

首次進入程式的畫面如圖2a,這時觸控板被隱藏起來了,只有 [連線]按鈕可以按,其它所有按鈕都無法操作。點選[連線]按鈕後進入藍牙裝置清單(圖2b),請找到剛剛配對完成的NXT主機名稱(本範例為abc),點選之後就會由Android裝置對NXT主機發起藍牙連線。順利連線成功的話,就可以看到兩個黃色的觸控板出現了,還有可愛的CAVE小圖案(圖2c)。

圖2a(左)  程式首次執行的畫面

圖2b(中)  點選連線按鈕後進入藍牙裝置清單

圖2c(右)  連線成功後出現觸控板

 

STEP2  程式初始化:

接著是在程式初始化(Screen1.Initialize事件)時,將NXTList清單指定為藍牙配對裝置清單(圖3a)。在連線之前之所以無法看到黃色觸控板,是因為我們先將它隱藏起來了,要等到連線成功之後(圖3b)才會顯示觸控板,原本無法按下的「停止」、「Orientation ON」以及「斷線」等按鈕這時也都可以操作了。

圖3a  指定藍牙配對裝置清單並隱藏觸控板。

圖3b  連線成功後開啟觸控板。

 

STEP3  根據方位感測器來旋轉CAVE小圖案:

本次程式多了一個附加功能,就是讓CAVE小圖案根據手機的指向來轉動,這是藉由擷取Android裝置上的方位感測器(Orientation sensor)的Z軸數值所完成的。只要方位感測器的值發生變化,azimuth這個變數就會自動更新,我們將它指定為CAVE小圖案的指向欄位就可以了(ImageSprite_L.Heading與ImageSprite_R.Heading)。

圖4  根據方位感測器值來改變小圖案指向。

 

STEP4  計算馬達電力:

我們使用了兩個Canvas,分別控制機器人的左右兩顆馬達。由於兩側的觸控程式概念是相同的,在此僅說明左側的Canvas_L.Dragged拖拉事件:

1.將Lpower設為(150-CurrentY) / 150,CurrentY就是觸控點的Y座標,Canvas的高度為300像素,這樣一來當手指頭在畫布中央時,Lpower為0,向上移動為正,向下則為負。接著將Lpower數值顯示在標籤LabelB上。

2.使用ImageSprite.MoveTo指令,將XY欄位指定為20與CurrentY-30,這樣就能用手指拉著可愛的CAVE小圖案走。CurrentY-30的原因是因為CAVE小圖案的尺寸為60 x 60,需要30像素的修正量。

注意:由於本範例只使用觸控點的Y軸向變化,因此將X欄位固定為20,即便您左右移動姆指,CAVE小圖案也不會移動。

3.最後將B馬達電力指定為Lpower變數值就可以了,這樣當我們在黃色觸控板上移動左手拇指時,B馬達就會轉動,向上移動為正轉,向下則為反轉,手指頭離螢幕中心愈遠轉愈快。

圖5a  左側Canvas.Dragged拖拉事件。

圖5b  右側Canvas.Dragged拖拉事件。

注意:在右側拖拉事件中我們多使用了一個ceiling四捨五入指令,將計算結果直接取整數。您可以從圖9a~圖9c中看到沒有使用ceiling指令的Lpower值是會有小數點的,Rpower則無小數點。

 

STEP5  /關方位感測器

覺得CAVE小圖案轉來轉去有點頭暈嗎?新增一個Button_Orientation按鈕來開/關方位感測器(OrientationSensor1.Enabled指令),一旦方位感測器被關閉之後,小圖案就會自動歸正(Heading欄位設為0)。請注意,在此我們只是設定方位感測器是否可用,您還是可以拉動CAVE小圖案來控制機器人。

圖6a  藉由Button_Orientation按鈕來開關方位感測器。

圖6b  方位感測器開,CAVE小圖案會根據手機指向而轉動。

圖6c  方位感測器關,CAVE小圖案自動歸正。

 

STEP6  按下停止按鈕:

按下[停止]按鈕之後,會執行三件事:1. 停下機器人;2. 將標籤數值歸零以及3. 使兩個CAVE小圖案歸位。

圖7  按下停止按鈕停下機器人並使ImageSprite歸位。

 

STEP7  斷線:

按下[斷線]按鈕之後,會中止藍牙連線(BluetoothClient.Disconnect指令),並使按鈕恢復到未連線時的狀態,黃色的觸控板也看不到了。這時候您可以再次發起連線。

圖8  按下[斷線]按鈕時中斷藍牙連線。

 

操作:

實際執行的時候,請先確認NXT已經開機且藍牙也啟動了。接著在您的Android裝置上點選程式畫面中的「連線」按鈕,會進到如圖2a的藍牙清單畫面,點選NXT主機名稱連線成功後就會出現兩個黃色觸控板。分別在畫面上移動左右拇指就會讓機器人動起來了,操作方式相當直覺,您一定會喜歡。從觸碰板下方的標籤看到左右馬達的電力值,範圍是-100~100之間。操作過程中您可以隨時點選Button_Orientation按鈕來開關方位感測器。

圖9a  兩個姆指同時往上,機器人前進(方位感測器關閉)。

圖9b  兩個姆指同時往下,機器人後退(方位感測器開啟)。

圖9c  兩個姆指左下右上,機器人原地右轉(方位感測器開啟)。

絕大部分的Android裝置都有多點觸碰的功能,因此我們特別以兩次專欄來介紹如何以單點與雙點來控制樂高機器人的動作。雙點觸控其實只取個別觸控點的Y軸變化,因此程式結構上是比較簡單的。本範例另外新增了方位感測器來使CAVE小圖案跟著手機指向旋轉,我們也可以使用Android手機上的感測器來控制機器人,請繼續注意CAVE的機器人專欄唷!

 

歡迎大家從這連結下載本程式來玩玩看

或掃描以下的QRCode也可以唷!更多有趣的機器人app請在Google Play搜尋「CAVE教育團隊」就找得到了。

註1:機器人運動方向有可能因為車頭指向而和程式設定相反,只要將左右馬達電線互換即可。

註2:將Android手機設定為可安裝非Market下載的程式以及讓手機與樂高NXT主機連線等說明請參考連結

註3: 與NXT連線後如果出現[Error 402]之錯誤訊息請不必理會,程式依然能正確執行。

文章原文刊載於《ROBOCON》國際中文版2012/9月號

 

文章難易度
馥林文化_96
54 篇文章 ・ 6 位粉絲
馥林文化是由泰電電業股份有限公司於2002年成立的出版部門,有鑒於21世紀將是數位、科技、人文融合互動的世代,馥林亦出版科技機械類雜誌及相關書籍。馥林文化出版書籍http://www.fullon.com.tw/

0

0
0

文字

分享

0
0
0
輕鬆使用Android裝置控制樂高機器人:「說」出機器人感測器的狀態
馥林文化_96
・2013/04/22 ・2764字 ・閱讀時間約 5 分鐘 ・SR值 523 ・七年級

立即填寫問卷,預約【課程開賣早鳥優惠】與送你【問卷專屬折扣碼】!

 

文/曾吉弘(CAVE教育團隊

我們已經在前兩期的專欄中(2013年1月號、2013年3月號)介紹如何用Android手機上的姿態感測器來控制樂高機器人。搭配手機的感測器,您可以像玩Wii遊戲機一樣,以體感的方式來與機器人互動。本次專欄將使用App Inventor中的TextToSpeech元件(本文後簡稱TTS元件),讓手機「說」出機器人感測器的狀態(圖1)。程式執行的過程中,我們還可以即時更改感測器的類型,是很實用的功能呢!

App Inventor的TextToSpeech元件可以讓Android手機以語音方式輸出指定的文字或數值內容,本範例就是讓手機每秒播報一次感測器數值。除此之外還可指定語系與國家,預設值是eng(英語)與USA(美國),代表美式英語。您可以參考App Inventor中文學習網來改為其他歐陸語系,例如德語、法語或義大利語,會有更有趣的效果。

圖1 讓TextToSpeech元件說「hello」。

請注意!目前App Inventor不支援中文等亞洲語系的語音輸出。

開始玩機器人

請把NXT機器人組裝好,並將左側馬達接在NXT的輸出端B,右側則是輸出端C(註1)。請確認NXT主機的藍牙是啟動的,接著將NXT主機與Android手機進行藍牙配對(註2),完成之後就可以把機器人放到一邊了。啟動藍牙之後您可以從NXT主機的螢幕左上角看到藍牙的符號。

接下來依序介紹程式的各個功能:

STEP1  登入畫面:

首次進入程式的畫面如圖2a,只有「NXT裝置清單/連線」按鈕可以按,其它所有按鈕都無法操作。點選[NXT裝置清單/連線]按鈕後進入藍牙裝置清單(圖2b),請找到剛剛配對完成的NXT主機名稱(本範例為abc),點選之後就會由Android裝置對NXT主機發起藍牙連線。順利連線成功的話,就可接續選擇感測器類型(圖2c)。

圖2a 程式首次執行的畫面。 圖2b 點選連線按鈕後進入藍牙裝置清單。 圖2c 連線成功後才可選擇感測器類型。

STEP2  程式初始化:

在點選連線清單之前(ListPickerConnect的BeforePicking事件),需先將清單內容指定為Android裝置上的藍牙配對清單(圖3a)。點選之後則先測試連線是否成功,成功則將「選擇感測器」與「開始念/停止」設為可點選(圖3b)。

圖3a 指定藍牙配對裝置清單。

圖3b 連線成功後啟動相關元件。

STEP3 選擇感測器類型:

為了節省畫面空間,我們使用了Listpicker搭配清單來達到下拉式選單的效果。首先需要宣告一個清單,內容為(color.jpg, sound.jpg, light.jpg, ultra.jpg),就是使用的感測器圖檔名稱(圖4a)。編號index則依序由1到4。本範例就是使用這個編號來更改顯示的圖片與感測器類型。

由圖4b中可看到當我們點選了要使用的感測器之後,就要把「開始念/停止」按鈕設為可點選,代表我們準備好要念出感測器數值了。另外還把這個編號所代表的項目內容顯示在畫面上,最後則將Image元件的圖片換成這個編號所代表的圖檔(select list item指令)。例如圖4a中的sensorList清單中的第3號的項目內容就是「light.jpg」。

圖4a 宣告一個陣列來存放圖檔。

圖4b 點選感測器類型之前與之後事件。

注意!List清單實際上就是一般程式語言中的陣列(array),App Inventor使用了較為親民的用語。另外n個項目的陣列其項目編號是由0到n-1,App Inventor則是1到n。

STEP4  根據選擇的感測器類型來控制TTS元件播報內容:

選擇感測器類型,實際上就是在ListPicker_SensorList中點選了某個項目,接著就要根據這個項目的編號index(請注意,不是項目內容!)來決定TTS元件的播報內容。在此我們使用一個副程式say來管理程式,讓程式更簡明易懂。在say副程式中,它會藉由接收到的sensor參數(也就是傳入的編號index)來決定TTS元件的播報內容與TextBox/Label的顯示內容。請看圖5說明:

圖5 say副程式中透過使用者所點選的項目編號來決定執行內容。

STEP5  使用Clock元件來控制TTS元件:

我們將Clock元件的TimerInterval設定為2000毫秒,代表每兩秒呼叫一次say副程式,並傳入剛才所點選的感測器類型編號(SelectionIndex)。這樣就能控制TTS元件的播報內容與TextBox/Label的顯示內容(圖6)。

圖6 透過點選項目的編號來呼叫say副程式。

STEP6  開始/停止播報感測器數值:

如果在尚未建立與機器人的藍牙連線之前就要TTS念些什麼的話,就會得到-1 這個討厭的數值。所以我們使用「開始念/停止」按鈕來啟動或關閉Clock元件,並將現在的播報狀態(STOPSPEAKING)顯示在手機的狀態列。您可以隨時用這個按鈕來決定停止或繼續播報資料(圖7)。

圖7點選按鈕來啟動/關閉計時器。

STEP7  斷線:

按下「斷線」按鈕之後,會中止藍牙連線(BluetoothClient.Disconnect指令),並使按鈕恢復到未連線時的狀態(圖8)。

圖8 按下「斷線」按鈕時中斷藍牙連線。

操作

實際執行的時候,請先確認NXT已經開機且藍牙也啟動了,並將顏色、聲音、光與超音波感測器依序接在NXT主機的1到4號輸入端。接著在您的Android裝置上點選程式畫面中的「連線」按鈕,會進到如圖4b的藍牙清單畫面,點選您所要的NXT主機名稱並連線成功後,接著選擇感測器類型,點選之後會顯示對應的感測器圖片與名稱,如圖9所示。

圖9 連線成功後,可選擇不同的感測器,會顯示不同圖案與字樣。

最後點選旁邊的「開始念/停止」按鈕就可以聽到手機把感測器數值念出來了。以下是選擇超音波感測器時的畫面,畫面也會同時顯示數值為58(圖10)。

圖10 手機開始唸出感測器數值,並顯示在畫面上。

TTS元件是用來語音輸出的元件,它可以說出我們所指定的內容,包括文字與數字。您可以讓機器人用說的方式來呈現它的狀況,例如撞到牆壁時,可以說出「Ouch!」等趣味效果。期待您從本期專欄的內容來激盪出更多有趣的火花。請繼續關注CAVE的機器人專欄唷!

 

歡迎大家由此連結下載本程式來玩玩看,或掃描以下的QRCode也可以直接將檔案下載到手機。或到App Inventor中文教學網上直接下載本範例的App Inventor原始檔與apk安裝檔。本程式已上架Google play,請到Google Play搜尋「CAVE教育團隊」就找得到我們的樂高機器人系列app了。

註1:想學如何開發App Inventor程式嗎?請到App Inventor中文學習網與我們一同學習。
註2:將Android手機設定為可安裝非Google Play下載的程式以及讓手機與樂高NXT主機連線等說明請參考此連結
註3:與NXT連線後如果出現[Error 402]之錯誤訊息請不必理會,程式依然能正確執行。

文章原文刊載於《ROBOCON》國際中文版2013/5月號

馥林文化_96
54 篇文章 ・ 6 位粉絲
馥林文化是由泰電電業股份有限公司於2002年成立的出版部門,有鑒於21世紀將是數位、科技、人文融合互動的世代,馥林亦出版科技機械類雜誌及相關書籍。馥林文化出版書籍http://www.fullon.com.tw/