嵌入式智能小车自动循迹初探

来源 :科学与财富 | 被引量 : 0次 | 上传用户:lomon521mutou
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:此嵌入式智能小车的组成主要包括ARM硬件体系下的控制系统、电机驱动电路、红外探测电路、超声波避障电路等。系统以嵌入式Linux微控制器为核心,通过红外探测电路传感器采集不同的信号做出判断,继而改变电机的运动方向和运动速度。实现小车的前进、后退、左转、右转、自动循迹和避障功能,摄像头舵机的水平和垂直方向上的转动。利用Qt Creator生成客户端工程,通过PC端的WiFi连接,控制智能小车的运动,同时小车上的摄像头可以将实时的画面传回来。
  关键词:嵌入式Linux微控制器;自动循迹;避障;无线网络连接控制;Qt Creator
  在当前的环境中,随着科技的进步,智能化车辆或者与智能化车辆相关的产品已经开始作为各式各样自动控制系统中的重要设备之一,这其中主要包括了物流配送或者交通运输等系统。而机器人在复杂地形中行进时自动循迹和避障是一项必不可少也是最基本的功能。因此,自动避障系统和自动循迹的研发就应运而生。我们的自动避障小车就是基于这一系统开发而成的。 意义随着科技的发展,对于未知空间和人类所不能直接到达的地域的探索逐步成为热门,这就使机器人的自动避障有了重大的意义。小车可以通过传感器来获取当前道路状况,然后将传感器获取到的数据传输到处理器,处理器再结合小车当前的行驶状态,迅速地进行计算,对小车的行驶的方向和行车的速度进行快速的调整改变,进而对目标道路进行迅速准确的跟踪。
  1 术语定义
  server_video:C视频服务器(mjpeg图片)
  client_video:QT视频客户端
  通信协议:
  client:发送“pic”
  server:回复“XXXXlen”(xxxx代表图片的数据量,单位为字节)
  client:根据接收到的数据量进行图片的循环接收,接收完毕,显示在客户端
  小车IP:192.168.1.1
  小車控制端端口:2001
  小车视频端端口:8888
  小车控制命令:
  停止 FF 00 00 00 FF
  前进 FF 00 01 00 FF
  后退 FF 00 02 00 FF
  左转 FF 00 03 00 FF
  右转 FF 00 04 00 FF
  可以参考如下格式保存命令
  static unsigned char cmd[5] = {0xff,0x00,0x01,0x00,0xff}; //up
  static unsigned char cmd[5] = {0xff,0x00,0x02,0x00,0xff}; //down
  static unsigned char cmd[5] = {0xff,0x00,0x03,0x00,0xff}; //left
  static unsigned char cmd[5] = {0xff,0x00,0x04,0x00,0xff}; //right
  static unsigned char cmd[5] = {0xff,0x00,0x00,0x00,0xff}; //stop
  波特率:9600 无校验 8位数据位 1位停止位
  2 系统概述
  编写能使小车运动和摄像等程序。用已有的小车模型,调试好WiFi模块和其硬件和软件,利用这样的方法来实现电脑端来通过路由器在无线传输的方式对小车进行控制,从而驱动WiFi小车的运动和摄影等一系列指令。
  具体要求如下:
  a)控制客户端数据发送给小车。
  b)前进:四个车轮能够同时朝着前进的方向进行运动,保证速度一致;
  c)后退:四个车轮能够同时朝着后退的方向进行运动,保证速度一致;
  d)左转:左边的两个轮子静止,而右边的两个轮子前进
  e)右转:右边的两个轮子静止,而左边的两个轮子前进
  f)通过无线网对小车摄像头采集的信息来传送。
  g)服务器图片的存储和链接客户端并将图片发送给客户端。
  h)连续接受图片并且打印成连续照片显示。
  3 总体设计
  3.1 系统框架
  3.2 结构体描述
  部分一:
  参数说明:参数类型为V4L2的能力描述类型struct v4l2_capability;
  返回值说明:执行成功时,函数返回值为0;函数执行成功后,struct v4l2_capability结构体变量中的返回当前视频设备所支持的功能:例如支持视频捕获功能V4L2_CAP_VIDEO_CAPTURE、V4L2_CAP_STREAMING等
  Struct v4l2_capability
  {
  _u8 driver[16];
  _u8 card[32];
  _u8 bus_info[32];
  _u32 version;
  _u32 capabilities;
  _u32 reserved[4];
  };
  Capabilities 常用值;
  V4L2_CAP_VIDEO_CAPTURE
  部分二:
  设置视频设备的视频数据格式,例如设置视频图像数据的长、宽,图像格式(JPEG、YUYV格式);
  参数说明;参数类型为V4L2的视频数据格式类型struct v4l2_format;
  返回值说明:执行成功是,函数返回值为0;   struct v4l2_format
  {
  enum v4l2_buf_type type;
  union
  {
  struct v4l2_pix_format pix;
  struct v4l2_window win;
  struct v4l2_vbi_format vbi;
  __u8 raw_data[200];
  } fmt;
  };
  struct v4l2_pix_format{
  _u32 width;
  _u32 height;
  _u32 pixelformat;
  Enum v4l2 field field;
  _u32 bytesperline;
  _u32 sizeimage;
  Enum v4l2 _colorspace colorspace;
  _u32 priv;
  };
  部分三:
  功能:请求V4L2驱动分配视频缓冲区(申请V4L2视频驱动分配内存),V4L2是频频设备的驱动层,位于内核空间,所以通过VIDIOC_REQBBUFS控制命令字申请的内存位于内核空间,应用程序不能直接访问,需要通过调用mmap内存映射函数把内核空间内存映射到用户空间后,应用程序通过访问用户空间地址来访问内核空间。
  参数说明:参数类型为V4L2的申请缓冲区数据结构体类型struct v4l2_requestbuffers;
  返回值说明:执行成功时,函数返回值为0;V4L2驱动层分配好了视频缓冲区。接下来可以为视频捕获分配内存:
  struct v4l2_requestbuffers req;
  if (ioctl(fd, VIDIOC_REQBUFS, &req) == -1) {
  return -1;
  }
  v4l2_requestbuffers 結构如下:
  struct v4l2_requestbuffers
  {
  __u32 count;
  enum v4l2_buf_type type; //V4L2_BUF_TYPE_VIDEO_CAPTURE
  enum v4l2_memory memory;//V4L2_MEMORY_MMAP 或V4L2_MEMORY_USERPTR
  __u32 reserved[2];
  };
  部分四:
  使用VIDIOC_REQBUFS,我们获取了req.count个缓存,下一步通过调用VIDIOC_QUERYBUF命令来获取这些缓存的地址,然后使用mmap函数转换成应用程序中的绝对地址,最后把这段缓存放入缓存队列:
  typedef struct VideoBuffer {
  void *start;
  size_t length;
  } VideoBuffer;
  VideoBuffer* buffers = calloc( req.count, sizeof(*buffers) );
  struct v4l2_buffer buf;
  for (numBufs = 0; numBufs < req.count; numBufs++) {
  memset( &buf, 0, sizeof(buf) );
  buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
  buf.memory = V4L2_MEMORY_MMAP;
  buf.index = numBufs;
  if (ioctl(fd, VIDIOC_QUERYBUF, &buf) == -1)
  {
  return -1;
  }
  buffers[numBufs].length = buf.length;
  buffers[numBufs].start = mmap(NULL, buf.length, PROT_READ | PROT_WRITE,
  MAP_SHARED,fd, buf.m.offset);
  if (buffers[numBufs].start == MAP_FAILED) {
  return -1;
  }
  if (ioctl(fd, VIDIOC_QBUF, &buf) == -1) {
  return -1;
  }
  }
  部分五:
  V4L2有一个数据缓存,存放req.count数量的缓存数据。数据缓存采用FIFO的方式,当应用程序调用缓存数据时,缓存队列将最先采集到的视频数据缓存送出,并重新采集一张视频数据。这个过程需要用到两个ioctl命令,VIDIOC_DQBUF和VIDIOC_QBUF:
  struct v4l2_buffer buf;
  memset(&buf,0,sizeof(buf));
  buf.type=V4L2_BUF_TYPE_VIDEO_CAPTURE;
  buf.memory=V4L2_MEMORY_MMAP;
  buf.index=0;
