开源低成本虚拟激光键盘

虚拟键盘第二代已经推出,点击此处了解

简介

使用激光将一个虚拟的键盘投射在桌面上并能正常使用是非常Cool的事情。不过现成的产品相对还比较贵。

这里我们很荣幸向大家介绍由我们团队成员设计的开源低成本的虚拟激光键盘方案! 通过本方案,您也可制作出自己的虚拟激光键盘来:)

我们的开源版本支持多搭10个按键的键盘事件输入,支持组合键和输入法。可以与一个标准键盘外设那样在Windows和MacOS下面工作。


此外,它也可以作为一个多点触摸板来使用,并能感知手指的“压力”:


演示视频

http://v.youku.com/v_show/id_XMzIwMDc1Mjgw.html

工作原理

低成本激光投射虚拟键盘的设计制作-上(原理和硬件)

http://www.csksoft.net/blog/post/lowcost.laserkbd_part1.html

低成本激光投射虚拟键盘的设计制作-下(算法与实现)

http://www.csksoft.net/blog/post/lowcost.laserkbd_part2.html

我们的设计基于了PC机上进行的计算机视觉来处理按键事件。采用了一个由摄像头和激光器组成的测距系统工作。

本设计所需要的硬件非常简单,只需要3个核心部件即可实现:一个摄像头、一个激光器以及投射键盘图案的投射激光。这也是正是低成本的奥秘所在了。

当用户在桌上“按下”一个虚拟的按键后,手指上反射的激光信号会被摄像头捕捉。随后安装在PC/Mac上的信号处理软件就会进行最核心的工作:通过反射的激光光斑定位用户的指尖位置,并求出对应的按键:

如何制造一台?

最简单省力的办法是购买套件自己组装。目前 DFRobot 正帮助我们进行这类DIY套件的生产和销售。该套件中包含了所有所需的元件,并且我们也为它设计了一个详细的教程来指导你进行组装调试。

期待属于您自己的激光键盘制作诞生:)

套件链接:

http://www.dfrobot.com.cn/index.php?route=product/product&product_id=759

配套的使用文档:

配套的信号处理软件:

源代码:

代码许可:

在不做特殊说明前提下,这里给出的代码均使用LGPL授权。

Git Repos:

https://github.com/robopeak/laserkbd

注意:我们对提供的代码质量不做出任何保证,Play at your own risk. 😛

如何编译源代码?

参考这篇教程

22 thoughts on “开源低成本虚拟激光键盘”

    1. Linux平台可以很容易支持。代码可以基于MacOS版本作少量修改进行编译。我们考虑目前已经公开了代码,且用Linux的都属于hacker,所以该平台的移植希望由用户自己进行:)

  1. 键盘连接到Mac的机器上,打开信号处理软件不能发现Vimicro 摄像头怎么办?在windows下可以发现,但是我的Mac Pro不行,是不是应该装什么摄像头驱动呢?

  2. 激光键盘接在windows7的电脑上能检测到摄像头,但是连接在Mac电脑上,打开信号处理软件不能检测到Vimicro摄像头,请问该怎么办?

    1. Mac自带了摄像头驱动。请确认MacOS的版本在10.7以上。此外,将usb连接Mac的过程可以放缓,即慢慢地将USB口插入,速度过快有时系统会识别不了

    1. 请联系下DFRobot客户,可能摄像头质量问题。
      同时也可以尝试缓慢将usb插入PC,目前套件使用的摄像头如果较快速的接入电脑可能会存在你遇到的问题。

  3. 关于激光虚拟键盘 求救 可以加一下QQ好友 或是手机联系吗 急 急 急!!!! QQ 505204205 18255005633

  4. 我想把中间的键盘投影换成一个点阵投影的模块,能用来做交互式游戏的,该用哪种激光投影模块啊,求教!!!!!!

  5. 在linux下编译失败ggice@ggice-PAF4:~/app/jp/laser_kbd_neo$ scons
    scons: Reading SConscript files …
    scons: done reading SConscript files.
    scons: Building targets …
    g++ -o src/port/linux/keyinjector_linux.o -c -g -I/usr/include/jsoncpp -Isrc -Isrc/cvui -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/libusb-1.0 -I/usr/include/opencv src/port/linux/keyinjector_linux.cpp
    In file included from src/port/linux/keyinjector_linux.cpp:23:0:
    /usr/include/at-spi-2.0/atspi/atspi.h:27:18: fatal error: glib.h: No such file or directory
    compilation terminated.
    scons: *** [src/port/linux/keyinjector_linux.o] Error 1
    scons: building terminated because of errors.

Leave a Reply

Your email address will not be published. Required fields are marked *