远程无线控制可视救援机器人系统的设计与实现毕业论文.docx
- 文档编号:5187737
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:30
- 大小:1.92MB
远程无线控制可视救援机器人系统的设计与实现毕业论文.docx
《远程无线控制可视救援机器人系统的设计与实现毕业论文.docx》由会员分享,可在线阅读,更多相关《远程无线控制可视救援机器人系统的设计与实现毕业论文.docx(30页珍藏版)》请在冰豆网上搜索。
远程无线控制可视救援机器人系统的设计与实现毕业论文
作品名称:
远程无线控制可视救援机器人系统的设计与实现
《远程无线控制可视救援机器人系统的设计与实现》
摘要:
该系统是基于达盛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、硬件设计
下图为硬件系统设计框图
图1硬件系统框图
2、软件设计
下图为软件设计框图
无线控制板程序
达盛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
#defineuintunsignedint
sbitrobotkg=P3^2;
sbitdengkg=P3^3;
//0123456789ABCDEF
ucharcodetab1[]={'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 { 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();//SetnRF905inRxmode SetTxMode(); 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);//TransmitTxbufferdata TxBuf[3]=0xff; } delayms(25); if(dengkg==0) { TxBuf[3]='H'; TxPacket(TxBuf);//TransmitTxbufferdata TxBuf[3]=0xff; } for(a=0;a<16;a++) { if(P1==tab2[a]) { TxBuf[3]=tab1[a]; TxPacket(TxBuf);//TransmitTxbufferdata TxBuf[3]=0xff; } } } } } Nrf905驱动程序 #include"nRF905.h" #defineucharunsignedchar #defineuintunsignedint unsignedcharTxAddress[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;//Spidisable //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 for(i=0;i { SpiWrite(TxAddress[i]); } CSN=1;//Spidisable } /*******************************************************************************************/ //functionConfig905();//配置905寄存器 /*******************************************************************************************/ voidConfig905(void) { uchari; CSN=0;//Spienableforwriteaspicommand SpiWrite(WC);//Writeconfigcommand写放配置命令 for(i=0;i { 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 for(i=0;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;//Spienableforwri
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 远程 无线 控制 可视 救援 机器人 系统 设计 实现 毕业论文