无线控制可视救援机器人系统的设计与实现Word下载.docx

上传人:b****4 文档编号:17382885 上传时间:2022-12-01 格式:DOCX 页数:36 大小:1.96MB
下载 相关 举报
无线控制可视救援机器人系统的设计与实现Word下载.docx_第1页
第1页 / 共36页
无线控制可视救援机器人系统的设计与实现Word下载.docx_第2页
第2页 / 共36页
无线控制可视救援机器人系统的设计与实现Word下载.docx_第3页
第3页 / 共36页
无线控制可视救援机器人系统的设计与实现Word下载.docx_第4页
第4页 / 共36页
无线控制可视救援机器人系统的设计与实现Word下载.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

无线控制可视救援机器人系统的设计与实现Word下载.docx

《无线控制可视救援机器人系统的设计与实现Word下载.docx》由会员分享,可在线阅读,更多相关《无线控制可视救援机器人系统的设计与实现Word下载.docx(36页珍藏版)》请在冰豆网上搜索。

无线控制可视救援机器人系统的设计与实现Word下载.docx

德普斯机械手

该模块是德普斯公司推出的机械手,硬件和功能完全能够满足机械手的多角度灵活活动,完成各种复杂动作。

◆无线摄像头:

台电摄像头

该模块是台电公司推出的无线摄像头模块,硬件和功能完全能够满足实时远距离无线视频监控。

◆无线传输模块:

AY-RF905无线模块。

三、系统设计

1、硬件设计

下图为硬件系统设计框图

图1硬件系统框图

2、软件设计

下图为软件设计框图

无线控制板程序

达盛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公斤/厘米

0.23秒/60度,6.0伏速率:

0.18秒/60度

38.8X19.8X36毫米

40克

◆225系列伺服电机(旋转手腕使用):

3极费莱特马达,

3.9公斤/厘米,6.0伏扭矩:

4.8公斤/厘米

0.14秒/60度,6.0伏速率:

0.11秒/60度

32.4X16.8X31毫米

27克

◆内芯式805BB系列电机(旋转肩部使用):

双滚珠轴承,定制内置式芯片

16公斤/厘米,6.0伏扭矩:

27.4公斤/厘米

0.20秒/60度,6.0伏速率:

0.14秒/60度

66X30X58毫米

152克

⑦、无线摄像头

图6无线摄像头

◆镜头类型CMOS

◆摄像头像素500万

◆摄像头分辨率640×

480

◆最高分辨率(像素)640×

◆最大帧数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"

./SPI/SPI.h"

./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<

n;

i++)

{

for(j=0;

j<

125;

j++);

}

}

voidDelay(unsignedcharn)//1mS

unsignedchari;

while(n--)//2uS

80;

i++);

//80*8uS=640uS

voidkey_delay()

unsignedinti,j;

for(i=1;

=50;

{for(j=1;

=100;

/////////////////

//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;

=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;

if(dengkg==0)

H'

for(a=0;

a<

16;

a++)

if(P1==tab2[a])

TxBuf[3]=tab1[a];

Nrf905驱动程序

nRF905.h"

#defineucharunsignedchar

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--)

/*******************************************************************************************/

//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)

unsignedcharlen=(RxTxConf.buf[2]>

>

4);

CSN=0;

//Spienableforwriteaspicommand

SpiWrite(WTA);

//Writeaddresscommand

//for(i=0;

TX_AWF;

for(i=0;

len;

SpiWrite(TxAddress[i]);

}

CSN=1;

//Spidisable

//functionConfig905();

//配置905寄存器

voidConfig905(void)

uchari;

//Spienableforwriteaspicommand

SpiWrite(WC);

//Writeconfigcommand写放配置命令

RxTxConf.n;

i++)//Writeconfigrationwords写放配置字

SpiWrite(RxTxConf.buf[i]);

//DisableSpi

WriteTxAddress();

//functionSetTxMode();

设置为发送模式

voidSetTxMode(void)

{

TX_EN=1;

Delay

(1);

//delayformodechange(>

=650us)

}

//functionSetRxMode();

设置为接收模式

voidSetRxMode(void)

TRX_CE=1;

=650us)

//发送数据包

voidTxPacket(unsignedchar*TxBuf)

SpiWrite(WTP);

//Writepayloadcommand

TX_PW;

RxTxConf.buf[4];

SpiWrite(TxBuf[i]);

//Write32bytesTxdata

//Spidisable

//SetTRX_CEhigh,startTxdatatransmission

//while(DR!

=1);

//SetTRX_CElow

/*

*******************************************************************************************

*读取数据包

*返回值:

1-成功接收到数据0-没有接收到数据

*/

unsignedcharRxPacket(unsignedchar*RxBuf)

if(DR)//DR高电平有接收到数据

TRX_CE=0;

//SetnRF905instandbymode

CSN=0;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1