基于ram9视频监测小车_第1页
基于ram9视频监测小车_第2页
基于ram9视频监测小车_第3页
基于ram9视频监测小车_第4页
基于ram9视频监测小车_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

毕业论文论文题目基于RAM9视频监测小车系别电子信息工程专业电子科学与技术班级09电科班学号学生姓名指导教师(签名)完成时间2013年5月摘要随着当代网络的普及化以及网络应用技术的成熟化,网络带给人类生活许许多多的方便,特别是无线网络的发展,更是给人们无处不在的网络共享功能。同时,一种基于3G无线WIFI网络技术与嵌入式技术相结合的移动手持设备成为了现在智能科技的发展潮流。基于ARM9视频监测小车就是在此基础上应运而生的。视频监测小车是在一个四轮智能小车上搭摘了无线WIFI路由器、摄像头以及ARM9处理器,通过WIFI信号为媒介,将上位机与小车进行握手连接,使用上位机控制小车行走与避障,并且在行走过程中能观看到从小车摄像头拍摄到的图像信息,从而达到了对周围环境的视频检测目的。本设计采用ARM920T处理器芯片S3C2440作为主板核心控制器,无线WIFI模块采用150M无线迷你型3G路由器TLWR703,移植了一种独特的嵌入式LINUX发行版之一的OPENWRT作为操作系统。结合使用VB编程的电脑上位机以及在ANDROID23系统上编程的应用控制软件端,实现两个控制平台上位机,上位机通过WIFI信号连接下位机,获取小车摄像头的检测信息并能控制小车行驶状态。关键词无线WIFI网络;视频监测;ARM920T;OPENWRT;ANDROIDTHEVIDEOMONITORINGCARBASEDONARM9ABSTRACTWITHTHEPOPULARIZATIONOFMODERNNETWORKANDMATURITYOFAPPLICATIONOFNETWORKTECHNOLOGY,NETWORKBRINGSLOTSOFCONVENIENCETOHUMANLIFEESPECIALLYTHEDEVELOPMENTOFWIRELESSNETWORKWHICHMAKESPEOPLEENJOYTHEFUNCTIONOFNETWORKSHARESEVERYWHEREMEANWHILE,ANETWORKTECHNOLOGYBASEDON3GWIRELESSNETWORKTECHNOLOGYANDAHANDHELDCOMBINEDWITHEMBEDDEDTECHNOLOGYBECOMESTHEDEVELOPMENTTRENDOFINTELLIGENTTECHNOLOGYTHEREFORE,HERECOMESTHEVIDEOMONITORINGCARBASEDONARM9ATTHEHISTORICMOMENTVIDEOMONITORINGCAR,EQUIPEDWITHWIRELESSROUTER,ACAMERAANDANDAARM9PROCESSOROVERAFOURWHEELSMARTCAR,ISCONNECTEDWITHTHEHOSTCOMPUTERCONTROLLINGTHETRAVELINGOFTHECARANDAVOIDINGOBSTACLESTOSEETHEIMAGEINFORMATIONCAPTUREDBYTHECAMERAWHILEWORKINGWITHTHISTHECARACHIEVESTHEPURPOSEOFVIDEODETECTIONSTOTHESURROUNDINGSTHEEQUIPMENTDESIGNSAREADOPTEDBYTHEARM920TPROCESSORCHIPS3C2440ASTHEMAINCORECONTROLLER,WIRELESSMODULEISUSEDBY150MWIRELESSMINI3GROUTERTLWR703ANDTRANSPLANTEDOPENWRT,ONEOFDISTRIBUTIONSOFUNIQUEEMBEDDEDLINUXASTHEOPERATINGSYSTEMTHEAPPLICATIONOFTHECONTROLSOFTWAREPROGRAMMINGCOMBINEDWITHUSESOFTHEVBPROGRAMMINGOFTHEHOSTCOMPUTERANDTHEAPPLICATIONOFCONTROLSOFTWAREPROGRAMMEDBYTHEANDROID23SYSTEM,REACHESTWOCONTROLLINGPLATFORMHOSTCOMPUTERCONNECTEDWITHLOWLEVELCOMPUTERTHROUGHWIFISIGNALTOCAPTUREDETECTIONINFORMATIONOFTHECAMERAANDTOCONTROLTHETRAVELINGSTATEOFTHECARKEYWORDSWIRELESSWIFINETWORK;VIDEOMONITORING;ARM920T;OPENWRT;ANDROID目录第一章前言111课题背景112课题研究的目的及意义113系统设计的主要任务1第二章系统的可行性分析321视频监测小车概述322系统整体设计方案分析323系统框架424硬件系统分析425软件设计分析5第三章硬件电路设计631核心模块及芯片简介632WIFI模块的设计介绍1033视频驱动模块的设计实现1134电机驱动电路设计1135电源电路整体设计13第四章软件部分设计1541OPENWRT系统移植实现1542WIFI模块软件驱动1543视频摄像头的软件驱动1644电机控制程序1845PC电脑上位机设计1846ANDROID软件设计20第五章系统制作及调试2251使用到的仪表仪器及工具2252硬件制作及调试2253软件与硬件结合调试23第六章总结与展望2561总结2562工作展望25参考文献26谢辞27附录一28附录二31第一章前言11课题背景纵观全球近年来的科技发展,智能化技术的发展是最为迅猛。大到航天航母科技,小到智能家居生活,这些智能化技术得益于嵌入式技术的逐步成熟。其中嵌入式的视频检测是直接能实时反馈实物原貌的,因此也成为当代先进科技的热门研究话题。比如2012年8月6日美国火星探测器“好奇号”成功登陆火星后,发回来的火星图片,以及现在流行的高端智能手机的摄像头拍照等等就是源于摄像头拍摄技术。而在现实中也有很多场合都需要在无人的情况下能实现实时监控,还有一些危险不适合人类亲身冒险的坏境也需要视频检测机器人的代替,这些都是类人化科技不断发展的动力。在电子科技不断发展的过程中,已不再是硬邦邦的简单电子合成了,随着互联网的普及与电子设备的集成化发展趋势,它已向着更智能化、更人性化方面靠拢。本文介绍了在最简单的智能小车上安装视频摄像头,通过现在流行的WIFI技术,将摄像头图片传输到电脑或智能手机以及一切能连接WIFI的智能设备上,再对图片合成视频流,从而达到对周围环境的视频检测。本设计完成后可以在任何搜索到小车WIFI模块信号的地方进行视频检测和小车控制,比如在家里就可以遥控小车对各个角落进行检测,在大型的仓库里控制小车来回巡逻检测,而这时只需要用手机或电脑连接上小车的WIFI信号,用户就不用亲自去到每个角落去巡逻视察了,即省时又省力,更是符合现代智能化生活的理念。12课题研究的目的及意义视频监测的意义就是在于它能实时地还原现场原貌场景并且能记录下来,在现实生活中起到很大的监督作用,比如交通视频违章抓拍,小区安防视频监测,汽车行驶视频监测等,本设计是在ARM9上移植嵌入式系统驱动摄像头来获取图像信息,通过WIFI信号把图像信息传递给上位机,在上位机端可以控制小车和监测摄像头信息,从而实现智能小车具有视觉效果。这使得人们可以通过智能小车的摄像技术,去完成或探测人类无法到达的地方和未知领域。为了推动我国机器人事业的发展,促进全国高校机器人技术的进步,中央电视台从2002年开始面向全国理工科大学举办“全国大学生机器人电视大赛”4,虽然我们学校到目前为止未有参赛队参加,但是如此富有挑战性的全国大赛不仅能提高学生的学习兴趣,也能提高是学生的动手能力。因此,本设计也是源于大赛的机器人视觉效果的基础来设计的。具有一定的研究与设计意义13系统设计的主要任务本设计的主要任务是在智能小车上搭载视频摄像头,运用ARM9嵌入式技术进行驱动获取图像信息,再整合成WIFI信号,通过上位机进行数据交换。用户不仅可以自由控制视频监测小车的行走,还可以实时观看到从小车发回的图像信息,从而实现了视频检测的目的。本设计的重点难点是在嵌入式技术、视频图像获取、WIFI信号控制以及上位机获取图像信息的编程。对这些难题应达到以下任务(1)在ARM9上移植一种嵌入式系统作为整个设计的主系统。(2)在操作系统上驱动摄像头获取图像信息以及WIFI无线模块。(3)在系统上编写控制电机驱动控制小车。(4)编写控制小车的上位机。第二章系统的可行性分析21视频监测小车概述近几年来伴随着智能化技术、计算机技术以及网络技术等相关技术的蓬勃发展,人工智能化科技已成为当代科学技术的发展趋势。其中对智能机器人的研究更是科技重点,而视频监测就是智能机器人视觉雏形。因此,视频监测小车就是在智能小车的基础上搭建了摄像头,利用现今流行的无线WIFI网络进行图像传输,并与电脑或手机连接,构成人机对话。用户可以控制小车进行环境探测、无人监视以及无线通信等。视频监测小车不仅实现了移动机器人的视觉效果,还可以作为各种智能控制的机器的良好载体,进行扩展研究。22系统整体设计方案分析221摄像头的选取视频监测小车的设计主要难点在于视频图像的传输。对于视频图像的获取考虑到驱动的简洁性,因此采用CMOS型网络摄像头,在目前市场上销售的也是以CMOS摄像头为主,这得益于它低成本、低功耗以及高整合度的特性,对本设计不要求高清晰度图片处理来说,能够在市场上购买得到以及集成化输出了MJPG图像信息是设计考虑的主要因素,这也是为后面移植嵌入式系统里能更好的搭载驱动做好准备。222图像传输方案一24G无线NRF905传输视频图像获取了以后就要对其进行传输,本设计主要的考虑的是无线传输,对于视频图片的无线传输方案,可以在摄像头采集到的图像信息后依照JPEG编码标准进行压缩编码,然后通过射频技术,利用24G无线收发芯片NRF905进行图像传输5。但是由于此方案在接收方要对接收到的数据包进行解压,不使用系统编程解压比较难实现,而且加压出来的速度较慢,使得传输的视频流卡滞的现象,这也造成了后续开发上位机增加了难度。方案二3G无线WIFI传输3G无线WIFI网络是现在比较流线的无线共享,可以用它来做本设计的图像传输,其原理主要是通过无线WIFI路由器发射,由无线网卡进行接收。运用此方案主要是由于它的传输与接收都可进行模块化设计,适合本设计短时间开发应用,而且传输速度快,能形成的较为流畅的视频流。综合上述,本设计采用第二方案。223中央处理器方案一单片机单片机的处理能力一般都不会太高,比如51单片机一般在12MHZ左右在内部分频只能有1MHZ,AVR在挂载外部晶振也是在24MHZ。对本系统需要高速不间断的传输视频图像是理想的,在上不能同时进行多任务处理,因此,使用单片机作为本作品的中央处理器不合理。方案二ARM系列处理器ARM中央处理器的处理能力都能达到上百兆,在考虑到作品需要运行嵌入式系统以及数据处理的速度要求,还有对摄像头的驱动以及无线WIFI传输,因此选择了基于ARM9处理器以及无线WIFI路由器TLWR703模块进行联合搭建。综合上述,中央处理器选择方案二。224车体选择对小车的车体选择并不是很严格,可以使用两驱动三轮车或者是四驱动四轮车,但是考虑到三轮车较四轮车不好控制其直线行走。因此小车选择了四驱动四轮车,主要是采用电子设计竞赛中用到的四个直流电机驱动的车体,再加上两个自由度的摄像头云台,可以对环境进行全方位摄像,符合设计任务要求。23系统框架系统可分为两大部分一是系统主板模块,组要是系统主板底层部分。二是上位机信息交互部分。整体选择模块化设计,不仅便于车体搭载和电路设计,在检测是也容易分块检测。系统框架图见21图21硬件框图24硬件系统分析上位机无线WIFI模块核心模块TQ2440/S3C2440图像采集LCD液晶显示直流电机云台舵机电池模块系统核心板主要是用到天嵌公司的TQ2440嵌入式开发板的核心板,其使用的是33V供电,不仅实现低功耗,减轻车载电池负担,而且对产生无限WIFI信号的TLWR703路由器的电源也相匹配,这也给电源设计得到了优化。车轮的动力来自四个直流电机,电机的驱动使用LN298模块。摄像头的云台驱动是使用低功耗的小型SG90舵机,其体积小,驱动力足够,且耗电少,合适小车的设计要求。电源使用的是12V蓄电池供电,由于整个小车都是进行无线控制独立运行,其整体供电一定考虑到最优化,因此在稳压电源方面采用了高效率的开关电源芯片LM2596,而且把直流电机,舵机以及核心板电源的供电都进行分离供应,以免造成相互间的拉电流影响。25软件设计分析251嵌入式系统选择嵌入式系统的选择考虑到对无线WIFI路由器连接与摄像头的驱动持,因此选择了一种独特的嵌入式LINUX发行版之一的OPENWRT作为运行系统。由串口通信驱动对上位机的控制信号进行处理,再通过驱动GPIO的电平变化,控制直流电机以及摄像头云台舵机。252上位机的选择PC电脑上位机的开发选择VISUALBASIC60进行开发,主要是考虑了VB60的学习开发资料丰富,技术成熟,开发周期短,适合毕业设计短时间开发。鉴于目前ANDROID系统应用的流行,因此本设计尝试地拓展了在ANDROID23系统上开发手机控制端上位机,这也是本设计的特色之一。第三章硬件电路设计31核心模块及芯片简介311核心板介绍本设计采用的是天嵌公司TQ2440开发板,其核心S3C2440芯片是基于三星公司推出的一款功能强大,功耗低的ARM9嵌入式CPU。本开发板主要特点是其核心模块可以拆下来,而且已经把所有的引脚都引出,方便进行二次开发。系统核心板模块功能如下(1)CPU处理器SAMSUNGS3C2440AL,主频400MHZ(最高可达533MHZ)。(2)SDRAM内存板载64MBSDRAM(标准配置)可根据用户需要扩展到128MB。(3)NANDFLASH板载256MBNANDFLASH,掉电非易失,容量大。(4)NORFLASH板载2MBNORFLASH(最高可升级到8MB)。(5)COREPOWER专业125V核心电压供电,完美解决CPU发热现象。(6)POWER核心板采用33V供电。(7)核心板接口接口型号为DC20双列直插式,并引出了所有可用到的GPIO引脚。312核心板底层搭载在搭载核心模块的底板并不适用天嵌公司提供开发板TQ2440,而是自主设计,主要为了在能实现本设计所有功能的同时又减轻小车电路板的重量,达到优化目的。核心底板见图32图32核心板底板在搭载核心板时,考虑做到尽量简洁,在上面只放置了些必须的外围设备。313电源电路由于核心板在系统运行时需要到的电压是33V的,考虑到电源的转换效率与电压的稳定性,并且此芯片的散热性较好。因此在板子上设计33V稳压电源部分采用的是LM2596T33开关芯片进行电源处理的,并带有电源开关与指示灯。此电源经过核心板里的电噪声、低压线性稳压源MAX8860EUA稳压芯片为CPU内核提供125V电压。在接入底板的电源处还添加了一个自恢复型20A保险丝,防止过流导致底板损坏,从而保护了整个底板电路。底板电源原理见图33,核心板电源原理图见34S1WPDTOER3KGN0UF/6VC452UABILM98MHNDCTORAPL图33底板33V稳压电路原理图图34核心板125V稳压电路原理图314系统复位电路系统的运行需要有高效的电源监控,因此复位电路选择一种专门的系统监视复位芯片MAX811S,实现手动复位操作与对电源电压实行实时监控。使用该优良的芯片,如果系统电源电压低于293V的系统复位阀值,复位芯片就会出发,对系统进行复位。复位电路原理图见图357X图35系统复位电路原理图315JTAG接口电路虽然在S3C2440芯片内部集成有JTAG核,而且本设计并未使用到JTAG接口进行调试,因此为了减少底板的面积,只是在NTRST与NRESET引脚间短接上了1K的电阻,让系统能正常运行。如果把NTRST与NRESET引脚悬空了程序就不能进入系统。316蜂鸣器电路为了识别以及声音警示作用,本作品还是设计有蜂鸣器电路,由于GPIO口的电压是33V,而蜂鸣器是5V控制,因此在GPIO口输出的PWM接到三极管8050的基极,在集电极接上由蜂鸣器接通到5V,当有PWM波输出时,三极管的基极电压大于07V时,蜂鸣器导通,蜂鸣器就响。电路图见图3612BUZER80VD5GNTOKQPHEADR图36蜂鸣器电路原理图317串口电路在天嵌公司开发板上有一个五线异步串口和一个UART扩展接口,电路图见图3767349CMX_SINA图37开发板串口电路原理图由于本作品下载程序均是通过TQ2440开发板的串口进行外接下载的,因此作品的底板上也外接扩展了UART1和UART2口。见图38NCTS0RXD12345678UAHEADR图38底板串口扩展电路318USB接口电路底板设计有一个HOSTUSB11接口和一个DEVICEUSB11接口,由于USB模块是集成在S3C2440A芯片中的,因此使用时可以直接利用其USB模块。也可以用作USB摄像头接口。电路图见图39VGNPKB_OEIOTYP9图39USB接口电路原理图319LDC液晶屏接口电路底板为了实现用户界面体验化,设置有43寸液晶屏的40PIN软排线接口电路,不仅减少底板面积也方便液晶线的拔/插。电路图见图310MYLWF图310液晶接口电路原理图3110NOR/NAND选择电路本作品底板设计有NOR/NAND选择电路开关,主要是为了方便用户启动从NORFLASH启动和从NANDFLASH启动之间的切换。电路图见311OM0123F_SELAHGND图311NOR/NAND选择电路开关3111GPIO扩展口电路在GPIO扩展口中主要是用于直流电机与舵机的控制,也可以再其他未使用到的GPIO口进行对作品的功能扩展。直流电机的接口是与四个LED灯接口NLED并用的,这主要是方便辨别转动的代码识别,也能很好的体现视觉效果。由于控制舵机是使用到PWM进行控制的,因此,两个舵机的控制接口使用的是TUOT0和TUOT1管脚。而且还预留有33V的供电接口,方便电源使用。GPIO扩展口见图312VTUN4P56789IEADR图312GPIO扩展口电路图32WIFI模块的设计介绍TLWR703N路由器是由TPLINK全新推出的150M迷你型3G无线路由器,其尺寸小巧玲珑,方便携带,很是适合本设计中的小车中,减少小车的体积。TLWR703N无线路由器采用的是外置电源提供,由MICROUSB接口接入电源,配置有网线接口、USB接口,以及复位按键。可将3G信号转换成WIFI无线信号,WIFI手机、IPAD以及电脑上的无线网卡等所有支持WIFI无线连接的上网设备,都可以进行连接,获取网络信息。原装的TLWR703N3G路由器并没扩展有串口接口,为了能与外部设备进行WIFI信息数据控制,对该路由器改进,将其预留有的TP_IN与TP_OUT以及GND三个UART口的焊接点用三根排针引出,从而添加了TTL串口外接,能得以实现通过此串口与ARM9系统板进行数据交换相连接。再结合开源系统OPENWRT的支持下,能自动的把视频信号转换成图片帧进行WIFI信号传输出去,以及传输上位机与下位机的控制命令连接。UART接口见图315图315UART口原理图图317UART接口图TLWR703N路由器经过UART口外接改装后就可以跟ARM9核心板进行按照UART串口协议相连接,实现数据交换通信。33视频驱动模块的设计实现摄像头采用的是天敏网络摄像头,主要是其驱动可以在网上直接下载,再嵌入进OPENWRT系统里,操作简单,容易实现,减少开发周期。使用USB20接口,电源与数据集合在一起,减少端口浪费,有效提高图像传输速度。高帧率视频显示(最大可达60FPS),结果系统处理后,传输到上位机能达到1520FPS,能组合成视频流,画面流畅不间断,可以实现视频效果。34电机驱动电路设计电机驱动使用的是LN298驱动模块,L298N是一个具有高低压大电流的全桥驱动芯片,其响应频率高,可以响应ARM9快速变换的驱动动作。内部包含有两个H桥高压大电流全桥式驱动器,L298N采用便准的逻辑电平信号来控制,而且单独设置有两个使能端口,可以不受输入信号的影响下禁止或允许两路控制的逻辑电源输出。因此一片L298N可以分别控制驱动一台两相步进电机或者四相步进电机,以及两台直流电机。在本作品小车的车轮设计中,把同属一侧的两个轮子的直流电机进行并联连接在一起,这样就可以使用一片L298N驱动模块来控制左右两侧的轮子,实现车子自由的前进和后退,左转和右转。电机驱动原理图见图318GNDV214078963DJIANSUFCPUKRLE5ABIOTSPHER容X图318电机驱动模块电路原理图控制直流电机比控制步进电机较为简单,只要给直流电机两个控制线加上合适的电压,直流电机就可以转动,在额定电压的范围内,其转动的速度与所给的电压成正比,因此,本设计就是使用ARM的定时器产生PWM方波来控制直流电机的速度。L298N功能逻辑表下图表31L298N控制逻辑表ENAIN1IN2运转状态0XX停止110正转101反转111刹停100停止在舵机的控制中,采用了电压转换控制方法。因为SG90微型舵机的控制电压是5V电压,而ARM9核心板的GPIO口的输出电压是33V,直接用于控制很容易造成电压不匹配,烧坏舵机。因此,使用GPIO口输出的PWM来控制NPN8050三极管的导通间接的控制舵机的5V信号线的输入,从而避免了系统复位和烧坏舵机的情况。舵机控制原理图见图319Q18052KR364VCGNDPHEADR7X图319舵机控制电路原理图编程控制舵机的方法也是很简单,并且SG90舵机只需要一根控制信号线,一般橘黄色线,而红色线为5V电源线,棕色线为GND。舵机的控制信号PWM脉冲周期为20MS,它的脉冲宽度在从05MS到25MS变化时,相应的多舵盘转角位置也从0到180度变化,一般呈线性变化。因此,只要给与信号线一定的脉宽,舵机就保持在相应的角度。舵机控制信号脉冲与转角关系见图320输入信号脉冲宽度舵机输出转角(周期为20MS)05MS901MS4515MS020MS4525MS90图320舵机控制信号脉冲与转角关系35电源电路整体设计电源电路的设计在本设计中也是一项关键性的任务,由于运行系统用到S3C2440核心板和WIFI无线路由器,电源的微小变化都会引起系统复位或者是WIFI信号的干扰。考虑到车子的运行独立自由性,使用的是在车上放置12V/8A的锂电池作为小车的电源。电源的处理中把供给直流电机的电源、摄像头云台舵机电源以及供给系统核心板的电源进行电路分离处理,避免电机的运行拉电流而影响系统主板的运行。首先,在稳压这块,采用的是使用开关芯片而不是线性稳压芯片,这主要是开关芯片的转换效率较高,对有限的车载电池而言是很有必要的。稳压开关芯片使用的是降压型LM2596,其具有非常小的电压调整率和电流调整率,且有3A的负载驱动能力,足够支撑电机、舵机以及主板的所需电流。LM2596ADJ是可调型输出,其可调电压输出的范围为123V到30V,其线性调整率和负载调整率最大可以再4的误差。由此可见,核心板使用LM259633V进行稳压,根据核心板的复位芯片MAX811的复位电压为低于293V,由公式计算可得33V(14)3168V31由此可见,经过LM2596开关芯片稳出的电压在负载拉载的情况下,核心板的电压依然高于MAX811的复位电压值,不会对系统造成电压复位影响。LM2596的电源转换效率一般可达7588,可有效地延长车载电池的使用时间。原理图见图32110UFCAPPOL24GND3HEDRXLEKRSVTSB58MINUCO/TM96AJW图324电源电路原理图第四章软件部分设计41OPENWRT系统移植实现411OPENWRT简介OPENWRT是一个完全开源的用于各种嵌入式设备和无线路由器的微型LINUX发行版,并且它具备有DDWRT固件相类似的功能。OPENWRT的流行主要是得益于它提供的一个完全可写的文件系统和软件包管理,它允许用户自由使用软件包来自定制嵌入式设备,从而使得大部分的应用都能在它上面运行,而且可以实现更多的功能应用。对于开发者而言,OPENWRT能提供简而易用的开发环境构架来建立应用程序,通过这个简而易用的方式,大大的降低了嵌入式LINUX的开发门槛。412OPENWRT系统的编译步骤一个嵌入式系统开发过程大体都可以以下步骤1创建LINUX交叉编译环境;2建立BOOTLOADER;3移植LINUX内核;4建立ROOTFS根文件系统;5安装驱动程序;6安装软件;7调试运行;OPENWRT系统编译环境采用的是在虚拟机VMWARE上的UBUNTU1010下编译,编译OPENWRT全过程如下(1)在虚拟机VMWARE上安装UBUNTU1010版本。(2)安装好后启动终端,进入命令行,输入SUDOSH,切换到ROOT权限,安装或升级部分必要的组件。(3)在官网下载OPENWRT下载源码。(4)MAKEMENUCONFIG进行定制界面。(5)执行MAKE正式编译。(6)编译完成后把BIN文件刷进系统核心板。42WIFI模块软件驱动WIFI的驱动软件包嵌入在OPENWRT系统中,在系统中不断的要把摄像头拍摄到的图像信息转换成WIFI通信协议格式,不断的驱动设备发送图像信息。当系统检测到串口有接收到上位机的控制信息时,把控制的WIFI信号传递到电机驱动函数模块进行判断执行。43视频摄像头的软件驱动431MJPGSTREAMER驱动包说明摄像头软件驱动包是MJPGSTREAMER,这是一个开源项目,用来做视频服务器,使用的是V4I2接口。MJPGSTERAMER是用于从WEBCAM摄像头采集图像,把图像信息以流的形式通过基于IP的网络传输到浏览器如FIREHOX,CAMBOZOLA,VLC播放器,WINDOWS的移动设备或者其他拥有浏览器的移动设备。不仅可以利用某些WEBCAMS的硬件压缩功能来降低服务器CPU的开销,而且为嵌入式设备和一些常规服务器提供了一个轻量且更少CPU消耗的方案。源代码中主要由三部分(源代码见附录二)(1)V4I2接口9这个主要是涉及到如何从摄像头中把数据取出来。首先是封装一个结构体用来描述摄像头的一些信息,比如采集图片的宽高,图片的格式等。接着把结构体写入驱动中,用来初始化摄像头,这个操作通过IOCTL完成,涉及到的VIDIOC_QUERYCAP、VIDIOC_S_FMT、VIDIOC_S_PARM、VIDIOC_REQBUFS,VIDIOC_QUERYBUF,并通过MMAP完成内存的映射。最后通过IOCT命令完成图片的读取,涉及到的命令包括VIDIOC_QBUF和VIDIOC_DQBUF。然后把获得的数据写入到文件里就是图片,通过网络传输出去连续的图片就是视频。(2)SOCKET编程在这个程序里使用的是TCP套接字,每有一个连接请求就创建一个线程单独和这个请求通信,这里涉及到的函数包括SOCKET、BIND、LISTEN、ACCEPT和WRITE。(3)多线程编程为了能同时响应多个客户端的请求,这里使用了多线程编程,为每一个请求建立一个连接,每个连接就是一个线程。这里涉及到的函数包括PTHREAD_CREATE、PTHREAD_DETACH、PTHREAD_COND_INIT、PTHREAD_COND_DESTROY、PTHREAD_MUTEX_INIT、PTHREAD_MUTEX_DESTROY。432MJPGSTREAMER工作流程图MJPGSTREAMER视频驱动是在OPENWRT系统里开机自启动项目,一开始先初始化摄像头的初始化,再对摄像头的图像信息在INPUT_RUN和OUTPUT_RUN这两个函数里不断的接收、处理、整合,最后输出到WIFI模块函数包里打包发送出去。其流程图见41图41MJPGSTREAMER工作流程图944电机控制程序开始DLOPEN打开插件DLSYM获取相关函数INPUT_INITOUTPUT_INITINPUT_RUNOUTPUT_RUNINIT_VIDEOININIT_V4I2完成摄像头初始化初始化输出涉及到的一些结构PTHREAD_CREATEPTHREAD_DETACHUVCGRABUENCPY_PICTURE图像数据PTHREAD_CREATEPTHREAD_DETACHSOCKETBINDLISTENACCEPTPTHREAD_CREATEPTHREAD_DETACHSEND_SNAPSHOTSEND_STREAMWRITEPAUSE在电机的控制程序中主要是从UART串口地址RURXH1中接收到从WIFI信号发来的字符串,然后对字符串进行辨别处理,进入相应的IF语句,直接控制GPIO口内存器,输出电机控制信号。45PC电脑上位机设计PC电脑上位机使用的是MICROSOFTVISUALBASIC60集成开发环境设计的,VISUALBASIC(VB)是由微软公司开发的,它包含了协助开发环境的事件驱动编程语言,主要是源于BASIC编程语言。在VB60的集成开发环境中包含有图形用户界面(GUI)和快速应用程序开发(RAD)系统,开发者可以轻松的使用DAO、RDO、ADO连接数据库,或者轻松地创建ACTIVEX控件12。451用户界面介绍用户界面是一个很重要应用程序部分,它直接的面对用户,给用户视觉上的体验,而对于用户而言,界面就是应用程序,用户可以再不知道代码的情况下可以直接操作应用。一个好的应用程序很大程度上决定于一个好的界面,一个好的用户体验。由于本设计的界面只是用于说明此功能的作用,因此,在对本系统界面上只是设计了些必要的应用程序,做到简洁明了。于是用户界面设计了标题栏、菜单栏、状态栏以及标致对话框等,本设计用户界面见图42图42PC上位机用户界面其中在“通信(C)”子菜单中还设置有打开视频的隐藏对话框。在这两个菜单中各自包含有子菜单,单击通信(C)可以显示出其包含的子菜单,有“连接小车(L)”、“断开连接(U)”、“打开视频(E)”、“关闭视频(D)”。单击打开视频选项会有视频对话框弹出。见图43图43视频对话框在“系统(S)”选项中包含有“设置”和“退出(CTRLQ)”两个在菜单。单击“设置”子菜单可以弹出系统设置对话框,如下图所示图44系统设置对话框452VB编程界面的设计方法在整个界面的程序设计中,分为三个窗体进行设计,第一个窗体为FIMWIFICARFRM,即为用户主界面。在这个放置了控制小车前、后、左、右以及停车按钮控件,舵机上摆、下摆,左摆、右摆的按钮控件。为了接收来之来自图像IP地址的信息,在这里添加了WINSOCK控件,此控件在运行时的不可见的。WINSOCK控件的功能就是基于客户机/服务器这个模型实现的,因此编程也要分成两部分进行一部分是控制端,另一部分是客户端控制方。服务器程序要在等候一个网址(IP)上等待客户程序的请求,即无线网卡接收来到图片信息。此时服务程序就会向服务器程序所在的网址请求连接,连接成功后通过交换信息就可以得到相应的服务。所以,在设置WINSOCK属性时,服务器端应该设置LOCALPOORT和应用LISTEN方法进行监听,客户程序也要设置REMOTEHOST和REMOTEPORT以及应用CONNECT方法请求连接,并使用SENDDATA方法互换信息。到此就解决了信息交换的问题了。当然,在上位机接收到来自WIFI信号的图片时应当要有一个图片储存器来存放图片,以便按顺序播放出来形成视频流,在此添加了IMAGELIST控件,它的作用就是图片的储藏室,同时,再和视频显示窗体绑定,摄像头的视频就可以视频显示窗口显示了。对于TIMER控件主要是用于播放图片的时间以及一些定时等。46ANDROID软件设计461ANDROID介绍ANDROID的本意是机器人,但由于当今智能机的普及,大多数人已忘却了它的本意,潜意识里ANDROID就是一个智能手机的操作系统,这也说明了ANDROID系统手机的火爆性。ANDROID是GOOGLE在2007年11月5日宣布的基于LINUX平台的开源造作系统的名称,从此,成为了移动终端真正开放和完整的移动软件,该平台主要由操作系统、中间件、用户界面和应用软件做成。其中,ANDROID系统的应用软件在所有的手机系统上占据了大壁江山。ANDROID基于LINUX技术,也延续了LINUX的开源精神,允许所有的开发者自由获取和修改源代码,因此它具备一套开源性质的手机终端解决方案。它具备有以下四个特点151开放性2应用程序平等3应用程序间无界限4快速方便的应用程序开发其中,能快速方便的应用程序开发性主要是ANDROID为开发者提供了大量的工具盒使用库,使得开发者可以快速地创建自己的应用程序。比如,在2012年GOOGLE有提供了集成了所有开发环境的ANDROIDDEVELOPERTOOLS的ECLIPSE开发平台,使得初学者跳过了开发环境的搭建,直接可以很容易开发自己的ANDROID应用软件。462ANDROID应用软件开发ANDROID编程开发语言是基于JAVA的,在开发ANDROID应用软件前很有必要学习JAVA语言的编程知识。虽然JAVA语言是面向对象的,但是有C语言基础的很容易上手,因此,在学习JAVA一段时间后就可以直接去实现ANDROID软件开发了。在本软件开发开发的主要思路是从摄像头采集的视频是路由器通过MJPEG格式以WIFI信号发出的,在编程使用函数PRIVATERUNNABLEMRUNNABLENEWRUNNABLE通过TCP/IP协议获取MJPEG数据流,再在CLASSDRAWVIDEOEXTENDSTHREAD函数里解析图片信息,就形成连续的图像了。ANDROID手机控制软件如图45图45ANDROID手机控制软件效果图第五章系统制作及调试51使用到的仪表仪器及工具1PC电脑一台;2双踪示波器一台;3TQ2440开发板一套4DT9250万用表一个;5ANDROID23系统智能手机一部;6电烙铁一个;7ADS开发软件一套;8ALTIUMDESIGNERWINTER09PCB电路制作软件一套9VISUALBASIC60中文企业版开发软件一套;10GOOGLEECLIPSE开发软件一套;52硬件制作及调试521系统PCB板的设计与制作系统的PCB板就是整个作品的电路板,在电路板上按照电路连接原理焊接上电子元器件,就可以实现了人们所设计好的电路效果。在所有的电子设备产品中,几乎都使用到PCB板来承载电路,在高密集、高层次的电路中特为显著。PCB设计是将理论设计实现到实际应用中的,因此,它的设计与制作对完成本设计作品尤为重要。在设计PCB时不仅要遵循电路板印制的设计规则与抗干扰措施的一般原则,并且要符合抗干扰性设计要求,特别是本设计中采用的是双层板电路设计,因避免形成线路电容对信号线的干扰。还有元器件的布局也应遵循电路合理安排的原则摆放,避免元器件布局影响电路走线以及元器件间的相互干扰。本设计使用了ALTIUM公司专门为电路设计开发的PROTEL系列电脑辅助软件设计完成SCH原理图,经过多次的论证与修改,再导到PCB进行电路板电路的设计。在打印机上打印出PCB油性图纸,再用热转印机将设计好的PCB转印到铜板中,最后使用腐蚀液进行去掉多余的铜,这样就完成了一个PCB铜板。完成PCB板后手工将电子元器件焊接上去,经过多次的测试后就可以整机装配。522系统硬件调试一个PCB电路板焊接完所有的电子元器件后,并不是说就一定能实现电路设计的效果,这还要经过多次的调试之后,看测试的效果是否符合设计才是最终完成PCB电路硬件制作。本系统的硬件调试分为以下阶段进行调试1逻辑错误调试在样机硬件电路出错时,首先要对SCH原理图进行的逻辑错误检查,比如是否有元器件管脚未连接、连接错误等。其次是对电路板焊接的元器件进行检查,比如元器件的管脚是否接错,焊接时是否出现虚焊,铜板线路是否有短路和断路等,这些都是在制作PCB板电路过程中常见的故障。2器件调试元器件失效也是引起制作电路板常见且隐蔽的错误之一,造成此现象的有三个原因一是器件本身已损坏或性能不符合要求;二是由于由于在焊接元器件时焊接过久过热,引起元器件烧坏,特别是贴片芯片,焊接时应注意焊接的技巧。三是组装错误造成的元器件失效,如电解电容、二极管的极性错误,集成块安装方向错误等。3可靠性调试引起系统不可靠的因素很多,如覆铜不合理未能屏蔽信号干扰、双层板过孔连接不好、接插件接触不良会造成系统运行不稳定等;内部和外部的信号干扰、电源纹波系数过大、器件负载过大等造成逻辑电平不稳定;另外,走线和布局的不合理等也会引起系统可靠性差。4电源故障在本作品中对电源的设计要求极为重要,电压出现些波动就会引起系统核心板复位,加上四个直流电机和两个舵机的运行时,拉电流特别大,也会影响到整个电路的供电问题。因此,在检测电路时首要检查的就是电源的正负极是否通路,只有不通路的情况下才能给电路板上电。电源的故障包括电压值不符合设计要求,高出或低于设置值都会对电路造成影响;电源引出线和插座不对应,模块间的电源连接线是否出现断裂,电源功率不足、负载能力差等,这些小小的问题都会引起系统运行的不稳定。在给作品上电之前,先使用万用表根据作品硬件的电气原理图以及PCB图仔细检电路板的正确性,并且核对元器件的型号、规格与焊接管脚是否符合要求。重点检查电源的走线,不能让电源正负极布线之间有短路和极性错误出现,还有检查TFT液晶软排线的接口焊盘是否存在相互间的短路;以及其它信号线的断路,在本次设计作品的硬件制作过程中出现了好多次失败就是因为液晶软排线的焊盘短路以及焊接时焊歪,在积累了多次经验后此类解决了。对于作品硬件所有的模块电源都要事先做了单独调试,调试好后,检查其电压值、负载能力、极性等均符合要求,然后加到系统的各个部件上。在不插片子的情况下,加电检查各插件上引脚的电位,仔细测量各地点电位是否正常,还特别注意ARM9核心板插座上的各点电位是否正常,防止了联机时会损坏核心板。53软件与硬件结合调试531系统主控程序调试系统主程序在刷机时出现的问题比较多,有时候编译好系统了下载去会有运行不正常或不能运行的情况出现,由于出现的几率比较少,并没有过深的去研究。个人分析很有可能是下载软件以及USB转串口不稳定。在嵌入系统里编程出现的困难主要是串口驱动这个模块出现的问题比较多,刚开始使用软终端去接收串口的信息,有么没反应要么接收出错。后来经过在网上论坛看到软终端执行的步调与系统运行会出现不协调问题,于是改用了外部中断直接去接收,并且成功解决了串口接收问题。532控制WIFI信号发送接收调试在系统程序的编写过程中,从简单的发送单字符开始测试,当单字符发送成功之后,就可以编写更为复杂的符号代码了,主要是为了区分控制代码间的干扰,使接收到的控制代码准确无误。图像的发送是单工传输的,只要程序能成功发送图片流出去,就不用过多的去处理就可以源源不断的发送。当上位机有控制信号发送时,WIFI信号会暂停发送图片,进入接收程序,进行接收命令。当然,上位机的控制信号是相当的简短的,只需很微小的时间就可以接收处理完。小车与上位机在短距离范围内(也就是WIFI信号能达到两格以上)是感觉不到视频流的卡顿的。因此,在测试时让小车与上位机处于开阔的环境中,效果会比较好。533上位机的程序调试在PC电脑上位机的测试过程中,偶尔会出现程序运行出错对话框弹出、视频对话框未能显示视频以及发送的代码会出错等。经过多次的优化程序,这些问题都能基本的解决了。对于ANDROID只能手机上的应用软件,测试的过程中出现过有时候视频卡顿、连接不上小车WIFI信号或连接过久、控制信号发送不出、舵机控制出错等等,经过最后一段时间的程序优化,虽然解决了一部分问题,但是还存在控制舵机上有些毛病,这有待继续研究探索改正。第六章总结与展望61总结本次毕业设计根据设计任务,构思想法到提出论证方案,最后再做出作品。在这过程中,不仅基本完成了开题报告中的设计要求,而且尝试去开发ANDROID应用软件,并去得了一定的成功,这也是本毕业设计的创新之处。本作品涉及的知识面比较广,在软硬件方面都有所知识延伸扩展。软件方面,有嵌入式系统的编程移植开发、VB应用软件编程、JAVA语言学习以及ANDROID应用软件的编程开发;在硬件方面,有涉及到ARM9系统底板的双层PCB布线、贴片封装的焊接、电源电压的稳定设计等。本设计是基于ARM9嵌入式系统开发,实现了PC电脑与ANDROID智能手机上位机上观看车载视频摄像头拍摄到的视频,实现了视频检测的目的。而且可以使用上位机控制小车自由行走与摄像头云台的旋转,使得视频检测更加人性化。完善本作品后,实现无人检测与探索未知环境都得以实现。从开题报告到作品硬件成功实现,这一路走过来,虽然遇到了很多很多的问题与困难,但也收获了许许多多的以前没有涉及到或者注意到的知识,不仅提高了自己的分析问题解决问题与动手能力,而且沉淀了更多的知识。62工作展望通过本次毕业设计,自己学会了很多在课本上不能学到的知识,动手实践能力也得到了大大提升,这都为以后的学习工作打下了良好基础。本次毕业设计作品基本上能完成了所有开题报告里的任务,其中涉及到的ARM9嵌入式系统与ANDROID应用软件开发方面的知识,由于时间的紧迫,学习只是很表面的,并没能很深入的研究。这对以后想从事这方面工作的远远不够。比如在嵌入式方面的系统启动代码、内核驱动等,都学要持之以恒的学习研究。ANDROID应用软件的UI设计、数据库连接等都需要不断的学习实践。希望能在这次作品中学到的知识作为以后学习的基础,不断深入研究,不断的实践应用。将来开发能引领科技前沿的作品。参考文献1覃俊等C语言程序设计教程M北京清华大学出版社,2008,51702弓雷ARM嵌入式LINUX系统开发详解M北京清华大学出版社,2010,156993魏红从零开始学LINUXM北京中国铁道出版社2010,121964赵瑞芳基于ARM9的嵌入式系统研究及其在视频电子警察系统中的应用D桂林电子科技大学硕士学位论文,2007,35王恒等基于ARM9的USB摄像头图像采集压缩及无线传输J电视技术2011年第35卷29396天嵌科技研发部TQ2440开发板使用手册V25Z2010,107康华光等电子技术基础(模拟部分第五版)M北京高等教育出版社,2006,1231858王小强ARM处理器裸机开发实战机制而非策略M北京电子工业出版社2012,113709曹忠明MJPGSTREAMER源码分析HTTP/BLOGCSDNNET/FENGYAQI123DETAILS/80530062012,100910RICKROGERSANDROID应用开发M北京人民邮电出版社2010,9127011张建辉等VISUALBASIC从初学到精通M北京电子工业出版社2010,6139412隋丽娜等VISUALBASIC范例开发大全M北京清华大学出版社2010,648355313DAVIDSEALARMAR

温馨提示

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

评论

0/150

提交评论