版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘要 我们制作无线遥控智能环境监测车,用于火场和救援人员无法进入的环境中进行探测,能够及时的将内部信息传递给救援人员,以便及时的做出营救方案,能够为为救援节省时间。整机分为两部分,第一部分为控制显示部分,主要是实现无线遥控小车的行驶和接收车子发送的温度和显示环境中的一些基本情况,第二部分为检测部分,主要设在小车上,小车进入后,检测到温度后,通过射频模块无线发送,发射距离大于200米。并且车子上装有全方位摄像头,外部人员可以通过摄像头观察到内部的基本情况。 本设计主要创新点在于成本低,功耗小,操作方便,体型小巧,携带方便,对于出现灾害人暂时无法进入的环境中有明显作用。关键词:单片机;射频模块;温
2、度显示;摄像头;无线遥控;救难;目录摘要i一、 背景意义2二、概要设计32.1显示控制硬件部分:32.2机器车硬件部分:3三、详细设计43.1显示电路43.2 电机驱动控制电路43.2.1 键盘电路原理43.2.2 电机驱动电路的设计及使用方法53.3无线发送接收电路53.3.1射频收发器nrf90553.3.2nrf90运行过程63.4温度传感电路263.4.1ds18b20工作原理和电路设计263.5摄像头显示293.6其它硬件控制电路设计293.6.1电源电路29四、总结30五、 参考文献31一、 背景意义 随着电子技术、计算机技术和制造技术的飞速发展,数码相机、dvd、洗衣机、汽车等消
3、费类产品越来越呈现光机电一体化、智能化、小型化等趋势。各种智能化小车在市场玩具中也占一个很大的比例。根据美国玩具协会的调查统计,近年来全球玩具销量增幅与全球平均gdp增幅大致相当。而全球玩具市场的内在结构比重却发生了重大改变:传统玩具的市场比重正在逐步缩水,高科技含量的电子玩具则蒸蒸日上。美国玩具市场的高科技电子玩具的年销售额2004年交2003年增长52%,而传统玩具的年销售额仅增长3%。英国玩具零售商协会选出的2001圣诞节最受欢迎的十大玩具中,有7款玩具配有电子元件。从这些数字可以看出,高科技含量的电子互动式玩具已经成为玩家行业发展的主流。 如今知识工程、计算机科学、机电一体化和工业一体
4、化等许多领域都在讨论智能系统,人们要求系统变得越来越智能化。显然传统的控制观念是无法满足人们的需求,而智能控制与这些传统的控制有机的结合起来取长补短,提高整体的优势更好的满足人们的需求。随着人工智能技术、计算机技术、自动控制技术的迅速发展,智能控制必将迎来它的发展新时代。计算机控制与电子技术融合为电子设备智能化开辟了广阔前景。因此,遥控加智能的技术研究、应用都是非常有意义而且有很高市场价值的。 本设计采用的有线摄像头监控,机器车可以很好的在预定环境中进行检测,并且可以了解内部环境,以便控制机器车执行一步步的任务。智能救援小车实现无线遥控寻迹功能、温度检测和无线收发功能,这对一些检测人类无法进入
5、的环境中有很大的作用。二、概要设计2.1显示控制硬件部分: 显示控制部分,采用51单片机作为系统的控制中心,进行数学运算、对无线发送接收模块送来的信号进行处理,通过lcd显示实时温度、并且在外接电脑上显示摄像头传来的内部情况、键盘控制、无线发送接收模块。2.2机器车硬件部分: 机器车硬件部分,采用51单片机作为系统的控制中心,进行数学运算、对温度传感器和无线发送接收模块送来的信号进行处理,接收到操作人员的指令,驱动机器车运动到指定地点,测量实时温度、无线发送接收模块发送给显示器。三、详细设计 3.1显示电路无线接收系统采用lcd1602与单片机连接,控制 lcd的字符显示,8位数据线分别连接到
6、51单片机的p0口,并且利用i/o口的p2.0p2.2作为lcd的控制线。3.1.1 lcd1602基本原理1602lcd采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如第1脚:vss为地电源。第2脚:vdd接5v正电源。第3脚:vl为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10k的电位器调整对比度。第4脚:rs为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:r/w为读写信号线,高电平时进行读操作,低电平时进行写操作。当rs和r/w共同为低电平时可以写入指令或者显示地址,当rs为低电平
7、r/w为高电平时可以读忙信号,当rs为高电平r/w为低电平时可以写入数据。第6脚:e端为使能端,当e端由高电平跳变成低电平时,液晶模块执行命令。第714脚:d0d7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。3.2 电机驱动控制电路 3.2.1 键盘电路原理 根据需求,本系统设计使用了标准的33键盘,用p1.3p1.5连接键盘的列信号,用p1.0p1.2连接键盘的行信号。采用低电平逐行扫描的方式,判断按键的状态。 3.2.2 电机驱动电路的设计及使用方法l298n是sgs公司的产品,内部包含4通道逻辑驱动电路,是一种二组和四相电机的专用驱动器,即内含两个h桥的高电压大电流双全
8、桥式驱动器,接收标准ttl逻辑电平信号,可驱动46v,2a以下的电机。3.3无线发送接收电路3.3.1射频收发器nrf905nrf905内部寄存器射频寄存器的各位的长度是固定的。然而,在shockbursttm收发过程中,tx_payload、rx_payload、 tx_address和rx_address 4个寄存器使用字节数由配置字决定。nrf905进入关机模式或空闲模式时,寄存器中的内容保持不变。rf905在使用中,根据不同需要,其电路图不尽相同。3.3.2nrf90运行过程 收发端程序流程图:单片机串口对无线收发模块收发状态转换的控制,可通过设置控件的属性来实现。图4-3为发送端程序
9、流程图,图4-4为接收端程序流程图。外部中断二 外部中断一 外部中断三 初始化单片机开外部中断flag=1?中断到齐?是否读取发送数据发 送flag=1flag=0图1 发送端的程序流程图程序:无线控制发送#include #include #include #include #define uint unsigned int#define uchar unsigned charvoid delay1(unsigned int num);#define byte_bit00x01#define byte_bit10x02#define byte_bit20x04#define byte_bit
10、30x08#define byte_bit40x10#define byte_bit50x20#define byte_bit60x40#define byte_bit70x80/spi指令#define wc0x00#define rc0x10#define wtp0x20#define rtp0x21#define wta0x22#define rta0x23#define rrp0x24bdata unsigned char data_buf;#define data7(data_buf&byte_bit7) != 0)#define data0 (data_buf&byte_bit0)
11、 != 0)sbitflag=data_buf7;sbitflag1=data_buf0;uchar txrxbuf4=0x00,0x00,0x00,0x00;/配置口定义/sbit txen = p23; sbit trx_ce = p33;sbit pwr = p24;/spi口定义/sbit miso = p35;sbit mosi = p27;sbit sck = p34;sbit csn = p30;sbit am=p21;/状态输出口/sbit dr = p26;sbit cd = p25;/void delay1(uint i);/rf寄存器配置/-nrf905寄存器配置- un
12、signed char idata rfconf11= 0x00, /配置命令/ 0x9f, 0x0c, 0x44,0x01,0x01, 0xe7,0xe7,0xe7,0xe7, 0x58, /crc充许,8位crc校验,外部时钟信号不使能,16m晶振 ; code txaddress4=0xe7,0xe7,0xe7,0xe7;/延时/static void delay(uchar a) uint b,c; for(b=a;b0;b-) for(c=120;c0;c-);void spiwrite(unsigned char send)unsigned char i;data_buf=send
13、;for (i=0;i8;i+)if (data7)/总是发送最高位mosi=1;elsemosi=0;sck=1;data_buf=data_buf1;sck=0;/初始化nrf905/void nrf905init(void) csn=1;/ spi disablesck=0;/ spi clock line init lowdr=0;/ init dr for inputam=0;/ init am for inputcd=0;/ init cd for inputpwr=1;/ nrf905 power ontrx_ce=0;/ set nrf905 in standby modetx
14、en=0;/ set radio in rx mode/初始化寄存器void config905(void)uchar i;csn=0;/ spi enable for write a spi command/spiwrite(wc);/ write config command写放配置命令for (i=0;i11;i+)/ write configration words 写放配置字 spiwrite(rfconfi);csn=1;/ disable spi/发送数据void txpacket(uchar *txrxbuf) uchar i;/config905();csn=0;spiwri
15、te(wtp);/ write payload commandfor (i=0;i1;i+)spiwrite(txrxbufi);/ write 32 bytes tx data/ spi enable for write a spi commandcsn=1;delay(1);/ spi disablecsn=0;/ spi enable for write a spi commandspiwrite(wta);/ write address commandfor (i=0;i=650us)void tx(void) settxmode();/ set nrf905 in tx mode /
16、 setrf_pa_pwr(unsigned char i);/设置发射功率void delay1(unsigned int num) while( -num ) ; uchar keyscan()uchar temp,a; while(1) p1=0xdf; temp=p1; temp=temp&0x0f; if(temp!=0x0f) delay(10); if(temp!=0x07) temp=p1; switch(temp) case 0xde:a=1;break; case 0xdd:a=2;break; case 0xdb:a=3;break; p1=0xef; temp=p1;
17、temp=temp&0x07; if(temp!=0x0f) delay(10); if(temp!=0x0f) temp=p1; switch(temp) case 0xee:a=4;break; case 0xed:a=5;break; case 0xeb:a=6;break; p1=0x37; temp=p1; temp=temp&0x07; if(temp!=0x07) delay(10); if(temp!=0x07) temp=p1; switch(temp) case 0x3e:a=7;break; case 0x3d:a=8;break; case 0x3b:a=9;break
18、; return a; void main(void) uchar b; nrf905init(); config905();delay1(500); while(1)b=keyscan();txrxbuf0=b; tx();txpacket(txrxbuf);串口初始化等待控制命令数据编码crc校验打开串口发送数据有数据返回?否是返回正确信息否是图2 接收端程序流程图程序:#include #include #include #include #define uint unsigned int#define uchar unsigned char/配置口定义/uchar code table
19、0= the temp is:;uchar code table1= . c;uchar num;sbit lcden=p10;sbit lcdrs=p11;#define byte_bit0 0x01 #define byte_bit1 0x02 #define byte_bit2 0x04 #define byte_bit3 0x08 #define byte_bit4 0x10 #define byte_bit5 0x20 #define byte_bit6 0x40 #define byte_bit7 0x80 bdata uchar data_buf; #define data7 (
20、data_buf&byte_bit7) != 0) #define data0 (data_buf&byte_bit0) != 0) sbit flag =data_buf7; sbit flag1 =data_buf0; /- #define txrxbuf_len 4 uchar txrxbuffertxrxbuf_len; #define wc 0x00 #define rc 0x10 #define wtp 0x20 #define rtp 0x21 #define wta 0x22 #define rta 0x23 #define rrp 0x24 /-nrf905寄存器配置- un
21、signed char idata rfconf11= 0x00, /配置命令/ 0x9f, 0x0c, 0x44,0x01,0x01, 0xe7,0xe7,0xe7,0xe7, 0x58, /crc充许,8位crc校验,外部时钟信号不使能,16m晶振 ; uchar num;sbit txen=p17;sbit trx_ce=p35;sbit pwr=p16;/spi口定义/sbit miso=p32;sbit mosi = p13;sbit sck = p31;sbit csn = p12;sbit am = p33;/状态输出口/sbit dr = p14;sbit cd = p15;/
22、rf寄存器配置/void delay(uint a) uint b,c; for(b=a;b0;b-) for(c=1;c0;c-);void delay1(uint a) uint b,c; for(b=a;b0;b-) for(c=110;c0;c-);/-spi读函数- unsigned char spiread(void) unsigned char j; for (j=0;j8;j+) data_buf=data_buf1; sck=1; if (miso) /读取最高位,保存至最末尾,通过左移位完成整个字节 data_buf|=byte_bit0; else data_buf&=b
23、yte_bit0; sck=0; return data_buf; /-spi写函数- void spiwrite(uchar send) unsigned char i; data_buf=send; for (i=0;i8;i+) if (data7) /总是发送最高位 mosi=1; else mosi=0; sck=1; data_buf=data_buf1; sck=0; /-初始化nrf905- void nrf905init(void) csn=1; / spi disable sck=0; / spi clock line init low dr=0; / init dr fo
24、r input am=0; / init am for input cd=0; / init cd for input pwr=1; / nrf905 power on trx_ce=0; / set nrf905 in standby mode txen=0; / set radio in rx mode /-nrf905初始化寄存器- void config905(void) uchar i; csn=0; / spi enable for write a spi command for (i=0;i=650us) /-判断数据接收状态- unsigned char checkdr(voi
25、d) /检查是否有新数据传入 data ready if (dr=1&trx_ce=1 & txen=0) return 1; else return 0; /-读nrf905接收数据- void rxpacket(void) uchar i; delay(1); delay(100); trx_ce=0; csn=0; / spi enable for write a spi command delay(1); spiwrite(rrp); for (i = 0 ;i 4 ;i+) txrxbufferi=spiread(); / read data and save to buffer c
26、sn=1; delay(10); trx_ce=1; /-数据接收- void rx(void) setrxmode(); / set nrf905 in rx mode while (checkdr()=0); delay(10); rxpacket(); delay(10); void write_com(uchar com)lcdrs=0;p0=com;delay(550);lcden=1;delay(550);lcden=0;void write_data(uchar date)lcdrs=1;p0=date;delay(550);lcden=1;delay(550);lcden=0;
27、void init()lcden=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x80);for(num=0;num14;num+) write_data(table0num);delay1(5);write_com(0x80+0x40);for(num=0;numcount1) write_sfm(6,count0);write_com(0x80+0x40+9);write_data(count1+0x30); if(count0count1) write_sfm(6,count1); write_com(0x80+
28、0x40+9); write_data(count0+0x30); m=0; 3.4温度传感电路3.4.1ds18b20工作原理和电路设计ds18b20工作原理:ds18b20的读写时序和测温原理与ds1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s 减为750ms。 ds18b20测温原理如下图所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振 随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在55所对应的一个基数值。计数器1对 低温度系数晶振产生的脉冲信号进行
29、减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重 新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即 为所测温度。图3中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。图3 ds18b20电路设计ds18b20的工作严格遵守单总线器件的通信协议,以保证数据的完整性。单总线协议定义了复位脉冲、应答脉冲、写0、写1、读0和读1等几种类型的信号,所有的单总线命令序列都是由这些基本的信号类型组成。在这些信号中,除了应答脉冲外,其他均由主机发出同步信号,并且发送的所有命令和数据都是字节的低位在前。在本设计中,总线上只有一个温度传感器,转换精度为12位。读温度的流程如图4所示。复位发跳过rom命令发跳过rom命令发读存储器命令发温度转换命令连续读字节温度值延时复位复位图
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年版:供应链管理服务合同
- 2024年特种门采购合同范本3篇
- 2024年某企业关于知识产权许可的合同
- 马鞍山职业技术学院《安装工程计量计价实训》2023-2024学年第一学期期末试卷
- 2024年文化产业融资借款合同范本大全6篇
- 2025年货运从业资格证模拟试题题库及答案解析
- 2025年货运从业资格证考试题目和答案
- 2025年昆明考货运从业资格证考试题目
- 2024事业单位聘用合同教师(附教育质量监控与管理)3篇
- 2025建筑工程民工劳动合同范文
- 2022年1201广东选调生考试《综合行政能力测验》真题
- 有机肥料采购项目售后服务方案
- 综合实践活动(1年级下册)第3课时 感恩卡设计与制作-课件
- 2023河南省科学院招聘144人笔试参考题库(共500题)答案详解版
- (完整版)小学生英语百科知识竞赛题及答案
- 肥料、农药采购服务方案(技术方案)
- 脑卒中后吞咽障碍患者进食护理(2023年中华护理学会团体标准)
- 妊娠期高血压疾病诊治指南(2022版)解读
- 政府经济学网上作业-第2次任务-以“政府支出”为主题-撰写一篇不少于1000字的小论文
- 哈萨克斯坦劳动法中文版
- 格构护坡施工方案完整
评论
0/150
提交评论