本科毕业论文--基于arm9的救灾机器人设计_第1页
本科毕业论文--基于arm9的救灾机器人设计_第2页
本科毕业论文--基于arm9的救灾机器人设计_第3页
本科毕业论文--基于arm9的救灾机器人设计_第4页
本科毕业论文--基于arm9的救灾机器人设计_第5页
已阅读5页,还剩35页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

咸阳师范学院2011届本科毕业毕业论文PAGE36PAGE36PAGE37PAGEI1072210722学校代码公开分类号公开分类号密级密级学号学号基于ARM9的救灾机器人基于ARM9的救灾机器人设计 DesignofRescueRobotBasedOnARM9作者姓名作者姓名电气工程自动化所学专业电气工程自动化所学专业工学学科门类指导教师指导教师李艳红李艳红提交论文日期提交论文日期成绩评定成绩评定二零一三二零一三年五月摘要 IAbstract II1绪论 41.1项目研究的意义 41.2国内外的研究现状 41.2.1国外的研究现状 41.2.2国内的研究现状 41.3本无线视频监控系统的主要研究工作 52救灾机器人系统方案 52.1项目整体解决方案 52.2视频采集部分 62.2.1视频采集硬件部分 62.2.2视频采集软件部分 62.3服务器与控制部分 62.3.1服务器与控制硬件部分 62.3.2服务器与控制软件部分 72.4无线数据传输部分 72.4.1无线数据传输硬件部分 72.4.2无线数据传输软件部分 82.5WEB控制台部分 82.6传感器部分 82.6.1数字温湿度传感器DHT11 82.6.2MQ-2气体传感器 92.6.3BISS0001红外模块 93功能与指标 93.1系统功能 103.2系统指标 104实现原理 104.1视频采集模块 104.2服务器模块 134.3无线网络传输模块: 164.3.1内核配置 164.3.2网卡驱动交叉编译 194.3.3驱动测试 204.4可移动平台模块: 224.5传感器模块: 284.6PC机视频控制客户端模块 285硬件框图 345.1本系统结构图 345.2本系统实物连接图 34谢辞 37摘要机器人在当今社会生活中扮演着至关重要的角色,国际国内市场现有的多种机器人涵盖了安检、市场、生活、消防、科研等诸多领域。本系统通过分析现有的机器人系统的优缺点,并针对今年来国内国外多发的自然灾害现象,提出了一种可以进行高危环境实施救援的任务救灾机器人。其最大特点便是可以在任意一台连接互联网的PC机上对其进行控制。在此基础上提出可无线视频监控多功能救灾机器人解决方案:基于物联网技术与嵌入式技术实现远程无线可移动的视频监控系统,依托北京博创公司的UP-StarS3C2410、和无线网卡WI-FI作为硬件载体,综合应用WLAN、嵌入式Linux和JSP技术等技术,以程序软件的通用性和易用性为方向,实现无线视频和机器人系统控制以及环境信息采集。本项目是基于物联网技术与嵌入式技术实现远程无线可移动的视频监控系统,利用三星公司的S3C2410最小系统板基于嵌入式linux操作系统建,在开发板上搭建BOA服务系,利用摄像头采集实时视频数据。然后在客户机上利用浏览器并通过无线网络网络访问开发板,客户端在实时监控的同时可通过网页上的控制按钮对搭载摄像头以及机械臂的小车进行控制,同时能够收集到传感器对环境的侦测信息并显示在网页上。本无线视频多功能救援系统在开发时间、功能、软件升级、软件移植复用、价格等方面都有很好的折中,在性价比方面有一个满意的结合点,依赖于较大的性价比优势,且其良好的性能和用户界面、人机交互符合探测设备发展要求与趋势,无疑该系统的应用将提升救援行业的服务理念和救援模式,因此可以相信本系统在将来的救援设备中具有很好的发展前景。本设计报告首先介绍了无线视频监控系统的研究背景,同时介绍了系统的研究工作及实现目标。然后,分别以模块为单位阐述了系统的构建。其次,针对Linux操作系统开发环境选择、搭建及机器人的控制做了详细介绍。接着介绍了视频终端程序的设计,包括界面设计、程序的实现、测试及搭建服务器网站,最后涉及到无线网卡驱动、根文件系统制作及对论文做了概括性总结和结果分析,同时对后续工作进行了展望。关键词:Linux;java;WI-FI;S3C2410;救灾AbstractRobotplaysacrucialroleintoday'ssociety.Internationalanddomesticmarket,therobotcoversavarietyofexistingsecurity,marketing,life,fire,researchandotherareas.Thesystembyanalyzingtheadvantagesanddisadvantagesoftheexistingrobotsystems,andforthisyeartodomesticandforeignphenomenonofmultiplenaturaldisasters,weproposeahigh-riskenvironmentcanimplementthetaskofdisasterreliefrobots.ItsmostimportantfeatureisthatyoucanconnecttotheInternetinRenyiyitaiaPCtocontrolit.Thiscanbebasedonthemulti-functionwirelessvideosurveillancesolutionsfordisasterreliefrobot:object-basednetworkingtechnologyandembeddedtechnologyforwirelessmobileremotevideosurveillancesystem,relyingonBeijingBorch'sUP-StarS3C2410,andwirelessLANWIAsacarrier-FIhardware,integratedapplicationWLAN,embeddedLinuxandJSPtechnologytosoftwareversatilityandeaseofuseforthedirectionofwirelessvideoandrobotcontrolsystems,andenvironmentalinformationcollection.TheprojectisbasedontheInternetofThingstechnologyandembeddedtechnologyforwirelessmobileremotevideosurveillancesystem,usingSamsung'sS3C2410minimumsystemboardisbasedonembeddedlinuxoperatingsystembuiltonthedevelopmentboardtobuildBOAServicesDepartment,theuseofcameraacquisitionreal-timevideodata.Andthenusethebrowserontheclientandnetworkaccessthroughawirelessnetworkdevelopmentboard,theclient,whileinreal-timemonitoringonthewebpagecanbeequippedwithcontrolbuttonsonthecameraandthecontrolarmofthecar,whileabletocollectthesensorontheenvironmentdetectanddisplayinformationontheweb.Thewirelessvideosysteminthedevelopmentofmulti-functionrescuetime,features,softwareupgrades,softwareportingreuse,andpriceshaveaverygoodcompromiseinpricehaveasatisfactorycombinationofpoints,dependentonthelargecostadvantage,anditsgoodperformanceanduserinterface,human-computerinteractionrequirementsinlinewiththetrenddetectionequipmentdevelopment,theapplicationofthesystemwillundoubtedlyenhancetheserviceindustry,theconceptofreliefandrescuemode,soyoucanbelieveinthefuture,thissystemhasaverygoodrescueequipmentprospectsfordevelopment.Thereportfirstdescribesthedesignofwirelessvideosurveillancesystemresearchbackground,alsointroducedthesystemofresearchandachievegoals.Then,eachdescribedinthemoduleasaunittobuildthesystem.Second,thedevelopmentenvironmentfortheLinuxoperatingsystemchoice,buildandcontrolrobotstodoindetail.Thenintroducedthevideoterminalprogramdesign,includinginterfacedesign,programimplementation,testing,andsetuptheserversite,andfinallycomestothewirelessnetworkcarddriver,makingtherootfilesystemanddoageneralsummaryofthethesisandanalysisofresults,whilethefollow-upwaspredicted.Keywords:Linux;java;system;WI-FI;S3C2410;Rescue1绪论本章主要介绍无线视频监控系统的来源、研究目的和意义,并简要介绍无线视频监控系统所做的主要研究工作。1.1项目研究的意义根据近几年地震救援情况不难看出,由于地震发生后废墟结构极不稳定,很容易对在废墟中的救援队员造成危险。而涉核、涉化设施的震后救援,更充满危险性。比如此次日本地震,中国国际救援队奔赴的是遭受严重海啸灾害的日本岩手县大船渡市。据了解,在日本参与救援的各国救援队,这次主要还是携带生命探测仪、切割装置等救援设备。由于目前重灾区面临核泄漏危机这一特殊情况,各国救援队正面临救援难题。特别是灾区下雪后,冒着严寒,中国国际救援队先后在岩手县大船渡市完成了对200余幢房屋的拉网式排查搜索。据介绍,一些大面积的倒塌建筑,可以借助机械挖掘搜索,但一些缝隙、狭小空间等,救援队员进去有危险,大型设备又没有“用武之地”,就需要一些特定的设备来完成搜救。72小时是地震救援的黄金救援时间,由于现在震后主要的救援措施还是人工搜索。人工搜索对震后救援带来严重的局限性。比如无法进入狭小地带,而且自身安全无法得到保障。所以研究一款救灾机器人非常必要,它将代替人进入危险狭小环境进行灾情侦查,搜集环境信息,为后续救援提供强有力的保障。在地震发生后,一些大面积的坍塌建筑可以借助机械挖掘搜索,但一些缝隙、狭小的空间,队员进去有危险,大型设备又没有“用武之地”,就需要一些特定的设备来完成搜救。1.2国内外的研究现状1.2.1国外的研究现状在国外,救灾机器人发展迅速,技术日益成熟,并进入实用化阶段,日本、美国、英国等已开始装备使用。在灾难现场中,救灾机器人应能迅速找到幸存者的位置。日本大阪大学研制出蛇形机器人,能在高低不平的模拟废墟上前进,其顶端带有1部小型监视器,身体部位安装传感器,可以在地震后的废墟里寻找幸存者。美国iRobot公司研制了PackBot系列机器人,能适应崎岖不平的地形环境和爬楼梯,主要执行侦察任务、寻找幸存者、勘探化学品泄漏等任务。InuKtun公司研制了机器人MicroVGTV,机身可变位,采用电缆控制,含有直视的彩色摄像头,并带有微型话筒和扬声器,可用于与压在废墟中的幸存者通话,适用于在小的孔洞和空间中执行任务。除了前面的中小型救灾机器人,微型救灾机器人也正在研究中,美国加州大学伯克利分校研制出世界第1个苍蝇机器人,通过装在它脑袋上的微型传感器与微型摄像机,可以到倒塌的建筑物废墟底下或其他灾难场所寻找幸存者。1.2.2国内的研究现状2011年3月中科院沈阳自动化研究所获悉,“废墟搜索与辅助救援机器人”课题取得重要进展,多款具有自主知识产权的地震救援机器人已经研制成功,且已通过联调集成实验,有望于“十二五”期间应用到地震救援中。目前空中搜索探测机器人、废墟洞穴可变形搜救机器人、废墟表面搜救机器人、智能机械手爪等系列机器人已经研制成功。1.3本无线视频监控系统的主要研究工作本无线视频监控系统通过研究现有的无线视频监控系统的解决方案,以当代广泛应用的IEEE802.llb无线WLAN技术为基础,利用现有ARM9为核心的S3C2410开发板,配合购置的TP-Link的TP-WN321G+USB无线网卡组成系统的硬件平台,通过路由器连接到PC客户控制机,并在PC机上构建服务网站,处理和控制机器人信息数据。2救灾机器人系统方案本系统包括五大部分:1.视频采集部分2.服务器与控制部分3.无线数据传输部分4.WEB控制台部分5传感器部分,本章将分别对5个部分进行说明。2.1项目整体解决方案参考己有的无线视频系统的无线通讯方案,以当前广泛应用的IEEE802.llbWLAN技术为基础,利用现有ARM9为核心的S3C2410开发板,配合购置的TP-WN321G+USB无线网卡组成的系统,通过TP-WN321G与无线路由器连接到BOA服务器,构成无线局域网(WLAN);另一方面,在PC机上制作无线视频控制页面,通过该WLAN以Browser/Server的模式与服务器交互,进行机器人信息检测与控制相关操作,构成整个无线视频监控系统。项目成品图如2.1所示。图2.12.2视频采集部分2.2.1视频采集硬件部分 项目使用中芯微公司zc301芯片的摄像头,该摄像头成像清晰,运行稳定,成本低,是项目首选。摄像头如图2.2所示。图视频采集软件部分 摄像头的驱动我们利用的是linux系统下的一个开源驱动程序gspcav1。它是linux下基于v4l的非常优秀的摄像头驱动程序,可以支持多款摄像头。2.3服务器与控制部分2.3.1服务器与控制硬件部分 在本系统中的硬件平台直接利用博创公司开发的ARM9开发板S3C2410。开发板如图2.3所示。图2.3ARM(AdvancedRISCMachines)公司是1991年在英国剑桥成立的半导体设计公司,是一家知识产权(IP)供应商。它本身不生产芯片,通过转让设计方案由合作伙伴生产各具特色的芯片。常见的ARM处理器是半导体公司基于ARM的处理器核或处理器为核心,针对某一应用领域的再开发芯片。ARM9作为一种嵌入式系统处理器,具有高性能、低功耗、低成本等优点,占领了很大部分嵌入式市场。S3C2410开发板使用博创公司的ARM9核心s3C2410X处理器,主频为203MHz,完全可以满足本系统的需求。2.3.2服务器与控制软件部分随着Internet技术的兴起,在嵌入式设备的管理与交互中,基于Web方式的应用成为目前的主流,这种程序结构也就是大家非常熟悉的B/S结构,即在嵌入式设备上运行一个支持脚本或CGI功能的Web服务器,能够生成动态页面,在用户端只需要通过Web浏览器就可以对嵌入式设备进行管理和监控,非常方便实用。本节主要介绍这种应用的开发和移植工作。

