網站更新隱私權聲明
本網站使用 cookie 及其他相關技術分析以確保使用者獲得最佳體驗,通過我們的網站,您確認並同意本網站的隱私權政策更新,了解最新隱私權政策

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/


0

9
3

文字

分享

0
9
3

揭開人體的基因密碼!——「基因定序」是實現精準醫療的關鍵工具

科技魅癮_96
・2021/11/16 ・1998字 ・閱讀時間約 4 分鐘

為什麼有些人吃不胖,有些人沒抽菸卻得肺癌,有些人只是吃個感冒藥就全身皮膚紅腫發癢?這一切都跟我們的基因有關!無論是想探究生命的起源、物種間的差異,乃至於罹患疾病、用藥的風險,都必須從了解基因密碼著手,而揭開基因密碼的關鍵工具就是「基因定序」技術。

揭開基因密碼的關鍵工具就是「基因定序」技術。圖/科技魅癮提供

基因定序對人類生命健康的意義

在歷史上,DNA 解碼從 1953 年的華生(James Watson)與克里克(Francis Crick)兩位科學家確立 DNA 的雙螺旋結構,闡述 DNA 是以 4 個鹼基(A、T、C、G)的配對方式來傳遞遺傳訊息,並逐步發展出許多新的研究工具;1990 年,美國政府推動人類基因體計畫,接著英國、日本、法國、德國、中國、印度等陸續加入,到了 2003 年,人體基因體密碼全數解碼完成,不僅是人類探索生命的重大里程碑,也成為推動醫學、生命科學領域大躍進的關鍵。原本這項計畫預計在 2005 年才能完成,卻因為基因定序技術的突飛猛進,使得科學家得以提前完成這項壯舉。

提到基因定序技術的發展,早期科學家只能測量 DNA 跟 RNA 的結構單位,但無法排序;直到 1977 年,科學家桑格(Frederick Sanger)發明了第一代的基因定序技術,以生物化學的方式,讓 DNA 形成不同長度的片段,以判讀測量物的基因序列,成為日後定序技術的基礎。為了因應更快速、資料量更大的基因定序需求,出現了次世代定序技術(NGS),將 DNA 打成碎片,並擴增碎片到可偵測的濃度,再透過電腦大量讀取資料並拼裝序列。不僅更快速,且成本更低,讓科學家得以在短時間內讀取數百萬個鹼基對,解碼許多物種的基因序列、追蹤病毒的變化行蹤,也能用於疾病的檢測、預防及個人化醫療等等。

在疾病檢測方面,儘管目前 NGS 並不能找出全部遺傳性疾病的原因,但對於改善個體健康仍有積極的意義,例如:若透過基因檢測,得知將來罹患糖尿病機率比別人高,就可以透過健康諮詢,改變飲食習慣、生活型態等,降低發病機率。又如癌症基因檢測,可分為遺傳性的癌症檢測及癌症組織檢測:前者可偵測是否有單一基因的變異,導致罹癌風險增加;後者則針對是否有藥物易感性的基因變異,做為臨床用藥的參考,也是目前精準醫療的重要應用項目之一。再者,基因檢測後續的生物資訊分析,包含基因序列的註解、變異位點的篩選及人工智慧評估變異點與疾病之間的關聯性等,對臨床醫療工作都有極大的助益。

基因定序有助於精準醫療的實現。圖/科技魅癮提供

建立屬於臺灣華人的基因庫

每個人的基因背景都不同,而不同族群之間更存在著基因差異,使得歐美國家基因庫的資料,幾乎不能直接應用於亞洲人身上,這也是我國自 2012 年發起「臺灣人體生物資料庫」(Taiwan biobank),希望建立臺灣人乃至亞洲人的基因資料庫的主因。而 2018 年起,中央研究院與全臺各大醫院共同發起的「臺灣精準醫療計畫」(TPMI),希望建立臺灣華人專屬的基因數據庫,促進臺灣民眾常見疾病的研究,並開發專屬華人的基因型鑑定晶片,促進我國精準醫療及生醫產業的發展。

目前招募了 20 萬名臺灣人,這些民眾在入組時沒有被診斷為癌症患者,超過 99% 是來自中國不同省分的漢族移民人口,其中少數是臺灣原住民。這是東亞血統個體最大且可公開獲得的遺傳數據庫,其中,漢族的全部遺傳變異中,有 21.2% 的人攜帶遺傳疾病的隱性基因;3.1% 的人有癌症易感基因,比一般人罹癌風險更高;87.3% 的人有藥物過敏的基因標誌。這些訊息對臨床診斷與治療都相當具實用性,例如:若患者具有某些藥物不良反應的特殊基因型,醫生在開藥時就能使用替代藥物,避免病人服藥後產生嚴重的不良反應。

基因時代大挑戰:個資保護與遺傳諮詢

雖然高科技與大數據分析的應用在生醫領域相當熱門,但有醫師對於研究結果能否運用在臨床上,存在著道德倫理的考量,例如:研究用途的資料是否能放在病歷中?個人資料是否受到法規保護?而且技術上各醫院之間的資料如何串流?這些都需要資通訊科技(ICT)產業的協助,而醫師本身相關知識的訓練也需與時俱進。對醫院端而言,建議患者做基因檢測是因為出現症狀,希望找到原因,但是如何解釋以及病歷上如何註解,則是另一項重要議題。

從人性觀點來看,在技術更迭演進的同時,對於受測者及其家人的心理支持及社會資源是否相應產生?回到了解病因的初衷,在知道自己體內可能有遺傳疾病的基因變異時,家庭成員之間的情感衝擊如何解決、是否有對應的治療方式等,都是值得深思的議題,也是目前遺傳諮詢門診中會詳細解說的部分。科技的初衷是為了讓人類的生活變得更好,因此,基因檢測如何搭配專業的遺傳諮詢系統,以及法規如何在科學發展與個資保護之間取得平衡,將是下一個基因時代的挑戰。

更多內容,請見「科技魅癮」:https://charmingscitech.pse.is/3q66cw

文章難易度
科技魅癮_96
1 篇文章 ・ 2 位粉絲
《科技魅癮》的前身為1973年初登場的《科學發展》月刊,每期都精選1個國際關注的科技議題,邀請1位國內資深學者擔任客座編輯,並訪談多位來自相關領域的科研菁英,探討該領域在臺灣及全球的研發現況及未來發展,盼可藉此增進國內研發能量。 擋不住的魅力,戒不了的讀癮,盡在《科技魅癮》