其他文献
摘 要:随着国家综合实力的提升,各电力企业的发展得到了明显的突破,为国家电力领域发展提供有利条件的同时,推进国家经济平稳发展。近年来,很多电力企业都对电力客户用电检查服务的开展进行了深入研究,并对相应的服务理念以及用电检查要点进行了探讨,以此来提高用电检查服务水平。但是也有些许问题存在其中,影响电力企业平稳发展,需要相关部门能够对其进行妥善处理。本篇文章就如何提升电力客户用电检查服务工作水平进行相
摘 要:随着时代的不断发展,社会在不断进步,人们对用电的需求量也在逐渐提升,传统的10kV配电线路运行模式已无法满足人们生产生活的用电需求以及企业生产发展的需要。本文对10kV配电线路智能化建设与运行管理进行简单分析,希望可以为相关人员提供一定的参考。  关键词:10kV配电线路;智能化建设;运行管理  新时期下,随着社会的不断发展和进步,促进我国10kV配电线路建设规模在不断扩大。现阶段,由于传
摘 要:总体上医院基建项目建设前分为投资立项决策、工程设计和工程招标三大环节,其中招标环节的控制最为重要,其与整体的投资成本有最直接的关系,而工程招标的控制需要把握关键程序和重点,本文就此一范畴做一些简要的分析研究。  关键词:医院;基建项目;招标控制  1.引言  长期以来,医院基建项目因各地区、各单位的不同而存在差异,导致基建管理人员对工程招标的控制无定律可循,出现工程招标管理不科学、混乱、控
摘 要:本文概述了HSE安全管理体系和建立HSE安全管理体系的意义,分析了HSE安全管理体系执行力不强原因,探讨了HSE 安全管理体系的实施和企业实施 HSE 安全管理体系的具体步骤。  关键词:HSE安全管理体系;意义;实施;具体步骤  一、HSE安全管理体系的概述  HSE 管理具体包括对健康、安全、环境的管理,是將组织实施健康、安全与环境管理通过HSE管理体系有机的把程序、职责、做法、过程、
摘 要:随着我国经济实力以及人民生活水平的不断提高,社会的快速发展给我国的配电系统提出了更高的要求与挑战,尤其是在配电系统的运维管理方面。以良好的姿态迎接这一挑战,我们应该综合分析在配电运维的管理工作中常见问题,进而研究在配电系统中关于运维管理工作的改进措施。  关键词:配电运维管理工作的常见问题;改进策略分析  现阶段是数字化、智能化、信息化发展的社会,在这样的大背景中人们的工作与生活越来越离不
摘 要:孝是中华民族的传统美德,孝道更是中华文化的优秀思想内容。数千年以来,中国传统社会以"孝道"为中心建立了一套伦理秩序。而中学校园培养学生的孝德,对中学生的成长、成才具有重要意义,对班级管理工作也有显著促进作用。  关键词:孝道;德育;意义  孝道文化是华夏民族的美德,是五千年文明的象征,是推动社会发展的动力。一个民族,一个地区,一个家庭只有弘扬了孝道文化,人人尊老爱幼,才能真正体现人间真情,
摘 要:随着我国经济的发展,电力企业改革进程不断的深入,国家对配网建设较为重视,同时也扩大了配网规模,使配网在整个电力系统中起到决定性的作用。在电力系统运行中,配网在调度过程中会影响到配网在运行过程中的稳定性及安全性,在一定程度上影响了配网的正常运行。另外,配网进行调度时,由于外部环境的约束,易出现各种问题,导致故障的发生,这就需要电力企业需根据不同故障情况采取解决措施,保障配网调度工作能够顺利进
摘 要:如今煤矿产业持续不景气,生产环境的安全问题压力巨大,煤矿产企业工作人员各方面条件都存在明显的差异.煤矿产业知识、理论基础、抗压能力的整体高度不足,使工作生产过程当中矛盾凸显,企业的生产安全性和内部融合性得到挑战。煤矿企业工会通过科学的思想政治工作的形式和方法,对旧理论进行优化,整体提升企业内部的思想行为素质,提高企业正常的生产经营活动。  关键词:煤矿企业工会;思想政治工作;形式和方法  
摘 要:本文介绍了大连和怡阳光酒店暖通专业设计,包括空调冷热源、空调风系统、空调水系统、通风防排烟系统、隔声降噪措施、自控要求等设计。  关键词:酒店;冷热源;空调系统设计  1、引言  大连和怡阳光酒店是由中石油负责管理。位于辽宁省大连市高新园区,与万达广场遥遥相对,属于高新园区商业中心。工程总建筑面积约为3万m2,其中地下车库及设备用房约0.5万m2,地上酒店及客房建筑面积约为2.5万m2,建
摘 要:我国经济的高速发展,推动着财务管理信息化协同模式的应用发展,而企业内部的信息化建设,也已经成为连接企业之间、企业与政府之间不可缺少的纽带,更是企业自身建设中不能缺失的一部分。企业财务管理信息化是企业信息化建设的核心问题,决定着企业未来的发展方向,有效地运用财务管理信息化,就能够使企业在经营活动有效发展的同时获得更大的利益。  关键词:协同模式;财务管理;信息化  一、财务管理信息化协同管理