用户首先需要在嵌入式设备上成功移植支持脚本或CGI功能的Web服务器,然后才能进行应用程序的开发。应用:1.发布网页。2.视频监控系统设计。3.远程控制系统设计。Boa是一个非常小巧的Web服务器,可执行代码只有约60KB。它是一个单任务Web服务器,只能依次完成用户的请求,而不会fork出新的进程来处理并发连接请求。但Boa支持CGI,能够为CGI程序fork出一个进程来执行。Boa的设计目标是速度和安全,在其站点公布的性能测试中,Boa的性能要好于Apache服务器。BOA服务器上建立的无线视频监控系统网站是整个无线视频监控系统的中枢,是提供传感器信息的采集,实时视频信息的采集,PC机客户端网页访问等信息的更新处理实际上都是在服务器上完成。具体地,主要包括登录、机器人信息检测与控制等功能页面。2.4无线数据传输部分2.4.1无线数据传输硬件部分 本项目无线传输使用的是TP-LINKWN321G+无线网卡作为机器人的传输终端,WR340无线路由器作为中继器,实现机器人与控制端之间的数据通信。无线网卡如图2.4所示,无线路由器如图2.5所示。图2.4图无线数据传输软件部分 主要是无线网卡的驱动程序,2009_0206_RT73_Linux_STA_Drv是linux系统下的开源网线网卡驱动,期中就支持项目所使用的TP-LINKWN321G+无线网卡。2.5WEB控制台部分 WEB控制台运用HTML和JSP编写的集视频查看、机器人控制、传感器信息查看功能于一体的WEB控制页面。可以方便的通过IE浏览器打开此页面从而实现对机器人的控制与信息查看。WEB控制台如图2.6所示。图2.62.6传感器部分2.6.1数字温湿度传感器DHT11实物如图2.7图2.7 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为4针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。2.6.2MQ-2气体传感器 实物如图2.8图2.8MQ-2气体传感器特点:广泛的探测范围,高灵敏度,快速响应恢复,优异的稳定性,寿命长,简单的驱动电路。可用于家庭和工厂的气体泄漏监测装置,适宜于液化气、丁烷、丙烷、甲烷、酒精、氢气、烟雾等的探测。2.6.3BISS0001红外模块实物如图2.8图2.9热释电红外开关是BISS0001配以热释电红外传感器和少量外接元器件构成的被动式红外开关。它能自动快速开启各类白炽灯、荧光灯、蜂鸣器、自动门、电风扇、烘干机和自动洗衣机等装置,是一种高技术产品。特别适用于企业,宾馆、商场、库房及家庭的过道、走廊等敏感区域,或用于安全区域的自动灯光、照明和报警系统。全自动感应:当有人进入其感应范围则输入高电平,人离开感应范围则自动延时关闭高电平,输出低电平。3功能与指标3.1系统功能 通过嵌入式无线摄像头实现视频采集,以及实现在网络中任意一台接入互联网的电脑都可以实现对他的访问和查看视频、对小车和机械臂实现控制,并可以在实现温度采集,气体分析,生命探测等。该项目可以帮助用户应用于紧急营救场景分析,代替工作人员进入高危无人区,查看工作现场突发紧急情况,并为后台人员提供现场实时信息。项目可以推广到核电厂的高放射性的车间,冶炼厂的高温车间以及化工行业的有毒有害的自动工作车间,代替人查看现场情况。可以推广应用到救灾,消防,侦察,排爆,智能家居等领域。3.2系统指标1.续航时间>=2小时;2.传输距离:室内<=100米,室外<=200米;3.工作环境:涉核涉化,高温有毒,震后救灾等危险环境;4实现原理本系统总共包括7个模块,本章将对各个模块的实现原理进行说明。4.1视频采集模块利用LINUX下GSPCAV驱动程序实现对基于中芯微公司zc301芯片的摄像头驱动,实现视频采集功能。系统使用的是基于中星微ZC301解码芯片的摄像头,由于博创S3C2410开发板自带的linux2.6.24内核中集成了gspcav1万能摄像头驱动,所以我们只需要将gspcav1添加进内核,重新编译内核就可实现对摄像头的驱动。进入虚拟机,进入内核所在文件夹:#cd/up-Star2410/exp/kernel/linux-配置内核:#makemenuconfig进入配置界面:b)编译内核:(1)Multimediadevices

