《電子技術應用》
您所在的位置:首頁 > 微波|射頻 > 設計應用 > 利用Web Camera模擬Windows Phone 7的重力加速度傳感器
利用Web Camera模擬Windows Phone 7的重力加速度傳感器
摘要: 加速度傳感器是WindowsPhone7中一個基本的傳感器,很多應用軟件和游戲軟件都需要用到它,因此,使用其他手段來模擬重力加速度傳感器是一個十分有用的嘗試。
Abstract:
Key words :

  引言

  目前,對于我們國內大多數的Windows Phone 7開發者來說,模擬器是調試程序的唯一選擇。因此,和硬件相關的一些功能就沒有辦法進行測試。加速度傳感器是Windows Phone 7中一個基本的傳感器,很多應用軟件和游戲軟件都需要用到它,因此,使用其他手段來模擬重力加速度傳感器是一個十分有用的嘗試。

  線索

  在今年8月,Windows Phone 7開發工具還是Beta版本的時候,山羊胡大叔的Blog《給你的Windows Phone 7模擬器加入GPS和加速度傳感器模擬功能》中,已經給出了一種途徑,其方法是:使用一臺真實的HD2來獲取加速度傳感器的數據,然后把這些數據再傳回WCF服務;同時Windows Phone 7的應用程序通過這個WCF服務來獲取加速度傳感器的值。由于手頭沒有HD2設備,所以就無法去嘗試和驗證這個方法。

  兩個月之后,距離Windows Phone 7正式版本的開發工具發布后不久,Charles Petzold給出了他的電子書《Programming Windows Phone 7》,提供廣大開發者們免費下載。他在前言中就提到了如何在Windows Phone 7模擬器中實現加速度傳感器的方法。本文根據Charles Petzold給出的提示信息進行了驗證,試想一下,用一個攝像頭就可以模擬加速度傳感器,真是挺有趣的。

  準備工作

  1. 安裝Windows Phone 7的開發工具,這個我就不再啰嗦了。

  2. 網絡攝像頭一個,普通的就可以。

  3. 去Codeplex網站下載開源項目AccelKit,網址為:http://accelkit.codeplex.com/。

  4. 解壓AccelKit以后,里面包括EmuClasses、Executable、src這三個文件夾和Print_This_Cutout這個pdf文件。EmuClasses文件夾中的文件可以引入到我們的應用程序中,實現加速度傳感器數值的讀??;Executable文件夾中的文件用來運行在桌面PC上,控制攝像頭,并保存數據;src中的文件是對應的控制攝像頭程序的源程序。

  5. 將Print_This_Cutout.pdf文件打印,并用剪刀剪裁其中一個Windows Phone 7的面板,將其固定于一塊板子上。

  開始測試

  1. 啟動Executable文件夾中的accelKit.exe文件,開啟攝像頭。

  2. 開啟Windows Phone 7模擬器,運行帶有加速度傳感器的應用程序。

  3. 在攝像頭前晃動帶有Windows Phone 7面板的板子,檢驗效果。

  1

 

  引言

  目前,對于我們國內大多數的Windows Phone 7開發者來說,模擬器是調試程序的唯一選擇。因此,和硬件相關的一些功能就沒有辦法進行測試。加速度傳感器是Windows Phone 7中一個基本的傳感器,很多應用軟件和游戲軟件都需要用到它,因此,使用其他手段來模擬重力加速度傳感器是一個十分有用的嘗試。

  線索

  在今年8月,Windows Phone 7開發工具還是Beta版本的時候,山羊胡大叔的Blog《給你的Windows Phone 7模擬器加入GPS和加速度傳感器模擬功能》中,已經給出了一種途徑,其方法是:使用一臺真實的HD2來獲取加速度傳感器的數據,然后把這些數據再傳回WCF服務;同時Windows Phone 7的應用程序通過這個WCF服務來獲取加速度傳感器的值。由于手頭沒有HD2設備,所以就無法去嘗試和驗證這個方法。

  兩個月之后,距離Windows Phone 7正式版本的開發工具發布后不久,Charles Petzold給出了他的電子書《Programming Windows Phone 7》,提供廣大開發者們免費下載。他在前言中就提到了如何在Windows Phone 7模擬器中實現加速度傳感器的方法。本文根據Charles Petzold給出的提示信息進行了驗證,試想一下,用一個攝像頭就可以模擬加速度傳感器,真是挺有趣的。

  準備工作

  1. 安裝Windows Phone 7的開發工具,這個我就不再啰嗦了。

  2. 網絡攝像頭一個,普通的就可以。

  3. 去Codeplex網站下載開源項目AccelKit,網址為:http://accelkit.codeplex.com/。

  4. 解壓AccelKit以后,里面包括EmuClasses、Executable、src這三個文件夾和Print_This_Cutout這個pdf文件。EmuClasses文件夾中的文件可以引入到我們的應用程序中,實現加速度傳感器數值的讀取;Executable文件夾中的文件用來運行在桌面PC上,控制攝像頭,并保存數據;src中的文件是對應的控制攝像頭程序的源程序。

  5. 將Print_This_Cutout.pdf文件打印,并用剪刀剪裁其中一個Windows Phone 7的面板,將其固定于一塊板子上。

  開始測試

  1. 啟動Executable文件夾中的accelKit.exe文件,開啟攝像頭。

  2. 開啟Windows Phone 7模擬器,運行帶有加速度傳感器的應用程序。

  3. 在攝像頭前晃動帶有Windows Phone 7面板的板子,檢驗效果。

  1

 

  實現原理

  攝像頭對捕捉到的圖像進行分析,識別Windows Phone 7面板的移動加速度,按照一定的時間間隔發送給本地的端口:http://127.0.0.1:88/。

  我們在寫Windows Phone 7的應用程序時,利用WebClient來獲取88端口的數據:

  。.

  WebClient wc;

  wc = new WebClient();

  wc.AllowReadStreamBuffering = false;

  wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wc_DownloadStringCompleted);

  wc.DownloadStringAsync(new Uri(http://127.0.0.1:88/));

  。.

  void wc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)

  {

  if (e.Error != null) { timer.Begin(); return; }

  if (e.Result == null) { timer.Begin(); return; }

  string[] vc = e.Result.Split(new Char[] {‘,’, ‘ ’});

  double x = Convert.ToDouble(vc[0]);

  double y = Convert.ToDouble(vc[1]);

  double z = Convert.ToDouble(vc[2]);

  }

  具體可以參考EmuClasses文件中的文件。

  注意

  1. 目前該方法只實現了重力加速度,沒有實現運動方向的加速度,即給出的X/Y/Z這三個值是在垂直方向上的加速度。

  2. PC機上運行的攝像頭程序會比較耗費CPU資源,建議分辨率不用調太高,可以識別就行。

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 理论片在线观看韩影库| 日韩一区二三区国产好的精华液| 日本高清va在线播放| 亚洲精品中文字幕乱码| 美女主动张腿让男人桶| 国产日韩在线视频| 99热精品国产麻豆| 无码人妻熟妇AV又粗又大| 亚洲一区二区三区无码国产| 男人桶进女人p无遮挡小频| 国产伦子沙发午休| 手机看片国产免费永久| 天天操天天干天天爽| 中韩日产字幕2021| 本道久久综合无码中文字幕| 亚洲视频在线精品| 美美女高清毛片视频黄的一免费| 国产日产精品_国产精品毛片| 992tv国产人成在线观看| 怡红院一区二区在线观看| 久久天天躁狠狠躁夜夜avai| 欧美性a欧美在线| 伊人久久大香线蕉| 美女羞羞喷液视频免费| 国产在线观看免费不卡| 4444在线观看片| 天天综合网网欲色| 中文字幕免费在线播放| 日韩人妻无码一区二区三区综合部 | 国产91青青成人a在线| 久草网在线视频| 国产精品视频白浆免费视频| www.一级毛片| 成人无码免费一区二区三区| 久久九九久精品国产| 最近2019免费中文字幕视频三| 亚洲欧美一区二区三区在线| 玛雅视频网站在线观看免费| 又大又硬又爽免费视频| 草草影院私人免费入口| 国产成人无码18禁午夜福利P|