0

0
0

文字

分享

0
0
0

輕鬆使用Android裝置控制樂高機器人:翻轉控制

馥林文化_96
・2012/12/18 ・2806字 ・閱讀時間約 5 分鐘 ・SR值 521 ・七年級

文/曾吉弘(CAVE教育團隊

本期的App Inventor機器人專欄要藉由手機的傾斜程度來控制機器人的動作。本範例使用了姿態感測器(Orientation Sensor)的X、Y軸向資訊來共同決定樂高機器人的左右馬達電力,並同時控制畫面上的CAVE小圖案移動。本範例與2012年7月號的〈單點觸控〉的概念很相似,只是訊號來源由觸控點座標改為姿態感測器變化量而已。在數學運算上用到了sin與cos等基礎三角函數,對於學生來說是個相當不錯的練習機會。

姿態感測器主要感應手機方位的變化,回傳了三個軸向的傾斜角度,分別是X軸:俯仰(Pitch)、Y軸:翻滾(Roll)與Z軸:旋轉(Azimuth,或稱Yaw)。

開始玩機器人

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

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

STEP1  登入畫面:

首次進入程式的畫面如圖2a,只有「連線」按鈕可以按,其它所有按鈕都無法操作。另一方面,因為Orientation感測器目前是關閉的,這時不論您如何翻轉手機,CAVE小圖案都是不會動的,我們會在連線成功之後才將其啟動。點選「連線」按鈕後進入藍牙裝置清單(圖2b),請找到剛剛配對完成的NXT主機名稱(本範例為abc),點選之後就會由Android裝置對NXT主機發起藍牙連線。順利連線成功的話,就能看到pitch與roll的資料不斷更新,搖晃手機還能看到CAVE小圖案在畫布上移動(圖2c)。

 圖2a  程式首次執行的畫面。
 圖2b  點選連線按鈕後進入藍牙裝置清單。
 圖2c  連線成功後出現相關資訊,CAVE小圖案也會動了。

STEP2  程式初始化:

接著是點選連線清單之前(ListPicker_CONNECT事件),先指定清單內容為藍牙配對裝置清單(圖3a)。在連線之前之所以CAVE小圖案無法移動,是因為我們先將姿態感測器關起來了,要等到連線成功之後(圖3b)才會啟動,這時原本不會動的CAVE小圖案以及無法按下的「斷線」等按鈕這時也都可以操作了。

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

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

STEP3 變數介紹:

本範例共使用了五個整數型別變數,介紹如下:

  1. count:用來切換感測器與馬達資訊是否顯示。
  2. power:取得姿態感測器的Magnitude來決定控制上的靈敏度。
  3. angle:手機傾斜方向,如為0則代表手機朝Y軸正向傾斜(pitch值增加)。
  4. LMotor:左馬達電力。
  5. RMotor:右馬達電力。

 圖4  變數介紹。

STEP4 根據姿態感測器資訊計算馬達電力:

所有的計算都是在OrientationSensor1.OrientationChanged事件中完成,只要姿態感測器任一軸向的資訊有改變就會自動呼叫本事件並執行其中內容。以下依序說明:

1.移動CAVE小圖案:使用ImageSprite.MoveTo指令,將XY欄位指定為ImageSprite.X – roll以及ImageSprite.Y – pitch,這樣當您搖晃手機時,可愛的CAVE小圖案也會在畫面上漂來漂去,相當有趣。請注意當CAVE小圖案沿著Y軸正向移動時,這時候增加的是pitch而不是roll,不要搞錯囉!

2.更新變數:

  • angle = OrientationSensor.Angle – 45:取得手機傾斜角並進行偏量補償,方便馬達電力計算。
  • power = OrientationSensor.Magnitude * 200:OrientationSensor.Magnitude是一個介於0到1之間的小數,代表手機的傾斜程度,您可以調整200這個常數來放大或縮小傾斜程度對於機器人電力的影響。雖然馬達電力範圍為-100到100,但超過也沒關係,馬達電力不會因此而受影響。
  • LMotor = cosangle * power:左馬達電力
  • RMotor = sinangle * power:左馬達電力

*註:您可以堅持老派風格,也就是使用pitchroll變數值,搭配三角函數計算之後一樣能有相同的機器人控制效果。但本範例使用姿態感測器的angleMagnitude這兩項變數,也是另一種作法。

3.顯示變數於標籤上:將pitch與roll的資訊更新在Label_Orientation標籤上,並將左右馬達電力LMotor與RMotor更新在Label_Motor標籤上。為避免單一字串過長,我們使用make text指令將多個字串組合在一起,這在各程式語言中都是常見的技巧。

4.轉動馬達:最後把LMotor與RMotor變數值分別指定給NxtDrive_B與NxtDrive_C的MoveforwardIndefinitely指令就可以讓兩個馬達根據手機傾斜狀況來運動了。


 圖5  根據姿態感測器的X、Y軸向變化資訊來控制機器人。

STEP5 點選CAVE小圖案來顯示資訊:

本次程式多了一個附加功能,就是點擊CAVE小圖案來顯示或關閉各樣資訊的即時更新,這是因為有的Android手機會因為這些資訊更新太過頻繁而變的卡卡的,您可以視實際狀況來決定是否要顯示這些資訊。我們在ImageSprite1.Touched點擊事件中,根據count是0或1來決定顯示或關閉訊的即時更新(圖6b)。

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

 圖6b  資訊標籤關閉。

STEP6  斷線:

按下「斷線」按鈕之後,會中止藍牙連線(BluetoothClient.Disconnect指令),並使按鈕恢復到未連線時的狀態,CAVE小圖案又再次回到畫面中央且不再移動了。這時候您可以再次發起連線。

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

操作:

實際執行的時候,請先確認NXT已經開機且藍牙也啟動了。接著在您的Android裝置上點選程式畫面中的「連線」按鈕,會進到藍牙清單畫面,點選NXT主機名稱連線成功後就可以搖晃手機來控制機器人了(圖8a到8c),操作方式相當直覺,您一定會喜歡的,但小心別把手機掉到地上啦。操作過程中您可以隨時點選CAVE小圖案來關閉資訊顯示。


 圖8a  手機向前傾斜,機器人前進,馬達電力為(52,49)。
 圖8b  手機向右傾斜,機器人原地右轉,馬達電力為(55,-57)。
 圖8c  兩個向左後方傾斜,機器人向左後方轉彎,馬達電力為(-37,-7)。

絕大部分的Android裝置都會有姿態感測器,許多小遊戲例如滾球或是賽車等,也都應用了姿態感測器來偵測玩家的動作。但由於姿態感測器相當靈敏,您也許需要針對本範例中一些參數進行調整來達到更好的效果。

歡迎大家由這個下載本程式來玩玩看!或掃描以下的QRCode也可以唷!更多有趣的機器人app請在Google Play搜尋「CAVE 教育團隊」就找得到了。

註1:機器人運動方向有可能因為車頭指向而和程式設定相反,只要將左右馬達電線互換即可。
註2:想學如何開發App Inventor程式嗎?請到App Inventor中文學習網(http://www.appinventor.tw)與我們一同學習。
註3:將Android手機設定為可安裝非Google Play下載的程式以及讓手機與樂高NXT主機連線等說明請參考連
註4:與NXT連線後如果出現[Error 402]之錯誤訊息請不必理會,程式依然能正確執行。

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


數感宇宙探索課程,現正募資中!

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


0

1
0

文字

分享

0
1
0

透過「生長激素刺激測驗」,評估孩童生長激素是否不足

careonline_96
・2022/05/19 ・1899字 ・閱讀時間約 3 分鐘

當孩童因「身高不足」或「生長遲緩」就診「兒童內分泌科」,醫師評估有「生長激素不足症」之疑慮時,會安排小朋友做「生長激素刺激測驗」。

究竟這是什麼樣的檢查呢?什麼時候需要做這個檢查?如何執行?這樣的檢查安全嗎? 以下由林口長庚醫院兒童內分泌科邱巧凡醫師,針對以上家長常見問題做完整說明。

生長激素刺激測驗——什麼時候要做?

  1. 「長的矮」而且「長的慢」!
    (1)長的矮: 身高落在該性別年齡「第三百分位」以下。
    (2)長的慢: 「一年長不到四公分」,或身高曲線往下掉兩大條百分位曲線。
  2. 初步檢查顯示: 骨齡明顯落後,血液檢驗 IGF-1 與 IGFBP-3 濃度不足。
  3. 伴隨其他生長激素不足可能合併的特徵(如前額凸出、顴骨發育不良、鼻梁塌陷、低血糖、陰莖短小、尿道下裂,或合併其他賀爾蒙異常等。)

當以上情形發生,醫師認為孩子有「生長激素缺乏症」的可能,將進一步安排「生長激素刺激測驗」。

生長激素刺激測驗——是什麼?

邱巧凡醫師指出,平常生長激素的分泌呈現「脈衝式分泌」,因此無法從隨機、單一次的血液檢測直接反映個體生長激素分泌的能力。生長激素刺激測驗是藉由藥物的刺激,營造出生長激素必須要分泌的情境,藉此情境來了解分泌的功能是否正常。

目前在台灣可用來做為生長激素刺激測驗的藥物包含:胰島素、clonidine、L-Dopa、Arginine 及 Glucagon。

生長激素刺激測驗——怎麼做?

  • 檢查前的準備
  1. 自檢查當天凌晨零時起「禁食」任何食物。
  2. 填寫「檢查同意書」。
  • 生長激素刺激測驗檢查流程
  1. 於早上 7~9 點,幫受檢兒童建立靜脈留置針(通常選擇上肢靜脈),並執行第一次的抽血,隨後給予受檢兒童檢查用之「口服藥物」或「靜脈注射藥物」。
  2. 之後約每隔 15 至 30 分鐘執行一次抽血,檢測生長激素濃度。(不同之檢測藥物,其抽血頻率與時間略有不同)
  3. 一次的「生長激素刺激測驗」檢查流程約 2~3 個小時完成,最後一次抽血完畢後,若身體無不適,便可移除靜脈留置針頭,完成檢查。並給孩童進食一頓大餐。

生長激素刺激測驗——安全嗎?

邱巧凡醫師說,生長激素刺激測驗執行過程,有可能發生以下狀況,須特別留意,因此在林口長庚醫院本檢查需住院執行,在專業醫療團隊照護下執行此測驗。

  1. 暈針: 由於需透過口服或靜脈注射藥物刺激生長激素分泌,加上得抽血數次,因此在兒童、青少年族群有可能因為心理壓力與恐懼感,在測驗過程中出現眩暈與噁心等暈針症狀。通常只要休息一段時間即可恢復,也不會因此產生後遺症。
  2. 測驗藥物的作用: 檢查期間所服用或注射的藥物,會造成血糖偏低、血壓偏低,可能出現口乾、頭痛、冒冷汗、臉色蒼白、嗜睡、疲倦、頭暈、噁心、嘔吐等症狀。一般只要適度休息,並於檢查後進食即可逐漸恢復。少數有特殊病史的孩童(如癲癇、腦瘤等)可能在此過程出現抽搐發作等狀況。

生長激素刺激測驗——檢查注意事項

  1. 自檢查當天凌晨零時起,至檢查流程完畢,期間禁止飲食,否則會影響檢查結果的準確性。 
  2. 抽血期間如出現頭暈、噁心、臉色蒼白、抽搐、意識不清等情況,請立即告知醫護團隊。
  3. 檢查期間應坐在椅子上或臥床休息,儘量不要起身走動。

生長激素刺激測驗——檢查結果

檢查結果醫師將針對患童本身狀況與兩項不同藥物刺激後的生長激素分泌能力進行判讀,若判斷為「生長激素缺乏症」,將進一步安排「腦部核磁共振檢查」以釐清生長激素缺乏的可能原因,並衡量「生長激素治療」的適當性與時機,與家長進行說明與討論。


數感宇宙探索課程,現正募資中!

careonline_96
9 篇文章 ・ 7 位粉絲
台灣最大醫療入口網站