我要啦免费统计
繁體
  • 如何自制简易多点触摸屏 - [闲事]

    2008-06-01

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://littlewhitetwo.blogbus.com/logs/22050930.html

    在网上看了这个篇文章,觉得有点意思,呵呵,自己弄了一个。

    硬件:
    1、摄像头一个。用不着太好,30W像素的杂牌子也是可以的,但是最好用可以全方位旋转的那种,至少能够达到60度以上的仰角,当然如果能够到90度就很完美了。(摄像头能垂直向上放置的为宜,可能要拆去一部分外壳,我用到是天敏左轮加强版 30W象素)

    2、除去顶盖的硬纸板盒一个。不能太小,纸板越硬越好,开口尽量宽敞点。(大小尽量大一些吧,高度也尽量高一些,方便裁减。刚好我这里就用了有个快递的纸箱,不用去掉顶盖)

    3、白纸一张。普通的打印纸就可以了。(光滑一些,别褶皱了)


    4、透明材料。最理想的材料是半透明玻璃,可以直接省去材料3,搞不到的话就用普通玻璃,其实我的感觉是,用贴液晶显示器的保护膜就够了,可以选稍微硬一点的那种。(我就用的是液晶保护膜)

    软件:MTmini Software Package v1 ,包含了开源软件Touchlib(整个制作的核心)、设置程序、各种示例程序,以及相应的教程等等,总之就是All-in-One。

    制作方法:
    1、把摄像头固定在纸板盒的底部,并使得摄像头的有效部分和水平面尽量成0度角,在纸板盒的侧面开一个口,引出数据线,口不要开太大,避免过多的光线射入。

    我的经验:先去调整摄像头,固定下来,然后再调整纸箱的高度,以扩大可以操作的范围。

    调整摄像头:先将摄像头粗略固定在纸箱正中间,然后将纸箱上方的3个纸皮都打开竖直,一个水平放置,观察摄像头图象,图象纸皮边缘应该在图象中间,而且与图象边缘水平,否则调整摄像头,上方的四个纸皮都这样调整,调整好摄像头后,用透明胶固定即可,引线注意不要透光即可。

    确定纸箱高度:将纸箱上方的4个纸皮都打开竖直,在上面再放一张A4纸,观察摄像头图象,是否看得见一块黑暗,如果看得见的话,说明盒子的高度太高,需要裁减一下。同时,用手指在到处点,尽可能使手指的影子落在在使摄像头图象4个角落,在A4纸上描出控制区域的矩形,如果矩形太小的话,可能纸箱本身的面积就小,或者摄像头的广角太小,此时就要增加纸箱的高度(怎么增加?换一个啊$%#$%#$#%#$%)

    2、把材料3和材料4(我这里用的是液晶保护膜)裁剪成同样大小,用透明胶带站在一起,粘有白纸的一面向上,并固定在材料2的上方,这一步的关键在于固定的时候尽量不要在盒子的边缘留下缝隙。(大小比纸箱的底面面积稍大即可)


    3、如果你用的是那种半透明玻璃桌面的电脑桌,那可以直接把盒子粘在桌子下方,就像这样子,超级省事:(我没有这样的桌子,呵呵,作罢)

     

    软件设置部分:
    1、配置Touchlib
    运行Configuration.bat,会出现一个CMD控制台和图形界面,这里没有什么特别需要改动的地方,一般按默认就可以了,分辨率不用调得太高。(我选的是320 X 240,视具体摄像头而定吧~)
    确定之后会出现一系列的窗口,每个窗口里面都有一个滑块可以调节,把你的手指按在刚刚做好的盒子上面,你会看到窗口里面会出现手的大概模样(没看到?你该不会是没有开摄像头吧?),调整滑块以改变灰度、粗糙程度等属性,直到名为Rectify7的窗口里面只出现平滑的与你的手相对应的白点。调整好后按 ESC退出。(这里应该是 Rectify6,反正手指在上边滑动,调整使得Rectify6 只出现你手指接触纸的那个亮块)

     2、Windows示例程序
    运行Demos/C++ Demos里面的Smoke_Demo.bat,移动你的手指,看看具体效果。如果烟雾的效果不是很明显,重复步骤2;如果有大于手指数量的烟雾点,按B 键进行背景重捕捉。一般来说,Smoke Demo里面的效果应该还是不错的。满意的话按Q键退出。


    运行Demos/C++ Demos里面的Windows_Mousedriver.bat,弹出CMD控制台,直到出现“Recap”字样时,就可以用多点触摸的方式来代替鼠标操作了。


    3、Flash示例程序
    首先运行Server.bat,弹出CMD控制台和一个灰色的窗口(无图像),用手指按在盒子上,直到CMD内出现“Blob Detected”的字样,然后运行“Gateway.bat”,弹出CMD控制台和名为“FLOSC 2.0”的窗口,点击该窗口内的“Start”,CMD控制台应该会显示“Server Started”,如果没有的话,可能是没有安装 Java runtime 1.6以上的版本的缘故。
    然后你就可以运行Demos/Flash文件夹里面的Flash示例程序了。

    以上内容其实都在教程文档里面了,如果遇到问题,可以看看文档里面的Help部分(推荐),或者到这个地方进行提问:NUI Group Forum

    最后附上一个完整步骤的演示视频:

     


    收藏到:Del.icio.us




    评论

  • 你好,我想研究一下touchlib,但碰到了些问题,可以问问你吗?
    小白回复郭博学说:
    呵呵,我没有详细研究过touchlib的代码,我的邮箱是littlewhitetwo@gmail.com, 也欢迎探讨一下,
    2008-08-04 14:21:57