第二届广西高校大学生创新设计与制作大赛参赛作品说明书作品名称:智能定位风扇设计者:江昌庭周起武莫杰邓廷阳廖海安指导老师:赵柄炎方昆参赛单位:玉林师范学院摘要智能定位风扇主要是从节能环保的理念出发,针对普通的摆头风扇在单人的时候还会继续摆头等缺点,再加上普通风扇没有的一些元素,使风扇更加具有人性化,让人们使用起来更加方便。
智能定位风扇是基于MSP430单片机设计的智能定位风扇控制装置。
由人体感应模块红外感应模块TDL-718A构成的人体检测模块。
当有人打开风扇时,装在风扇上的人体感应模块红外感应模块TDL-718A自动扫描定位人的所在位置,扫描后,利用舵机来驱动风扇摆头使风扇只往有人的地方吹。
最大的摆动的角度为一百三十五度,能够覆盖更多的扇风面积。
利用温度传感器来测量室内的温度,并用液晶显示出来,并把风扇分为三个转速档,即高、中、低,用单片机控制,在室温低于二十六度时继电器接通低档,在二十六到二十八度是风扇的转速为中档,高于二十八度时就自动调为高档,使风扇转得最快。
这样能达到节能的目的,并能提高效率。
关键词:节能风扇单片机控制一、设计背景在经济高速发展、能源损耗巨大的今天,全世界的人民都提倡绿色、节能,绿色、节能已经是21世纪不变的主题,绿色节能也正是这次大赛的主要精神。
我们所设计的智能定位风扇就是在这样的背景下进行,智能定位风扇可达到绿色节能的目的。
电风扇具有价格便宜、摆放方便、体积轻巧等特点。
由于大部分家庭消费水平的限制,电风扇作为一个成熟的家电行业的一员,尤其在中小城市,以及乡村将来一段时间内仍然会占有市场的大部分份额。
面临庞大的市场需要的同时,也要提高电风扇的市场竞争力。
使之在技术含量上有所提高,应使风扇不仅功能多样,操作简便,而且更加安全可靠。
随着科学的发展和人们生化水平的提高,产品趋向于自动化、智能化、环保化、人性化,为此,在现有市场上多功能电风扇的基础上,我们提出了一种新型的智能电风扇,该风扇功能更多,添加了很多人性化的设计,如自动检测目标摇头、显示温度、自动控制转速等功能,使电风扇更加人性化,相信其丰富的功能,人性化的设计将会大大提高电风扇的市场竞争力。
二、智能定位风扇的功能及特点智能定位风扇主要是由普通的风扇配件、MSP430单片机、舵机、热释人体感应红外感应模块TDL-718A、继电器、电源等组成。
智能定位风扇主要应用于图书馆、车站候车室、医院、餐厅等公共场所以及私人的客厅、房间等。
风扇是用红外扫描仪来检测人的位置方向,当有人打开风扇时,装在风扇上的人体感应模块红外感应模块TDL-718A自动扫描定位人的所在位置,扫描后,利用舵机来驱动风扇摆头使风扇只往有人的地方吹,假如是一个人则往一个方向吹,不向其它的地方摆头;假如扫描仪扫描到是两个人或两人以上,则以最边上的两人为边线,自动确定风扇所需要摆转的角度,如此来回地摆动,使其最大的摆动的角度达到一百三十五度,能够覆盖更多的扇风面积。
利这样能达到节能的目的,并能提高效率。
三、设计的方案及原理1、实现的方法要求智能定位风扇能根据人的位置来智能的调节摇摆的角度以达到节能的目的。
利用舵机精确控制风扇的左右摇摆,人体红外感应模块TDL-718A提供电信号给单片机,单片机输出控制信号来控制舵机的运转以控制风扇摇摆的角度。
利用18B20温度传感器来检测室内的温度,把信号输到单片机上,经处理后输出一个高电平来控制继电器,用继电器来控制风扇的档位。
上述各模块的方案论证如下2、方案论证控制器模块方案一:采用AT89S52单片机AT89S52单片机是ATMEL公司推出的高档型AT89S系列单片机中的增强型产品。
片内集成256KB的RAM和8KB的FLASH ROM,拥有4个并口、一个全双工通信的串口、三个内部定时器/计数器。
支持ISP(在系统可编程),为单片机开发人员进行调试提供了极大的便利。
方案二:采用16位低功耗MSP430单片机MSP430单片机个 16 位的、具有精简指令集的、超低功耗的混合型单片机,在 1996 年问世,由于它具有极低的功耗、丰富的片内外设和方便灵活的开发手段,已成为众多单片机系列中一颗耀眼的新星。
它采用了精简指令集(RISC)结构,具有丰富的寻址方式( 7 种源操作数寻址、 4 种目的操作数寻址)、简洁的 27 条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;还有高效的查表处理指令;有较高的处理速度,在 8MHz 晶体驱动下指令周期为 125 ns 。
这些特点保证了可编制出高效率的源程序。
在运算速度方面, MSP430 系列单片机能在 8MHz 晶体的驱动下,实现125ns 的指令周期。
16位的数据宽度、125ns 的指令周期以及多功能的硬件乘法器(能实现乘加)相配合,能实现数字信号处理的某些算法(如 FFT 等)。
方案论证:AT89S52单片机运算速度慢,难以处理复杂的问题。
而MSP430单片机不但运算速度快,而且是一款低功耗的微控制芯片。
应用技术成熟的MSP430单片机可满足题目要求,而且非常高效,故我们采用了MSP430来实现系统的控制模块。
电机模块电机模块选择是整个方案设计的关键,按照设计要求,智能定位风扇必须能定位到人所在的角度范围内,这需要对风扇的精确控制,而且风扇摇摆模块制动性能要好。
因此普通直流电机不能满足要求。
方案一:采用直流减速电机控制风扇的摇摆,直流减速电机力矩大,转动速度快,使风扇容易由于惯性而使风扇的扇风的角度发生较大的误差,其制动能力差,难以达到风扇的智能定位。
方案二:采用型号4B2YG的步进电机控制控制风扇的摇摆,进角度小,因此能实现小车的精确控制,而且当不给步进电机发送脉冲的时候,能实现自锁,但是步进电机的的程序难以实现,且所需要的电流较大,达到2A,即耗电大,不符合绿色、节能的主题。
方案三:利用舵机来实现风扇的摆头,摆头的速度适合,程序容易实现且所需要的电流、电压小,功率小,更加符合本次大赛的“绿色、节能、创新”主题。
经过反复的比较、论证,我们最终选用了方案三。
该型号舵机与单片机以及电源的接口简单,控制方便,更加容易实现智能定位的功能。
人体红外感应模块人体红外感应模块也是系统的重要组成部分,人体感应模块红外感应模块TDL-718A能够以非接触的方式检测出人体发出的红外线辐射(对于其他光,如阳光、灯光等人体波长以外的光波则抑制掉),并将其转化成高电平信号输出,经过单片机处理能够实现确定人的所在的位置的功能,从而能使用单片机来控制舵机实现风扇的转向,确定及控制风扇所需要摆转的角度。
继电器模块用三个继电器来分别实现控制三个不同的风扇档位,用遥控来控制三个档位,不用人走到风扇前也能控制风扇的运转和所需要运转的转速。
应用前景目前在图书馆、车站候车室、医院、餐厅等一些一般的公共场所都是由人工来控制,但缺点是在人少或无人的时候风扇还是一样运转,且要人工控制风扇的摆头等问题。
而我们所设计的风扇则是智能控制其摆头,方便、简单也容易控制无论是用于公共场所还是用于私人的地方都能体现出一样的效果,具有较高的市场推广价值。
四、设计总结经过多次的实践,基本框架外形都为我们亲手加工,虽然性能满足要求,但是外观并不美观。
在设计过程中要综合考虑设计方案的可靠性和稳定性,比如框架的受力情况、材料的选取、质量、位置等选择电机时,要考虑到电机的功率、电流、电压、以及成本,还要考虑安装的尺寸、体积、质量等经过自己的动手制作,更加深刻的了解到一些加工上的工艺,同时学习到很多知识,比如钻孔机、电锯、压板机的使用,电路图的画法以及制作等。
在这次准备比赛的过程中,我们从初步拟定的方案得到方案的改进、实物的制作以及改进,这期间我们遇到了很多的问题,通过老师的指导和自身努力,最终克服了困难,解决了难题,本次比赛对我们的动手能力、应用理论知识的能力都提出了很高的要求,是一次难得的锻炼机会。
六、附录1 作品的设计电路图图一、MSP 430单片机系统图二、继电器原理图图三、TDL-718A 2作品实物图3 源程序#include <msp430x16x.h>#include"12864_lcd.h"#define uint unsigned long int#define uchar unsigned char#define tance (P5IN & BIT0)unsigned int num0=0;uint num1,num2,num3;uint shu1,shu2,shu3,shu4,flag,flag1;uint a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,aa;void delay_nms(uint n) //延时1ms {uint i,j;for (i=0;i<n;i++){for (j=0;j<1140;j++);}}void delay_10ms(void){unsigned char i,j;for(i=0;i<255;i++)for(j=0;j<255;j++);}void InitClock(){unsigned int iq0;BCSCTL1&=~XT2OFF;do{IFG1&=~OFIFG;for(iq0=0xff;iq0>0;iq0--);}while((IFG1&OFIFG)!=0);BCSCTL2=SELM_2+SELS;}void IninTA(){TACTL = TASSEL_2 + MC_1;CCR0=52000;CCTL1 = OUTMOD_7;CCR1=2000+num0;CCTL2 = OUTMOD_7;CCR2=50000-num0;}/////////分离数字并显示--控制舵机数字///////// void xianshimiao(uint num0){uint qian,bai,shi,ge;qian=num0/1000;bai=num0%1000/100;shi=num0%1000%100/10;ge=num0%1000%100%10;lcd_setXY(4,3);lcd_writestring2(0x30+qian);lcd_writestring2(0x30+bai);lcd_writestring2(0x30+shi);lcd_writestring2(0x30+ge);}void xian(uint num3){uint qian,bai,shi,ge;qian=num3/1000;bai=num3%1000/100;shi=num3%1000%100/10;ge=num3%1000%100%10;lcd_setXY(7,3);lcd_writestring2(0x30+qian);lcd_writestring2(0x30+bai);lcd_writestring2(0x30+shi);lcd_writestring2(0x30+ge);}P6DIR=0XFF; ////P6口输出//////lcd_init();flag=0;shu1=5000;shu2=1;a0=0;a1=0;a2=0;a3=0;a4=0;a5=0;a6=0;a7=0;a8=0;a9=0;TBCTL=TBSSEL_1+TBCLR+MC_0; ///选择时钟源为ACLK TBCCTL0=CCIE; ///允许定时器中断TBCCR0=10000; ///定时时间TBCTL |= MC_1+TBCLR; /////打开定时器_EINT(); ///打开全局中断控制,若不需要打开,可以屏蔽本句}void gongneng(){if(tance==0){if(flag==0)num0++;aa++;if(aa==4999){aa=0;shu1=num3;shu2=num2;}if(num0>shu1)flag=1;if(flag==1)num0--;if(num0<shu2)flag=0;if(num1==200) /////定时时间////////{shu1=5000; /////重新置初值////////shu2=1;num2=shu2; num3=shu1;shu3=0; shu4=0;a0=0;a1=0;a2=0;a3=0;a4=0;a5=0;a6=0;a7=0;a8=0;a9=0; }}if(tance==1){if(num0>0&&num0<=500)a0=num0;if(num0>500&&num0<=1000)a1=num0;if(num0>1000&&num0<=1500)a2=num0;if(num0>1500&&num0<=2000)a3=num0;if(num0>2000&&num0<=2500)a4=num0;if(num0>2500&&num0<=3000)a5=num0;if(num0>3000&&num0<=3500)a6=num0;if(num0>3500&&num0<=4000)a7=num0;if(num0>4000&&num0<=4500)a8=num0;if(num0>4500&&num0<=5000)a9=num0;if(a0>0) shu3=a0;else{if(a1>0) shu3=a1;else{if(a2>0)shu3=a2;else{if(a3>0)shu3=a3;else{if(a4>0)shu3=a4;else{if(a5>0)shu3=a5;else{if(a6>0)shu3=a6;else{if(a7>0)shu3=a7;else{if(a8>0)shu3=a8;else{if(a9>0)shu3=a9;} }} }} }} }} num2=shu3;if(a9>0)shu4=a9;else{if(a8>0)shu4=a8;else{if(a7>0)shu4=a7;else{if(a6>0)shu4=a6;else{if(a5>0)shu4=a5;else{if(a4>0)shu4=a4;else{if(a3>0)shu4=a3;else{if(a2>0)shu4=a2;else{if(a1>0)shu4=a1;else{if(a0>0)shu4=a0;} }} }} }} }} num3=shu4;}}。