查看: 940|回复: 1

[作品提交] 基于LPC55S69的投影键盘的设计

[复制链接]
  • TA的每日心情
    开心
    2022-2-1 19:14
  • 签到天数: 26 天

    [LV.4]偶尔看看III

    15

    主题

    127

    帖子

    0

    高级会员

    Rank: 4

    积分
    723
    最后登录
    2022-12-30
    发表于 2020-1-13 17:41:21 | 显示全部楼层 |阅读模式
    本帖最后由 chinaf 于 2020-1-13 18:02 编辑

    简介
    投影键盘顾名思义是采用投影出一块键盘做为数据输入的一种方式,用内置的红外激光发射器投影出键盘的轮廓,通过一些红外跟踪技术获取到手指的动作,从而实现模拟键盘的输入。相对于实体键盘来说,投影键盘体积小携带方便,一般上采用蓝牙等无线方式连接,可以连接到PC、手机和平板等设备,不过由于没有实体按键,相对来说比较容易误触,而且对于使用环境来说,需要相对水平的平面。
    本次项目使用NXP公司的LPC55S69做为核心,基于图像识别技术实现投影键盘的功能。LPC55S6x MCU家族是全球首款基于通用Cortex-M33的微控制器,随LPC5500系列推出。该高效率MCU家族采用Armv8-M架构,性能和高级安全功能达到新水平,包括TrustZone-M和协处理器扩展。LPC55S6x家族利用协处理器扩展型号,大幅提高信号处理效率,采用专有DSP加速器,使计算的时钟周期减少了10倍。还可选择使用第二个Cortex-M33内核,支持灵活地平衡高性能与功率效率。此外,LPC55S6x MCU家族依托基于40nm NVM的处理技术,具备成本效益优势,提供广泛的可扩展封装和存储器选项,并提供强大的支持,包括MCUXpresso软件和工具生态系统及低成本开发板。LPC55S69双核Arm Cortex-M33微控制器运行频率高达150 MHz。在项目中主核用于处理逻辑控制、蓝牙连接以及数据收发任务,协核用于处理图像识别。系统框图如下所示。
    file:///C:/Users/zhang/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg
    1.png

    硬件       项目的主要硬件有LPC55S69开发板、摄像头OV5640、红外激光键盘投影模组、一字红外激光发射器以及电源。
                                              2.jpg              3.jpg file:///C:/Users/zhang/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg             file:///C:/Users/zhang/AppData/Local/Temp/msohtmlclip1/01/clip_image006.jpg
    一字红外激光发射器                        红外激光键盘投影模组
    4.jpg 5.jpg file:///C:/Users/zhang/AppData/Local/Temp/msohtmlclip1/01/clip_image008.jpg         file:///C:/Users/zhang/AppData/Local/Temp/msohtmlclip1/01/clip_image010.jpg
                                          摄像头OV5640                                                  电源
    6.jpg
    file:///C:/Users/zhang/AppData/Local/Temp/msohtmlclip1/01/clip_image012.jpg
    LPC55S69开发板


    硬件框图以及原理如下图所示,
    7.png
    8.png
    file:///C:/Users/zhang/AppData/Local/Temp/msohtmlclip1/01/clip_image014.jpg
    file:///C:/Users/zhang/AppData/Local/Temp/msohtmlclip1/01/clip_image016.jpg
    软件
    上电后开发板驱动红外激光键盘投影模组工作,投影出键盘,同时驱动一字红外激光发射器工作。当手指按在投影键盘区域时,手指与平面的接触部位会反射一字红外激光发射器发出的激光,同时摄像头捕捉该画面。LPC55S69的协核通过摄像头读取画面数据,通过计算得出手指按下的相对位置(x,y),从而换算出被按下的按键值。由于双核之间需要通信的数据只有键值,最简单的方法就是协核将按键值发送至MailBox的IRQ0SET寄存器,这样主核就会产生中断,并通过读取IRQ0寄存器获取到按键值。
    为了简化关于摄像头获取到的图片计算内容,在摄像头前应加装红外滤光片,可以有效的避免掉一些可见光的干扰,此时再对图片进行二值化处理,将整个图像呈现出黑白效果。二值化图像本质上是对数据的二分类分割,关于其中的阈值获取的方法也有多种,主要分为手动阈值设置和自动阈值设置,由于手动阈值设置对使用环境的要求有限制,局限性比较大。由于该项目中的图片的直方图呈现明显双峰,所以我采用自动阈值设置中的OSTU即最大类间方差法,OTSU是通过计算类间最大方差来确定分割阈值的阈值选择算法,它的原理是不断地求前景和背景的类件方差。http://www.jianshu.com/p/c7fb9be02412参照该博客的一段介绍:我们把图像分成大于阈值和小于阈值的两个部分,也就是前景与背景两个部分。我们可以计算这两个部分的类间方差。类间方差越大,就说明两个部分直接的灰度差距越大。将0~255这256个阈值都试用一遍,找到类间方差最大的值,通常就是我们要找的最佳阈值了。


    实物图
    file:///C:/Users/zhang/AppData/Local/Temp/msohtmlclip1/01/clip_image018.jpgfile:///C:/Users/zhang/AppData/Local/Temp/msohtmlclip1/01/clip_image020.jpg
    9.jpg 10.jpg
    11.jpg

    file:///C:/Users/zhang/AppData/Local/Temp/msohtmlclip1/01/clip_image022.jpg
           通过摄像头捕捉的初始画面是这样的,还没有加红外滤光片。
    补充
    接下来的程序编写以及功能实现,由于时间的原因,如果明年我依然健在的话,可能会补上。十分抱歉!

    投影键盘的设计.rar

    3.85 MB, 下载次数: 15, 下载积分: 威望 1

    哈哈
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2021-5-7 15:34
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    4

    主题

    115

    帖子

    1

    高级会员

    Rank: 4

    积分
    724
    最后登录
    2024-4-25
    发表于 2020-1-15 10:27:54 | 显示全部楼层
    我想问一下,是遮住哪个按键算哪个按键按下吗?还有一个键连按两次怎么检测
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-25 22:39 , Processed in 0.113893 second(s), 21 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表