车载险情探测装置设计目录:1、概要
2、硬件实现
3、软件实现
4、结果
1、基于远程控制系统的车载险情探测装置正成为应用于险情探测领域的一种方便、高效的手段。该装置可以进入危险的环境中代替人工完成环境探测、信息采集等工作。本设计是建立在局域网之内可视频遥控的车载机械臂险情探测装置,系统主要由上位机控制端和车体两部分组成。其中上位机控制端是基于C#语言的窗体界面,主要实现远程视频查看、车载装置控制指令的发送、车体运动轨迹的绘制等功能。车体部分主要由供电电路、STM32单片机核心控制模块、车体电机驱动模块、机械臂模块、车体轨迹检测模块、Wi-Fi模块、UVC摄像头模块等组成。本文在阐述了选题背景,相关技术应用现状等内容的基础上,重点叙述了双机通信连接的建立、车体轨迹的获取、机械臂抓取功能等部分的具体技术的实现方法,同时对上位机的实现方法也实现了细致的介绍。本设计的实际测试结果表明,上位机能够通过读取小车上传的视频从而比较准确地控制小车行驶以及抓取物品,同时,小车的大致行驶轨迹也能够上传至上位机并在轨迹显示区域进行绘制和保存,完成了设计要求的功能并在测试过程中显示出良好的性能。本设计能够实现险情下基本数据的回传和完成机械臂的基本动作,具有一定的应用价值。
本设计主线是车载险情探测装置的设计制作。按照系统组成和论文的逻辑关系,将论文分为四个章节,论文各章节的主要内容如下: 第一章主要对本课题的研究背景和意义、课题所应用到的相关技术的特点和优势、课题所涉及的相关开发工具进行简要介绍,其中重点介绍了课题的研究意义。 第二章为论文的重要章节。第二章主要是对下位机硬件系统的组成框架、重点模块的实现原理和实现方法进行了介绍。主要介绍了电源电路的设计、各传感器的原理和技术上的实现方法、小车行进系统和机械臂的组成和功能的实现方法等。 第三章也是论文的重点章节。本章主要对上位机软件部分进行介绍,重点介绍了采用C#语言,利用Visual Studio编译环境编写上位机界面的方法。重点叙述了作为整个系统支柱的通信系统的实现方法和小车轨迹数据的上传和绘制过程等。 第四章主要对本设计的各项功能进行了测试。根据设计要求,首先对各软件模块和硬件模块进行功能测试,包括上、下位机通信功能测试、视频监控功能测试、远程控制功能测试、上位机轨迹绘制功能测试等,功能测试完毕后又进行了整体功能测试和数据优化,并根据测试结果对整个设计进行了客观分析。最后对整个毕业设计从网上选题到制作完成的整个过程进行了归纳总结。
2、硬件实现
本设计要求小车可通过视频方式远程遥控行驶,在平坦的环境中可自动行驶、避障;远程控制端可随时对探测区域进行拍照;车载机械臂可通过视频远程遥控并夹取样品盛放在车上。小车探测过程中的行驶轨迹可适时进行检测,并在远程主控制器端的界面进行绘制、显示和存储。根据设计要求,本设计是一个面向危险、异常等特殊情况下的车载探测装置。针对要实现的功能,系统主要组成模块为上位机控制器端和车载装置。车载装置 主要由核心控制部分供电电路、电机驱动模块、车载姿态检测模块、机械臂模块、通信路由模块等。
本设计采用的STM32F103RBT6核心控制系统主要由单片机最小系统和外设接口等组成。其中,单片机的A6、A7引脚为PWM输出引脚,连接驱动板的IN1和IN2,单片机通过控制其输出的占IN2比控制驱动输出电压的大小,进而控制电机的转速;单片机的C12、C13引脚分别为两路逻辑电平输出引脚,连接驱动板的IN3和IN4,通过控制电平来控制电机换向。对于机械臂部分,单片机的B6、B7、B8、B9为PWM输出引脚,分别连接机械臂的四个舵机,通过舵机的旋转角度使机械臂完成相应的动作。对于ESP8266模块,单片机B10和B11为串口的输出和输入引脚,分别接模块RX和TX引脚,实现数据收发。对于自动循迹部分,设定单片机的C4-C7引脚为数据输入引脚,分别接四个红外对管模块的数据输出引脚,单片机通过判断高低电平识别信息,实现循迹和避障。对于小车方向检测模块,单片机A2、A3引脚分别为串口2的输出输入引脚,接MPU6050模块的RX和TX引脚,通过串口接收角度数据。对于小车位移检测模块,单片机的A0引脚为外部脉冲捕获接口,接编码器的Pin3引脚,捕获编码器的脉冲,计算小车的位移。对于显示模块,单片机的A5、A8、A11、B14、B15引脚分别接OLED显示屏的CLK、DIN、RES、CS、RS引脚,显示实时数据。
本设计需要对路由器、核心控制器、驱动模块、机械臂模块、MPU6050模块、编码器测速模块、红外对管模块等供电。由于各模块额定工作电压不同,所以需要对总电源输出的电压进行变换,使各模块的供电电压能满足其供电要求。其中,核心控制器需要3.3V电压、机械臂模块、MPU6050模块、编码器测速模块、红外对管模块需要5V电压,驱动模块7V~9V电压,路由器需要12V电压。本设计采用2000mAH的可充电镍铬电池作为供电电源,通过电压变换,能稳定输出该电池能够稳定输出3.3V 、5V、7V~9V、12V的稳定电压,确保各模块正常工作。 镍铬电池输出的电压采用AMS1117-5.0和AMS1117-3.3这两款芯片分别稳压到5V和 3.3V。AMS1117系列芯片是一款低压差线性稳压芯片,可提供高至1A的电流输出,输出电压波动不超过0.66V,完全满足供电要求。对于驱动模块,其额定工作电压在电源输出范围之内,所以设计采用对电池输出滤波之后直接对驱动电路供电的方案。对于需要5V和3.3V电压输出的模块,对电池输出的电压经过高、低频滤波电路滤波之后,分别输入AMS1117 5.0和AMS1117 3.3,从而在两个稳压芯片两端获得稳定的5V和3.3V电压输出,经过二次滤波后,输入各模块。
本设计中,采用直流电机作为小车的动力来源,为了调节小车的转向和行进速度,必须对直流电机进行换向、调速。本设计选用L298N芯片为控制核心的驱动电路模块。该驱动电路是双全桥电机驱动电路,L298N芯片内置4信道逻辑驱动电路,通过输入逻辑电平、电压不同的控制信号对电机的正反转和速度进行控制,每个驱动器输出的最高电流可达2A。芯片的每个H桥的两个输出端和一个电机的正负极连接。当该H桥使能时,桥的两端形成电压差,从而驱动电机转动。当输入信号交换时,电机反向转动。与此同时,通过控制电机两端驱动电压的高低来控制转速[6-7]。为了消除电机转动产生的杂波对单片机和与之有物理连接的其他模块产生影响和干扰,设计中,在单片机PWM信号输出端和驱动模块的输入端增加了4个光耦对信号进行隔离。为了防止电机线圈在转动过程中产生的感生电动势对L298N造成冲击,在每条线上增加了一个二极管进行保护。当反电动势为正并超过0.7V时,上端的二极管导通,输出线被限制在0.7V以下,当反电动势为负时,下端二极管导通,输出线电压限制在-0.7V以上,使该传输线上的电压波动不超过管子的承受电压。本设计通过这种限制传输线电压的方式来保护L298N不受到感生电动势的冲击。
本装置要求在远程视频的监控下完成样品的抓取。考虑到抓取物品的灵活性和可操作性,本设计采用4自由度三维旋转机械臂。机械臂由刚度大、质量轻的亚克力板制作而成,机械臂长140mm,宽80mm,高180mm,结构相对简单,在硬件方面精度无法提高,所以本设计通过控制算法,控制机械臂的动作来提高精度。机械臂采用4个P0090舵机驱动,单独供电电压为4.8V~6V,本设计中采用5V电压供电。该电压下,扭矩为1.6Kg-cm,转速为0.11sec/60°,硬件满足设计要求。 本设计采用单片机输出PWM控制信号到相应的舵机,通过调节信号的占空比控制舵机旋转的角度,进而控制机械臂完成相应的抓取动作。当PWM信号输入舵机内部的信号解调电路时,其控制芯片获得一个偏置电压,将该电压与电位器的电压比较后输出电压差到驱动电路,驱动电机旋转以消除电压差,当电压差为零时,电机停止转动,即舵机已经旋转到指定位置。云台处的舵机控制整个机械臂水平旋转,肩部舵机控制机械手上下摆动,肘部舵机控制机械手在竖直平面内旋转,腕部舵机控制机械手夹持物品,各舵机协同工作,以期完成整套动作。
本设计中,小车运行过程中需要将本身运行的角度和轨迹数据上传至上位机并在上位机控制端绘制和保存,所以,对于轨迹检测来说,小车姿态的解算和位移的测量就显得至关重要。本设计通过采用MPU6050加速度计陀螺仪模块对小车的行进方向进行检测,通过采用Mini增量式编码器测速模块对行驶路程进行记录、测量,两者的数据经过解析、运算发送至上位机,在轨迹显示区域绘制出来并适时保存。 本设计选用的MPU6050是一款高精度的陀螺仪加速度计模块,模块集成了3轴MEMS陀螺仪和3轴MEMS加速度计,通过内部的DMP融合,输出解算后的四元数,通过角度解析、积分运算和互补滤波之后得到X、Y、Z、三个坐标下的角度信号,由于本设计采集小车的轨迹信息,所以只用到Z轴的角度解算便可以得到小车的运行方向信息。如图2-9所示,为MPU6050模块实物图。模块右侧为串口输出,输出的数据为角速度包和角度包,单片机通过识别帧头就可以提取角度信息。左侧为扩展I2C接口,方便二次开发。设计中利用I2C通信对数据进行提取、解析,得到具体的方向角,其变化范围是0°-180°,满足设计需求。
轨迹数据的检测还需要编码器测速模块的配合才能融合出最终的数据。设计中采用Mini增量式旋转编码器对速度进行采集。采用5ms周期中断采集的方案,即每5ms采集一次计数器的值,将数值进行变换,得到最终的速度,再对速度进行积分运算得到小车行进的路程。
在灾情、险情发生后,由于次生灾害的存在,救援人员在第一时间是不能立即进入现场的,所以小车在进行险情探测的时候,必须靠摄像头捕捉实时画面辅助救援。设计中采用UVC摄像头,将其挂载到路由器上,由路由器将画面回传到上位机。摄像头安装在机械臂的肩部,能够跟随机械臂上下、左右在180°角度范围内转动。摄像头将画面通过视频流的形式传输到同一局域网内的上位机,其fps峰值可达到50,完全满足设计需求。
3、软件实现
本设计最重要的部分就是通信的建立和信息的可靠传输。本设计使用Socket实现TCP/IP协议的通信。依靠TCP所建立的可靠连接,确保了上位机在控制小车执行相应动作的准确性和实时性。通信实现的原理是服务器端首先建立Socket同步连接,建立完Socket之后,服务器端与客户端利用套接字进行数据传输[8-9]。
首先,基于C#语言的服务器(上位机)创建一个Socket对象的实例,指定其使用TCP/IP协议,服务器通过Listening方法侦听8888端口的连接请求,由于在本设计中创建的是Socket同步连接,所以只有当连接建立后,阻塞过程才会结束。Socket创建后,在客户端(小车)通过ESP8266模块以Connect方法连接到服务器,当服务器侦听到ESP8266的连接请求时,服务器端调用Accept方法完成连接的建立。当上位机开启,点击“建立连接”按钮时,上位机建立Socket对象并启动8080端口的侦听程序,开始侦听客户端的连接请求。由于这里创建的是TCP/IP同步通信,所以此时是阻塞过程,当侦听到客户端的连接请求时,再创建此客户端对象和数据流传输对象,进入双机透传模式,上位机和小车进行信息交互。当连接断开时,上位机结束当前线程,删除客户端,上位机再启动侦听线程,等待客户端的连接,以建立下一次数据交互连接。
本设计依靠车载的传感器将小车的方向、位移等数据检测出来,还要在上位机指定区域将轨迹绘制出来才能使小车行驶轨迹直观地展现在救援人员面前。本设计采用MicrosoftVisual Studio作为上位机端编写软件。当上位机和小车建立连接后,小车的行进位移量、自身方向等数据通过Wi-Fi网络上传至上位机,经过数据处理,在轨迹绘制区域绘制出小车大致轨迹。 本设计是应用在危险情况下的车载探测装置。本设计利用C#语言编写上位机控制端,用C语言编写下位机执行装置,使用基于TCP/IP协议的Socket连接实现上位机服务器和小车可靠的信息交互。设计中利用陀螺仪、加速度计、Mini增量式旋转编码器解析小车的姿态和位移,将采集的数据处理成坐标在上位机绘制出来。 本设计涉及自动控制、计算机、通信、电子、数学等相关知识。在进行设计的时候,通信方式的选择是重中之重。基于的TCP/IP协议的Socket通信以其连接的可靠性、数据传输的准确性和应用的广泛性在众多的通信方式中脱颖而出,本设计采用的TCP/IP协议进行通信,大大提高了系统的可靠性和稳定性。 程序编写完成后,将程序加载到相应的平台内对其进行测试,根据测试结果再对程序进行参数修正和逻辑排错,随着调试的反复进行,系统的稳定性逐步提升。在最终的测试结果中,毕业设计的所有的功能均已实现并显示了良好的性能。本设计的特点可以总结为以下几点: 1、本设计采用TCP/IP协议进行系统中的信息交互,使通信的数据完整、可靠,使系统更加稳定。 2、小车姿态检测部分采用MPU6050模块,采用互补滤波算法和滑动均值滤波算法,增强了传感器数据的稳定性,避免了信号大幅波动情况的发生。 3、本设计采用UVC摄像头采集视频画面并传送至上位机显示,在降低了了开发难度的同时还提高了视频流畅度,提高了本设计操作的可靠性。
|