(Sony Xperia Touch Demo 影片)
我工作內容是根據客戶需求做出他們想要的軟體
因此常常需要survey未知領域
若以下理解有錯誤的請不吝指正
🌍環境
▪投影機將電腦(Win10)畫面投影到桌面上
▪IR camera (讓程式偵測手指位置)
環境是客戶那邊原本就架設好的
我只做軟體 因此不要問我怎麼做的
我也不知道XD
🍩需求
讓投影桌面有touch功能
💡想法
1. 抓到IR camera拍攝到的手指座標 (如何抓到座標網路上已有許多方法可參考,在此不贅述) →將點位轉成touch event
此方法失敗,原因有2
▪survey不到 已知座標->touch event 要怎麼做,大部分都是談到如何將touch event轉成mouse
▪就算可以做到 座標->touch event,但touch的gesture我還是要另外處理,這並非易事。
我需要能分辨出單一touch點 的down / up / drag ,另外若是multitouch的話
我會收到海量的座標點,要如何分辨出這些座標是屬於哪個手指的呢?
因此我轉而survey另一個方向
註:survey過程中發現windows有內建的touch 模擬器
C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Simulator\15.0\ Microsoft.Windows.Simulator.exe
2. survey keyword :multitouch/ emulate touch / projector touch /multitouch table /
Touchscreen Projector/Surface Touch Table/投影觸控
▪ Enable multitouch on WPF controls 做一個有multitouch功能的WPF程式,
但就只會在WPF的window上有作用
我需要的是global touch功能,也就是不限一定要在WPF window上的touch點
▪ CCV and TUIO Mouse (英文)
這個影片很簡單,卻幫助我很大(要看作者在底下的回覆),
讓我終於看懂了 Software Implementing TUIO ♥
也完成我需要的功能
我的軟體架構如下:(其實我還沒寫到程式,都是拿現成的東西來用)
⛏開始做啦
跟著一步一步做
▪ 下載 CCV1.5.exe 並安裝然後開啟
CCV 它以视频作为输入流,从中捕捉跟踪到的触点信息,包括事件(手指下压、移动、释放等)及触点坐标
(此句擷取自CCV入门教程(一))
介面很直觀,很好上手
細項怎麼操作請參考 ccv入門
▪ 下載EcoTUIODriver 並依照README安裝然後開啟
CCV的資料會傳給 EcoTUIODriver
開啟EcoTUIODriver會看到以下的介面
紅框部分會顯示touch點
綠框部分按下去的話,紅框部分的touch點就會消失,到windows上面呈現
因此要讓投影桌面有touch功能就要按綠框部分的鈕
註:執行EcoTUIODriver的時候,
同時會有一個叫做Tuio- To -vmulti - Device1的service常駐
此Service就算把EcoTUIODriver的UI關閉,
還是會繼續執行
▪ 校正
一開始觸控點會跟實際投影畫面偏移很多
所以第一步一定需要校正( Calibration)
不得不說CCV真是太棒惹!
因為它也有Calibration功能
按下畫面左上的Calibration之後
照著畫面中間的指示
按C開始校正 (等圈圈全變色手指再起來換下個點)
校正完按X離開 ->重要重要!
我第一次試的時候
校正完是按Esc離開 結果設定沒吃進去
觸控點位置一樣很歪啊
我還覺得這校正功能也太爛 根本假的嘛
(原來普攏共的是我....)
▪ 觸控桌面可以用啦!!!!!!
📋 ToDo List
要將以上功能程式化
不外乎就是要開始找source code
程式一開機就常駐啦 ...etc
📚 參考資料
▪ Multi-touch Screens in the Open Source World (英文)
這影片有一個多小時,可以幫助了解Multi-touch Screen
▪ 多點觸控論壇 (英文)
▪ 多點觸摸技術手冊 (簡中版)
▪ Multi-touch Table with Image Capturing (英文)
此論文裡面Fig 6顯示軟體架構
▪ Software Implementing TUIO (英文)
▪ http://ccv.nuigroup.com/
Software部分介紹TUIO
▪ MultiTouchVista for win7 https://archive.codeplex.com/?p=multitouchvista
🉐後話
網路上可找到的multitouch screen資料其實都超舊 (十年以上的不少見)
我才了解到原來multitouch screen已經不是什麼稀奇的技術啊...