【一:项目创意、方向选择】
这个功能其实很多设备上已经做了,比如车子的停车监控功能,通过检测车辆停稳后的异常抖动来启动摄像头录像。家庭监控摄像头的人物跟随功能。但是呢,目前这种程度的功能,并不能满足自己的需求。我需要实现一个设备,这个设备在没有异常的时候,不启动录像,一旦有异常,则快速切换至异常位置,使用摄像头跟随的方式跟住异常点,同时,还需要将异常信息通知到我的手机端,以便快速知晓异常点。
而在浏览硬禾过往项目中,发现一个叫M1S DOCK的项目,里面使用的方案很接近我想要的实现方案。在浏览了他的外围接口时,发现有个不错的点,他的I2S很灵活,且并未完全被屏幕和摄像头占用,因此由想到了之前看到的另一个板卡,seeed的7mic环阵板卡(之前一直想做一个MIC Beamforming的算法,找到了这个板卡)。刚好这两个板卡符合FastBond3需求,因此申请这个活动。
【二:异常监控系统】
设计思路
利用6mic环阵实时检测环境音,当环境音存在幅度突变(突变量超过阈值)时,启动DOA算法,确认异常声音角度,之后控制步进电机转动到对应角度后,启动摄像头摄像并识别异常源,采用控制电机转动的方式将异常源一直保持在摄像机所拍摄视频的中心位置,直到异常源丢失或用户控制退出监控才停止录像。
方案选型
两个主要方案已经确定,M1S DOCK(1597-110991866-ND) 和 7mic环阵(1597-1711-ND),那剩下的就是步进电机控制板的选型了。
由于不需要多大的功率,因此直接选择了L9110S(5074-BCRRQI_AAA-ND)两相步进电机控制板(原因无他,这板子太便宜了,国内5块钱,即使在得捷上,这板子也不到18RMB,属于能搜到的最便宜的步进电机控制板)。
另外,由于7mic环阵接口为共用时钟的I2S接口,而M1S DOCK只支持一路I2S输入,好在虽然只支持一路I2S输入,但是看规格书,这颗芯片支持6路TDM模式,因此需要做一个多路I2S转I2STDM的功能,按照历史经验,我直接选择了RK2108,这颗芯片刚好支持共用clk的方式采集多路I2S输入,能够在硬件上保持几路mic的时间同步,且这颗IC为M4F + HIFI3的双核架构,如果M4F核跑DOA算法难,则可以考虑换成HIFI3核跑DOA算法。唯一需要做的事是,需要自行编写固件,但这不算什么难事。
大致硬件框架(未考虑供电部分)
【三:心得体会】
老实说,基于这套架构,其实还能做更多的东西:
比如跟随人动的WIFI或蓝牙音箱,使得声音的直达部分永远正对着听音者。
比如风扇风力大小控制电路(摄像头识别人,红外收发做距离判断),根据结果控制送风量
比如空调,根据前方是否有人决定冷气送达方向。
又比如,这方案可以作为家庭遥控器,直接远程控制家庭里的遥控,联网(蓝牙,zigbee类)设备的开关状态。
但这是后话,当前先实现异常监控功能原型设计。