摘要:相比传统的按键控制,通过手势控制汽车电动天窗、电动遮阳帘开闭,可以增强汽车驾驶的交互性能,提高汽车行驶安全性。因此,文章提出了采用反射型红外光耦感知,微型控制器进行信号识别的方案,设计并制作了相应的电动天窗和遮阳帘手势识别模块,该模块利用BF7112A微型控制器,实时采集四路光电二极管的通断信号,根据这些信号的变化过程,识别手势的动作方向,从而控制天窗和遮阳帘相应动作。通过实验显示,该模块对手势动作的单次识别准确度达到90%以上,达到了实际应用要求。
经历了2020年缺芯潮后,国内的一些汽车零部件供应商更加关注产品供应链自主可控,在产品开发时,对电子控制单元上的微型控制器(Microcontroller Unit, MCU)更倾向于选用本土制造的产品。在外部环境上,得益于我国市场对车规级MCU的巨量需求,国产MCU蓬勃发展,众多厂商在车规级MCU的不同应用领域积极布局,很多产品已批量上市,这给产品设计时MCU的选型提供了多个选项[1]。因此,在一些汽车零部件的迭代升级过程中,采用国产MCU作为主控器,与芯片供应商形成稳定的合作关系,对企业的长远发展意义重大。
根据企业的产品规划,需要在现有的按键式顶灯总成控制电路基础上,开发一款低成本的电动天窗和遮阳帘手势识别模块,实现对天窗、遮阳帘的手势控制。
电动天窗手势识别模块要求系统能够识别驾乘人员不同的挥手动作,以实现对电动车窗、电动遮阳帘的控制。目前,随着汽车智能座舱技术的发展,手势交互多通过摄像头,利用机器视觉技术来实现[2-3],但这些技术都需要依靠计算机操作系统支持,很多是依靠汽车整体智能座舱系统来实现,产品成本较高,通常应用于一些高端乘用车,与一般车辆电动天窗上应用的按键独立控制装置较难融合。而采用车规级近程传感器[4],除了成本高外,还与识别模块后续规划的按键触摸功能相冲突,会引起误触发,增加信号识别的难度。还有一些专用的手势传感器[5]在普通电子消费品上应用较广,但满足车规级要求的产品很少,价格也比较贵。
因此,根据公司的产品成本定位和功能规划要求,选择了由红外光电传感器采集信号和单片机组成系统的方案,将比亚迪公司的BF7112A微处理器作为识别模块的控制单元。由于未找到价格合适且满足车规要求的手势传感器,故选择车规级的红外发光管和红外光电二极管[6],用分立元件搭建四对反射型光耦及其信号处理电路,呈十字形分布,布置在识别模块电路板的四边,整个模块嵌入到顶灯总成中间的窗口中,并留有一路通用异步收发传输器(Universal Asynchronous Receiver and Transmitter, UART)接口,与顶灯总成已有的控制单元进行通信。模块的功能结构如图1所示。
图1 模块的功能结构
识别模块的控制器选用比亚迪的BF7112A,该控制器是一款基于标准8051指令流水线结构的8位通用型车规级MCU,工作频率为24 MHz,包含32K字节的随机存储器(Random Access Memory, RAM)、256字节(内部)+768字节(外部)的静态随机储存器(Static Random Access Memory, SRAM)存储单元,支持2K字节的电气可拭除可编程只读存储器(Electrically Erasable Program- mable Read Only Memory, EEPROM),最大封装支持25个双向输入/输出口。该款MCU提供了丰富的功能模块,主要如下:
1)两路可单独配置的16位脉冲宽度调制(Pulse Width Modulation, PWM);
2)4个16位定时器,具有溢出中断,并且其中的定时器3既可使用MCU的内部时钟,也可使用外部晶振时钟,以应用在一些时间控制要求很精确的场合;
3)3个外部中断,其中外部中断0和1有低电平、高电平、上升沿、下降沿四种中断方式可选。外部中断2支持上升沿、下降沿两种中断方式;
4)提供低电压检测中断,当电源电压下降到3.8 V时,即触发中断;
5)2路8051标准UART通信;
6)1路IIC硬件从机,支持标准IIC通信和快速IIC通信等。
该单片机的一个重要特点为I/O端口可以配置成电容按键输入,最多可以配置23路,各路按键的灵敏度可独立控制。
根据设计的功能要求,当需要对电动车窗、遮阳帘进行操作时,驾乘人员在传感器前挥手即可触发四只红外光敏电路产生脉冲信号,将这四路信号引入到MCU的数字量输入端口和逻辑芯片74LV32A的输入端口,经过或运算后接到MCU外部0号中断的输入引脚。四只光耦的红外发光二极管(Light Emitting Diode, LED)采用一片ULQ2003驱动芯片,由MCU独立控制每只红外LED的通断。模块的主要硬件电路如图2所示。
图2 模块的硬件电路
驾驶员坐在驾驶座椅上抬手至顶灯总成前,做电动天窗、遮阳帘控制手势时,手与顶灯总成自然且舒适的距离通常为5~15 cm,一般不超过20 cm,因此,将红外光耦的最大感应距离设计在距顶灯总成面板约20cm的位置,当超过这个距离时手势感应电路一般不做响应。
MCU芯片供货商给用户提供了基于keil C51软件进行BF7112A控制程序开发的完整工程文件,在这个C语言的工程文件中,MCU外设的配置在BF7112A_API.h中进行,可以根据文件中的注释,对MCU内部各模块的功能进行预编译配置,具体应用的控制代码建议在Project.c文件中添加,这样方便整个项目文件的组织和管理。
在本项目中,每只红外LED的工作电流配置在80 mA左右,四只二极管工作时,就到达300 mA以上,是一个较大的功率消耗。为减小整个识别模块的能耗,采用占空比为10%的PWM波形式控制红外LED的导通,一旦感应到顶灯总成前后物体,则转换为常通模式。由MCU读出四路红外光敏电路的输入信号,经过逻辑判断后,确定手势的移动方向,从而识别出驾乘人员对天窗和遮阳帘的操作意图,并发出200 ms的低电平脉冲信号到天窗电机驱动模块相应引脚上。控制程序的主流程图如图3所示。
图3 控制程序流程
控制代码通过BYD 8位MCU专用USB调试烧录器下载到BF7112A后,对模块的手势识别正确率进行了测试。为了便于观察,在模块的四路输出端口,接上LED灯指示电路,如图4所示。
图4 模块功能测试
实验时,手在控制板上方10 cm位置挥动,从上往下为打开天窗,从下往上是关闭天窗,从左往右是打开遮阳帘,从右往左是关闭遮阳帘,手掌暂停在控制板上方为暂停当前的动作。打开和关闭的动作每个设计是50次,经过三百多次的挥手测试,模块对驾驶员不同运动特点的手势动作,单次识别准确度达到90%以上(见表1)。测试中,第一次未正确识别,第二次准确识别,识别距离合适,对超过20 cm的手势动作,未触发模块动作。
表1 手势识别准确率统计
经过本项目的开发,比亚迪的BF7112A芯片完全能满足车身上一般电器的控制要求,应用起来很方便。MCU内部丰富的功能模块简化了控制电路的设计,降低了模块的成本,特别是电容触摸按键输入功能,每路按键灵敏度都可以独立配置,且可以通过专用USB调试烧录器在其上位机调试烧录图形界面中直观显示,这也是当初选型这款MCU的原因之一,可用于后续将顶灯控制换成电容触摸按键的控制板开发。
参考文献
[1] 编辑部.车规级MCU,智能新能源“芯”突破[J].汽车与配件,2022(19):50-55.
[2] 黄俊,邓敏,吕能超.智能座舱多模态人机交互研究现状分析[C]//中国科学技术协会,交通运输部,中国工程院,湖北省人民政府.2023世界交通运输大会(WTC2023)论文集(下册).武汉:武汉理工大学智能交通系统研究中心,武汉中交交通工程有限责任公司,2023:892-895.
[3] 徐彬.手势控制技术在汽车上的应用[J].汽车维护与修理,2016(4):77-82.
[4] 高明亮,陈明月.手势识别系统的研究与实现[J].山西电子技术,2023(3):87-89.
[5] 刘成涛,郭帅.基于手势识别的智能小车无线控制系统设计[J].现代电子技术,2023,46(16):182-186.
[6] 涂少碧.汽车智能座舱内部的“传感之道”[J].电子产品世界,2021,28(6):25-27.