引言
照顾小宝宝是非常劳累的事情,因为他们醒来和睡觉都比较频繁,加之喂食换衣服等活动,会占用大人大量的时间和精力。摇篮的诞生在很大程度上减轻了大人的负担,但仍有很多不尽如人意的地方。
利用动作(加速度)传感器和功能丰富的单片机,则可以设计出一种相对智能化的摇篮。
背景
现在市面上的电动摇篮仅有简单的定时功能,因此不能针对婴儿的活动发生动作,若摇篮一直摇动,对婴儿的安抚作用就会降低。采用声音触发的自动摇篮,缺点是婴儿先是活动,得不到安抚则会哭闹,摇篮才会启动进行安抚;另外如果因为别的原因哭闹,摇篮则不能起到安抚作用。所以根据婴儿的活动来启动摇篮是比较妥当的控制方式。飞思卡尔的加速度传感器性能,成本较低,适合这样的应用。
自动摇篮的原理
本系统采用飞思卡尔MC9S08QG8单片机作为控制器,使用飞思卡尔加速度传感器MMA7260QT判断婴儿的活动情况,同时用麦克风检测婴儿哭闹的声音作为辅助判断,然后根据设置启动摇篮摇动。人机界面由键盘和点阵液晶显示器组成。
测量运动的方法
加速度传感器测量运动和动作有很多算法,本系统中由于摇篮的活动方向是二维的,而且主要是其中的一维(所以采用一维加速度传感器也可以),运动情况单一,场合也不复杂,所以采用简单的阈值判断的方法即可实现。阈值代表着灵敏度,可由用户根据实际情况选择。
触摸按键的实现
触摸按键是近年比较流行的技术,由于MC9S08QG8单片机有很低的端口漏电流和强大的键盘中断功能,所以不需增加其它有源器件即可实现。而且本系统使用两个端口即可提供三个按键的功能。
使用PCB焊盘作为触摸按键,和地之间构成一个小电容C1(没有手指触摸时),按键通过大阻值电阻R1接地。单片机端口平时输出高电平,检测按键时则为键盘中断,随着C1上的电荷通过R1流失,电平逐渐降低直至引起键盘中断,从开始检测到引起键盘中断的时间为T1,当有手指触摸时相当于在C1上并了一个电容,因此电容值变成C2,则从开始检测到引起键盘中断的时间为T2,通过检测T1、T2的差别即可判断按键按下,如图1。
假设按键1的电容为C1,按键2的电容为C2,则如果C1增加C2不变,则按键1按下,如果C2增加C1不变,则按键2按下,如果C1、C2都增加相似的数值,则可判断为按键3按下。PCB上按键3位于按键1和按键2之间。这样就实现了两个端口判断三个按键的功能。
PWM脉宽调制驱动电机
使用脉宽调制(PWM)的方式驱动电机来实现调速,可以给用户选择3档摇动速度,也可以实现软启动和软停止。
液晶显示
使用3V串口液晶显示模块,用单片机SPI口驱动,实现简洁高效的显示界面。
飞思卡尔MC9S08QG8单片机
本系统使用MC9S08QG8作为控制器,其高度集成的功能和灵活的端口控制大大简化了系统设计和成本,本系统主要用到了以下功能:
高速CPU和大容量的Flash和RAM存储器
内置的时钟
2通道10位AD转换器
2个键盘中断输入端口
PWM输出功能
高速SPI接口
飞思卡尔MMA7260QT三轴加速度传感器
系统使用新的MMA7260QT三轴加速度传感器作为主要传感器,内部信号调理,内置滤波,量程可选,性能稳定可靠,设计起来相当简洁方便。
加速度测量部分
传感器设置为的量程,输出经过电阻电容滤波然后进入单片机AD输入,如图4。
键盘电路
键盘电路十分简单,端口到地接2M电阻即可,触摸键盘的PCB设计要兼顾三键判断,故采用如图5设计。
电机驱动
单片机输出PWM脉宽调制信号,然后通过驱动电路驱动电机。
麦克风输入
麦克风输入经放大后通过二极管整流到电容上,此电压进入单片机AD转换器。
音乐播放
音乐源使用专用音乐IC,功率放大器使用国家半导体的LM4874芯片,具有4级电子音量调节功能,本系统只需单声道即可。
液晶显示
采用3.3V串行液晶显示模块,128X64点阵,单片机通过SPI端口直接相连。
外围其他电路
电源经220V转为5V然后经LM1117-3.3稳压成3.3V输出给系统电路使用,5V电压还用来驱动电机。
系统软件
系统软件完成以下功能:
根据设置参数定期检测摇篮状态。
定期对键盘中断引脚检测充放电时间。
驱动液晶显示器显示相关参数、菜单。
根据参数驱动摇篮播放音乐。
检测摇篮状态
以10Hz的频率检测加速度传感器,定时器中断程序启动AD转换器,主程序中检测到AD转换完成则把结果保存起来,通过和零值比较,如果大于阈值,则认为婴儿活动,根据设置参数启动电机、音乐。
键盘检测
以20Hz的频率扫描键盘,定时器中断程序把相应引脚置为输入,允许键盘中断。引脚放电引起键盘中断,保存中断时的定时器数值,然后退出。主程序等两个按键引脚都扫描完毕保存了放电时间后,调用键盘处理程序分析,得到按键结果。
液晶显示器驱动
液晶显示器使用SPI口送数据,根据按键结果相应调整液晶显示的内容。
摇篮驱动和音乐播放
驱动摇篮时,根据设置参数启动PWM输出,同时记录时间,到参数规定的时间后缓慢停止摇篮(减少PWM占空比)。
功放音量根据参数设置,触发音乐IC播放音乐。
其他辅助程序
根据软件需要,设置定时器中断和变量time_to_1s,当变量中数值达到1S后重置变量。
程序结构
主程序流程如图6
主要子程序:
void MCU_init(void) 单片机初始化
void lcd_init(void)点阵液晶显示初始化,显示待机画面。
void lcd_menu(unsigned char)菜单显示子程序
void acc_t(void)加速度检测子程序
unsigned char key_calc(void)键盘处理子程序,返回键盘值。
全局变量key_start_time保存放电开始时间key_a、key_b保存两个按键放电时间。
Prog_state保存程序运行状态。Sys_set保存系统设置。
菜单可调节参数:
摇篮状态:自动,手动开,手动关。
摇动时间:1,3,5,10,30,60,120分钟。
摇动速度:快速,中速,慢速,关闭。
宝宝动作灵敏度:高,中,低。
声音灵敏度:高,低。
音乐音量:高,中,低,关闭。
[1]. MC9S08QG8 datasheet https://www.dzsc.com/datasheet/MC9S08QG8_210870.html.
[2]. MMA7260QT datasheet https://www.dzsc.com/datasheet/MMA7260QT_2030590.html.
[3]. PCB datasheet https://www.dzsc.com/datasheet/PCB_1201640.html.
[4]. LM4874 datasheet https://www.dzsc.com/datasheet/LM4874_764309.html.
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。