版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
作业题目:智能小车课程设计
《机器人创新设计考查》任务书专业班级机械电子工程学生姓名汪希山学号设计题目智能小车设计任务书设计要求:1.实现网络数据传输2.实现视频监控3.实现可视化客户端编写4.实现串口通信,控制小车移动实现服务器编写交稿形式:手写稿;R打印稿;软件;图纸;其他指导教师签名:2020年12月16日学生签名:2020年12月16日学生日志与师生见面情况序号完成工作进展情况或交流情况师生见面时间地点1C语言基础补习12月7日,躬行楼4042C语言基础补习12月8日,躬行楼4043C语言基础补习12月9日,躬行楼4044IO编程指导12月10日,躬行楼4045进线程基础12月11日,躬行楼4046网络编程基础12月14日,躬行楼4047Qt界面设计12月15日,躬行楼4048项目讲解12月16日,躬行楼404学生简要总结与签名:这两周智慧小车项目学习任务,过程非常有趣,在动手操作的同时又学习了嵌入式以及c语言的相关知识,让我们的实训周内容更加的充实。过此次的设计制作,使我们更加认识到了动手能力和理论知识的重要性,而理论与实践的结合更是重中之重。当然,我们也深刻地认识到我们的不足,由于自身理论知识的欠缺和动手能力的不佳在工作中频频受阻,走了好多弯路,虽然在制作过程中不可避免地遇到很多问题,但是最后还是在老师以及同学的帮助下圆满解决了这些问题,实现了整个系统设计与最后调试,相关指标达到预期的要求很好地完成了本次设计任务。
摘要 5Abstract: 6第1章任务及需求分析 71.1设计任务及目标 71.1.1.绪论 7第2章整体设计 102.1Linux 102.1.1了解Linux操作系统 102.1.2网络编程常用函数 102.2服务器构架 112.2.1V4L2架构 112.2.2CS架构之客户端编程步骤 112.2.3初始化CS架构之服务器编程步骤车 122.3职责分配 132.4小车功能描述 13总结 15参考文献 16附录 17摘要智能小车是一种能通过无线控制运动并可以搭载各种功能配件的机械,它具有制作成本低廉,电路结构简单,程序调试方便等的优点。由于智能小车具有较强的趣味性,智能小车深受机械爱好者以及高校学生们的喜爱。随着科技的发展智能小车也被广泛应用于各种玩具和其他产品的设计中,为中国玩具市场技术含量的缺乏进行一定弥补,实现经济收益,形成商业价值并丰富了人们的生活。本次试验采用wifi模块实现视频图像传输,使用QT客户端和摄像头的配合进行监控控制,并采用STM32微处理器为核心芯片实现控制小车的前进、后退、停止、及左转、右转的功能。本次试验主要体现出了多功能小车的智能模式,此智能系统的组成主要包括STM32控制器、电机驱动电路、无线路由器、摄像头。小车前进过程中前端的摄像头对周围的环境进行监测,同时把视频信号传回给QT客户端。通过QT客户端可以随时控制小车行进方向,而且可以操作摄像头随意上下、左右转动,扩大小车拍摄视野。经实验验收测试,该智能小车系统反应快速,灵活,各项指标稳定。关键词:远程图像传输;客户端开发;网络编程;STM32;无线控制Abstract:Theintelligentcarisakindofmachinethatcancontrolthemotionwirelesslyandcancarryvariousfunctionalparts.Ithastheadvantagesoflowproductioncost,simplecircuitstructureandconvenientprogramdebugging.Becauseofitsstronginterestingness,intelligentcarisdeeplylovedbymechanicalloversandcollegestudents.Withthedevelopmentofscienceandtechnology,smartcarhasbeenwidelyusedinthedesignofvarioustoysandotherproductstomakeupforthelackoftechnicalcontentinChina'stoymarket,realizeeconomicbenefits,formcommercialvalueandenrichpeople'slife.Inthisexperiment,wifimodulewasusedtorealizevideoandimagetransmission,QTclientandcamerawereusedformonitoringandcontrol,andSTM32microprocessorwasusedasthecorechiptorealizethefunctionofcontrollingtheforward,backward,stop,leftandrightturnofthecar.Thistestmainlyreflectstheintelligentmodeofthemulti-functioncar.TheintelligentsystemconsistsofSTM32controller,motordrivecircuit,wirelessrouterandcamera.ThecameraatthefrontofthecarmonitorsthesurroundingenvironmentandsendsvideosignalsbacktotheQTclient.QTclientcancontrolthetravelingdirectionofthecaratanytime,andcanoperatethecameratorotateupanddown,leftandrightatwill,toexpandtheshootinghorizonofthecar.Throughtheexperimentandacceptancetest,theintelligentcarsystemhasfastresponse,flexible,andstableindexes.Keywords:videomonitoring;Smartcar;Networkprogramming;STM32;Motorcontrol;wireless第1章任务及需求分析1.1设计任务及目标1.1.1.绪论所谓智能小车,主要指在普通汽车的基础上增加了先进的传感器(雷达、摄像)、控制器、执行器等装置,通过车载传感系统和信息终端实现与人、车、路之间的智能信息交换。它集中地运用了计算机、传感、信息、通信、导航、人工智能及自动控制等技术,是典型的高新技术综合体。智实现在复杂环境背景下的控制运动,从而完成具有特定功能的机器人系统。而随着智能化电器时代的到来,它们在为人们提供的舒适的生活环境的同时,也提高了制造智能化电器对于人才要求的门槛。智能小车是集成了多种高新技术,它不仅融合了电子、传感器、计算机硬件、软件等许多学科的知识,而且还涉及到当今许多前沿领域的技术,它是一个国家高科技技术水平的重要体现。通过建立起简易智能小车的设计,引导人从理论走向实践,培养我们的动手能力,使我们在了解智能化电器的工作原理的基础上,获得完成整体项目的能力,并掌握了Stm32开发板的编程原理,为同学们进入ARM领域提供了基础。另外,本次课程设计,使同学们了解自己的不足之处,从而使同学们有目标的提升自己的能力。1.1.2研究背景目前欧美等国对于智能汽车的定义主要为先进辅助驾驶系统(ADAS)、车载移动应用和无人驾驶技术,并在更大程度上与城市智能交通管所谓智能汽车,主要指在普通汽车的基础上增加了先进的传感器(雷达、摄像)、控制器、执行器等装置,通过车载传感系统和信息终端实现与人、车、路之间的智能信息交换。目前欧美等国对于智能汽车的定义主要为先进辅助驾驶系统(ADAS)、车载移动应用和无人驾驶技术,并在理结合起所谓智能汽车,主要指在普通汽车的基础上增加了先进的传感器(雷达、摄像)、控制器来。基于安卓手机wifi技术的遥控小车有着广大的潜在用户,2014年11月数据,Android占据中国智能手机操作系统市场81.5%。Android的系统内核是基于网络性性能超强的Linux,因此其网络性能较其他系统有很大优势。能超强的Linux,因此其网络性能较其他系统有很大优势。1.1.3智能小车设计构想智能车辆是集环境感知、规划决策、多等级辅助功能于一体的综合系统。是机械人智能系统的一个重要组成部分。本次设计对智能小车的控制系统进行了研究,设计实现一个基于视频监控和控制行迹处理的智能小车控制系统。实现智能小车最基本的两个功能监控、控制。通过电脑上在QT客户端control_client界面编写程序控制小车车轮转动的方向,我们还插入图片美化了方向控制的端面,让小车成功完成方向控制这一模块。通过摄像头的安装和调试,在小车的终端上运行camera_server运行这个服务器,与QT客户端进行通信,将摄像头采集到的图片发送给camera_client这个客户端,它就可以显示出视频,就完成了视频拍摄的模块部分。这就是整个小车两个模块的设计过程。1.1.4智能小车实现功能1.可实现小车的前进、后退、左转、右转、加速、减速、停止;2.可通过wifi遥控操作,控制小车运行状态;3.可通过视频监控,控制小车运行状态;4.显示相关运行状态参数与工作方式1.1.5研究思路主要应用基于嵌入式linux系统,利用STM32作为CPU(微控制器)控制小车最终的行动轨迹。智能小车项目包含方向控制模块,摄像头拍摄模块两大功能控制系统。智能小车系统有两个QT客户端(摄像头客户端、串口控制客户端)将采集数据通过wifi传递服务器路由板,再由路由板串口传递命令给STM32控制小车行动。STM32微控制器根据采集的信号做出不同的判断,从而控制电机运动方向和运动速度。将摄像头采集到的图片发送给camera_client这个客户端,它就可以显示出视频。系统以STM32微控制器为核心,通过服务器采集不同的信号做出判断,继而改变电机的运动方向和运动速度。小车的终端上运行camera_server运行这个服务器,与QT客户端进行通信,摄像头通过pic传输数据至ubuntu服务器,服务器通过网络编程经pic传送数据至Qt客户端,客户端再经过传送数据至ubuntu服务器,ubuntu服务器经过传输数据至小车,使智能小车实现智能改变运动轨迹与摄像监控。实验系统结构如图1.1所示图1.1第2章整体设计2.1Linux2.1.1了解Linux操作系统Linux操作系统整体分为三层,如图2.11.用户进程:表示计算机中运行的所有程序,它们运行于用户空间,由内核统一管理;2.内核:这是操作系统的核心,负责管理硬件系统,同时为上层的应用程序提供操作接口;3.硬件系统:包括CPU、内存、硬盘、网卡等;图2.12.1.2网络编程常用函数socket()创建套接字connect()建立连接bind()绑定本机地址和端口listen()设置监听套接字accept()接受TCP连接close()关闭套接字2.2服务器构架2.2.1V4L2架构1.摄像头初始化Camera_init2.开始采集图片Camera_start3.while(1){出队一张图片发送(长度)(内容)入队一张图片}4.停止采集Camera_stop5.结束摄像头Camera_exit2.2.2CS架构之客户端编程步骤1.创建套接字、地址结构及其长度intsocket(intdomain,inttype,intprotocol);参数domaintypeprotocol意义地址族AF_INET套接字类型参数通常置为0 SOCK_STREAM//流式套接字 套接字类型SOCK_DGRAM//数据报套接字 SOCK_RAW//原始套接字2.连接服务器intconnect(intsockfd,(structsockaddr*)&addr,socklen_taddrlen);参数intsockfd(structsockaddr*)addrsocklen_taddrlen意义流式套接字服务器的地址结构地址结构的长度2.2.3初始化CS架构之服务器编程步骤车1.创建套接字和地址结构及其长度,同客户端2.绑定本机地址和端口(一般服务器使用)int
bind(int
sockfd,
(struct
sockaddr
*)&my_addr,
int
addrlen);参数intsockfdconststructsockaddr*addrsocklen_taddrlen意义流式套接字地址结构指针地址结构长度返回值:0或-13.设置监听套接字intlisten(intsockfd,intbacklog);参数intsockfdintbacklog意义流式套接字最大等待队列长度成功返回0,失败返回-1,完成listen()调用后,流式套接字变成了监听套接字4.等待连接,创建读写套接字(只能用于收发数据)intaccept(intsockfd,(structsockaddr*)addr,socklen_t*addrlen);参数intsockfd(structsockaddr*)addrsocklen_t*addrlen意义监听套接字客户端的地址结构,一般设置NULL客户端地址结构的长度,一般设置NULL接受控制客户端发送的控制小车移动命令把命令通过串口通信,发给STM32,让小车动起来2.3职责分配1.camer_client摄像头客户端负责人的主要职责是:创建服务器套接字及地址端口,并与摄像机服务器端口连接。通过端口连接摄像头服务器,接收服务器数据,通过转到槽命令将摄像头采集到的图片显示到QT界面的“PushButton”窗口上,并对QT界面进行背景优化及控制按钮美化。2.camer_server摄像头服务器负责人的主要职责是:实现控制摄像头的数据采集并创建服务器套接字及地址端口,把摄像头采集的数据准确的传输到客户端端口。3.control_client串口控制客户端负责人的主要职责是:使用QT软件在设计界面创建按钮(PushButtons)通过转到槽指令在QT界面设计控制指令,并对控制指令按钮进行美化。在属性命令栏里找到styleSheet点击弹出编辑样式表,添加资源图片或其他,对按键进行美化。创建服务器套接字及地址端口,并与串口服务器连接。通过端口向服务器发送控制指令控制汽车运行。4.control_server串口控制服务器负责人的主要职责是:通过代码的编写对电机进行控制,并通过指令控制让汽车实现前后左右的行驶。创建服务器套接字及地址端口,通过服务器端口接收串口控制客户端端口发送的指令对汽车进行控制。2.4小车功能描述路由板打开,小车上面蓝色的灯光变亮,证明WiFi已经打开,将电脑连上这个WiFi。功能一:将摄像头接到小车上面,开始运行camera_server,在小车的终端上运行这个服务器,那么这个服务器就会与QT客户端进行通信,将摄像头采集到的图片不停的发送给camera_client这个客户端,让它显示视频。功能二:QT界面control_client的作用是控制小车移动,在这个客户端点击按钮,信号就会通过网络发送给control_server这个服务器。这时小车还不能动,还要通过串口通信serial把这个命令发送给STM32这个板,就可以产生直流电源控制小车四个轮子运动。
总结本设计主要解决了以WiFi路由版模块为中枢,搭载摄像头和小车的控制服务器,通过电脑QT客户端,实现了小车的远程WIFI控制以及远程的WiFi图像传输。技术指标达到设计要求的有:小车的前进,后退,左转,右转,停止的控制,摄像头图像传输。没达到要求的有:小车的控制依然有些许迟钝以及不灵活,摄像头传输图像模糊。主要完成工作:(1)系统功能设计包括小车行动的控制,摄像头图像的传输。(2)系统软件设计由QT客户端和服务器组成。本次设计通过网络架构程序,并利用WIFI模块建立电脑和小车之间的通信,再通过相应的程序控制指令,以达到远程控制小车的目的。(3)完成系统调试,先连接小车的WiFi,再通过ubuntu32系统登入小车终端,将服务器程序写入小车终端,在电脑上打开QT客户端,连接上服务器,实现小车的控制。本次设计尚有几处地方需要完善:(1)QT客户端控制小车行动不方便,可以让键盘控制代替鼠标控制。(2)小车可以加装雷达,遇到障碍物可以自动避开。(3)c语言基础较为薄弱,需要加强c语言知识与运用能力(4)本次实训时间较短,缺乏操作锻炼。
参考文献[1]张毅刚,彭喜元,彭宇。单片机原理及应用.高等教育出版社.2015.5[2]沈红.卫基于单片机的智能系统设计与实现.电子工业出版社.2005[3]王晶.智能小车运动控制技术研究.武汉.武汉理工大学.2009年[4]于连国,李伟,王妍玮.基于单片机的智能小车设计[J]林业机械与木工设备.2011.vol.20,NO.4:39-41[5]周学毛.新编C语言程序设计教程.西安电子科技大学出版社.2004.11
附录附录1、系统框图或大的流程图附录2、系统截图或照片附录3、主要源代码摄像头服务器#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<string.h>#include<errno.h>#include<fcntl.h>#include<sys/mman.h>#include<sys/ioctl.h>#include<linux/videodev2.h>#define REQBUFS_COUNT 4structcam_buf{ void*start; size_tlength;};structv4l2_requestbuffersreqbufs;structcam_bufbufs[REQBUFS_COUNT];intcamera_init(char*devpath,unsignedintwidth,unsignedintheight){ inti; intfd; intret; structv4l2_buffervbuf; structv4l2_formatformat; structv4l2_capabilitycapability; fd=open(devpath,O_RDWR); if(fd==-1){ perror("camera->init"); return-1; } ret=ioctl(fd,VIDIOC_QUERYCAP,&capability); if(ret==-1){ perror("camera->init"); return-1; } if(!(capability.capabilities&V4L2_CAP_VIDEO_CAPTURE)){ fprintf(stderr,"camera->init:devicecannotsupportV4L2_CAP_VIDEO_CAPTURE\n"); close(fd); return-1; } if(!(capability.capabilities&V4L2_CAP_STREAMING)){ fprintf(stderr,"camera->init:devicecannotsupportV4L2_CAP_STREAMING\n"); close(fd); return-1; } memset(&format,0,sizeof(format)); format.type=V4L2_BUF_TYPE_VIDEO_CAPTURE; format.fmt.pix.pixelformat=V4L2_PIX_FMT_MJPEG; format.fmt.pix.width=width; format.fmt.pix.height=height; format.fmt.pix.field=V4L2_FIELD_INTERLACED; ret=ioctl(fd,VIDIOC_S_FMT,&format); if(ret==-1){ perror("camerainit"); return-1; } memset(&reqbufs,0,sizeof(structv4l2_requestbuffers)); reqbufs.count =REQBUFS_COUNT; reqbufs.type =V4L2_BUF_TYPE_VIDEO_CAPTURE; reqbufs.memory =V4L2_MEMORY_MMAP; ret=ioctl(fd,VIDIOC_REQBUFS,&reqbufs); if(ret==-1){ perror("camerainit"); close(fd); return-1; } for(i=0;i<reqbufs.count;i++) { memset(&vbuf,0,sizeof(structv4l2_buffer)); vbuf.type=V4L2_BUF_TYPE_VIDEO_CAPTURE; vbuf.memory=V4L2_MEMORY_MMAP; vbuf.index=i; ret=ioctl(fd,VIDIOC_QUERYBUF,&vbuf); if(ret==-1){ perror("camerainit"); close(fd); return-1; } bufs[i].length=vbuf.length; bufs[i].start=mmap(NULL,vbuf.length,PROT_READ|PROT_WRITE,MAP_SHARED,fd,vbuf.m.offset); if(bufs[i].start==MAP_FAILED) { perror("camerainit"); close(fd); return-1; } vbuf.type=V4L2_BUF_TYPE_VIDEO_CAPTURE; vbuf.memory=V4L2_MEMORY_MMAP; ret=ioctl(fd,VIDIOC_QBUF,&vbuf); if(ret==-1){ perror("camerainit"); close(fd); return-1; } } returnfd;}intcamera_start(intfd){ intret; enumv4l2_buf_typetype=V4L2_BUF_TYPE_VIDEO_CAPTURE; ret=ioctl(fd,VIDIOC_STREAMON,&type); if(ret==-1){ perror("camera->start"); return-1; } fprintf(stdout,"camera->start:startcapture\n"); return0;}intcamera_dqbuf(intfd,void*buf,unsignedint*size,unsignedint*index){ intret; fd_setfds; structtimevaltimeout; structv4l2_buffervbuf; while(1){ FD_ZERO(&fds); FD_SET(fd,&fds); timeout.tv_sec=2; timeout.tv_usec=0; ret=select(fd+1,&fds,NULL,NULL,&timeout); if(ret==-1){ perror("camera->dqbuf"); if(errno==EINTR) continue; else return-1; }elseif(ret==0){ fprintf(stderr,"camera->dqbuf:dequeuebuffertimeout\n"); continue; }else{ vbuf.ty
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度金融科技平台技术服务合同范本2篇
- 2024房产异业联盟合作合同样本版B版
- 2024年跨境电商商铺租赁及运营合同3篇
- 2024年美食制作合作协议2篇
- 2024年度客运站聘用班车司机劳动合同(升级版)3篇
- 2024日照房屋租赁合同
- 三方商业地产转租条款:正式协议版A版
- 2024年铲车油料供应与回收合同
- 2024购车所需民间借款合同
- 2024年限酒店前台接待工作人员协议版
- 碳排放监测技术
- 2024年世界职业院校技能大赛高职组“关务实务组”赛项参考试题库(含答案)
- 超市项目投标书模板
- 耐火材料行业竞争格局分析(如市场份额、竞争优劣势等)
- 仓储配送合同范本
- 《机器学习(含实验实践)》课程教学大纲(机械设计制造及其自动化专业)
- 食堂燃气安全专项培训
- 技术服务保障措施以及保障措施服务计划书
- 【数学】小学四年级口算题大全(10000道)
- SIEMENS西门子SIMATICET200SP分布式I-O系统手册
- 床旁教学方法
评论
0/150
提交评论