基于ARM+LINUX的嵌入式探月小车_第1页
基于ARM+LINUX的嵌入式探月小车_第2页
基于ARM+LINUX的嵌入式探月小车_第3页
基于ARM+LINUX的嵌入式探月小车_第4页
基于ARM+LINUX的嵌入式探月小车_第5页
已阅读5页,还剩32页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

作品设计报告1嵌入式探月小车作品设计报告广东科贸职业学院信息工程系开发小组成员黄文哲、欧信、杨毅英指导老师滕泓虬、禹涛2011年5月作品设计报告2目录1原创性声明12摘要23嵌入式探月小车系统方案331概述332系统方案333嵌入式探月小车434功能与指标44探月小车硬件设计541硬件框图542MINI2440开发板简介543主要I/O口说明644直流电机驱动模块7441电机驱动模块实物图7442L298N驱动原理图8443H桥控制方案845超声波测距模块避障946无线通讯模块1047摄像头模块115嵌入式探月车软件设计1151软件整体设计1252驱动程序设计1253添加MINI2440GPIOLED灯支持1254电机控制子程序1355无线通讯子程序1656摄像头控制程序1757OPENWRT嵌入式系统的移植1758嵌入式小车的PC客户端设计226系统测试方案2561直流电机驱动模块(L298N)测试2562无线通信模块测试267创新性描述278附录111原创性声明参赛作品原创性声明本人郑重声明所呈交的参赛作品报告,是本人和队友独立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的作品成果,不侵犯任何第三方的知识产权或其他权利。本人完全意识到本声明的法律结果由本人承担。参赛队员签名日期年月日22摘要探月小车实现了全方位自主移动及避障,行走中的图像采集、无线数据传输。采用ARM处理器S3C2440作为主板控制器。选择一种独特的嵌入式LINUX发行版OPENWRT作为操作系统。小车系统采用两层架构,上层以S3C2440为核心,负责图像采集,并将图像通过WIFI方式发送给PC机;下层以51单片机为核心,负责运动控制,传感器数据处理。两层架构在控制、用户扩展方面有明显优势。下层单片机接口上可接多个扩展模块。选择OPENWRT作为操作系统,也是作品的一个大胆创新之处。关键词ARM嵌入式LINUXS3C2440OPENWRT智能WIFI摄像33嵌入式探月小车系统方案31概述近年来随着人工智能技术、计算机技术等相关技术的发展,对移动机器人的研究越来越多。嵌入式探月小车实际上是一种移动机器人,它可实现多种不同功能,如探测险情、巡视、图像采集、定位、无线通信等。它还可以作为各种智能控制方法包括动态避障、路径规划、群体协作策略的良好载体,开展研究。32系统方案“履带式探月小车”采用两层架构。上层以ARM处理器S3C2440为核心,选用MINI2440开发板作为上层的主板,负责图像采集,并将图像通过WIFI方式发送给远端的PC机。WIFI无线通信是利用PC机与无线路由器搭配环境平台共同实现的。下层是以51单片机为核心的单片机控制板,由作者手工焊接单片机芯片及外围电路而成。下层负责小车运动控制,传感器数据处理。51单片机通过IO口输出PWM信号控制直流电机的转速,实现小车的前进、停止、左转和右转。单片机接口电路上挂接了1个超声波测距模块、1个人体红外感应模块、1个步进电机模块。超声波测距模块用来实现小车避障。在探月小车的前端安装了一个步进电机,而超声波测距模块安置在步进电机的转轴上,步进电机不停地来回转动,随之转动,这样用1个超声波测距模块就可实现多方位测距,大大减少了超声波测距模块的数量。小车主要由硬件系统和软件系统构成。硬件系统主要包括ARM处理器、单片机、外围接口电路、外设、小车车体以及电源等,其中ARM处理器是上层的核心,51单片机是下层的核心;软件包括嵌入式LINUX操作系统、外设驱动程序、LINUX应用程序以及单片机应用程序等。我们并没有选用平常的嵌入式LINUX版本,而是另辟蹊径,选用一种独特的嵌入式LINUX发行版之OPENWRT作为操作系统。OPENWRT提供了一个完全可写的文件系统及软件包管理,它通过简单易用的方式,极大地降低了嵌入式LINUX开发的门槛,它允许开发者使用软件包的概念来定制嵌入式设备,简化了嵌入软件开发的工序。我们由于选择了OPENWRT,在开发过程中,我们发现,定制LINUX的内核变成了一件相当容易的事情。探月小车的工作流程为车载传感器模块实时采集周围环境信息,将此数4据信息传输到小车控制系统中,单片机通过数据分析获取有效数据,从而获知小车与障碍物的相对位置,然后根据此位置信息产生控制信号,单片机会产生PWM信号控制直流电机来控制小车转向,从而达到小车自主“行走”的目的。下层的单片机与上层的ARM处理器通过串口来通信,ARM主板可将下层单片机控制板的工作数据通过无线WIFI的方式传输到远端的PC机。ARM主板平时不间断地将USB摄像头采集的清晰现场图片发给PC机。33嵌入式探月小车34功能与指标探月小车的功能特点小车直线行走和转弯行走履带式小车,履带底盘长180MM,宽135MM,高58MM,可成功越障3040MM,爬坡能力40度USB摄像头图像采集无线图像传输,可达每秒15帧超声波测距及避障,最大测距80CM摄像头带云台,转动范围360度主板采用S3C2440处理芯片,系统主频稳定400MHZ,可以轻松应对5视频采集,视频处理,无线传输,联网和语音控制等功能。可扩展能力强多种传感器模块,并支持传感器扩展LINUX操作系统支持,可扩展高级网络和图形应用通过WEBUI的方式对小车上的嵌入式LINUX系统进行配置4探月小车硬件设计41硬件框图USB集线器图像采集无线模块超声波测距模块红外感应模块MIN240S3C直流电机步进电机单片机STC895242MINI2440开发板简介MINI2440开发板基于三星S3C2440芯片,如下图所示6主要接口说明电源接口输入电压不能大于7伏电压,标准电源试配器为5伏。音频接口红色为音频输入接口,另一个为音频输出接口。USB接口主要用于传输数据。串口接口串口接口主要是它能使PC机和开发板直接进行交换操作和数据传送,完成调试。网卡接口在启动操作系统后,接上无线网卡,就可以对小车发送无线信号。JTAG接口JTAG接口主要作用是当NANDFLASH或NORFLASH中没有BOOTLOADER时,使用JTAG接口进行烧写。43主要I/O口说明主控芯片为三星S3C2440芯片,如图7主要用到的I/O口包括1用COM2IO与单片机通讯。2用GPIONLED1、NLED2、NLED3、NLED4来显示当前系统状态44直流电机驱动模块441电机驱动模块实物图驱动板主要采用了L298N芯片,它具有带载能力强的特点。8442L298N驱动原理图驱动电路芯片外围电路主要用由二极管构成的电桥电路,两组电机并联而成。443H桥控制方案小车通过采用L298N芯片可以达到目的,整体控制方案如图电机共有四4路PWM输出分别作为左右轮的驱动,而通过两路PWM输出可控制一个电机,两电机为并联即可。9当使能信号ENABLE为高时输出才随输入变化,否则为高阻态,所以焊接时,ENABLE及VS均接VCC。具体驱动过程为1通过编程由控制芯片经PWM发出驱动信号,PWM输出作为L298N的输入,经L298N转换输出控制信号使电机转动,从而实现电动机的驱动。2PWM输出信号的高低则可以控制直流电机转速,当占空比大时,转速高,占空比小时,转速低,所以当PWM信号输出占空比为0时可控制电机的停止。3当左轮停止,右轮转时,小车左转。当右轮停止,左轮转动时,小车右转。而两路PWM输出的正负顺序转换则可控制电机的正反转,进而控制小车的前进和后退。45超声波测距模块避障基本工作原理(1)采用IO口TRIG触发测距,给至少10US的高电平信号;(2)模块自动发送8个40KHZ的方波,自动检测是否有信号返回;(3)有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离(高电平时间声速(340M/S)/2;与单片机连接如右图接线,VCC供5V电源,GND为地,TRIG接单片机P10)触发控制信号输入,ECHO(接单片机P11)回响信号输出等四支线。1046无线通讯模块通过无线网卡实现无线数据的传输。11上图是我们在小车上使用的无线网卡模块。下面是他的具体参数主芯片REALTEKRTL8187L网络标准IEEE80211G、IEEE80211B数据传输率54、48、36、24、18、12、11、9、6、55、2、1MBPS有效工作距离室内最远100米、外最远300米环境而异频率范围2424835GHZ信道数13调制方式OFDM、DBPSK、DQPSK、CCK支持网络协议CSMA/CAWITHACK传输方式直接序列扩频DSSS灵敏度5468DBM10PER、11M85DBM8PER、6M88DBM10PER、1M90DBM8PER、256K105DBM8PER典型值天线天线增益5DBI总线接口USB在OPENWRT里面对该网卡的支持也非常简单。12只需要选择上对应的驱动就可以。47摄像头模块摄像头的安装位置对小车的性能有很大的影响,主要体现在图像采样效果和对小车重心的影响两个方面。安装的低了,易导致视野不够广阔,影响寻线的有效范围;安装得高了,指引线在图像坐标上会变得过窄而无法被检测到。若安装的太高,系统会因重心抬高而稳定性变差。若安装太靠前,则小车的重心会前移,进而在前行的过程中容易出现“点头”的不稳定情况,重心前移也易导致驱动轮即后轮对地的压力减小,容易出现驱动力不足或者打滑的现象。安装位置合适的一个原则就是摄像头的安装,首先必须满足头像采样效果的需要。控制策略简单,则所需的拍摄范围就可较小;反之策略复杂,需获得的赛道信息较多,则拍摄范围应大一些。其次,摄像头的安装对小车重心的影响不能导致小车出现运动不稳定的现象。另外,在OPENWRT对该摄像头的支持只需要选择上下面KMODVIDEOCOREKMODVIDEOGSPCACOREKMODVIDEOGSPCAZC3XXKMODUSBVIDEO内核模块。5嵌入式探月车软件设计软件部分是小车的智能化的体现,它控制小车所有的运行状态。程序在KUBUNTUCODEBLOCKIDE进行编写,用OPENWRT编译出来的ARMEABI交叉编译工具编译,在经过终端SERCURTCRT通过串行口向小车烧入交叉编译后的程序以及系统。应用软件控制小车的避障、摄像、发送视频等行为。此外,在主机端用VSFTP软件架设FTP服务器,并通过80211G(RTL8187)无线网卡建立无线局域网。13这样,小车就可以接收控制到达指定地点拍照并发送图片,而PC机端就可以接收通过WIFI传送过来的图片。51软件整体设计“探月车”软件部分整体设计如下图所示探月车应用程序字符设备文件单片机套接字协议线网络设备驱动网络接口设备电机单片机超声波测距模块字符设备文件LINUX内核块设备文件块设备驱动1摄像头52驱动程序设计驱动程序利用MINI2440开发板提供的例程进行改写,并编译进内核。53添加MINI2440GPIOLED灯支持通过参考MINI2440电路图,得知LED连接GPIO引脚LED1GPIO5LED1GPIO6LED1GPIO7LED1GPIO8主要代码/LEDSTATICSTRUCTGPIO_LEDMINI2440_LED_PINS14NAME“LED1“,GPIOS3C2410_GPB5,ACTIVE_LOWTRUE,NAME“LED2“,GPIOS3C2410_GPB6,ACTIVE_LOWTRUE,NAME“LED3“,GPIOS3C2410_GPB7,ACTIVE_LOWTRUE,NAME“LED4“,GPIOS3C2410_GPB8,ACTIVE_LOWTRUE,STATICSTRUCTGPIO_LED_PLATFORM_DATAMINI2440_LED_DATANUM_LEDSARRAY_SIZEMINI2440_LED_PINS,LEDSMINI2440_LED_PINS,STATICSTRUCTPLATFORM_DEVICEMINI2440_LEDSNAME“LEDSGPIO“,ID1,DEVPLATFORM_DATA/GPIORESOURCESTATICSTRUCTRESOURCEGPIODEV_RESOURCESTART0XFFFFFFFF,54电机控制子程序基本代码如下MOTORC/电机控制INCLUDE15SBITSTEPMOTOR1ONEP20/步进电机1第一相SBITSTEPMOTOR1TWOP21/步进电机1第二相SBITSTEPMOTOR1THREEP22/步进电机1第三相SBITSTEPMOTOR1FOURP23/步进电机1第四相SBITMOTORLEFT1P12/直流电机SBITMOTORLEFT2P13SBITMOTORRIGHT1P14SBITMOTORRIGHT2P15SBITMOTORLEFTENP16/直流电机使能SBITMOTORRIGHTENP17VOIDDELAYUNSIGNEDINTS/延时函数WHILESVOIDMOTORUNSIGNEDCHARA,UNSIGNEDCHARB,UNSIGNEDCHARC/主电机控制函数UNSIGNEDCHARZ0SWITCHACASE1/进入左右电机控制MOTORLEFTEN1MOTORRIGHTEN1IFB1/左驱电机IFC1MOTORLEFT11/左驱正转MOTORLEFT20ELSEIFC2MOTORLEFT10/左驱反转MOTORLEFT21ELSEMOTORLEFT11/停MOTORLEFT2116ELSEIFB2/右驱电机IFC1/右驱正转MOTORRIGHT10MOTORRIGHT21ELSEIFC2/右驱反转MOTORRIGHT11MOTORRIGHT20ELSEMOTORRIGHT11/停MOTORRIGHT21BREAKCASE2/进入步进电机控制P20XFFIFB1/STEPMOTOR1IFC1Z135WHILEZZSTEPMOTOR1ONE0DELAY300STEPMOTOR1ONE1STEPMOTOR1TWO0DELAY300STEPMOTOR1TWO1STEPMOTOR1THREE0DELAY300STEPMOTOR1THREE1STEPMOTOR1FOUR0DELAY300STEPMOTOR1FOUR117IFC2Z135WHILEZZSTEPMOTOR1FOUR0DELAY300STEPMOTOR1FOUR1STEPMOTOR1THREE0DELAY300STEPMOTOR1THREE1STEPMOTOR1TWO0DELAY300STEPMOTOR1TWO1STEPMOTOR1ONE0DELAY300STEPMOTOR1ONE1P20XFFBREAKDEFAULTBREAK55无线通讯子程序此部分内容为LINUX下SOCKET编程,为客户端提供远程控制支持,部分代码如下INTSENDSTRINGCHARADDR,INTPORT,CHARSENDCHARSTRUCTSOCKADDR_INS_ADDRINTSOCKINTADDR_LENINTLEN,IIFSOCKSOCKETAF_INET,SOCK_DGRAM,01PERROR“NOSOCKET“EXITERRNOELSE18PRINTF“CREATESOCKETNR“S_ADDRSIN_FAMILYAF_INETIFPORTS_ADDRSIN_PORTHTONSPORTELSES_ADDRSIN_PORTHTONS10001IFADDRS_ADDRSIN_ADDRS_ADDRINET_ADDRADDRELSEPRINTF“SENDAMESSAGEMUSTHAVEARECEIVERN“EXIT0ADDR_LENSIZEOFS_ADDRLEN1FORI0I283页/INCLUDEINCLUDEINCLUDEINCLUDEINCLUDEINCLUDEINCLUDEINCLUDEINCLUDEINCLUDEINCLUDEINCLUDEINCLUDEINCLUDEINCLUDEDEFINEPORT1500DEFINEMAX10DEFINESUCCESS0DEFINEERROR1/命令列表25前2后1左3右4步进左6步进右0停8测距9返回(断续运行)/INTSPEED_ARRB38400,B19200,B9600,B4800,B2400,B1200,B300,B38400,B19200,B9600,B4800,B2400,B1200,B300,INTNAME_ARR38400,19200,9600,4800,2400,1200,300,38400,19200,9600,4800,2400,1200,300,VOIDSET_SPEEDINTFD,INTSPEEDINTIINTSTATUSSTRUCTTERMIOSOPTTCGETATTRFD,FORI0ISIZEOFSPEED_ARR/SIZEOFINTIIFSPEEDNAME_ARRITCFLUSHFD,TCIOFLUSHCFSETISPEEDCFSETOSPEEDSTATUSTCSETATTRFD,TCSANOW,IFSTATUS0PERROR“TCSETATTRFD1“RETURNTCFLUSHFD,TCIOFLUSHINTMAINVOID3INTSOCKFD,NEWSOCKFD,IS_CONNECTEDMAX,FD,SER_FD,RESULT1STRUCTSOCKADDR_INADDRINTADDR_LENSIZEOFSTRUCTSOCKADDR_INFD_SETMYREADFDSCHARMSGBUFFER256CHARMSG“WELCOMETOCAR_SERVN“SER_FDOPEN“/DEV/S3C2410_SERIAL1“,O_WRONLY/打开串口IFSER_FD0PRINTF“无法打开串口N“ELSESET_SPEEDSER_FD,9600/设置波特率/RESULT1WRITESER_FD,“0“,1/打开成功,向串口发送命令0即停止WRITESER_FD,“0“,1/打开成功,向串口发送命令

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论