>

VideoForLinux(2)

USBsupport

>

SupportforHost-sideUSBUSBHostControllerDrivers

OHCIHCDsupport

USBMultimediadevices

USBSPCA5XXSunplus/Vimicro/SonixjpegCameras保存内核配置退出,把新生成的uImage烧进开发板,重启,插上中星微芯片的摄像头,命令行出现#usb1-1:newfullspeedUSBdeviceusings3c2410-ohciandaddress2

usb1-1:configuration#1chosenfrom1choice

drivers/usb/media/gspcav1-20071224/gspca_core.c:USBGSPCAcamerafound.(ZC3XX)

说明移植的驱动已经能识别设备,设备名所在路径/dev/video0。4.2服务器模块嵌入式Web服务器移植

由于嵌入式设备资源一般都比较有限,并且也不需要能同时处理很多用户的请求,因此不会使用Linux下最常用的如Apache等服务器,而需要使用一些专门为嵌入式设备设计的Web服务器,这些Web服务器在存贮空间和运行时所占有的内存空间上都会非常适合于嵌入式应用场合。

典型的嵌入式Web服务器有Boa()和thttpd(/software/thttpd/)等,它们和Apache等高性能的Web服务器主要的区别在于它们一般是单进程服务器,只有在完成一个用户请求后才能响应另一个用户的请求,而无法并发响应,但这在嵌入式设备的应用场合里已经足够了。

