版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《机器人创新设计》考查报告作业题目:智能小车
《机器人创新设计考查》任务书专业班级机械电子工程学生姓名学号设计题目智能小车设计任务书设计要求: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语言的一些知识,让我们对编程有了一个全新的认识。其次,第二个周就开始带领我们学习了控制智能小车的代码和编程,让我们对嵌入式系统有了更深入的了解。虽然学习的过程很艰辛,但是我们也始终坚持不放弃,我们小组研究了支配智能小车所需的客户端和服务端的联系,并进行了程序的编制。编制完成后我们对系统进行了多次测试,最终做出了整个小车的控制系统,让小车能够平稳的运动和全方位拍摄。虽然项目已经初步完成,但由于经验能力有限,该系统还存在着许多不尽人意的地方,有待于进一步的完善和改进。这次实训经历不仅是对我们这两个周所学知识的考查,更是对我们知识能力以及动手能力的考验。使我们对一个项目的整体构造以及工作原理有了初步认识,极大的锻炼了我们的思考和分析问题的能力。总之,在课程设计的过程中,无论是对于学习方法还是理论知识,我们都有了新的认识,受益匪浅,这将激励我们在今后再接再厉,不断完善自己的理论知识,实践运作能力。2020年12月16日智能小车设计 6第1章任务及需求分析 81.1设计任务及目标 81.1.1.绪论 8第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总结 17参考文献 19附录 19智能小车设计摘要:智能小车是一种能够通过编程手段完成特定任务的小型机器人,它具有制作成本低,电路结构简单,程序试调方便等优点。由于具有很强的趣味性,智能小车深受机械人爱好者以及高校学生的喜爱。随着科技的发展智能小车也被广泛应用于各种玩具和其他产品的设计中,为中国玩具市场技术含量的缺乏进行一定弥补,实现经济收益,形成商业价值以及地丰富了人们的生活。本次试验采用STM32微处理器为核心芯片实现控制小车的前进、后退、停止、及左转、右转的功能,以及wifi视频监控利用QT客户端和摄像头的配合就可以进行监控控制。主要体现多功能小车的智能模式,此智能系统的组成主要包括STM32控制器、电机驱动电路、无线路由器、摄像头。小车前进过程中前端的摄像头对周围的环境进行监测,同时把视频信号传回给QT客户端。通过QT客户端可以随时控制小车行进方向,而且可以操作摄像头随意上下、左右转动,扩大小车拍摄视野。经实验验收测试,该智能小车系统反应快速,灵活,各项指标稳定。关键词:视频监控;智能小车;网络编程;STM32;电机控制;无线Abstract:Intelligentcarisakindofsmallrobotthatcanaccomplishspecifictasksbymeansofprogramming.Ithastheadvantagesoflowproductioncost,simplecircuitstructureandconvenientprogramtestandadjustment.Becauseofitsstronginterest,intelligentcarispopularamongrobotloversandcollegestudents.Withtheintelligentcarisalsowidelyusedinthedesignofvarioustoysandotherproducts,tomakeupforthelackoftechnicalcontentinChina'stoymarket,toachieveeconomicbenefits,formcommercialvalueandenrichpeople'slife.Inthisexperiment,theSTM32microprocessorwasusedasthecorechiptorealizethefunctionsofcontrollingthecar'sforward,backward,stop,leftandrightturn,andwifivideomonitoringcouldbemonitoredandcontrolledwiththecooperationofQTclientandcamera.Itmainlyreflectstheintelligentmodeofthemulti-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研究背景随着生活智能化的不断发展,智能家居将是未来发展的必然趋势。对于无人值守的地方、隐蔽场以及黑暗处的监测也成为必须解决的问题。而现在嵌入wifi功能的设备随处可见,所以利用现有的网络资源搭建一台wif视频监控小车的想法就诞生了,即利用带有wifi的设备进行控制小车,实现无线监控。对于那些不安全的以及人无法进入的场所进行无线监测,通过wifi小车是一个很好的解决方案,利用QT客户端和摄像头的配合就可以进行监控控制。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所示第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这个客户端,让它显示视频。如图2.2图2.2功能二:QT界面control_client的作用是控制小车移动,在这个客户端点击按钮,信号就会通过网络发送给control_server这个服务器。这时小车还不能动,还要通过串口通信serial把这个命令发送给STM32这个板,就可以产生直流电源控制小车四个轮子运动。如图2.32.4图2.3图2.4小车的设计安装后的形状如图2.5图2.5系统完善后,打开小车,通过WiFi向小车传送数据,便可通过QT客户端对小车进行控制和监控。运行图如2.6图2.6
总结本设计主要解决了以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]童诗白,华成英主编.模拟电子技术基础(第4版)高等教育出版社[5]万永伦,丁杰雄.一种机器人寻线控制系统.电子科技大学学报,2003附录附录1、系统框图或大的流程图附录2、系统截图或照片附录3、主要源代码1.摄像服务代码#include<stdio.h>#include<sys/types.h>/*SeeNOTES*/#include<sys/socket.h>#include<netinet/in.h>#include<arpa/inet.h>#include<string.h>#include<sys/stat.h>#include<fcntl.h>#include"camera.h"#include<stdlib.h>intserver_init(){intsock=socket(AF_INET,SOCK_STREAM,0);if(-1==sock){perror("socket");return-1;} intopt=1;setsockopt(sock,SOL_SOCKET,SO_REUSEADDR,&opt,sizeof(opt)); structsockaddr_ins_addr;memset(&s_addr,0,sizeof(s_addr));s_addr.sin_family=AF_INET;s_addr.sin_port=htons(8888);s_addr.sin_addr.s_addr=htonl(INADDR_ANY); intret=bind(sock,(structsockaddr*)&s_addr,sizeof(s_addr));if(ret==-1){perror("bind");gotoSTEMP;} ret=listen(sock,5);if(-1==ret){perror("listen");gotoSTEMP;} returnsock;STEMP:close(sock);return-1;}intmain(){unsignedintwidth;unsignedheight;unsignedintsize;unsignedintismjpeg;unsignedintindex;char*picbuf=malloc(1024*1024);charpiclen_buf[20];intfdTest;intret,count;width=320;height=240;intfd=camera_init("/dev/video0",width,height);if(-1==fd){perror("camera_init");return-1;}//ret=camera_start(fd);if(ret!=0){perror("camera_start");close(fd);return-1;}intsock=server_init();//服务器初始化流程if(-1==sock){perror("server_init");return-1;}printf("listen\n");structsockaddr_inc_addr;memset(&c_addr,0,sizeof(c_addr));socklen_tclen=sizeof(c_addr);intrws=accept(sock,(structsockaddr*)&c_addr,&clen);if(-1==rws){perror("accept");close(sock);return-1;}charpic[20]={0};charpic_len[20]={0};while(1){ret=camera_dqbuf(fd,(void*)picbuf,&size,&index);if(ret<0){continue;}ret=read(rws,pic,sizeof(pic));if(ret<0){perror("readpic");return-1;}if(!strncmp(pic,"pic",3));{sprintf(pic_len,"%d",size);ret=write(rws,pic_len,sizeof(pic_len));printf("%s\n",pic_len);if(ret<0) { perror("writepic_len"); return-1; } ret=write(rws,picbuf,size); if(ret<0) { perror("writepic"); return-1; }}ret=camera_eqbuf(fd,index);if(ret<0){return-1;}}ret=camera_stop(fd);if(ret<0){perror("camera_stop");close(fd);return-1;}ret=camera_exit(fd);if(ret<0){perror("camera_exit");//close(fd);return-1;}close(sock);close(fd);return0;}2.串口服务代码#include<stdio.h>#include<sys/types.h>/*SeeNOTES*/#include<sys/socket.h>#include<netinet/in.h>#include<arpa/inet.h>#include<stdlib.h>#include<unistd.h>#include<sys/stat.h>#include<fcntl.h>#include<termios.h>#include<string.h>#include<errno.h>#include<poll.h>#include<sys/ioctl.h>#include"serial.h"intmain(){intfd=serial_init("/dev/ttyATH0",115200);//初始化小车if(fd<0){perror("init_serial");return-1;} intsfd=socket(AF_INET,SOCK_STREAM,0);//socketif(sfd<0){perror("socket");return-1;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年黑龙江省伊春市初中历史七年级期末上册评估重点试卷(详细参考解析)
- PCR扩增技术专项考试题(含详细答案)
- 蜡染工安全操作规程
- 粉尘清扫作业安全操作规程
- PACS系统岗位实操考核试题(含详细答案解析)
- OPPO在线笔试题(含详细答案解析)
- 烟气制酸工安全操作规程
- 水泥窑预热器巡检工安全操作规程
- 2026年护理管理制度试题及答案
- 2026年涂装工理论考试题库附答案
- 专家论证幕墙安全专项施工方案
- 医院培训课件:《中医医疗技术相关性感染预防与控制》
- 反渗透培训课件
- 世界毒品报告
- 右额颞叶脑出血护理查房
- JJF 2225-2025 高绝缘电阻测量仪(高阻计)校准规范
- 工程标前协议合同模板
- 青春期心里护理
- 2025年湖北行测试题及答案
- 四川雅碧江两河口水电站引水发电系统工程施工测量技术方案
- 《商法(第七版)》课件全套 赵万一
评论
0/150
提交评论