1、 基于 AVR 系统的 新型智能感知机械花 物理学院 陈仲乾、曹乘榕、胡腾、黄晨 摘要: 以 ATmega16 单片机为核心设计新型智能感知机械花 ,根据光强控制花的开合程度,根据温度控制花的颜色变化,根据湿度控制花的亮度。 关键词: AVR 单片机 温湿度 光强 机械花 步进电机 3 基色 LED 灯 正文: 一、系统设计目的,用途,功能 现在市面上有一种叫做 flip-flap 的太阳花玩具,因其可爱的造型而大受人们喜爱,在许多汽车中都可以见到。由 此可以看到,在现在这样一个快节奏的社会环境下,人们通过接触自然而获得身心放松的时间越来越少,由此产生了人们对能够模仿动植物行为的室内装饰品的巨
2、大市场需求。而我们的新型智能感知机械花就是为了迎合这种需求而设计的。我们知道睡莲在白天开放,晚上闭合。我们通过对光强的探测来控制机械花的开闭来模仿睡莲,并给人们提供光强和时间的信息。在花中还普遍存在花青素,它会随着环境的温、湿度来改变花的颜色。我们通过温度传感器来控制机械花的颜色,当温度适宜时显示绿色,温度较低时显示蓝色,温度较高时显示红色,这符合人们的一般认识。我们 通过湿度传感器控制灯亮得盏数,湿度较高时, 植物可以从水中获得更多活力,颜色较亮,因此灯亮三盏,湿度一般时亮两盏,湿度较低时亮一盏,以此来控制花的色泽。我们的设计全面突破了原有机械花的设计,给人以对自然环境的全面感受,使人通过感
3、官更充分得获得环境信息,调整身体机能,并产生认同感、舒适感和愉悦感。我们的作品可以作为一个不可多得的多功能居家室内装饰品、玩具和礼品。 二、 硬件设计思想和电路原理图 通过传感器等敏感 元件对环境参数的检测,并将数据传输给ATmaga16L单片机来控制各模块的状态,最终实现机械花的智能感知。我们的硬件设计是按系统来划分的,两个系统相互独立且相互联系,ATmega16 芯片 步进电机 光敏电阻 LED 温湿度传感器 第一个系统是通过光敏电阻感知环境光强来控制步进电机的转动,以此来控制机械花的开闭程度。这个系统要通过计时器中断触发单片机的 AD 转换将光敏电阻上的模拟信号 电压转化为数字信号,根据
4、电压值大小来确定步进电机工作状态(转动方向、步进量、转速),然后通过单片机将指令输送到步进电机驱动芯片 UNL2003 上,由步进电机驱动芯片来控制步进电机的转动。第二个 系统是通过 DHT11温湿度传感器将温湿度信号直接以数字信号的方式通过串口通信传送到单片机,再通过环境温度状况决定三盏 RGB(三基色) LED 灯亮的颜色,并通过湿度状况决定三盏 RGB(三基色) LED 灯亮盏数。 下图为硬件连接框架图 电原理 PCB 图 三、硬件单元的使用 1、主控模块: 我们使用的是 Atmel 公司的 AVR 高速 8 位微控制器ATmega16 。 ATmega16 芯片为 40 个引脚 ,内部
5、集成了 1K 字节的RAM、 512 字节的 EEPROM、 16K 字节的 Flash 以及 2 个 UART 串行接口等。由于采用了高性能的 MCU,省掉了大量的外围器件 ,如外扩RAM、 ROM 存储器等 ,使硬件结构大大简化 ,提高了系统的可靠性。ATmega16 芯片 具有先进的 RISC 结构,内部集成两个具有独立预分频器和比较器功能的 8 位定时器 / 计数器和一个具有预分频器、比较功能和捕捉功能的 16 位定时器 / 计数器。可通过 JTAG 对 MCU进行程序烧写及仿真。内置晶振,使用方便。 ATmega16 芯片的引脚图如下: 其中的 PD0 即为 RXD 引脚( RXD
6、是 USART 的数据接收引脚),PD1 即为 TXD 引脚( TXD 是 USART 的数据发送引脚),引脚 11 即为 GND 接地 。 2、监测模块 ( 1)温湿度:用数字式温湿度传感器 DHT11(单线双向) 下图为 DHT11 温湿度传感器外观 驱动电路图 ( 2)光强:使用光敏电阻 GL3516。 光敏电阻外观 GL3516 光敏电阻参数: 规格 型号 最大电压 (VDC) 最大功耗 (mW) 环境温度 ( ) 光谱峰值 (nm) 亮电阻 ( 10Lux) (K ) 暗电阻 ( M) 100 10 响应时间 mS 照度电阻特性 上升 下降 3 系列 GL3516 100 50 -3
7、0+70 540 5-10 0.6 0.5 30 30 2 光敏电阻电路图 3、电机驱动模块 利用驱动芯片将 AVR 单片机 PB0 到 PB3 口输出信号驱动两相步进电机转动一定角度及转动方向, 使步进电机改变一定转角,并通过与花瓣相连的传动装置改变花的开放程度。 (步进电机采用 UNL2003 芯片驱动, 2 相 6 线步进电机,电压 5V)。 4、显示模块 RGB LED 参数: 5MM 圆头 RGB 四脚全彩 R:波长 630-640nm 亮度 1000-1200MCD 电压 1.8-2.0V G:波长 515-525nm 亮度 3000-5000MCD 电压 3.2-3.4V B:波
8、长 465-475nm 亮度 2000-3000MCD 电压 3.2-3.4V 2*5*5RGB 四脚全彩 R:波长 630-640nm 亮度 300-500MCD 电压 1.8-2.0V G:波长 515-525nm 亮度 1200-1500MCD 电压 3.2-3.4V B:波长 465-475nm 亮度 600-800MCD 电压 3.2-3.4V 因考虑红色光强相对其他两种颜色较弱,所以在电路设计中提高了蓝色和绿色串联的电阻,降低这两种颜色的光强,实现个颜色的相对平衡。 RGB 三基色 LED 四、软件设计思想及软件流程 本系统编程部分工作采用 C 语言完成,采用模块化的设计方法,利用
9、各子程序实现各部分功能和过程的入口,完成光和温湿度变化识别,电机驱动、 LED 灯发光等功能。 1、关于驱动步进电机,我们的思路是利用光敏电阻感知光强强弱并且改变其电阻,经过电路部分将电阻的变化变为电压的变化,使每个特定的光强对应一定的电压值,电压信号经 ad 转换变为数字信号,表示电压大小。 Ad 转换由计时器 2ms 中断触发,根据电压值大小确定步进电机应该处于的状态,然后将该状态与接收信号之前的状态比较,然后确定步进电机的工作方式 (转向及步进量的大小),然后用步进电机驱动机械花的开合,使其达到特定的状态 . 2、关于驱动 led 灯的显示,我们的思路是利用温湿度传感器测得外界温度与湿度,并且实现通信后由主机读取,由温度高低来驱动led 的颜色显示,由湿度高低来确定 led 灯所亮的盏数。