2009年6月7日 星期日

用於輔助認知障礙者就業之行動定位社會網路

這份報告雖然不長,但卻簡單扼要的介紹出無線網路的可應用性,利用現有的科技加以結合應用在各種生活上一直都是人類不斷嘗試的目標。

*這份報告的示意圖做的比清楚簡易明瞭,比起當初我畫的要好上太多了,這是值得學習的地方

*在用詞方面,個人建議在有些地方可以將"我們"改成"本研究"會比較恰當,閱讀起來會比較有正式專業的感覺 ex: 我們實驗主要的開發環境選用了Microsoft Visual ........。→ 本研究主要的開發環境選用了Microsoft Visual .......

*無線網路介紹的部分,建議最後在列表比較各項的優勢,像我看完之後就很想知道HSDPA、EDGE、GPRS除了速度還有哪些更詳細的解釋讓他可以取代掉上一世代技術的優勢。

*文中提及利用skype發送簡訊提示的技術,這在我們zigbee研究計畫裡頭的回饋裝置也有想過,未來或許可向這組請教請教

*英文摘要部分是否有點短?印象中規定要兩頁

*最後一章的結論展望與預期貢獻似乎有點少,多多論述這套系統的優點以及可以帶來哪些額外的應用,向別人證明這項研究很有可看性!

2009年6月1日 星期一

李老師個案分析

這學期在開始之前從沒想過會接觸這塊領域,原本以為專題只需將精力集中在於我們所學的電子領域,經過一兩個月的接觸下來才發現,要做好一件事情並不是那樣的簡單,想設計一套偵測尿濕感應的裝置並不單只是口頭說說或是腦中的念頭轉轉而已,若不瞭解實際的情況而光靠研究小組的憑空想像成效一定不會很好。

與我們合作的是高雄縣立特殊教育學校的李明洋老師,日前一次的視訊會議我們詢問李老師是否可提供相關的文獻借我們參考,李老師二話不說很熱心的寄了他本人對於如廁訓練所撰寫的一篇論文,這篇論文寫的很好,清楚明瞭的將如廁訓練的重要觀點介紹出來,整理以及提到一些國外的研究成果,觀閱李老師的論文讓在特殊教育是門外漢的我也能瞭解到如廁訓練這塊的領域的概念,從文中也瞭解到國內在這塊是很不足的,論文數只出產過僅僅五篇,參考書籍也只有一本翻譯自國外的一本如廁訓練(Toilet Training),且大多數都是論述性質的,也因此李老師等人懷著熱情以及使命感,希望能把這塊領域建立起來。



文中提及了李老師所帶領的個案,瞭解這名個案的情況可能有助於我們的思考以及發展方向

˙這名個案是個合併極重度智障、重度聽障、重度語障,以及輕度肢障的極重度多重障礙男童生理年齡8 歲10 個月,心理發展年齡只有9 個月,綜合研判為極重度發展遲緩

˙個案無法藉由口語溝通未配戴助聽器,卻約略可以從表情及動作了解對方的情緒,以及所下的指令

˙個案行走緩慢且重心不穩,但可獨自行走50 公尺以上,手部可進行抓、握、提等動作,但無法自行完成穿脫衣褲及鞋襪的動作

˙個案雖有注意力不足的現象(如東張西望、不以眼睛直視目標物…等),但會長時間注視發光體(如霓虹燈、閃光)

˙個案在不包尿布的情況下,不論在家中或在學校均會出現失禁的情形,且無法獨立如廁,因此大部分時間均包尿布活動

˙平日上課8 小時,個案約3 至4 節課更換1 次尿布,總計一天更換1 至2 片尿布

˙在不包尿布的情況下,即使在排尿之前,也不會出現徵兆,即便褲子濕了,也不會表現出異常的表情或反應

˙研究場域鑑於個案平日活動最頻繁的場所是國小教室,因此以該教室做為研究進行的主要場域

綜合以上各點,這名個案雖然生理年齡八歲,但學習能力尚未達到該年齡的成效,對於膀胱的控制能力還不足,因此會有失禁的情況,且在想排尿的時候並不會有太明顯的徵兆,既使褲子濕了也沒有特別的反應,所以這個環節上在濕度感測器要求的部分相當重要,即時回報給照護人員以便下達指令是重點,另外這名個案會注視發光體(如霓虹燈、閃光),未來在回饋裝置方面可能改用視覺上的感應,因為個案屬於重度聽障的例子,對於聽覺式的回饋效果可能不彰。

2009年5月23日 星期六

DIO的程式碼測試

Jennic公司的zigbee子版的Exansion Connector一共有40隻腳位
根據"JN-RM-2001-Integrated-Peripherals-API-2v4"這份文件的說明
其中1~20這些pin腳稱為DIO(Digital I/O)可供外接
程式中有幾個比較重要的參數如下

