1. 引言
在当今时代,设计多功能智能车载座椅的必要性体现在多个方面。从宏观经济层面看,随着全球经济复苏和数字化转型加速,新能源汽车普及与智能网联技术应用促使消费者对汽车舒适性和智能化需求提升。从驾驶员个体需求出发,城市化进程加快导致交通拥堵,驾驶员行车压力大增具备多种功能的智能车载座椅对缓解驾驶疲劳、提升行车安全至关重要。从技术进步角度而言,人工智能和物联网等前沿科技发展为智能车载座椅设计提供强大技术支撑,但设计时要兼顾成本控制与安全性能。
在此背景下,智能按摩椅融合多学科技术,其设计涉及按摩机械结构、控制系统、传感器技术及人机交互设计等关键领域。按摩机械结构依人体工程学设计以保障按摩效果与舒适度,控制系统协调部件工作实现多功能,传感器感知人体与按摩部位信息助于实时调整参数,人机交互设计提升用户操作体验及信息获取便利性[1]。本研究中的车载智能座椅设计借鉴多学科技术融合思路,在座椅按摩模块设计中考虑按摩结构合理性、控制精准性、传感器辅助及人机交互优化。同时,汽车新四化(电动化、网联化、智能化、共享化)促使汽车座椅向智能化转型,智能化座椅除基本舒适需求外,应集成健康监测、环境感知、个性化调节等功能提升用户体验与车辆附加值[2]。本车载智能座椅设计融入健康监测(心率、血氧、体温检测)、环境感知(温度检测)及个性化调节等功能,旨在满足驾驶员对智能化座椅的需求,也为座椅零部件供应商在技术创新及成本控制等方面提供参考方向。此外,电动按摩椅电机性能影响按摩效果与舒适度,电机选择需考量扭矩特性、转速范围等因素,驱动电路设计要针对电机特点采用合适驱动芯片与电路拓扑结构[3]。本车载智能座椅按摩模块设计借鉴其理念,根据按摩功能需求选配合适电机,通过合理驱动电路设计保障电机正常运行与座椅按摩功能稳定实现。
2. 整体设计及设计模块选择
2.1. 技术要求
1) 传统的汽车座椅需要手动地进行座椅位置的调整以满足司乘者的需求,智能座椅可以通过按键触发使座椅自动向前向后调整以满足需要。
2) 车载智能座椅具备按摩功能。
3) 同时可以检测心率、血氧、体温,以检测人体的健康状况。
4) 汽车座椅的自动升降温,为司乘者久坐出汗或天气寒冷而提供舒适的服务。
小型和中型汽车的正常电压是12 V左右,大型车和重型车的正常电压是24 V来控制按摩电机。而所使用的单片机的工作电压范围在3.4 V到5.5 V [4],且都是使用直流电压来控制系统。功能模块框图设计如图1。
Figure 1. Block diagram of the functional module of the smart seat
图1. 车载智能座椅功能模块框图
2.2. 整体设计
车载智能座椅电子控制系统的cpu是STC单片机控制器,该系统的控制器的主要功能:采集来自心率血氧传感器、温度传感器及触发器发送过来的数据,对数据进行处理,通过LCD显示屏显示并能够通过按键对数据进行控制[5]。车载智能座椅电子控制系统的整体设计是以STC89C52为主要处理器的控制系统的软件设计和硬件电路设计。设计的模块主要包括体温、环境温度检测模块,座椅位置调整模块,座椅按摩模块,心率血氧检测模块等。设计总框图如图2。
Figure 2. General block diagram of the design of in-vehicle smart seats
图2. 车载智能座椅设计总框图
2.3. 模块选择
1) 控制模块:通过选型STC89C52单片机,其相关资料更为全面,技术较为开放,故开发难度低,为车载智能座椅控制系统的开发带来了极大便利[6]。在此基础上,以STC89C52单片机为核心设计了一种新型的汽车座椅智能电子控制系统[7]。STC89C52凭借其灵活的8位CPU以及可编程的Flash功能,可以为大量的嵌入式控制应用提供高度灵活的、超高效的解决方案。
2) 加热通风模块:目前市场上很多车辆只具有普通的座椅加热、座椅通风功能,随着汽车新四化的到来,智能化逐渐成为市场趋势,在现有的资源下实现座椅智能化加热通风功能将会为广大用户带来更好的用车体验。利用温度传感器DS18B20对周围的温度进行检测,并将其显示在显示屏上。若环境温度小于18℃则座椅加热,此时1路继电器指示灯显示红光。当室内气温超过21摄氏度时,应开启电扇L9110,启动空气流通,降低室内温度。
3) 座椅位置调整模块:座椅位置调整模块采用步进电机(见图3)作为执行机构,步进电机的精确控制依赖于STC89C52单片机。单片机依据用户通过按键输入的指令(按键与单片机的I/O口连接,通过中断方式或轮询方式检测按键状态),精确计算并输出相应的脉冲信号序列,从而实现座椅位置的精确调整。当用户按下向前调整按键时,单片机检测到按键信号后,根据预设的算法计算出正向转动所需的脉冲数量和频率,驱动步进电机正转,带动座椅向前移动。同时,单片机还可以实时监测电机的运行状态(通过检测电机电流或驱动器反馈信号),以确保座椅位置调整过程的安全和稳定。
Figure 3. Stepper motor
图3. 步进电机
4) 心率血氧检测模块:该心率血氧检测模块中的MAX30102芯片(见图4)负责采集光信号并转换为模拟数据。单片机按照I2C通信协议读取MAX30102采集到的模拟数据后,利用其内部的ADC (模数转换器)模块将模拟信号转换为数字信号。然后,单片机运行专门的算法对数字信号进行处理。最后,将处理后得到的心率和血氧数据通过串口通信或其他方式传输至车载显示屏进行实时显示,同时,单片机可以根据预设的心率阈值(该阈值可通过按键或其他输入方式进行设置)进行判断,当心率超过阈值时,控制蜂鸣器发出警报信号,提醒驾驶者注意身体状况。
Figure 4. MAX30102 chip
图4. MAX30102芯片
5) 蜂鸣器(见图5):MAX30102电源端接1.8 V电源并且有一个独立的3.3 V用于内部LED的电源,标准的I2C兼容的通信接口,TX为发射信号端,RX为接收信号端。
Figure 5. Buzzer
图5. 蜂鸣器
3. 系统硬件设计
车载智能座椅的控制器选择STC89C52是STC公司生产的一种低功耗、高性能8位微控制器,整体STC89C52最小系统电路原理图如图6,其主要特点如下:
Figure 6. Schematic diagram of STC89C52 minimum system circuit
图6. STC89C52最小系统电路原理图
1) 工作电压:5.5~3.3 V;
2) 工作频率范围:0~40 MHz,实际工作频率可达48 MHz;
3) 用户应用程序空间为8 K字节(程序空间);
4) 片上集成512字节RAM (变量或寄存器空间);
5) 通用I/O口(32个),所有I/O口默认状态都是高电平,复位后为:P1/P2/P3是准双向口上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。
控制系统结构示意图如图7所示。
1) 温度检测电路的设计:该温度检测模块通过DS18B20传感器来检测温度,因为DS18B20的数据口是漏极开路,如果不接上拉电阻,则只能输出低电平和高阻态,不能输出高电平,因此需要外接上拉电阻,否则无法输出1。DS18B20的工作电流约为1 mA,VCC一般为5 V,则电阻R = 4.7 V/1mA = 4.7 KΩ。一般3.3~10 k都可以。其电路原理图如图8所示:
Figure 7. Schematic diagram of the motherboard controller
图7. 主板控制器结构图
Figure 8. Schematic diagram of DS18B20 circuit
图8. DS18B20电路原理图
2) 心率血氧检测电路的设计:MAX30102采用一个1.8 V电源和一个独立的5.0V用于内部LED的电源,标准的I2C兼容的通信接口。其采用光溶积法:利用人体组织在血管搏动时造成的透光率不同的原理来进行脉搏和血氧饱和度测量。其公式如公式(1):
(1)
蜂鸣器起到心率检测报警的作用,当心率高于设定值时蜂鸣器将报警。PNP结三极管起到开关作用,其基极的高电平使三极管饱和导通,使蜂鸣器发声;而基极低电平则使三极管关闭,蜂鸣器停止发声。
MAX30102的原理图如图9所示:
Figure 9. Schematic diagram of MAX30102 circuit
图9. MAX30102电路原理图
在MAX30102的芯片界面上装有一个标准的通信插头,在SCL、SDA引脚之间都要有一个上拉式电阻器。芯片外接一条由MOS管组成的单电平转换电路。
3) 汽车座椅位置调整电路的设计:步进电机每输入一个控制脉冲,电机就会按照既定的角度旋转一步。这个角度叫做步进角。输入脉冲的周期长,电机就转得慢;周期短,就转得快。
本文所用为单极性步进电机,其有共阴极接法和共阳极接法,两种接法对于控制信号而言只是控制信号的极性的不同。要控制电机的旋转方向,只需要将拍之间的导电顺序颠倒即可。
4) 汽车座椅加热通风电路的设计:直流风扇电机由定子、转子、控制器和电刷组成,具有结构简单、运行可靠、运转平稳等特点,因此被广泛应用于工业生产中。其中PNP结控制着电路的开关,1 k电阻起到提供适当的静态工作点的作用。加热继电器的动作电流与感温包的感温电阻成正比,当温度升高时,电阻减小,在电流不变时,它的阻值就会变小,而当温度下降时,它的阻值就会增大。当感温包内阻值变化到一定程度时,加热继电器就会动作,接通或断开电路。
4. 各功能模块软件与仿真
4.1. 首先编辑主程序包括以下功能
车载智能座椅电子控制系统可以实时检测环境温度,当环境温度高于一定上限时则座椅自动通风,打开小风扇电机降温,当环境温度低于一定下限时,此时打开加热继电器,开始加温;能够通过按键控制步进电机的正反转从而模拟汽车座椅的位置调整;车载智能座椅可以进行按摩,持续震动及脉冲震动;心率血氧的检测等。同时通过按键还可以进行温度,心率阈值的加减。
子程序包括:显示屏的定义、DS18B20的程序定义、定义各个管脚、心率血氧的通信协议定义。
主程序系统流程图如图10所示。
4.2. 温度检测模块软件设计与仿真
此模块主要运用DS18B20数字温度传感器,以下是部分程序中包含的函数:
DelayX10us(unsigned chart):延时函数,延时t*10us。
Get18B20Ack():获得DS18B20的应答信号。
Read18B20():从DS18B20读取一个字节的数据。
Start18B20():启动DS18B20的温度转换。
Get18B20Temp(int *temp):获取DS18B20的温度值。
该模块主要进行环境温度及人体温度的检测通过proteus仿真可以看到如图此时环境温度T1为26℃,司乘者体温T2为36℃,如图11。
然后通过DS18B20直接加减温度,测的第二组数据,通过显示屏显示。此时如图12所示,环境温度为21℃,司乘者体温为37℃。
4.3. 心率血氧检测模块软件设计与仿真
首先设置通信部分,读取心率血氧:send_string_com。发送缓冲区,接收缓冲区。将脉搏心率置零,并将接收的延时清零,接收标志清零。
然后串行通讯中断,接收地址偏移寄存器加1。判断语句,正常返回14~17位,只要大于12位即可读取脉搏和血氧。若没有检测到数值时,第七~十位是NULL。每次接收数据时,都会把接收延时时间清零:rec_time = 0。
用户只需通过单片机的IIC接口(可用模拟IIC),对MAX30102内部的寄存器进行读写操作,就可以得到转换后的光强度数值。最后需要通过相应的处理算法计算出心率值和血氧饱和度。下面进行软件的仿真,如图13所示:
Figure 10. Main program system flowchart
图10. 主程序流程图
Figure 11. Temperature detection 1
图11. 温度检测1
Figure 12. Temperature detection 2
图12. 温度检测2
Figure 13. Heart rate and oxygen saturation monitoring 1
图13. 心率血氧检测1
此时为初始设置值脉搏值为29,血氧值为32。心率血氧的仿真划片电阻通过与ADC0832的A/D转换器相连,其CS片为使能端,低电平时芯片使能。CH0模拟输入通道0,CH1模拟输入通道1。GND接地端。VCC的电源端接5 V电源。DI数据信号输入,选择通道控制,DO数据信号输出,转换数据输出。CLK芯片时钟输入。由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI并联在一根数据线上使用。
加减数值,测的第二组数据,如图14所示,此时血氧为96,脉搏为95,大于该数值时,蜂鸣器将报警,提醒司乘者。并且报警的数值可以通过按键自行设置,从而适应了不同的司乘者,每个人正常的心率血氧值虽相差不多,但仍有一定的不同,实现了车载座椅的智能化。
4.4. 升温通风模块软件设计与仿真
通过温度传感器将采集到的数据进行分析,判断当前处于一种升温还是通风的状态,若是处于加热状态,则开启加热模块,若不是,则继续采集环境的数据。当采集到的数据达到设定值时,启动直流电机风扇散热,若温度没有达到设定值,则重新开始进行计算程序。
该模块功能运行,首先测量环境温度,若温度大于21℃,则打开直流风扇电机降温。若温度小于20℃,则打开继电器加热直至温度到20℃。同时可以通过按键来设置温度的上下限,从而可以适应不同的环境,给司乘者提供更智能的服务。如图15所示此时环境温度T1为19℃,继电器开始加温,D1 LED小灯变亮,则表示此时开始加温。
Figure 14. Heart rate and oxygen saturation monitoring 2
图14. 心率血氧检测2
Figure 15. Heating process
图15. 加温过程
此时将环境温度设置为22℃,如仿真图16所示,小风扇电机开始转动,车载智能座椅开始通风降温。
Figure 16. Ventilation cooling
图16. 通风降温
4.5. 座椅位置调整模块软件设计与仿真
定义步进电机节拍对应IO控制代码:unsigned char code Z_BeatCode,定义电机转动的节拍总数:unsigned long beats = 0。步进电机启动函数,angle-需转过的角度:void StartMotor (unsigned long angle)。在计算前关闭中断,完成后再打开,以避免中断打断计算过程而造成错误。实际测量4076拍转动一圈:beats = (angle * 4076)/360。
节拍数不为0则产生一个驱动节拍:if (beats != 0),然后用tmo把p1口当前值暂存,并清零低4位。将节拍代码写到低4位。把低4位的节拍代码和高4位的原值送回p1,若节拍数为0时则关闭电机所有的相。
该模块通过与ULN2003A驱动电路相连,从而实现升压,能够带动步进电机的转动,并且通过按键可以调整步进电机的正反转,从而模拟座椅位置的前后移动。仿真结果如图17所示。
Figure 17. Adjustment of seat position
图17. 座椅位置的调整
4.6. 座椅按摩模块软件设计与仿真
初始化按键。在按键上扫描代码并发送给CPU。当CPU读到按键时,按下该按键。按下按摩键,则将信号送入PWM输出端,使按摩直流伺服电机工作;再次按下按摩键,则将信号送入PWM输出端,使按摩电机工作。
该模块通过一个小的直流伺服电机来模拟座椅的按摩功能,通过按键可以实现两种功能:持续震动按摩;脉冲震动按摩。为司乘者提供可变换的按摩性能。当第一次按下表示按摩的按键时此时开始进行持续按摩,当第二次按下按键时此时开始脉冲按摩。仿真结果如图18所示:
Figure 18. Massage simulation
图18. 按摩仿真
本章对车载智能座椅电控系统的软件部分进行了总体设计和分析,进行了开发环境的简介,并对各部分进行了详细的软件设计和分析。包括温度检测模块、心率血氧检测模块、座椅位置调整、座椅按摩模块等模块的软件设计并进行了相应的仿真演示。
5. 实物制作与验证
实物功能的验证:
根据理论知识,对车载智能座椅电子控制系统进行设计后,需要开始搭建实物,对各个器件进行了详细的设计与分析后,选型器件。再根据所设计的电路,开始进行实物的焊接,都焊接好后,开始进行调试。将计算机上的程序下载到单片机芯片里,通过PCB板将各个模块焊接上,需要STC89C52单片机、按键、触发器、步进电机、加热继电器、驱动电路、蜂鸣器、直流伺服风扇电机、LCD显示屏、MAX30102、DS18B20以及母线等器件。硬件电路的实物如图19所示。
实物搭建好后开始进行调试,首先通过USB接到外部电源,按下左下角的白色电源开关,则开始供电。然后看到从左到右依次六个按键。
先一直按下第一个按键则步进电机开始正转,表示着车载座椅位置的向前调节,然后一直按着第二个按键,则步进电机开始反转,此时表示着车载座椅的向后调节。完成了座椅的自动调整功能。如图20所示,完成座椅位置的调整。
Figure 19. Hardware circuit physical diagram
图19. 硬件电路实物图
Figure 20. Seat adjustment forward and backward
图20. 座椅前后调整
然后按下第三个按键,则右上角第二个直流风扇电机开始旋转,模拟车载座椅的震动按摩功能,此时显示屏显示的是M1,则表示电机工作在第一种状态下;再按一次按键,则电机开始间歇震动,表示着间歇震动按摩功能。此时显示屏显示的是M2,则表示电机工作在第二种状态下。将实际的揉捏电机置于座椅颈部靠背,给司乘者带来多种按摩方式的转换。结果如图21和图22所示。
第四个按键表示设置功能,可以对环境温度的上下限以及脉搏数的报警阈值进行设置,最后两个按键则代表着加减功能。按下按键后,显示屏切到设置界面。
然后进行体温,以及环境温度的测量如图23所示,此时环境温度T1大于所设置的环境温度上限25℃,由于达到设定阈值,则小风扇开始转动,车载座椅开始降温,如图24。
Figure 21. Massage in M1 state
图21. M1状态下按摩
Figure 22. Massage in M2 state
图22. M2状态下按摩
Figure 23. Threshold setting
图23. 阈值设置
Figure 24. Cooling down
图24. 降温
此时我们设置的环境温度下限也为25℃,由于达到设定阈值,则加热继电器开始工作,车载座椅将开始升温加热,如图25所示。
下面进行心率与血氧的检测,将手指放到LED光处,等待几秒钟,开始进行测量。若是放在座椅上集成,可以将其都放在座椅靠近颈部后面的位置,通过红外测量,就可以测得司乘者的心率与血氧值,且当心率超过120时,则蜂鸣器开始报警,提示司机此时应该停车适当地休息,调整个人的状态。如图26所示。
Figure 25. Heating
图25. 加热
Figure 26. Heart rate and oxygen saturation monitoring
图26. 心率血氧检测
通过对数据的采集,得到如表1所示的数据:
Table 1. Pulse oximetry measurement
表1. 脉搏血氧测量
|
大拇指 |
食指 |
中指 |
无名指 |
小拇指 |
脉搏 |
88~127 |
68~126 |
84~146 |
98~127 |
93~139 |
血氧 |
100 |
99 |
98 |
99 |
100 |
由表1可知,MAX30102芯片测量的血氧值比较准确,而脉搏值由于所用手指的不同,尤其是食指与其他几个存在差异,且脉搏值在一定的界限内波动。
6. 总结
本研究设计的车载智能座椅功能完备、性能稳定,实现了技术创新与实际应用的良好结合,对汽车座椅智能化发展具有一定参考价值。未来研究可进一步优化算法、提高传感器精度、增强系统稳定性,并拓展功能以满足更多样化需求。
本座椅系统以STC89C52芯片为控制核心,采用DS18B20温度传感器检测周围的温度,由集成芯片max30102通过串行通讯对心率和血氧进行测量,用户只需通过单片机的IIC接口,对其内部的寄存器进行读写操作,就可以得到转换后的心率值和血氧饱和度。另外辅以温度自适应和红外线扫描,通过数模转换器使单片机得到变化的电压信号驱动各模块的控制系统,达到智能升降温、非正常心率或血氧报警的目的。其次,驱动直流风扇电机旋转和步进电机与ULN2003A驱动电路相连,从而实现升压,能够带动步进电机的转动,并且通过按键可以调整步进电机的正反转,它使座椅位置可以前后移动。实现汽车座椅的震动按摩和位置调整功能。本设计在Keil的开发环境下进行控制系统软件的开发,然后通过proteus进行仿真演示,对系统硬件进行了验证与分析,最终使每个模块功能正常运行后,将其进行封装。