基于无线控制的智能小车系统的设计毕业设计(编辑修改稿)内容摘要:
基于无线控制的智能小车系统的设计 18 前面板中有丰富的输入控件(如图 20),和显示控件(如图 21),能模仿实际仪器,非常方便地对数据信号进行显示和控制。 输入控件(如图 20) 显示控件(如图 21) 程序框图中,通过 G 语言,实现对数据信息的处理和控制,并能对串口工作方式进行设置,如图 22。 图 22 串口设置图 上位机 G 语言总程序框图如图 23 基于无线控制的智能小车系统的设计 19 图 23 上位机 G 语言总程序框图 上位机主要功能 1) 发送小车运行模式的控制命令。 2) 在远程控制模式下,发送小车运动指令,控制小车运动方向。 3) 无线发送数据。 4) 无线接收温度信息。 5) 实时显示温度信息。 上位机进入运行状态后,等待控制命令。 当发出控制命令后,首先判断运动模式,若为自动模式,则小车自行运动,并发出温 度信息到上位机处,上位机接受到温度信息后,进行实时显示;若为远程控制模式,则小车按照接受到的运动命令进行行驶,并发出温度信息到上位机处,上位机接受到温度信息后,进行实时显示。 上位机主程序流程框图如图 24 基于无线控制的智能小车系统的设计 20 开 始 运 行小 车 控制 命 令远 程模 式Y行 驶信 号小 车行 驶显 示温 度结 束NNYYN小 车 自动 行 驶 图 24 上位机主程序流程框图 下位机主程序 单片机控制 下位机用单片机 STC89C52 为核心控制系统,以 C 语言为开发环境。 下位机结构如图25。 基于无线控制的智能小车系统的设计 21 M C U小 车 行 驶温 度 传 采 集红 外 避 障L E D 温 度 显 示发 送 温度 信 息接 受 P C 命 令 图 25 下位机程序结构图 温度采集子程序 本系统 使用 DS18B20 温度传感器,温度数据关系如表 9 所示。 表 9 DS18b20 温度数据关系 温度℃ 数据输出(二进制) 数据输出(十六进制) +125 00000000 11111010 +25 00000000 00110010 +1/2 00000000 00000001 0 00000000 00000000 1/2 11111111 11111111 FFFF 25 11111111 11001110 FFCE 55 11111111 10010010 FF92 温度采集子程序包括:初始化,读一个字节,写一个字节,读取温度。 当需要读取温度信息时,首先向温度传感器写入数据信息,完成初始化命令,再次写入数据,使其开始转换温度信息,最后再发出命令,完成温度读取。 子程序如下: void Init_DS18B20(void)//初始化 ds1820 基于无线控制的智能小车系统的设计 22 { unsigned char x=0。 DQ = 1。 //DQ 复位 Delay(8)。 //稍做延时 DQ = 0。 Delay(80)。 //精确延时 大于 480us DQ = 1。 //拉高总线 Delay(14)。 x=DQ。 Delay(20)。 } unsigned char ReadOneChar(void) //读取一个字节数据 { unsigned char i=0。 unsigned char dat = 0。 for (i=8。 i0。 i) { DQ = 0。 dat=1。 DQ = 1。 if(DQ) dat|=0x80。 Delay(4)。 } return(dat)。 } void WriteOneChar(unsigned char dat)//写一个字节 { unsigned char i=0。 for (i=8。 i0。 i) 基于无线控制的智能小车系统的设计 23 { DQ = 0。 DQ = datamp。 0x01。 Delay(5)。 DQ = 1。 dat=1。 } } unsigned int ReadTemperature(void)//读取温度 { unsigned char a=0。 unsigned char b=0。 unsigned int t=0。 float tt=0。 Init_DS18B20()。 WriteOneChar(0xCC)。 // 跳过读序号列号的操作 WriteOneChar(0x44)。 // 启动温度转换 Init_DS18B20()。 WriteOneChar(0xCC)。 //跳过读序号列号的操作 WriteOneChar(0xBE)。 //读取温度寄存器 a=ReadOneChar()。 //读低 8 位 b=ReadOneChar()。 //读高 8 位 t=b。 t=8。 t=t|a。 tt=t*。 t= tt*10+。 //放大 10 倍输出并四舍五入 return(t)。 } 基于无线控制的智能小车系统的设计 24 电机子程序 小车采用四轮驱动,使小车驱动力增强,并可以原地 360 度转弯。 电机驱动模块接口连接在单片机 P1 口。 通过改变 P1 口的管脚的电平信号,来改变电机转动方向,从而改变小车运动。 部分子程序如下: define Left_moto_go {P1_0=0,P1_1=1,P1_2=0,P1_3=1。 } //左边两个电机向前走 define Left_moto_back {P1_0=1,P1_1=0,P1_2=1,P1_3=0。 } //左边两个电机向后转 define Left_moto_Stop {P1_0=0,P1_1=0,P1_2=0,P1_3=0。 } //左边两个电机停转 define Right_moto_go {P1_4=0,P1_5=1,P1_6=0,P1_7=1。 } //右边两个电机向前走 define Right_moto_back {P1_4=1,P1_5=0,P1_6=1,P1_7=0。 } //右边两个电机向前走 define Right_moto_Stop {P1_4=0,P1_5=0,P1_6=0,P1_7=0。 } //右边两个电机停转 void run(void) //前进 { Left_moto_go。 //左电机往前走 Right_moto_go。 //右电机往前走 } void backrun(void) //后退 { Left_moto_back。 //左电机往前走 Right_moto_back。 //右电机往前走 } void leftrun(void) //左转 { Left_moto_go。 //左电机往前走 Right_moto_back。 //右电机往前走 } void rightrun(void) //右转 { Left_moto_back。 //左电机往前走 Right_moto_go。 //右电机往前走 } 基于无线控制的智能小车系统的设计 25 void stoprun(void) //停止 { Left_moto_Stop。 //左电机停止 Right_moto_Stop。 //右电机停止 } 避障子程序 小车避障通过红外传感器来实现,小车的右、前、左三个方向分别安装了三个红外传感器,检测到障碍物时,就返回低电平到 , ,通过单片机进行判断,改变小车运动方向,从而达到避障效果。 void fun() { if(P3_5==0amp。 amp。 P3_7==0) // 左 (中 )右测 后退 { backrun()。 } else if(P3_5==0) // 右中测 左转 { leftrun()。 } else if(P3_7==0) // 左中测 右转 { rightrun()。 } else if(P3_6==0) // 中测 左转 { if(flag==1) { rightrun()。 flag=0。 } 基于无线控制的智能小车系统的设计 26 if(flag==0) { leftrun()。 flag=1。 } } else run()。 } 串口通信子程序 [22] 通过串口方式 [23],实现数据的发送与接收。 下位机处,单片机通过串口通信,与无线模块交互数据信息,上位机处, PC 终端通过串口通信,与无线模块交互数据信息。 /************************串口中断接受一个字符 *************************/ void INT_Uart_Transmit() interrupt 4 //全双工 uart 接收 { uchar receive_temp。 if (RI==1) //处理接收中断 { RI=0。 //清除中断标志位 receive_temp=SBUF。 //接收串口数据 if (point==0) { if(receive_temp==39。 @39。 ) //判断是否起始位 point++。 else point=0。 } else if (point0 amp。 amp。 point=3) //判断是否接收够 4bit receive_buffer[point++]=receive_temp。 else if (point==4) //判断是否接收够 4bit { 基于无线控制的智能小车系统的设计 27 if(receive_temp==39。 39。 ) { receive_data[0]=receive_buffer[3]。 if(receive_buffer[1]==39。 y39。 amp。 amp。 receive_buffer[2]==39。 c39。 ) { Car_mode=39。 139。 //远程控制模式 } if(receive_buffer[1]==39。 z39。 amp。 amp。 receive_buffer[2]==39。 d39。 ) { Car_mode=39。 239。 //自动灭火模式 } point=0。 } else point=0。 } else point=0。 //缓冲区已满 ,清除缓冲区内数据 ,重新接收 } } /****************************串口发送一个数字 **************************/ void send_int(int txd) { SBUF = txd。 while(!TI)。 // 等特数据传送 TI = 0。 // 清除数据传送标志 } /****************************串口发送一个字符 *****。基于无线控制的智能小车系统的设计毕业设计(编辑修改稿)
相关推荐
到温度数据,人在此时可以针对性地作出一些反应。 无线模块的使用即节约了系统的成本,又减少了工作量,同时使用更加长久,因为线路在一定环境下容易腐蚀和损坏,我们在家里也会常常出现电线被老鼠咬坏的情况,基于更加安全和稳定的考虑,在使用的趋势上会越来越趋向于使用无线模块,不仅仅是温度测量系统,其他的更多的系统会更多地应用到无线,无线是未来的一个整体趋势。
蚂蚁无序地寻找解,但是经过一段时间的算法演化,蚂蚁越来越倾向于寻找那些 接近 于最优解的一部分解,这就 体现了蚂蚁行为从无序到有序的自组织性。 自组织性 增强了算法的鲁棒性。 4)正反馈 反馈是控制论中的重要概念,它代表信息输入对输出的反作。 由自然界中真实蚂蚁的觅食行为可见,蚂蚁之所以能够 找到最优 路径,直接依赖于 信息素不断地在 最短路径上 累积,而信息素的累 积就 是一个正反馈的过程。
以用一个圆锥空间模型来描述,此圆锥模型 比较复杂,但确能把色调、亮度及饱和度的变化情形表现得很清楚。 由于人的视觉对亮度的敏感程度远强于对颜色浓淡的敏感程度,采用 HSI色彩空间比 RGB 空间更符合人的视觉特性,也更便于色彩处理和识别。 在图像处理和计算机视觉中大量算法都可在 HSI 色彩空间中方便地使用,它们可以分开处理而且是相互独立的。 因此,在 HSI
低功耗,甚至在不影响整体性能的情况下适当减少部分功能来实现降低功耗的目的。 除开以上所讲两种发展趋势之外,无线传感模块的应用和发展还具有极大的发展空间和良好的发展方向。 当前对无线传感模块的应用都是静止性的,就目前存在的无线传 感网络( WSN),构成网络的各个节点都是被固定的安放在一个地方,要实现对整个环境的检测,就需要向环境中投放大量的无线传感节点。 这样一来成本就会非常的高。
被存储在一个USER DLL 中、 Windows 编程所需要的大量的 API 函数也被包含在 Kernel DLL中。 在 Windows 操作系统中使用 DLL 有很多优点,最主要的一点是多个应用程序、甚至是不同语言编写的应用程序可以共享一个 DLL 文件,真正实现了资源“共享”,大大缩小了应 用程序的执行代码,更加有效的利用了内存;使用DLL 的另一个优点是 DLL
交通流参数及预测方法 交通流 基本参数 通过对交通流量的实时诱导和控制是智能交通系统研究 的根本目的,正确、及时地分配交通流量,从而缓解道路拥堵的情况,使交通网络畅通,高效。 因此,如何对交通流量做出正确准确及时的预测,是控制和分配交通流量的前提。 交通流具有时间和空间的变化特性,这种时空特性是某空间位置 交通流运行状态的定性,定量特征。 交通流量的预测实际就是对交通流 基本参数的预测,交通流