vAHI_DioSetDirection 設置方向
vAHI_DioSetOutput 設置輸入輸出
u32AHI_DioReadInput 讀所有的IO口
u8AHI_DioSetByte 輸出一個字節
u8AHI_DioReadByte 讀一個字節

Zigbee的開發是以C為基礎,借了幾本書來參考
也上網找了資訊,大陸的Bocon 公司也有針對Zigbee研究,公司也有開發一個資訊論壇

http://www.bocon.com.cn/boconbbs/forumdisplay.php?fid=19

由於以往並沒有什麼程式的基礎,唯一會的程式也只有在單晶片課程學到的組合語言,而Zigbee主要的應用都是要修改其內部的程式架構,除了翻譯說明書之外,我只能一步一步的Try,參考別人的打法,針對DIO的應用在Bocon中下載了一個對於DIO的應用檔JN-AP-1040-JN5139-UsingDioInterrupts-1v0。

裡頭主要的程式就是以下這段:

PRIVATE void vInitSystem(void){ /* Setup interface to MAC */ u32AppQApiInit(NULL, NULL, NULL); u32AHI_Init();
{


/* Set SW1(dio9)/SW2(dio10)to input and LED1(dio16)/LED2(dio17)to output */ vAHI_DioSetDirection(E_AHI_DIO9_INTE_AHI_DIO10_INT, 0);
vAHI_DioSetDirection(0, E_AHI_DIO16_INTE_AHI_DIO17_INT);
/* enable pullups on all inputs/unused pins */
vAHI_DioSetPullup(!(E_AHI_DIO16_INTE_AHI_DIO17_INT),E_AHI_DIO16_INTE_AHI_DIO17_INT);
/* turn LED off */
vAHI_DioSetOutput(E_AHI_DIO16_INTE_AHI_DIO17_INT, 0);
/* set interrupt for DIO9 /DIO10 to occur on button release - rising edge */
vAHI_DioInterruptEdge(E_AHI_DIO9_INTE_AHI_DIO10_INT, 0);
/* enable interrupt for DIO9/DIO10 */
vAHI_DioInterruptEnable(E_AHI_DIO9_INTE_AHI_DIO10_INT, 0);


}

註解的地方通通以紅色呈現,將這個範例燒進去之後,並不會發送感測的訊號給母版,於是針對程式的註腳研究,
/* Set SW1(dio9)/SW2(dio10)to input and LED1(dio16)/LED2(dio17)to output */
vAHI_DioSetDirection(E_AHI_DIO9_INTE_AHI_DIO10_INT, 0);
vAHI_DioSetDirection(0, E_AHI_DIO16_INTE_AHI_DIO17_INT);
根據註解的意義,是將DIO9以及10設為input,DIO16以及17設為output
/* turn LED off */
vAHI_DioSetOutput(E_AHI_DIO16_INTE_AHI_DIO17_INT, 0);
而這段程式是將兩個LED關閉,在開機時,兩顆LED也確實是熄滅未開燈的(原本在enddevice的時候是兩顆燈會開啟代表運作中) *尚未把後面的0改成1試試,也許會開啟LED*

註解說將DIO9以及10設為input,DIO16以及17設為output,但這是什麼意思?我拿彩虹排線將16以及17接39的VCC,兩顆LED都熄滅,而將9接Gnd LED沒反應,10接Gnd LED1滅了,奇怪的是接9沒反應,接11的時候LED2熄滅,而根據說明書的硬體電路圖,Pin腳16跟17是接在兩顆LED的負端,若是將其接上vcc則就不會有亮燈的現象,而sw1,sw2之前接了pin9和10,而sw1、sw2、LED1、LED2都是共用同一vcc,所以將pin9以及10接Gnd的話,理論上電流將不會流向LED,也因此會讓燈熄滅,但是經測試的結果,卻是10.11腳才有這樣的效果,也因此讓我困擾很久。

但更令我困擾的是將DIO9以及10設為input,DIO16以及17設為output這段話的意義,我從9.10輸入高電位以及低電位,應該要是output的16.17卻都是一直沒反應,到底是要在多加程式碼進去讓輸入的資料做處理,還是程式碼的應用不對還要再苦惱 .....






2009年4月30日 星期四

A perspective on intelligent devices and environments in medical rehabilitation 一文心得感想

西元1997 至 2025 全球超過65歲的人口比例預計將會成長一倍,文章摘要一開頭就提供了這個驚人的數據,地球正處於科技高速發展的階段,隨著醫療技術的進步,全世界人口老化的比例也隨之上升,人們似乎一直在適應環境的快速變遷,殊不知我們的觀念以及著重的方向也要以遠觀方向來衡量,如科技污染而亦是到的環境永續發展,這個概念將會迫使科技的發展方向改觀,而醫療科技也是一樣,老年人口比例上升,醫療負擔將加重,精準的數據將會是重要的一環,這將提供給醫生一個很好得判斷標準,也因此,輔助科技的發展也將會隨之重要,透過結合科技的醫療,利用輔助科技輔助老年人口以及身心障礙者的生活機能或是復健也將改善很多。

文章介紹到一個很重要的模式,“smart home” 就字面上我將其翻譯成 ”智慧型家居” ,這種模式能改善現今的醫療方式,以往的傳統醫療方式在於醫生與患者間的互動多半在於醫院的臨床實驗室,缺乏較真實的病患狀況,而smart home 模式則藉由利用適當的sensor 放置在病患的生活環境裡頭,脫離醫院環境的病患於自己熟悉的環境中生活將可以更自在,而在這種情形底下蒐集的數據也較為實際,結合醫生的評估病患以及醫療人員將可以獲得更得當的效果。

輔助類型科技進步也就越造福一些重度的身心障礙者,如脊椎損傷,肌肉委縮,或是帕金森氏症患者,這類型的患者由於神經無法正常的傳輸而造成行動上的不便,現今有研究利用輔具傳遞腦部至肌肉的神經訊息,使得患者能恢復部份的行動能力,或是病患利用可行動部位與電腦設備作結合,電腦將其行為轉換成另類的溝通訊息如文字或語音,達到這類病患重新與外界溝通的能力,我想這些研究是可以期許的,未來全世界的人口結構變遷,這類的研究需求將會大大地提昇。

輔具很重要的應用就在於協助病患的生活,如我們Lab 研究的各種方向,工作提醒系統,走失偵測系統,這類結合科技與醫療的模式將會帶給病患很大的改善生活空間,但這類的科技研究仰賴著整體科技的發展,現今的科技已經趨近飽和的型態,人類擁有了許多新穎高超的技術,但如何將這些技術移植到輔助以及醫療的應用還只算起步不久的階段,有賴許許多多前輩的努力,如開頭所提到概念一樣,人類的科技發展快速,將科技的價值落實於造福大眾才是我們應該遵循的目標。

2009年4月13日 星期一

程式練習:三大種類的人

此次用到的項目是pictureBox、label、comboBox、tabControl、button

利用分頁功能解決螢幕不夠的問題,另外加入輸入提示碼的功能,輸入正確才能解開上鎖的下拉式選單,此功能類似輸入帳號密碼才能登入的效果。



程式碼



程式的原始狀態,須輸入正確的提示碼才能進入下一階段功能





在未輸入提示碼時下拉式選單是不啟用的



輸入錯誤的提示碼照樣不會啟用分頁2的下拉式選單




輸入正確的提示碼方能啟用下拉式選單






如圖所示







選擇帥哥就會出現相對應之圖片






選擇怪人










選擇阿宅...

在這個程式反覆嘗試中,將下拉式選單在預設值一開始就上鎖這個功能中卡了一點時間,我將 comboBox1.Enabled = false; 這行指令放在空白處(int a;底下那一行)卻出現錯誤,而後放置在public Form1() { InitializeComponent(); comboBox1.Enabled = false; }這裡頭便可執行,我想這可能跟程式辨認度有關,comboBox1.Enabled = false;這個指令必須讓他在某個"狀態或行為"底下程式才能辨別,若是將他隨意放置,差一行就差很多了。



2009年4月10日 星期五

Zigbee 之背景以及工作方式

參考維基百科提供的資訊

ZigBeeTM是一種無線網路協定,主要由ZigBee Alliance制定,底層是採用 IEEE 802.15.4 標準規範的媒體存取層與實體層。主要特色有低速、低耗電、支援大量網路節點、支援多種網路拓撲。


p.s 關於
網路拓撲 的 的解釋請按這

p.s1 媒體存取層(MAC) 主要功用為提供定址及媒體存取的控制方式,使得不同設備或網路上的節點可以在多點的網路上通訊,而不會互相衝突

ZigBee
協定層從下到上分別為實體層(PHY)、媒體存取層(MAC)、網路層(NWK)、應用層(APL)等。網路裝置的角色可分為ZigBee CoordinatorZigBee RouterZigBee End Device等三種。支援網路拓撲有StarTreeMesh等三種。

p.s2 Coordinator(
協定者)Router(路由器:連接數個區域網路的中繼裝置)
p.s3
網路拓撲有Star、Tree、Mesh
請參考這張圖片

網路層負責以下工作:

* 加入與離開某個網路
* 將封包作安全性處理
* 傳送封包到目標節點
* 找尋並維護節點間的繞徑路線
* 搜尋鄰節點
* 儲存相關鄰節點資訊

ZigBee Coordinator額外工作:
* 發起一個網路
* 設定各項網路參數
* 分派網路位址並規範網路位址分發原則

應用層(APL)

* ZigBee應用層包含應用程式支援子層(APS)、應用程式框架(AF)、ZigBee裝置管控物件(ZDO)與各廠商定義的應用程式物件。
* APS次層提供網路層與應用層之間的介面,維持物件之間的連結表(binding table),並在連結的裝置之間傳遞訊息,它也維持了一個 APS 資訊庫(APS Information Base, AIB)。
* ZDO的功能包括起始應用程式支援子層、網路層以及安全服務等。

應用程式支援子層(APS)

APS子層是負責上層應用程式物件與下層網路層的協調。其工作有:

*維護Binding表,這是用來配對兩網路節點間所需服務的對應表。

*轉發已配對裝置間的訊息。

*處理64位元IEEE位址與16位元NWK位址間的對應。

ZigBee裝置管制物件(ZigBee Device Object, ZDO)

ZDO可視為應用程式物件之一,所不同的是ZDO專門負責整體系統的管理事務,Endpoint 0只能且必定由ZDO使用,每個節點都一定有此物件。負責工作有:
*定義或調整本身裝置在網路上的角色(ZC、ZR或ZED)。
*建構上層應用所需的資訊、發出或回應連結的要求。
*搜尋並探知其他網路節點可用的應用程式服務。
*起始與回應配對要求。
*建立兩網路節點間的安全性關係。

版本
ZigBee V1.0
這是第一個ZigBee標準公開版,於2005年6月開放下載,文件內記載公布時間為June 27, 2005,內部文件編號為053474r06。

ZigBee V1.1
第二個ZigBee標準公開版,於2007年1月開放下載,文件內記載公佈時間為December 1, 2006,內部文件編號為053474r13。又稱為ZigBee 2006。

ZigBee V1.2
第三個ZigBee標準公開版,於2008年1月開放下載,文件內記載公佈時間為January 17, 2008,內部文件編號為053474r17。又稱為ZigBee Pro、ZigBee 2007。

資訊庫(Information Base)
ZigBee某些層有資訊庫儲存該層所需資訊,共有以下幾種:
*MAC資訊庫(MIB)
*NWK資訊庫(NIB)
*APS資訊庫(AIB)

Profile

ZigBee所定義的Profile有兩種:
*Application Pro:針對各種不同應用情境所定義出的概略行為藍圖,如Home Control Lighting(HCL)和Home Automation(HA)。一般所稱的Profile通常是指此種Profile。
*Stack Pro:主要規定通用性的網路參數,如Network Specific、Home Controls(HC)、Building Automation(BA)、Plant Control等Stack Profile。

原則上Application Profile中會說明可採用何種Stack Profile來作為基礎網路建構方案,如HCL中即採用HC作為網路建構方案。

各層定址
*MAC:可採用64位元IEEE位址或16位元NWK位址。
*NWK:16位元NWK位址。
*APS:8位元Endpoint號碼。

這有更詳細的介紹(原文)

點我 (zigbee1.0)

http://www.zigbee.org/Default.aspx (點選learn more)

2009年3月27日 星期五

程式練習:顏色混合

應用Button ,checkBox,pictureBox、label




程式碼:僅列出主要撰寫部分


設計概念為顯示各種顏色混和,勾選欲混和的顏色按下Mix就會出現相對應之顏色



模擬啟始狀態



勾選藍色時顯示藍色



勾選紅色時顯示紅色



勾選黃色時顯示黃色



紅色+藍色 = 紫色






黃色+藍色 = 綠色







紅色+黃色 = 橘色







紅色+藍色+黃色 = 黑色








都無動作且按下Mix時




原本是想寫一個加法計算功能的程式,但苦於不知道如何讓PDA去辨認輸入的值當成一個變數只好作罷,後來改寫這個顏色混合的程式,原本是在主程式宣告兩個變數a、b並且設定當有勾選或無勾選時a=1~6,而b=1~5設計為當a同時為一個以上變數所代表的可能性(例如同時勾選藍以及黃),模擬出來的結果是可以顯示單獨以及混合出來的顏色,但是卻有一個BUG,當顏色呈現為混合的顏色時,而後再去單獨勾選顯示紅黃藍一種顏色圖形卻無法顯示,至今我還想不出為什麼,最後我改用最原始的方法,不宣告變數,僅在Button列的程式碼列出各種情況並針對每一種情況去讓程式作反應,果然這種方法就能把所有的情況都顯示出來。