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

0

0
0

文字

分享

0
0
0

輕鬆使用Android裝置控制樂高機器人:感測器面板

馥林文化_96
・2012/04/26 ・2330字 ・閱讀時間約 4 分鐘 ・SR值 533 ・七年級

文/曾吉弘(CAVE教育團隊)

延續上期用手機遙控機器人,本期要將您的Android做成一臺手持式資訊面板,可以持續更新NXT機器人的四種感測器資訊。

首先把NXT機器人準備好,並依序將觸碰感測器,聲音感測器,光感測器與超音波感測器接在NXT的1至4號輸入端,您之後可以自行修改感應器的連接埠。

請先確認NXT主機的藍牙是啟動的,接著請將NXT主機與Android手機進行藍牙配對,完成之後就可以把機器人放到一邊了,啟動藍牙之後您可以從NXT主機的螢幕左上角看到藍牙的符號(圖1)。

圖1  NXT主機藍牙已開啟(左上角)

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

STEP1:

首次進入程式的畫面如圖2,您可以看到只有 [連線]按鈕可以按,[斷線]按鈕則無法按下(Enabled屬性設為false),這時候只能點選[連線]按鈕。

圖2 程式首次執行的畫面

STEP2:

接著是將ListPickerConnect清單指定為已配對的藍牙裝置清單(圖3),點選[連線]按鈕之後,會進入Android裝置的藍牙連線清單(圖4),請找到剛剛配對完成的NXT主機名稱(本範例為abc),點選之後就會由Android裝置對NXT主機發起藍牙連線,跳回主畫面之後您可以看到感測器的資訊已經更新在Android裝置畫

請注意我們在NXTList.AfterPicking事件中加入一個if,來判斷是否成功建立藍牙連線(BluetoothClient.Connect),如圖5。這可以處理在非預期情況下的斷線情形,例如機器人沒電而關機或是手機來電等狀況,此檢測步驟可避免程式發生錯誤。圖5中下方的NxtSensorLight1.GenerateLight指令使光感測器前端發出紅光,您可以將True改為Flase來關閉光感測器前端光源。

圖3  將ListPickerConnect清單內容指定為已配對的藍牙裝置清單。

圖4  Android裝置的藍牙連線清單

圖5  再次檢查藍牙連線是否成功

STEP3:

本程式的關鍵就在這一步:使用Clock元件來定時更新感測器值。在App Inventor中所有與時間有關的功能,包括時鐘、計時器與碼錶等等都由Clock元件負責。請將Clock元件的屬性如圖6來設定,代表每200毫秒觸發一次計時器,這就是我們所希望感測器更新數值的頻率。

圖6  Clock元件屬性設定

我們依照連接埠的順序來介紹各種感測器的運作方法。首先,App Inventor透過NxtTouchSensor1.IsPressed來偵測觸碰感測器是否被壓下,如果壓下就為True,本程式在此以一個if…else結構來更換按鈕的底色來達到燈號的效果。

接著,請注意App Inventor抓回的聲音感測器與光感測器值為原始(raw)值,介於0到1023之間,音量愈大。您可以從圖8中看到我們將聲音感測器的原始值除以10.23來換算成百分比值。

最後是超音波感測器,由於它是一種I2C數位感測器,會直接將超音波發射後撞到物體後回傳的時間換算為距離之後顯示在螢幕上,單位為公分。

圖7  感測器的值更新在畫面上了

圖8 使用Clock元件來定時更新感測器值

STEP4:

按下[斷線]按鈕之後,會斷開藍牙連線(BluetoothClient.Disconnect),並使按鈕恢復到未連線時的狀態。這時候您可以再次發起連線。

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

STEP5:

本範例一樣加入了超連結功能,上一期的範例是跳轉到CAVE官方網站(http:www.cavedu.com),這次是跳到App Inventor中文學習網,有許多豐富的App Inventor教學範例與課程說明。請點選畫面下方的可愛圖樣,點選之後就能跳到App Inventor中文學習網。這是藉由App Inventor的ActivityStarter來呼叫Android裝置上的WebKit瀏覽器,網址是從DataUri來指定為http://www.appinventor.tw。

圖10  點選CAVE圖案會跳到App Inventor中文學習網

實際執行的時候,請先確認NXT已經開機且藍牙也啟動了。接著在您的Android裝置上點選程式畫面中的「連線」按鈕,點選NXT主機名稱就會自動連線,連線完成就能看到感測器值不停更新啦。

請注意由於程式一開始尚未進行藍牙連線時,程式就會試著去抓感測器的值,當然什麼也抓不到。這也就是為什麼圖2中的感測器值會為-1的原因,-1是代表無設備或無連線,並非感測器值真的為-1。

另一方面,藍牙發送與接收訊號皆會有一定的延遲時間(30~40毫秒),加上我們設定計時器的觸發頻率為200毫秒,加加起來就快0.3秒啦!因此實際執行時感測器值更新會有點lag,這是正常的。

為什麼感測器的反應會頓頓的呢?有使用過樂高機器人的朋友, 一定有在螢幕上檢視感應器數值的經驗,應該是相當順暢才對。那為什麼在Android 手機上看就變得頓頓的, 好像慢半拍的感覺呢?原因就在於藍牙傳輸來回需要時間。由於我們是從Android 手機端對NXT 機器人發出要求,請它傳回指定感應器的數值,機器人接收到之後就會回傳。這樣一來一往各會用掉30 ∼ 40 毫秒,相加的話最大會用掉0.08 秒!這已經是我們感覺得到的延遲時間了。當然會有比直接在NXT 機器人端直接觀看數值來得慢的感覺囉!

(比較:一般卡通片是一秒24 張圖,也就是每0.042 秒換一張圖。)

在上一篇的按鈕控制也是同樣的道理,雖然在該範例中沒有從NXT 機器人擷取回任何感測器數值,但每次我們點選按鈕來控制機器人動作時,機器人還是會回傳一個確認碼/位元告訴Android 手機:「我已經正確接收指令並執行完畢。」這是在一般網路傳輸中必要的通訊機制喔!

請要下載本程式來玩玩看的朋友,請由以下連結下載:

http://dl.dropbox.com/u/11288673/NXT_ButtonControl.apk

或掃描以下的QRCode也可以唷!

註1:App Inventor伺服器目前正由Google移轉至麻省理工學院行動研究中心,預計在近日推出新的服務。使用介面將無重大改變,在過渡期間想要申請測試帳號的讀者請至以下連結申請:http://appinventoredu.mit.edu/

註2:CAVE教育團隊所提供的App Inventor指令中文化手冊請至http://www.appinventor.tw下載。

註3:如何將您的手機設定為可自行安裝非Market下載的程式請參考:http://www.appinventor.tw/phone

註4:讓Android手機與樂高NXT主機連線的詳細步驟請參考:http://www.appinventor.tw/connecttonxt

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

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


0

9
4

文字

分享

0
9
4

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

科技魅癮_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位國內資深學者擔任客座編輯,並訪談多位來自相關領域的科研菁英,探討該領域在臺灣及全球的研發現況及未來發展,盼可藉此增進國內研發能量。 擋不住的魅力,戒不了的讀癮,盡在《科技魅癮》