重力感应式智能便携闹钟的软硬件实现
扫描二维码
随时随地手机看文章
一、项目概述
1.1 引言
普通的闹钟只具有时间显示和语音提醒功能,若设想一种闹钟不仅可以进行时间显示,而且到达设定的闹钟时间时可以在表盘上显示相关的事务提醒,那么闹钟的功能可以得以极大的丰富。
1.2 项目背景/选题动机
第一,参照PSoC Rocks例程所演示的效果,拓展到可以用一系列的LED灯来进行文字显示;
第二,曾看过有人用一个马达带动一系列LED灯,并施以一定的控制来完成表盘时钟的显示,觉得既有趣又具有观赏性,所以会想到将其功能复杂化,尝试完成文字显示;
第三,考虑到PSoC开发板集成有重力感应器,可以用来对闹钟的功能进行扩展,当器件处于不同的放置状态时进行不同的内容显示;
二、需求分析
2.1 功能要求
1、时钟显示功能:这是系统最基本的功能,通过控制器控制LED灯的点亮与熄灭,在人的视觉暂留效应下,就会在视线里出现表盘和走动的指针;该功能比普通时钟更具观赏性和趣味性。
2、温度显示功能:这是时钟系统的一个附加功能,主要是为了扩展时钟功能并进一步利用PSoC芯片的资源。
3、闹钟功能:这是该系统较大的亮点所在,将闹钟的语音提醒与文字提醒相结合,从更好更准确地完成提醒功能。
2.2 性能要求
1、时钟的准确度要求:这是时钟必须具备的性能之一,不准确的时钟基本没用。
2、温度的精度要求:温度检测允许存在一定的误差,由于不涉及高精度测量,所以1~2度以内的误差都是可以接受的。
3、显示系统的清晰度要求:LED显示系统的视觉效果应足够清晰易于辨认。
三、方案设计
3.1 系统功能实现原理(除图片外需有文字介绍)
系统硬件结构框图
系统功能说明:该系统通过马达带动一系列的LED灯旋转,加之人的视觉暂留效应从而完成一个简单的显示系统。重力感应传感器用以检测闹钟放置状态,并反馈给控制器从而控制LED显示系统进行不同模式下的内容显示(时钟模式、温度模式、设置模式);温度传感器只在温度模式下启用,用来检测环境温度,继而通过 LED显示系统显示;时钟模式时,在控制器作用下,控制各LED灯的闪烁从而实现表盘时钟的显示。
3.2 硬件平台选用及资源配置
硬件平台选用基于PSoC的自制平台,因为考虑到系统功能的实现原理,无法采用大赛提供的开发板来完成,且开发板所集成的各模块并未全部用上,所以我们选择自主设计硬件结构。简单来说,硬件主要包括有PSoC芯片、加速度感应器、温度感应器及数十个LED灯外加一个直流马达(需配备减速器),硬件结构选用易于做旋转运动的长条状结构,如下图所示。
简易的硬件结构示意图
3.3系统软件架构
构建系统的元件主要有检测元件、控制器和显示元件,这些元件搭建的系统架构可用下图进行简单的说明。
系统软件架构
由于构建的系统并不复杂,故其架构相对简单明了,下面对各模块进行简单的介绍。检测元件:相当于是信号采集元件,负责搜集周围环境的信息并反馈给控制器分析,继而是控制器发出相应指令控制其他元件。信号采集阶段的关键是对采集信号的处理,如AD转换,PSoC所集成的Delta-Sigma ADC完全能够满足我们的高精度信号采集的需求。
控制器:是系统的核心部分,外围设备所有的功能实现基本上都由控制器发出指令并加以控制,系统的功能实现关键在于控制器能够正确控制LED灯的闪烁,从而完成显示。
显示系统:由马达和一系列LED灯组成,显示功能的实现主要依赖于控制器的控制指令及马达的转动。
3.4 系统软件流程(除图片外需有文字介绍)
主程序流程图
中断服务程序流程图
3.5 系统预计实现结果
时钟模式下,LED显示系统显示表盘式时钟,即带有转动时针、分针、秒针的时钟,到达设定的闹钟时间,如早上7点时发出声音且表盘显示“get up”,提示起床;下午1点时表盘上发出声音显示“rest”提示午休等;将闹钟旋转90度放置进入温度显示模式,根据温度传感器的测量值显示环境的温度;继续将闹钟旋转90度放置进入设置模式,可用来设置闹钟时间。