最近工作太忙了,只能利用闲暇时间,完成手势笔的项目。最初就是准备利用手势笔传感器实现动画的控制的,一开始活动套件还没拿到手的时候,还是有些心理压力的。随着套件到手,项目一点点地展开,那种压力就渐渐消失了。事实证明,只要肯动脑动手,任何困难都有机会被解决。
我的小项目中,利用手势传感器获得的信息中,目前值保留了上下左右四个方位的控制信息,主控获得控制方向后,在OLED上控制一个显示实体向相应的方向移动。由于是使用I2C接口的OLED,再加上手势传感器没有提供中断引脚,只能周期性以I2C方式采集手势数据,所以动画视频无法实现高帧率的演示。但目前从结果来看,动画视频还是比较流畅的,算是达到了实验目的。
程序的处理逻辑是建立定时器,通过终端方式以固定周期访问手势传感器,获得最新的手势控制,并根据这个控制,驱动模型向指定方向移动。移动过程是通过在OLED上刷新坐标实现的,同时手势传感器获得的结果,也输出在OLED显示屏上。
1、系统框图
2、电路原理图
3、开启运行
系统上通过Type-C电缆上电后,进行一系列初始化处理,包括串口、OLED、手势传感器、定时器等。初始化完成后,5秒倒计时后进入测试处理,启动定时器中断,周期访问手势传感器,获取手势信息。然后根据手势数据、计算动画实体的坐标,控制它的移动,实现动画功能。
4、主要参数情况
主控板使用NUCLEO-H503RB评估板
手势传感器型号为:PAJ7620U2
OLED采用常见的0.96英寸、I2C接口的显示屏。
5、实现步骤
1)首先是用杜邦线完成各个部件和主控板之间的连接。
2)利用开发工具CubeMX完成工程的框架,设置好用到的GPIO口。
3)测试各个接口的有效性。正确无误场合,编写相应的驱动程序,并测试通讯状况。
4)设备连接无误,编写处理代码,实现动画机能。
6、最终装置组装图
这里附上整个工程的代码:
手势传感器演示视频(https://www.bilibili.com/video/BV18x4y1Y7cD/?vd_source=adcef0c69ad4c414f6be4c9a989b3821)