版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
作品名称:远程无线控制可视救援机器人系统的设计与实现
《远程无线控制可视救援机器人系统的设计与实现》摘要:该系统是基于达盛51平台、无线控制模块、六自由度机械手、无线摄像头和动力部分构成的救援机械人模拟系统,达盛51平台作为机械人的总控制平台,它包括机械手的控制程序和无线控制程序,它主要完成机械手各电机和动力部分电机控制工作,可以模拟夹取和搬运物体,以模拟完成在求援过程中,可以远程可视监控控制,完成在一些危险的救援环境中进行救援。关键字:达盛;51平台;无线;机械手;摄像头;救援Abstract:thesystemisbasedonwirelessplatformofshing51controlmodule,sixdegreesoffreedom,wirelesswebcamanddynamicmanipulatorofrescuerobotsimulationsystem,cheng51totalcontrolplatformforrobotplatform,includingthecontrolofthemanipulatorproceduresandwirelesscontrolprogram,whichmainlycompleteseachmotoranddynamicpartofmanipulatorcanbesimulated,motorcontrolworkandhandlingobjects,withcompletewithsimulationprocess,canaidinremotevideomonitorandcontrolinsomedangerousrescueenvironment.Keywords:dasheng;51platform;Wireless;Manipulator;Cameras;rescue一、作品简介该作品的设计思路来源于目前经常发生矿难、火灾、有毒环境、地震等灾难救援,用人去救援当然是最灵活机动的,但是救援之前,必须要考虑到救援人员的安全问题,不得不考虑不但救不出人,反而出现更大的伤亡,如果我们采用救援机械人,装上先进的各类传感器、生命探测器,安装先进的多角度的可视设备,救援人员远程可视控制,加装灵活有力的机械臂和其他救援设备,这样既保证了人的随机应变,同时机械人可携带更多的救援设备,就算在救援过程中万一出现塌方,也许我们的机械人会更能体现他的伟大,可以用他的钢铁之身顶住,我救援争取一定的时间,起码这样不会增加伤亡人员。二、方案设计①理论分析目前中国机器人的研究正在发展,较美国、日本等发达国家我们的起步比较晚,而且技术相对也落后,但是我们正在积极发展,从多次国际大学生机械人大赛中我们可以看到我们正在发展,只是在实际应用中还没有大规模发展起来,该作品是一个基于ARM的一个救援机器人一个小型化系统,该机器人可以自由移动,通过一个USB摄像头监视系统,我们可以通过在ARM平台进行实时监视,根据视频控制六自由度机械手进行物体的抓取和搬运。②方案确定◆单片机模块:达盛51MCU模块该模块是达盛公司推出的单片机模块,硬件和功能完全能够满足手多电机控制的硬件条件。◆六自由度机械手:德普斯机械手该模块是德普斯公司推出的机械手,硬件和功能完全能够满足机械手的多角度灵活活动,完成各种复杂动作。◆无线摄像头:台电摄像头该模块是台电公司推出的无线摄像头模块,硬件和功能完全能够满足实时远距离无线视频监控。无线传输模块:AY-RF905无线模块。三、系统设计1、硬件设计下图为硬件系统设计框图无线控制系统照明系统无线控制系统照明系统自制小车系统达盛51单片机平台六自由度机械手自制小车系统达盛51单片机平台六自由度机械手无线摄像头无线摄像头图1硬件系统框图2、软件设计下图为软件设计框图无线控制板程序达盛51单片机无线控制板程序达盛51单片机小车驱动程序达盛51单片机达盛51单片机机械手控制程序图2软件系统框图四、功能模块设计1、硬件模块设计①、AY-RF905模块的Nordic公司的nRF905芯片如图所示:图3nRF905芯片引脚图②、引脚概述③、单片机模块:采用达盛51单片机开发平台,平台结构如图所示:图4达盛平台PCB图图5达盛平台PCB3D图图6达盛平台原理图⑤、六自由度机械手图8六自由度机械手●产品简介◆手爪:内宽8.26厘米,手长8.26厘米,高2.85厘米,◆最大负重:403.41克◆手可达区域:49.53厘米◆各部运动范围:0—180度◆肘到腕距离:14厘米◆基座到肘距离:20厘米◆腕到手爪心距离:17.8厘米◆机械手自重(包括伺服电机):1.06公斤◆超级扭矩齿轮645系列伺服电机(旋转肘部使用):3极马达,金属齿轮,双滚珠轴承,4.8伏扭矩:7.7公斤/厘米,6.0伏扭矩:9.6公斤/厘米4.8伏速率:0.24秒/60度,6.0伏速率:0.19秒/60度尺寸:40.6X19.8X37.8毫米重量:60克◆标准金装475系列伺服电机(旋转基座、腕、手爪使用):3极马达,卡博来特齿轮,滚珠轴承4.8伏扭矩:4.4公斤/厘米,6.0伏扭矩:5.5公斤/厘米4.8伏速率:0.23秒/60度,6.0伏速率:0.18秒/60度尺寸:38.8X19.8X36毫米重量:40克◆225系列伺服电机(旋转手腕使用):3极费莱特马达,4.8伏扭矩:3.9公斤/厘米,6.0伏扭矩:4.8公斤/厘米4.8伏速率:0.14秒/60度,6.0伏速率:0.11秒/60度尺寸:32.4X16.8X31毫米重量:27克◆内芯式805BB系列电机(旋转肩部使用):双滚珠轴承,定制内置式芯片4.8伏扭矩:16公斤/厘米,6.0伏扭矩:27.4公斤/厘米4.8伏速率:0.20秒/60度,6.0伏速率:0.14秒/60度尺寸:66X30X58毫米重量:152克⑦、无线摄像头图6无线摄像头◆镜头类型 CMOS◆摄像头像素 500万◆摄像头分辨率 640×480◆最高分辨率(像素) 640×480◆最大帧数 30帧◆色彩位数 24位◆成像距离 35mm-无穷远◆对焦方式 手动◆对焦方式/范围 手动调焦模式◆镜头 带红外夜视500万高像素镀膜镜头◆支持系统 Windows2000/2003/XP/Vista/7,Mac,Linux◆接口类型 USB2.0◆外观色彩 象牙白◆附件 电源适配器◆其他参数 全球首创2000米无线距离◆增强型2.4G无线技术◆内置高品质降噪麦克风◆全新红外夜视镜头◆4节AAA电池供电,可外接电源供电⑧、自制小车◆车身:长*宽170mm*350mm◆电机:6V直流电机⑨、照明系统◆5VLED灯2、软件模块设计①基于达盛51单片机的无线总控制平台程序流程图②基于达盛51单片机的机器人控制程序流程图五、作品性能测试与分析1、视频监视系统测试将无线摄像头的USB无线接收器接入到PC机的USB接口,打开摄像界面,可以看到清晰的图像画面。2、控制台系统测试用达盛51平台和无线传输模块构成的总控制台,主要负责六自由度机械手和移动平台的控制,包括六自由度的各个电机的动作控制和移动平台的前进、后退、左转、右转等控制,通过操作控制控制平台可以让机械人完成各种动作,经测试移动,搬运都非常成功和稳定。六、创新总结该作品使用达盛公司达盛51单片机开发平台,再配合无线摄像头、德普斯的六自由度机械手和自制的移动动力系统平台,完成了一个远程无线遥控的可视控制的救援机械人,当灾害发生时、搜救工作复杂、危险,紧迫,我们的救援机器人以其体积小,灵活性大,可实现远程监视与控制等优点,为救援提供了极大的方便。如井下救援,有毒环境救援,火灾救援等领域,我们的机器人将会发挥它巨大的作用;现在各个国家都在研究这项技术。目前,我们做的是有线控制的,如果将机器人进行适当改进,便可实现无线控制救援。参考文献1、周力功等编著.《ARM&WinCE实验与实践-基于S3C2410》.北京航空航天大学出版社.2007年7月第1次印刷2、张冬泉等编著.《WindowsCE使用开发技术(第2版)》.电子工业出版社.2009年3月第1次印刷3、李大为等编著.《WindowsCE工程实践完全解析》.中国电力出版社.2008年10月第1次印刷4、邱仲潘等译.《VisualC++6从入门到精通》.电子工业出版社.1999年1月第1次印刷5、《WinCE指导书》北京达盛科技公司6、《六自由度机械手使用说明书》深圳德普斯公司附件一://达盛51单片机平台控制程序源代码#include"def.h"#include"./SPI/SPI.h"#include"./nRF905/nRF905.h"#defineucharunsignedchar#defineuintunsignedintsbitrobotkg=P3^2;sbitdengkg=P3^3;//0123456789ABCDEFucharcodetab1[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};ucharcodetab2[]={0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77};ucharcodetab3[]={0xfe,0xfd,0xfb,0xf7};unsignedcharTxBuf[28]={0};unsignedcharRxBuf[28]={0};//unsignedcharPcTx_Buf[6];unsignedchartf=0;voiddelayms(uintn){uinti,j;for(i=0;i<n;i++){for(j=0;j<125;j++);}}voidDelay(unsignedcharn)//1mS{ unsignedchari; while(n--)//2uS for(i=0;i<80;i++);//80*8uS=640uS }voidkey_delay(){unsignedinti,j;for(i=1;i<=50;i++){for(j=1;j<=100;j++);}}///////////////////sendthecommand/*voidsend_comd(unsignedcharvalue) {unsignedchari;ES=0;EA=0;PcTx_Buf[0]=value|0xf0;PcTx_Buf[1]=value|0xf0;PcTx_Buf[2]=value|0xf0;PcTx_Buf[3]=value|0xf0; PcTx_Buf[4]=value;PcTx_Buf[5]=value|0xf0; for(i=0;i<=5;i++) {SBUF=PcTx_Buf[i];while(TI==0);TI=0; } ES=1;EA=1;}*/voidmain(){uchara,b;//unsignedcharled1_count=0; //unsignedcharled2_count=0; //unsignedcharlight; //================NRF905初始化nRF905Init(); //================ Config905(); //ConfignRF905module TxBuf[0]=0xff; TxBuf[1]=0xff;TxBuf[2]=0xff;TxBuf[3]=0xff; //ledclose //SetRxMode(); //SetnRF905inRxmodeSetTxMode();while(1){robotkg=1;dengkg=1; for(b=0;b<4;b++){P1=tab3[b];delayms(25);if(robotkg==0) { TxBuf[3]='G'; TxPacket(TxBuf); //Transmit TxBuf[3]=0xff; }delayms(25); if(dengkg==0) { TxBuf[3]='H'; TxPacket(TxBuf); //Transmit TxBuf[3]=0xff; }for(a=0;a<16;a++){if(P1==tab2[a]) {TxBuf[3]=tab1[a]; TxPacket(TxBuf); //Transmit TxBuf[3]=0xff; }}} }}Nrf905驱动程序#include"nRF905.h"#defineucharunsignedchar#defineuintunsignedintunsignedcharTxAddress[4]={TX_ADDR_Byte0,TX_ADDR_Byte1,TX_ADDR_Byte2,TX_ADDR_Byte3};RFConfigRxTxConf={ 10, RFConfig_Byte0, RFConfig_Byte1, RFConfig_Byte2, RFConfig_Byte3, RFConfig_Byte4, RFConfig_Byte5, RFConfig_Byte6, RFConfig_Byte7, RFConfig_Byte8, RFConfig_Byte9 };staticvoidDelay(ucharn){ uinti; while(n--) for(i=0;i<80;i++); }/*******************************************************************************************///functionInitIO(); 初始化IO/*******************************************************************************************/voidnRF905Init(void){ /*SPIinit*/ SpiInit(); //CSN=1; //Spi disable //SCK=0; //Spiclocklineinithigh DR=1; //InitDRforinput AM=1; //InitAMforinput PWR_UP=1; //nRF905poweron Delay(4); TRX_CE=0; //SetnRF905instandbymode TX_EN=0; //setradioinRxmode //==================== /* TX_EN_DDR =1; TRX_CE_DDR =1; PWR_UP_DDR =1; DR_DDR =0; CD_DDR =0; */ //====================}/*******************************************************************************************///functionWriteTxAddress(); 写入目标地址/*******************************************************************************************/voidWriteTxAddress(void){ unsignedchari; unsignedcharlen=(RxTxConf.buf[2]>>4); CSN=0; //Spienableforwriteaspicommand SpiWrite(WTA); //Writeaddresscommand //for(i=0;i<TX_AWF;i++) for(i=0;i<len;i++) { SpiWrite(TxAddress[i]); } CSN=1; //Spidisable}/*******************************************************************************************///functionConfig905(); //配置905寄存器/*******************************************************************************************/voidConfig905(void){ uchari; CSN=0; //Spienableforwriteaspicommand SpiWrite(WC); //Writeconfigcommand写放配置命令 for(i=0;i<RxTxConf.n;i++) //Writeconfigrationwords写放配置字 { SpiWrite(RxTxConf.buf[i]); } CSN=1; //DisableSpi WriteTxAddress();}/*******************************************************************************************///functionSetTxMode(); 设置为发送模式/*******************************************************************************************/voidSetTxMode(void) { TRX_CE=0; TX_EN=1; Delay(1); //delayformodechange(>=650us)} /*******************************************************************************************///functionSetRxMode(); 设置为接收模式/*******************************************************************************************/voidSetRxMode(void){ TX_EN=0; TRX_CE=1; Delay(1); //delayformodechange(>=650us) }//发送数据包/*******************************************************************************************/voidTxPacket(unsignedchar*TxBuf){ uchari; CSN=0; //Spienableforwriteaspicommand SpiWrite(WTP); //Writepayloadcommand //for(i=0;i<TX_PW;i++) for(i=0;i<RxTxConf.buf[4];i++) { SpiWrite(TxBuf[i]); //Write32bytesTxdata } CSN=1; //Spidisable TRX_CE=1; //SetTRX_CEhigh,startTxdatatransmission Delay(1); //while(DR!=1); TRX_CE=0; //SetTRX_CElow}/********************************************************************************************* 读取数据包* 返回值: 1-成功接收到数据 0-没有接收到数据********************************************************************************************/unsignedcharRxPacket(unsignedchar*RxBuf){ uchari; if(DR) //DR高电平 有接收到数据 { TRX_CE=0; //SetnRF905instandbymode CSN=0; //Spienableforwriteaspicommand SpiWrite(RRP); //Readpayloadcommand //for(i=0;i<RX_PW;i++) for(i=0;i<RxTxConf.buf[3];i++) { RxBuf[i]=SpiRead(); //Readdataandsavetobuffer } CSN=1; //Disablespi while(DR);//||AM); TRX_CE=1; return1; } else { return0; }}/*******************************************************************************************//*#ifdefSET_CHNO_ENABLE voidSetFrequence(unsignedintfre) { unsignedchark; CSN=0; //Spienableforwriteaspicommand SpiWrite(WC); //Writeconfigcommand写放配置命令 k=(fre/2)&0xff; SpiWrite(k); //写入CH_NO高8位 if((fre&0x01)==1) { k=RFConfig_Byte1|0x01; //最低位置位 } else { k=RFConfig_Byte1&0xfe; //最低位清零 } SpiWrite(k); //写入CH_NO最低位 CSN=1; //DisableSpi }#endif*//*******************************************************************************************//*#ifdefSETST_BYMODE_ENABLE voidSetST_BYmode(void) { TX_EN=0; TRX_CE=0; Delay(1); //delayformodechange(>=650us) }#endif*//*******************************************************************************************//*#ifdefSETRF_PA_PWR_ENABLE //RF-Configure-Registerbyte:1 codeunsignedcharRF_byte1[4]={0x00,0x04,0x08,0x0c}; //不同的发射功率 voidSetRF_PA_PWR(unsignedchari) //SPI->设置发射功率 { SPI_CSN=0; //Spienableforwriteaspicommand SpiWrite(0x01); //Writeconfigcommand写放配置命令从1号字节开始写 SpiWrite(RF_byte1[i]); SPI_CSN=1; //DisableSpi }#endif*/达盛51单片机接收控制板程序#include"def.h"#include"./SPI/SPI.h"#include"./nRF905/nRF905.h"unsignedcharTxBuf[28]={0};unsignedcharRxBuf[28]={0};//unsignedcharPcTx_Buf[6];unsignedchartf=0;voidDelay(unsignedcharn){ unsignedchari; while(n--) for(i=0;i<80;i++); }voidkey_delay(){unsignedinti,j;for(i=1;i<=50;i++){for(j=1;j<=100;j++);}}/*初始化串行口和UART波特率函数*/voidcom_initialize(void){TMOD=0x20;//T/C1工作在方式2TH1=0xfd;TL1=0xfd;TR1=1;SCON=0x50;}voiduart_Init(){com_initialize();}///////////////////sendthecommand/*voidsend_comd(unsignedcharvalue) {unsignedchari;ES=0;EA=0;PcTx_Buf[0]=value|0xf0;PcTx_Buf[1]=value|0xf0;PcTx_Buf[2]=value|0xf0;PcTx_Buf[3]=value|0xf0; PcTx_Buf[4]=value;PcTx_Buf[5]=value|0xf0; for(i=0;i<=5;i++) {SBUF=PcTx_Buf[i];while(TI==0);TI=0; } ES=1;EA=1;}*/voidmain(){//unsignedcharled1_count=0; //unsignedcharled2_count=0; //unsignedcharlight; //================NRF905初始化nRF905Init(); //================ Config905(); //ConfignRF905module//================= com_initialize();//TMOD=0x20; //SCON=0x50;//TL1=0xfd;//TH1=0xfd;//TR1=1;// TxBuf[0]=1;// TxBuf[1]=1;// SetTxMode(); //Set// TxPacket(TxBuf); //Transmit //LED1=1; //LED2=1;//LED3=1;//LED4=1;//KEY1=1;//KEY2=1;//KEY3=1;//KEY4=1; //Delay(500); //delayforledlight //LED1=1; //LED2=1;//LED3=0; LED4=0; RxBuf[0]=0xff; RxBuf[1]=0xff;RxBuf[2]=0xff;RxBuf[3]=0xff; //ledclose SetRxMode(); //SetnRF905inRxmode while(1) { /*if(KEY1==0){key_delay(); while(KEY1==0); TxBuf[0]=1;tf=1;led1_count=15;} if(KEY2==0){key_delay(); while(KEY2==0); TxBuf[1]=1;tf=1;led2_count=15;} if(KEY3==0){key_delay(); while(KEY3==0); TxBuf[2]=1;tf=1;led2_count=15;} if(KEY4==0){key_delay(); while(KEY4==0); TxBuf[3]=1;tf=1;led2_count=15;} if(tf==1) { SetTxMode(); //Set TxPacket(TxBuf); //Transmit TxBuf[0]=0xff; TxBuf[1]=0xff;TxBuf[2]=0xff; TxBuf[3]=0xff; SetRxMode(); //SetnRF905inRxmode tf=0; }*/ if(RxPacket(RxBuf)==1) //返回1表明有数据包接收到 { /*if(RxBuf[0]==1) { //led1_count=15;LED1=!LED1;light=0x01;//send_comd(light);RxBuf[0]=0; } if(RxBuf[1]==1) { //led2_count=15;LED2=!LED2; light=0x02;//send_comd(light);RxBuf[1]=0; }if(RxBuf[2]==1) { //led2_count=15;LED3=!LED3; light=0x03;//send_comd(light);RxBuf[2]=0; }*/ //if(RxBuf[3]=='0') //{ //led2_count=15; SBUF=RxBuf[3]; TI=0;while(!TI);TI=0;LED4=!LED4; //RxBuf[0]=0xff; //RxBuf[1]=0xff;//RxBuf[2]=0xff;RxBuf[3]=0xff;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024集成电路设计及知识产权保护合同
- 2024年石材幕墙系统工程承揽协议样本版B版
- 2024年环保设备销售与维修合同范本(共3个责任)3篇
- 2024电子竞技赛事组织与运营委托合同
- 2024年集装箱堆场操作合同
- 2024版城市轨道交通建设服务合同
- 2024年通信基础设施建设项目投资合作合同3篇
- 2025年度节日促销活动广告物料制作服务合同2篇
- 2024年精简版服装交易协议范例版
- 2024年职工食堂冷链物流承包经营合同3篇
- 新疆塔城地区(2024年-2025年小学六年级语文)部编版期末考试(下学期)试卷及答案
- 四人合伙投资协议书范本
- 2024年9月时事政治试题带答案
- 反射疗法师3级考试题库(含答案)
- 汽车供应商审核培训
- 《计算机网络 》课件第1章
- 山东省济南市2023-2024学年高二上学期期末考试地理试题 附答案
- 期末复习试题1(试题)-2024-2025学年二年级上册数学北师大版
- 1《地球的表面》说课稿-2024-2025学年科学五年级上册教科版
- 汽车以租代购合同完整版完整版
- 音乐制作基础知识单选题100道及答案解析
评论
0/150
提交评论