我们绍比较常用的Boa服务器的移植。

第一步完成Boa程序的移植。从下载Boa源码,当前最新版本为0.94.13,将其解压并进入源码目录的src子目录

#tarxzfboa-0.94.13.tar.gz

#cdboa-0.94.13/src

生成Makefile文件

#./configure

修改Makefile文件,找到CC=gcc,将其改成CC=arm-linux-gcc,再找到CPP=gcc–E,将其改成CPP=arm-linux-gcc–E,并保存退出。

然后运行make进行编译,得到的可执行程序为boa,将调试信息剥去,得到的最后程序只有约60KB大小。

#make

#arm-linux-stripboa第二步完成Boa的配置,使其能够支持CGI程序的执行。先仔细阅读下面,主要是为了先准备好需要的东西,即先把药配置的文件修改好,最后在把他们送到需要送到的目录中去。以下只是一个文件的配置内容:1.Boa需要在/etc目录下建立一个boa目录,里面放入Boa的主要配置文件boa.conf。在Boa源码目录下已有一个示例boa.conf,可以在其基础上进行修改,下面解释一下该文件的含义:

(1)#监听的端口号,缺省都是80,一般无需修改

Port80

(2)#bind调用的IP地址,一般注释掉,表明绑定到INADDR_ANY,通配于服务器的所有IP地址

#Listen

(3)#作为哪个用户运行,即它拥有该用户的权限,一般都是nobody,需要/etc/passwd中有

#nobody用户

Usernobody

(4)#作为哪个用户组运行,即它拥有该用户组的权限,一般都是nogroup,需要在/etc/group文

#件中有nogroup组

