室内可见光定位装置.docx
《室内可见光定位装置.docx》由会员分享,可在线阅读,更多相关《室内可见光定位装置.docx(20页珍藏版)》请在冰豆网上搜索。
室内可见光定位装置
2017全国大学生电子设计竞赛
设计报告
可见光室内定位装置(I题)
菏泽学院
蒋震机电工程学院
编号:
队员:
二〇一七年八月十日
摘要
本系统由STC89C52RC最小系统板为核心,光敏传感器根据光照强度分别检测XY轴坐标,PCF8591A/D转换器将传感器检测的光照转化为数字量,通过电路传递到LCD1602液晶显示屏,在LCD1602液晶显示屏显示XY轴及五个区域。
按键按下将当前的数字量记录下来并设为基准值,根据新检测的数字量相对基准值判断Y轴坐标,从而实现校正原点。
顶部平面采用三个开关,一个47Ω的电阻和一个二极管组成控制电路,控制三个大功率发光二极管。
由此完成定位。
关键词:
STC89C52RC最小系统板光敏传感器PCF8591A/D转换器LCD1602液晶显示屏
Abstract:
ThissystembySTC89C52RCminimumsystemboardasthecore,thephotosensitivesensorbasedonlightintensitydetectionXYcoordinates,respectivelyPCF8591Aa/Dconvertersensordetectionoflightcanbeconvertedtodigitalquantity,throughthecircuittotheLCD1602LCDscreen,theLCD1602LCDdisplayshowstheXYaxisandfiveareas.Pressthebuttontorecordthecurrentdigitalquantityandsetitasthebasevalue,anddeterminetheY-axiscoordinateaccordingtothenewtestdigitalrelativereferencevalue,soastorealizethecorrectorigin.Atthetopoftheplaneusingthreeswitch,a47Ωresistanceandadiodecontrolcircuit,controlthreepowerleds.Thiscompletesthepositioning.
1设计任务与要求
1.1设计任务
设计并制作可见光室内定位装置,其构成示意图如图1所示。
参赛者自行搭建不小于80cm×80cm×80cm的立方空间(包含顶部、底部和3个侧面)。
顶部平面放置3个白光LED,其位置和角度自行设置,由LED控制电路进行控制和驱动;底部平面绘制纵横坐标线(间隔5cm),并分为A、B、C、D、E五个区域,如图2所示。
要求在3个LED正常照明(无明显闪烁)的情况下,测量电路根据传感器检测的信号判定传感器的位置。
2设计要求
2.1基本要求
(1)传感器位于B、D区域,测量电路能正确区分其位于横坐标轴的上、下区域。
(2)传感器位于C、E区域,测量电路能正确区分其位于纵坐标轴的左、右区域。
(3)传感器位于A区域,测量显示其位置坐标值,绝对误差不大于10cm。
(4)传感器位于B、C、D、E区域,测量显示其位置坐标值,绝对误差不大于10cm。
(5)测量电路LCD显示坐标值,显示分辨率为0.1cm。
2.2发挥部分
(1)传感器位于底部平面任意区域,测量显示其位置坐标值,绝对误差不大于3cm。
(2)LED控制电路可由键盘输入阿拉伯数字,在正常照明和定位(误差满足基本要求(3)或(4))的情况下,测量电路能接收并显示3个LED发送的数字信息。
(3)LED控制电路外接3路音频信号源,在正常照明和定位的情况下,测量电路能从3个LED发送的语音信号中,选择任意一路进行播放,且接收的语音信号均无明显失真。
(4)LED控制电路采用+12V单电源供电,供电功率不大于5W。
(5)其他。
3系统方案
本系统主要由电源模块传感器检测模块测量电路显示模块,下面分别论证这几个模块的抉择。
3.1电源的论证与选择
方案一:
直接使用电池组供电,该电源随着使用电压不稳。
方案二:
采用开关电源效率高,但是需要购买,且比较贵。
方案三:
自行设计稳压电源模块给系统各部分供电,由于各稳压芯片不贵,而且电压可调,做好滤波设计,使用效果也不错。
综合以上三种方案,选择方案三。
3.2光敏传感器模块的论证与选择
光敏传感器是利用光敏元件将光信号转换为电信号的传感器,它的敏感波长在可见光波长附近,包括红外线波长和紫外线波长。
光传感器不只局限于对光的探测,它还可以作为探测元件组成其他传感器,对许多非电量进行检测,只要将这些非电量转换为光信号的变化即可。
3.3控制系统的论证与选择
AT89C52这种单片机对开发设备的要求很低,开发时间短。
写入单片机内的程序还可以进行加密。
再者AT89C52目前的售价比8031还低,市场供应也很充足。
所以选用AT89C52为主控芯片。
图2—3AT89C52单片机的基本结构
3.4显示模块的论证与选择
LED数码管显示实现原理简单,显示直观,编程简单,但显示内容单一,若要同时显示坐标轴,区域位置等诸多信息则需要大量的数码管,而且不能显示中文,由此增加了电路的复杂程度,也加大了编程的难度。
LCD可以设置显示坐标轴等信息,它具有低功耗,可视面大,画面友好及抗干扰能力强等功能,其显示技术已经得到广泛的应用。
综上所述,选用LCD1602液晶显示屏更优。
4方案描述
按照设计的基本要求,系统可分为三大模块,数据采集模块、控制器模块、人机交互界面模块。
其中数据采集模块由电阻应变片传感器、信号的前级处理和A/D转换部分组成。
转换后的数字信号送给控制器处理,由控制器完成对该数字量的处理,驱动显示模块完成人机间的信息交换。
可见光室内定位装置模块设计图
4.1光源及探测器特性
实验选用3W的大功率白光LED作为信号源,为在尽可能不影响光源正常工作的前提下实现稳定可靠的无线通信,实验选用略低于额定工作电流的500mA作为直流偏置点。
图2所示为白光LED光源及光电探测器特性。
由图2(a)可知,在最大工作电流范围内,LED光源功率与电流呈线性关系,光源具有良好的调制特性。
图2(b)为使用积分球测得的白光LED发光光谱,可见白光LED光源发出的光谱主要包括峰值在442nm处由LED自身发出的蓝光和峰值在561nm处由荧光粉受激发产生的黄光。
而实验选用的光电探测器的光谱最大响应灵敏度在516nm处,如图2(c)所示,位于蓝光和黄光的峰值波长之间,且光谱响应范围涵盖整个可见光波段。
4.2驱动电路
LED驱动电路除了提供足够宽范围的开关电流以保证白光LED的正常工作外,还须提供合适的静态工作点,使光源能输出足够的功率并具有良好的线性度,确保信号经调制后能线性输出。
设计的白光LED光源驱动电路经过STM89C52处理器编码产生的传输信息作为驱动电路的输入,将输入信号进行放大的同时给予一定的偏置,确保LED光源正常工作,该电路可根据所用光源的特性通过调节可变电阻值实现对输出量的改变,依据实际应用中的光源参数进行灵活调节。
4.3数据编码
数据传输的格式包括:
起始码头、地址码、地址反码、指令码、指令反码和结束码。
码头由一个连续的235φs的高低电平组成,结束码由一个150φs低电平组成。
地址码、地址反码、指令码和指令反码均为8位数据格式,按照低位在前高位在后的顺序发送,增加地址反码和指令反码是为了提高信息传输过程中的准确性和可靠性。
光源在循环发送位置信息的过程中,在空闲时隙系统向LED光源发送的均为高电平,以保证LED光源能正常提供照明服务。
我们将一个逻辑1的传输设定为112φs(28φs高电平和84φs低电平),一个逻辑0的传输设定为56φs(28φs高电平和28φs低电平),具体数据编码格式如图3.3所示。
图3.3反映位置信息的数据格式“0-256-34-221”,其中“0”字段即LED光源对应区域的地址坐标,“34”字段表示对当前坐标在室内环境中的一种具体提示指令。
根据标签定位技术的特点,为避免在定位区域中出现待测目标同时接收多个信号源发来的位置信息而出现的混乱现象,系统在发射端会对多个LED光源进行分时发送信号。
当传输信号的频率大于60Hz时,白光LED灯不会出现明显的闪烁现象,人眼也无法分辨[11-12],但如果出现连续的逻辑1或连续的逻辑0时,将会导致LED光源发光亮度发生变化,影响照明效果。
因此在系统中采用上述编码方式可保证序列中每一比特由两个变化脉冲组成,可以有效减少LED光源在发送定位信息时对照明产生的影响。
图3.3数据编码示意图
4.4数据解码
在接收端,光电探测器将接收到的位置信息传送给滤波放大电路,由于实验中选用的是反向放大电路,因此经过滤波放大处理后的信号与原始信号的相位相反,并且信号被整形为TTL(晶体管-晶体管逻辑)电平的串行信息,利用STC89C52RC处理器的输入捕获功能对信号进行解码。
由于数据在编码时将逻辑1设定为连续的28φs高电平和84s低电平,逻辑0设定为28φs高电平和28φs低电平,反向放大电路会使收发信号相位相反,因此接收端成功接收到的逻辑1应当为连续的28φs低电平和84φs高电平,逻辑0应当为28φs低电平和28φs高电平。
同时逻辑电平中的低电平持续时间均为28φs,所以在数据解码时只需捕获高电平的持续时间即能判定出逻辑电平,进一步处理后即可解析出原始的位置信息,大大降低了解码的复杂度。
具体解码过程为如下:
将STC89C52RC处理器的输入捕获模式设置为上升沿捕获,当捕获到上升沿后,立即将输入捕获模式设置为下降沿捕获(即捕获高电平),随后清零定时器的计数器值,并标记捕获到上升沿。
当下降沿到来时,立即更改输入捕获模式为上升沿捕获以便捕获下一次高电平,然后处理此次捕获到的高电平。
每次从捕获起始码头开始,以此类推直到捕获到结束码则表示一组数据接收成功。
如果在捕获过程中地址码与地址反码或者指令码与指令反码有差异,则放弃本次捕获,从新开始下一次捕获。
4.5识别映射
系统对所有用于定位的LED光源进行标号,不同的标号对应室内环境中不同区域。
每个LED光源都循环发送唯一的位置信息。
当移动终端移动到指定区域时,通过探测器将采集到的可见光信号转换为电信号,经滤波放大后通过STC89C52RC处理器对信息进行解码。
当系统解码出发射端所发送的位置信息后,通过UART模块将信息传送至PC终端,而室内环境中LED光源的实际位置信息预先存在数据库中,当PC终端收到解码后的位置信息时会通过查询数据库来进行比较和识别,只有比对一致的位置信息才会进一步被映射到地图上,否则系统将放弃本次位置识别。
PC终端利用C高级语言编写并设计了室内可见光定位助手软件,不仅可以根据环境需要灵活地更换地图信息,还可以根据移动终端的位置变化来实时更新当前的位置信息。
5设计分析与计算
5.1检测XY轴坐标
本系统由STC89C52RC最小系统板为核心,光敏传感器根据光照强度分别检测XY轴坐标。
光敏传感器是利用光敏元件将光信号转换为电信号的传感器,用来检测XY轴距离。
5.2A/D转换模块
考虑到其他部分所带来的干扰,所以我们选择24位的A/D转换器。
作为电子秤,系统对AD转换速度要求并不高,精度上24位的A/D足以满足要求。
另外A/D转化器具有:
抗干扰能力强和精确差分输入,低廉的价格等优势.综合分析,我们最终选择了精度为准确的HX711。
5.3键盘输入
通过按键控制原点校正,按校正按键将当前的数字量记录下来并设为基准值,根据新检测的数字量相对基准值判断XY轴坐标。
5.4电源模块
此次设计的稳压电源由电源变压器、整流电路、滤波电路和稳压电路四个部分组成,如图
5.5电路原理框图
5.6结构尺寸图
6测试方案与测试结果
6.1测试方案
6.1.1硬件测试
稳压电源的波形测试,比较稳定,符合要求,称重传感系统输出信号基本没有受影响,显示屏显示正常,只要不在电位计盲区。
6.1.2软件仿真测试
通过keil5软件在线调试,程序编译正确,执行正常。
延时等子程序符合要求。
6.1.3硬件软件联调
通过串口将程序下载至单片机中,打开单片机电源开关,系统能够较顺利完成基本和发挥部分。
6.2零件原理图汇总
6.3测试条件与仪器
测试条件:
检查多次,仿真电路和硬件电路必须与系统原理图完全相同,并且检查无误,硬件电路保证无虚焊。
测试仪器:
高精度的数字毫伏表,模拟示波器,数字示波器,数字万用表。
7软件设计
可见光室内装置设计均采用模块化设计,整个程序包括主程序、数据处理子程序(双字节乘法、二一十进制转换程序及逆转换程序)、LCD液晶静态显示子程序等模块。
所有程序均采用C汇编语言编写。
可见光室内装置的软件设计思路说明如下:
主程序的作用为程序初始化,计算单价单重(单价和单重分别在定时中断程序和INT0外部中断程序中获得),并时时显示X、Y轴的坐标。
7.1主程序流程图
主程序流程图给出了系统工作的基本过程,描述了信号的基本流向,起到一个向导的作用。
主程序流程图
8程序清单(见附件一)
9测试方案与测试结果
9.1测试方案
9.1.1硬件测试
稳压电源的波形测试,比较稳定,符合要求,光敏传感系统输出信号基本没有受影响,显示屏显示正常,不在电位计盲区下满足。
9.1.2软件仿真测试
通过keil4软件在线调试,程序编译正确,执行正常。
延时等子程序符合要求。
9.1.3硬件软件联调
通过串口将程序下载至单片机中,打开单片机电源开关,系统能够较顺利完成基本和发挥部分。
9.2测试条件与仪器
测试条件:
检查多次,仿真电路和硬件电路必须与系统原理图完全相同,并且检查无误,硬件电路保证无虚焊。
测试仪器:
数字万用表。
9.3测试结果及分析
坐标
(0,0)
(20,20)
(-20,20)
(-20,-20)
(20,-20)
AD数字量
96
118
112
103
105
经过测试,坐标值与AD数字量成线性关系,整个系统精度较高,基本满足题目指标要求。
10结论和总结
10.1对设计的小结
此可见光室内定位装置,总体结构简洁、大方,底座等材料还属于废品重新利用,符合可持续发展的环保道路,而且其构造稳固,有利于系统性能的发挥。
检测出来的数据显示,其总体性能比较好,机械性能不错,如果经济允许,换上更加优质的元器件,其性能会更加完美。
10.2设计收获体会
通过这次比赛,我们收获匪浅。
学到了很多全新的知识,比如A/D数模转换,更加深了对AT89C52系统板的使用和性能;在制作的过程中一步一步走向目的地;最重要的是这四天三夜的奋战增强了我们的合作精神,促进了我们的友谊!
10.3对设计进一步完善的建议
1、部分材料可能可以选取更轻便的材料;
2、经济允许,可以换上性能更加好的元器件;
3、机械结构的构架待加强。
附件一
#include"delay.h"
#include"init.h"
#include"lcd.h"
#include"adc.h"
#include"keyscan.h"
charx,y;
intnumber;
chara,b;
externucharm;
externucharread_ADC(ucharcom);
externucharAD;
externfloatz;
ucharq=20,w=80;
voidmain()
{
init();
init_ADC();
while
(1)
{
keyscan();
xianshi();
//q=q+x;
//q%=20;
number=read_ADC(0x42)-AD;//光敏
//if(a>20)
//number-=5;
b=number/z;//number:
-40~40
if(number<0)
number=-number;
y=number/z;//y:
0~40
w=w+y;
w%=80;
if(y<=1)y=0;
if((y>=4)&&(y<=6))y=5;
if((y>=9)&&(y<=11))y=10;
if((y>=14)&&(y<=16))y=15;
if((y>=19)&&(y<=21))y=20;
if((y>=24)&&(y<=26))y=25;
if((y>=29)&&(y<=31))y=30;
if((y>=34)&&(y<=36))y=35;
if((y>=39))y=40;
write_sfm(3,x);
write_sfm(11,y);
write_sfm2(1,read_ADC(0x40));//0x42
write_sfm2(5,read_ADC(0x41));//0x40
write_sfm2(9,read_ADC(0x42));//0x41
//write_sfm2(5,AD);
//write_sfm(12+0x40,m);
//write_sfm4(6,q);
write_sfm4(14,w);
}
}