Saturday, February 7, 2009

Touch Screen & Future

我們所常說的觸控螢幕其實是包含了兩個部份─Touch Panel、Touch Screen Controller(以下簡稱TSC),Touch Panel就是我們所看到的觸控螢幕,觸控螢幕較細節的原理則是當我們手去觸摸到Touch Panel上時 TSC會偵測並送出中斷訊號(PENIRQ)給MCU,而MCU在接到中斷訊號時 可以知道觸控螢幕被Touch到 但並不知道是在螢幕上的那一個點被觸碰到的,所以接著MCU必須要對TSC送出Command 去抓出X Y的座標值

Linux底下Touch Screen的Device名稱為ts,所以我們可以在/dev底下找到一個ts的device,而/dev/ts又為一個區塊設備 並非像RS232(/dev/ttySX)等是字元設備,所以在處理/dev/ts時需要先了解區塊內有包含了那些訊息

typedef struct {
unsigned short pressure;
unsigned short x;
unsigned short y;
unsigned short pad;
} TS_EVENT;


而/dev/ts包含的訊息就如上述所示,包含x,y等等的訊息。所以我們了解了這些之後 就可以寫程式來測試一下Touch Screen讀出來的訊息囉!程式碼如下:

#include < stdio.h >

typedef struct {
unsigned short pressure;
unsigned short x;
unsigned short y;
unsigned short pad;
} TS_EVENT;

static TS_EVENT ts_event;
static int ts;

int main()
{
ts = open ("/dev/ts", 0);
if (ts < 0) {
fprintf (stderr, "/dev/ts: Can not open touch screen!\n");
return 0;
}

while(1)
{
if(read(ts,&ts_event,sizeof(TS_EVENT)))
{
printf("X=%d,Y=%d,Pressure=%d \n",ts_event.x,ts_event.y,ts_event.pressure);
}

}

return 0;
}


一般我們見到的觸控面板大多都是電阻式的觸控面板,因為成本便宜,技術也算成熟。而像是iPhone的多重觸控方面其實原理就有點不一樣了,它是使用電容式的觸控面板,成本也較電阻式面板高。而像是iPhone的多點觸控操作對程式來說也是去抓取點的位置,你可以透過手的縮小、放大去計算兩指之間的距離,達到縮小放大的功能

關鍵報告式的未來空間操作系統Oblong G-Speak

g-speak overview 1828121108 from john underkoffler on Vimeo.

又一個未來科幻操作的影片,是有關於建築的系統的未來短片,此未來短片由Bruce Branit所拍攝並做後製,故事蠻感人的,有興趣的朋友可以去看看。Bruce Branit也有自己的工作室Branit VFX

World Builder from Bruce Branit on Vimeo.

不知道這些操作系統何時才會真正的普及於我們一般的生活當中..

Reference:
Touch Panel校正Screen
TouchLight: An Imaging Touch Screen and Display for Gesture-Based Interaction
觸摸屏技術發展介紹
Oblong G-Speak
Branit VFX
World Builder

No comments:

Post a Comment