Groupnogroup->Group0改成0时有效的

(5)#当服务器发生问题时发送报警的email地址,目前未用,注释掉

#ServerAdminroot@localhost

(6)#错误日志文件。如果没有以/开始,则表示从服务器的根路径开始。如果不需要错误日志,则用#/dev/null。在下面设置时,注意一定要建立/var/log/boa目录

ErrorLog/var/log/boa/error_log

(7)#访问日志文件。如果没有以/开始,则表示从服务器的根路径开始。如果不需要错误日志,则用#/dev/null或直接注释掉。在下面设置时,注意一定要建立/var/log/boa目录

#AccessLog/var/log/boa/access_log

(8)#是否使用本地时间。如果没有注释掉,则使用本地时间。注释掉则使用UTC时间

#UseLocaltime

(9)#是否记录CGI运行信息,如果没有注释掉,则记录,注释掉则不记录

#VerboseCGILogs

(10)#服务器名字

ServerName

(11)#是否启动虚拟主机功能,即设备可以有多个网络接口,每个接口都可以拥有一个虚拟的Web服

#务器。一般注释掉,即不需要启动

#VirtualHost

(12)#非常重要,HTML文档的主目录。如果没有以/开始,则表示从服务器的根路径开始。

DocumentRoot/var/www

(13)#如果收到一个用户请求的话,在用户主目录后再增加的目录名

UserDirpublic_html

(16)#HTML目录索引的文件名,也是没有用户只指明访问目录时返回的文件名

DirectoryIndexindex.html【这里的index.html文件就是你等下在/var/www放的要运行的文件】【在实践过程中,这个文件的后缀名必须为html,htm不行】

(15)#当HTML目录没有索引文件时,用户只指明访问目录时,boa会调用该程序生成索引文件然后

#返回给用户,因为该过程比较慢最好不执行,可以注释掉或者给每个HTML目录加上#DirectoryIndex指明的文件

#DirectoryMaker/usr/lib/boa/boa_indexer

(16)#如果DirectoryIndex不存在,并且DirectoryMaker被注释,那么就用Boa自带的索引

#生成程序来生成目录的索引文件并输出到下面目录,该目录必须是Boa能读写

#DirectoryCache/var/spool/boa/dircache

(17)#一个连接所允许的HTTP持续作用请求最大数目,注释或设为0都将关闭HTTP持续作用

KeepAliveMax1000

(18)#HTTP持续作用中服务器在两次请求之间等待的时间数,以秒为单位,超时将关闭连接

KeepAliveTimeout10

(19)#指明mime.types文件位置。如果没有以/开始,则表示从服务器的根路径开始。可以注释掉

#避免使用mime.types文件,此时需要用AddType在本文件里指明

MimeTypes/etc/mime.types

(20)#文件扩展名没有或未知的话,使用的缺省MIME类型

DefaultTypetext/plain

(21)#提供CGI程序的PATH环境变量值

CGIPath/bin:/usr/bin:/usr/local/bin

(22)#将文件扩展名和MIME类型关联起来,和mime.types文件作用一样。如果用mime.types

#文件,则注释掉,如果不使用mime.types文件,则必须使用

#AddTypeapplication/x-httpd-cgicgi

(23)#指明文档重定向路径

#Redirect/barhttp://elsewhere/feh/bar

(24)#为路径加上别名

Alias/doc/usr/doc

(25)#非常重要,指明CGI脚本的虚拟路径对应的实际路径。一般所有的CGI脚本都要放在实际路径

#用户访问执行时输入站点+虚拟路径+CGI脚本名

ScriptAlias/cgi-bin//var/www/cgi-bin/这里是把准备好了的文件放到相应的目录中去,目录要创建的就用mkdir创建。

用户可以根据自己需要,对boa.conf【即以上配置的文件】进行修改,但必须要保证其他的辅助文件和设置必须和boa.conf里的配置相符,不然Boa就不能正常工作。在上面的步骤完成后,(1)我们还需要创建日志文件所在目录/var/log/boa。(2)创建HTML文档的主目录/var/www。后缀一定需要是html.(3)将mime.types文件拷贝到/etc目录,mime.types文件用来指明不同文件扩展名对应的MIME类型,一般可以直接从Linux主机上拷贝一个,大部分也都是在主机的/etc目录下。(4)创建CGI脚本所在目录/var/www/cgi-bin/。第三步:回到你对boa.0.94.13-tar.gz解压的目录下的/src目录下,输入#./boa此时使用#ps可以看到有个进程为boa,负责boa服务没有运行。第四步:把boa文件添加到文件系统中,重新下载文件系统,使系统启动时就自动运行boa服务。在开发板/root目录下新建/www目录。boa应该是没有问题的,下面具体介绍用spcaserv架设Webcam.现在摄像头已经能用了,现在就需要一个采集并转发图像数据的服务器以及一个显示图像的客户端.去这个地址http://mxhaard.free.fr/spca50x/Download/oldrelease/下载spcaview.我下的是spcaview-20051212.tar.gz,我在/home/下建了个spcaview目录,spcaview-20051212.tar.gz也放在这个文件夹下.解压包:tar–zxvfspcaview-20051212.tar.gz解压后生成spcaview-20051212.tar.gz目录,进入此目录.编译安装spcaview:

