昨天(2014/4/23)下午,阿舍萬(啊~這樣叫太不禮貌了,應該要稱呼萬~~~教~~~授~~~,不是都教授喔,呵呵呵)與許教授在我的辦公室討論到可運用到運動管理的App。

晚上回到家,趁瑋瑋睡著之後,利用App Inventor實作有關於加速度感應器(AccelerometerSensor)的應用,這主要可偵測XYZ軸的變化狀況與瞬間的加速度變化。程式設計的畫面如下

程式碼很簡單,就是很單純抓取XYZ的加速度變化值,加速度的瞬間變化(Shaking)

程式執行的畫面如下,若手機平放在桌上的話,X 正值就示表左傾,X 負值表右傾,Y 正值表向上,Y 員值表向下。

記得曾跟成大物理治療學系蔡教授聊過有關睡眠品值偵測手環,它的運作方式似乎就是偵測這些XYZ軸的變化狀况,若是這些數值很穩定的話表示睡的很好,若是不穩定的話表示睡眠品值不好。理論上,手機上也可以寫個睡眠品質分析的App,但是吼,有誰會把智慧型手機綁在身上睡覺的,哈哈哈。

加速度感應器可以做加速度的瞬間變化(Shaking)的偵測,我很直接地就想到可以用來計步器(pedometer), 程式設計的畫面如下

程式碼也很簡單,比較不同的是因為App Inventor沒有提供方法禁示螢幕進入休眠狀態(螢幕變黑),所以我利用Timer每10秒跳出一個無內容的Notifier保持螢幕都是亮著的狀態

程式執行的畫面如下,假如不去按關螢幕的按鈕,螢幕會一直保持亮著,方便觀看。不過若按關螢幕的按鈕讓螢幕變黑,計步的功能是會持續運作的,也就是說只要不要按上一頁離開程式,它是會持續計步的,所以可以關掉螢幕放在口袋,出去散散步,回來再打開來看看走了幾步

就這樣我完成了一個超簡單的計步器,其實這可以延伸出許多的功能,譬如走了幾步消耗多少熱量,或是搭配一些記錄做運動管理,又或者加上時間的控制與別人對戰特定時間內誰搖較多次(不過要小心別把手機甩出去了,嘻嘻嘻!),又或是利用XYZ的加速度變化值去比賽誰的平衡感比較好......等等。寫完累累,該去睡覺了!

對了,我把這個小程式放在這裡(Pedometer),有興趣的可以裝進手機玩玩看