武汉理工大学华夏学院 罗云贵
现在很多闹钟在闹铃的时候,用户可以很容易伸手将其关掉后继续睡觉,这样常会导致上班时间紧迫甚至迟到。为了解决这个问题,本文提出来了让闹钟在房间里“无障碍的跑动”的设计。即当闹钟响起的时候,闹钟小车会在地上到处跑动,用户如要关闭闹钟,就必须起床去抓住它。否则,闹钟小车就会不停地在房间里无障碍的乱跑,且不会卡到死角而停下来。
闹钟小车除了具备精准的万年历时钟和闹钟功能外,还要能够无障碍的跑动。具体设计达到以下要求:(1)能显示年月日、星期、实时时间和闹铃时间,断电后不丢失。(2)能修改和设定闹铃时间,开启和关闭闹铃功能;(3)当闹铃响起会播放电子音乐,并开始跑动起来。跑动方式为:每跑动5秒,停止1秒等待用户来抓住;(4)具有自动绕开障碍物功能。
图1 系统框图
图2 红外避障电路
图3 电压比较电路
图4 电机驱动电路
(1)主控芯片选择:根据设计要求,我们可以选用功能强一点的,具有独立PWM通道的ATmega16单片机作为主控芯片。
(2)时钟选择:采用DS1302作为时钟芯片。它具有实时时钟功能,在配备了后备电池的前提下,时间数据断电不丢失。
(3)显示模块:因为要显示的内容比较多,如时间、日期、闹钟等,所以采用液晶LCD1602作为显示器。
(4)闹铃:采用无源蜂鸣器,可以根据不同频率产生不同的音调。
(5)电机驱动:采用L298N作为小车电机的驱动芯片,该芯片可以同时驱动两路直流电机。同时,通过单片机PWM信号的输出来控制电机的转速,从而完成闹钟小车的前进,后退,左转,右转等动作。
(6)绕开障碍物:采用38K红外线传感器来检测障碍物,因为调制后的红外线传感器抗干扰能力强。
通过以上分析,整个电路的系统框图如图1所示。
图5 系统时钟及LCD显示电路
图6 主流程图
图7 小车运动控制流程图
图8 系统仿真电路图
系统的硬件电路包括:
(1)键盘电路:主要包括校时功能键,计数加键,计数减键,闹钟开关键。
(2)蜂鸣器电路:采用无源蜂鸣器,通过输送不同频率的脉冲信号发出不同音色的声音,并编排成音乐放出。
(3)红外避障电路:小车设四个方向的的避障模块,主要由单片机来产生38K左右频率的波形,并驱动红外二极管发射红外光线。如果发射出去的红外线遇到障碍物反射回来,传感器HS0038接受到后会产生一个低电平。电路图如图2所示。
(4)电压比较电路:通过传感器返回来的电平信号可能达不到单片机引脚所判断的高低电平,因此加一个额外的电压比较器来处理传感器的信号,供单片机去识别并控制电机的运行。电路图如图3所示。
(5)电机驱动电路:采用L298N电机驱动芯片去驱动两个小型的直流电机。电路图如图4所示。
(6)系统时钟及LCD显示电路:时钟电路采用DALLAS公司的一款高性能、低功耗、带RAM的实时时钟DS1302作为时钟芯片;显示电路采用LCD1602液晶模块,它具有两行显示区域,主要用于显示英文和数字。电路图如图5所示。
(1)系统主流程图:主要包括系统的初始化程序(LCD1602的初始化,DS18B20的初始化),时钟的获取和显示,按键处理程序(时间的设置和闹钟的开关),闹钟处理程序(闹钟音乐播放和小车运动控制程序)等。具体软件流程图如图6所示。
(2)小车运动控制流程图:小车运动控制程序的流程图如图7所示。
系统可以先通过Proteus仿真调试,检验软件设计的逻辑关系是否正确,调试成功后再下载到闹钟小车上进行实体调试。系统的Proteus仿真结果如图8所示,其中电机运动的方向控制用按键来模拟。
最后,闹钟小车在实体测试过程中,运行良好,所有功能达到了设计要求。闹钟小车如果要形成产品,还需要在外形设计上进行创新和优化。
[1]江志红.AVR单片机系统开发实用案例精选[M].北京:北京航空航天大学出版社,2010.
[2]秦志强,彭建盛,谭立新.AVR单片机与小型机器人制作[M].北京:电子工业出版社,2009.