make;生成以下三个可执行程序,分别解释一下:Spcaview工具是用来纪录数据流,也能用来播放数据;也能做为网络监视客户端用;Spcaserv是流媒体服务器,我们就是用这个工具来做监控服务器;Spcacat简单图片的抓取工具,不能用于网络监视客户端;在上面的spcaview目录中,有一个目录http-java-applet。把此目录里面的所有文件拷到boa服务器的/root/www目录下,注意要设置此文件的权限。 #chmod777/root/www【移植servfox】其实spcaview也可以做采集端。但是移植起来没有servfox简单,所以采集数据端选用servfox。下载,解压,进入其目录,然后输入命令

make,生成servfox可实行文件servfox,把此可执行文件拷贝到开发板的/root目录下。在开发板中运行servfox–d/dev/video0–s320x240–w7070就可以看到如下的提示信息:servfoxversion:1.1.2date:07:10:2005(C)mxhaard@magic.frWaitingforconnection.CTrl_ctostop!!!!说明servfox已成功运行起来了。4.3无线网络传输模块:嵌入式2.6内核上驱动USB无线网卡开发板:博创S3C2410,USB无线网卡:TL-WN321G/WN321G+软件环境:linux2.6.24网卡驱动:2009_0206_RT73_Linux_STA_Drv4.3.1内核配置1.重新配置内核#makeclean清理内核原有编译内容(不能用makemrproper)进入系统内核配置菜单#makemenuconfig选择:DeviceDrivers>Networkdevicesupport>WirelessLAN(non-hamradio)>[*]WirelessLAN(non-hamradio)//只需此项,其他的不选然后保存退出.4.3.2网卡驱动交叉编译1.修改Makefile(a).使用2.6内核的Makefile文件:$mvMakefile.6Makefile(b).将原有的CC注释掉,修改编译器CC:=arm-linux-gccLD:=arm-linux-ld(c).Makefile里面有下面一句:include./config.mk文件config.mk的内容是内核的路径信息,只需要修改为自己使用的内核源代码路径即可,如:LINUX_SRC=/work/kernelTARGET_MODDIR=/work/kernel/net2.修改文件(a).文件格式可能是dos格式的,会引起编译器报错,可以在编译之前使用dos2unix转化一下:$dos2unix*(b).修改rtmp.h文件的第739行左右其中有个__TX_BUFFER的定义是错的,需要注释掉union,如下:/typedefstruct__TX_BUFFER{TXD_STRUCTxDesc;//union{UCHARWirelessPacket[2342];HEADER_802_11NullFrame;PSPOLL_FRAMEPsPollPacket;RTS_FRAMERTSFrame;//};}TX_BUFFER,*PTX_BUFFER;(c),在rt_config.h中有两个define,如下:#definePROFILE_PATH"/etc/Wireless/RT73STA/rt73sta.dat"#defineRT2573_IMAGE_FILE_NAME"/etc/Wireless/RT73STA/rt73.bin"在激活网卡的时候驱动会读取/etc/Wireless/RT73STA/下面的rt73sta.dat和rt73.bin两个文件,其中rt73sta.dat是驱动的配置文件,里面的信息包括AP(AccessPoint,接入点)的ESSID,Channnel,BitRate,WirelessMode,KEY,AuthMode,NetworkType等,详细解释请参考README,rt73.bin是网孔的firmware,版本的驱动可以没有此文件,因为已经这个版本的驱动已经把rt73.bin文件转换为C语言数组存放在rtmp_init.c文件里,不需要使用hotplug事件去加载rt73.bin了。然后make,如果没有错误就OK,有错误的话就根据提示进行修改。不要怕有错误,仔细分析,然后耐心解决就行了。4.3.3驱动测试(a)把编译好的驱动加载到板子上,并且把rt73sta.dat和rt73.bin两个文件copy到/root/wireless/。(b)加载驱动:#insmodrt73.koUsingrt73.kortusbinit====>usb.c:registerednewdriverrt73idVendor=0x148f,idProduct=0x2573(c设置网卡并添加路由:[/root]ifconfigrausb011netmaskup[/root]routeadddefaultgwnetmask[/root]ifconfigrausb0rausb0Linkencap:EthernetHWaddr00:23:CD:AC:FE:12inetaddr:11Bcast:55Mask:UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1RXpackets:33838errors:0dropped:0overruns:0frame:0TXpackets:15688errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:100RXbytes:2888084(2.7MiB)TXbytes:1031928(1007.7KiB)(d)查看无线信息:[/root]iwconfigrausb0rausb0RT73WLANESSID:"linux"Mode:ManagedFrequency=2.412GHzAccessPoint:00:23:CD:82:38:E4BitRate=11Mb/sRTSthr:offFragmentthr:offEncryptionkey:offLinkQuality=95/100Signallevel:-46dBmNoiselevel:-79dBmRxinvalidnwid:0Rxinvalidcrypt:0Rxinvalidfrag:0Txexcessiveretries:0Invalidmisc:0Missedbeacon:0(e)ping网关(无线路由):[/root]pingPING():56databytes64bytesfrom:icmp_seq=6ttl=128time=8.4ms64bytesfrom:icmp_seq=7ttl=128time=8.2ms64bytesfrom:icmp_seq=8ttl=128time=5.4ms(f)ping另外一台连接到无线网络的主机:[/root]ping00PING00(00):56databytes64bytesfrom00:icmp_seq=0ttl=128time=57.9ms64bytesfrom00:icmp_seq=1ttl=128time=29.2ms64bytesfrom00:icmp_seq=2ttl=128time=34.0ms可以把上面的这些命令都写在脚本里,这样下次使用起来会很方便,脚本内容:#!/bin/shinsmodrt73.oifconfigrausb011netmaskuprouteadddefaultgwnetmask如果路由配置有变动,请重新配置rt73sta.dat文件,具体的各个选项的含义参见README,修改后重启网卡即可生效。4.4可移动平台模块:利用ARM开发板的GPIO口通过linuxC语言编写驱动程序实现控制搭载平台的移动。本坦克模块主要驱动程序如下:staticintxc_ioctl(structinode*inode,structfile*file,unsignedintcmd,unsignedlongarg){switch(cmd){case1:s3c2410_gpio_setpin(A,L);s3c2410_gpio_setpin(B,H); s3c2410_gpio_setpin(C,L);s3c2410_gpio_setpin(D,H);printk("aaaaaaaaaa");break;case2:s3c2410_gpio_setpin(A,H);s3c2410_gpio_setpin(B,L); s3c2410_gpio_setpin(C,H);s3c2410_gpio_setpin(D,L);printk("bbbbbbbbbb");break;case3:s3c2410_gpio_setpin(A,H);s3c2410_gpio_setpin(B,L); s3c2410_gpio_setpin(C,L);s3c2410_gpio_setpin(D,H);printk("cccccccccccc");break;case4:s3c2410_gpio_setpin(A,L);s3c2410_gpio_setpin(B,H); s3c2410_gpio_setpin(C,H);s3c2410_gpio_setpin(D,L);printk("dddddddddddd");break;case5:s3c2410_gpio_setpin(A,H);s3c2410_gpio_setpin(B,H); s3c2410_gpio_setpin(C,H);s3c2410_gpio_setpin(D,H);printk("eeeeeeeeeee");break;case6:s3c2410_gpio_setpin(E,H);s3c2410_gpio_setpin(F,L);s3c2410_gpio_setpin(G,L);s3c2410_gpio_setpin(N,L);mdelay(3);s3c2410_gpio_setpin(E,L);s3c2410_gpio_setpin(F,H);s3c2410_gpio_setpin(G,L);s3c2410_gpio_setpin(N,L);mdelay(3);s3c2410_gpio_setpin(E,L);s3c2410_gpio_setpin(F,L);s3c2410_gpio_setpin(G,H);s3c2410_gpio_setpin(N,L);mdelay(3);s3c2410_gpio_setpin(E,L);s3c2410_gpio_setpin(F,L);s3c2410_gpio_setpin(G,L);s3c2410_gpio_setpin(N,H);mdelay(3);printk("111111111111");break;case7:s3c2410_gpio_setpin(E,L);s3c2410_gpio_setpin(F,L);s3c2410_gpio_setpin(G,L);s3c2410_gpio_setpin(N,H);mdelay(3);s3c2410_gpio_setpin(E,L);s3c2410_gpio_setpin(F,L);s3c2410_gpio_setpin(G,H);s3c2410_gpio_setpin(N,L);mdelay(3);s3c2410_gpio_setpin(E,L);s3c2410_gpio_setpin(F,H);s3c2410_gpio_setpin(G,L);s3c2410_gpio_setpin(N,L);mdelay(3);s3c2410_gpio_setpin(E,H);s3c2410_gpio_setpin(F,L);s3c2410_gpio_setpin(G,L);s3c2410_gpio_setpin(N,L);mdelay(3);printk("222222222");break;case8:s3c2410_gpio_setpin(I,H);s3c2410_gpio_setpin(J,L);s3c2410_gpio_setpin(K,L);s3c2410_gpio_setpin(M,L);mdelay(3);s3c2410_gpio_setpin(I,L);s3c2410_gpio_setpin(J,H);s3c2410_gpio_setpin(K,L);s3c2410_gpio_setpin(M,L);mdelay(3);s3c2410_gpio_setpin(I,L);s3c2410_gpio_setpin(J,L);s3c2410_gpio_setpin(K,H);s3c2410_gpio_setpin(M,L);mdelay(3);s3c2410_gpio_setpin(I,L);s3c2410_gpio_setpin(J,L);s3c2410_gpio_setpin(K,L);s3c2410_gpio_setpin(M,H);mdelay(3);printk("3333333333");break;case9:s3c2410_gpio_setpin(I,L);s3c2410_gpio_setpin(J,L);s3c2410_gpio_setpin(K,L);s3c2410_gpio_setpin(M,H);mdelay(3);s3c2410_gpio_setpin(I,L);s3c2410_gpio_setpin(J,L);s3c2410_gpio_setpin(K,H);s3c2410_gpio_setpin(M,L);mdelay(3);s3c2410_gpio_setpin(I,L);s3c2410_gpio_setpin(J,H);s3c2410_gpio_setpin(K,L);s3c2410_gpio_setpin(M,L);mdelay(3);s3c2410_gpio_setpin(I,H);s3c2410_gpio_setpin(J,L);s3c2410_gpio_setpin(K,L);s3c2410_gpio_setpin(M,L);mdelay(3);printk("44444444444");break;case10:s3c2410_gpio_setpin(O,H); mdelay(200); s3c2410_gpio_setpin(O,L);break;case11: s3c2410_gpio_setpin(P,H); mdelay(200);s3c2410_gpio_setpin(P,L);break;case12: s3c2410_gpio_setpin(Q,H); mdelay(200);s3c2410_gpio_setpin(Q,L);break;}return0;}staticstructfile_operationsxc_fops={.owner=THIS_MODULE,.ioctl=xc_ioctl,.write=xc_write,.read=xc_read,.open=xc_open,.release=xc_release,};4.5传感器模块:可实时监测当前环境的温湿度,空气质量,生命迹象探测。传感器驱动程序如下:staticintgyq_ioctl(structinode*inode,structfile*file,unsignedintcmd,unsignedlongarg){ inta=1,b=4,c=0; if(s3c2410_gpio_getpin(P)==0)a=0;//kongqi if(s3c2410_gpio_getpin(P)==1)a=1; if(s3c2410_gpio_getpin(O)==0)b=2;//renti if(s3c2410_gpio_getpin(O)==1)b=4; c=a+b; returnc;}4.6PC机视频控制客户端模块客户端网页HTML语言程序如下:<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"><html><head><title>客户端</title></head><bodybgcolor="#ffffff"text="#000000"background="bgindex.jpg"><center><h1>视频监控机器人WEB控制台</h1></center><center><tableborder=2cellspacing=10cellpadding=10align="center"><tr><tdwidth="58%"><appletcodebase="."archive="JWebcamPlayer.jar"code="JWebcamPlayer.class"name="JWebcamPlayer"ID="JWebcamPlayer"align="center"width="640"height="480"MAYSCRIPT><paramname="Color"value="#ffffff"><paramname="Server"value="4"><paramname="Port"value="7070"><PARAMNAME="scriptable"value="true"><PARAMNAME="mayscript"value="true"><strong>YouneedtodownloadJava.<br>Click<ahref="/en/download/manual.jsp">here:/en/download/manual.jsp</a></strong><br></applet><br>clickonthewindowsurfacetosetbrightnessandcontrast<br>whendone,clickagaintoremovethecontrolbox.</td><tdwidth="30%"><tablewidth="100%"align="center"><center><tr><br><tr><center><td></td><tdalign="center"><center><h3>机械臂控制</h3></center><center></td></center></tr><center><tr><tdwidth="33%"align="right"><iframename="server"style="display:none;"></iframe><formaction="4/cgi-bin/10"method="post"target="server"><inputtype="submit"name="Left"value="抓取"></input></form></td><tdwidth="34%"></td><tdwidth="33%"align="left"><iframename="server"style="display:none;"></iframe><formaction="4/cgi-bin/11"method="post"target="server"><inputtype="submit"name="Backward"value="释放"></input></form></td></tr></center><tr><center><td></td></center></tr><br><tr><center><td></td><tdalign="center"><center><h3>小车控制</h3></center><center><td></td><center><tr><tdwidth="33%"align="right"><iframename="server"style="display:none;"></iframe><formaction="4/cgi-bin/14"method="post"target="server"><inputtype="submit"name="Left"value="匀速"></input></form></td><tdwidth="34%"></td><tdwidth="33%"align="left"><iframename="server"style="display:none;"></iframe><formaction="4/cgi-bin/13"method="post"target="server"><inputtype="submit"name="Backward"value="微调"></input></form></td></tr></center><td></td><tdalign="center"> <iframename="server"style="display:none;"></iframe><formaction="4/cgi-bin/1"method="post"target="server"><inputtype="submit"name="Forward"value="前进"></input></form></td><td></td></center></tr><tr><center><tdalign="center"> <iframename="server"style="display:none;"></iframe><formaction="4/cgi-bin/3"method="post"target="server"><inputtype="submit"name="Left"value="左转"></input></form></td><tdalign="center"> <iframename="server"style="display:none;"></iframe><formaction="4/cgi-bin/5"method="post"target="server"><inputtype="submit"name="Backward"value="停止"></input></form></td><tdalign="center"> <iframename="server"style="display:none;"></iframe><formaction="4/cgi-bin/4"method="post"target="server"><inputtype="submit"name="Right"value="右转"></input></form></td></center></tr><tr><center><td></td><tdalign="center"><iframename="server"style="display:none;"></iframe><formaction="4/cgi-bin/2"method="post"target="server"><inputtype="submit"name="Forward"value="后退"></input></form></td><td></td></center></tr><br><tr><td><br></td></tr><tr><center><td></td><tdalign="center"><center><h3>摄像头控制</h3></center><center><iframename="server"style="display:none;"></iframe><formaction="4/cgi-bin/testup"method="post"target="server"><inputtype="submit"name="CameraUp"value="向上"></input></form></td><td></td></center></tr><tr><center><tdalign="center"> <iframename="server"style="display:none;"></iframe><formaction="4/cgi-bin/testl"method="post"target="server"><inputtype="submit"name="CLeft"value="向左"></input></form></td><tdalign="center"> <iframename="server"style="display:none;"></iframe><for

温馨提示

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

评论

0/150

提交评论