轮式机器人课程设计项目书_第1页
轮式机器人课程设计项目书_第2页
轮式机器人课程设计项目书_第3页
轮式机器人课程设计项目书_第4页
轮式机器人课程设计项目书_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、项目一、机器人的运动控制一、项目目标:1.熟悉MT-UROBOT机器人的运动机构2.了解MT-UROBOT的驱动原理3.理解调速原理4.掌握软件控制方法,学会编写自己控制程序二、项目描述:1.机器人的运动机构两个主动轮,金属铝芯、橡胶外胎。MT-UROBOT 机器人的主动轮有能够完成向前直走,向后转弯,左转,右转,这些平地上的技术动作;驱动机构由直流电机和减速比约为30:1的齿轮箱构成,齿轮减速箱将直流电机输出的扭矩和转速转化为机器人 可以需要的扭矩和转速。动力强劲,效率高,噪音小。从动轮为一万向轮。从动轮子与两个主动轮构成稳定的三角形结构支撑整个本体。如图:驱动板减速齿轮箱直流电机从动轮图1

2、.1 在没有未经减速齿轮变速的直流电机可以运行在800012000转/分,MT-UROBO机器人的直流电机的转速为8000转/分。速度虽然高,但是驱动力很小,所以这里我们采用了减速齿轮箱,来增加转矩。对于改变速度的传动形式来说,就有一个传动比的概念。对于齿轮传动,传动比可以用两个齿轮的齿数来定义: Z1 为主动齿轮的齿数,Z2 为被动齿轮的齿数输出的速度可表达为: 2驱动电路直流电机上的电压大小影响它的转速和扭矩差动方式是指将两个有差异的或独立的运动合成为一个运动。当我们把两个电机的运动合成为一个运动时,这就成了差动驱动。也就是两个直流电机各有一个独立驱动板。驱动板如图:稳压芯片驱动芯片电流反

3、馈接口接直流电机编码器接口电源,控制线接口图1.2 驱动芯片为LMD18200, 有3A连续工作电流,6A的最大电流,非常高的转换效率和纹波特性,并且具有过流、过热保护,电路原理图见用户手册图3.29。电源芯片LM2577TADJ,采用电池升压稳压电路,有效地提高了电机在电池电压变化过程中的效率和稳定性,电路图见用户手册图3.28。再驱动板上有一个驱动电流反馈接口,把它接到扩展板上的AD端口就可读出此刻驱动器上的电流。3. 直流电机调速原理 直流电机将轴的旋转运动输入到齿轮箱,然后齿轮箱的输出轴控制轮子转动,从而驱动整个机器人的运动。电机的运动速度与加在其上的电压有直接关系。直流电机上的电压大

4、小与转速和扭矩关系详见用户手册图2-11。直流电机的速度控制一般采用PWM(Pulse Width Modulation,脉冲调宽信号)波来实现,其基本原理是,在一定频率下,调节脉冲宽度等效改变施加于直流电机的平均电压,从而改变电机的转动速度。 (a) (b)图1.3 如图1.2(a)是占空比是50的pwm波,把它加在直流电机两端相当于加在5v电压如图1.2(b)。 在MT-UROBOT中把机器人的速度是把012V电压量化为01000的数值范围,如果我们给定机器人的速度为500时,相当于给电机6V电压时的速度。三、程序举例:程序功能:机器人的原地加速旋转。机器人的原地旋转速度从100加到800

5、。然后停下,调用的函数说明:move(200,200,0)运动控制函数,200指左轮运动速度,运动方向向后,200为右轮速度,向前运动。0指的是扩展电机速度参数,因为没有用到扩展电机故速度为零。sleep(50);等待函数,50为等待的时间,单位为毫秒。流程图:图1.4参考源程序:#include <stdio.h>#include "ingenious.h"void main()int i,j;for(i=200;i<800;i+)j=i;move(i,-j,0);sleep(50);stop();五、练习题读者可以尝试写一写,a、机器人走正方形 b、机

6、器人变速前进项目二、机器人的避障一、 项目目标:1.了解大学版机器人传感器分布2.了解机器人扩展板上的硬件接口3. 熟悉常用避障传感器原理二、项目描述:1.综合叙述 机器人的智能性的表现,主要包括对外界环境的感知能力和逻辑思维、决策判断能力。处理器就是机器人的大脑,但在我们给他下载程序前,这个大脑是一片空白,我们的写程序就是赋予机器人一定的智慧。机器人对外界环境的感知完全依赖于传感器。在我们大学版机器人本体主要有以下几种传感器:红外传感器、远红外传感器、光敏电阻、碰撞传感器、。在机器人本体上分布如 远红外传感器光敏电阻图2.1。红外发射红外接收图2.1碰撞传感器安装在碰撞环内,前面三个,后面两

7、个。2.传感器红外传感器:红外传感器一般成对使用,由红外发射和红外接收传感器构成。红外发射二极管顾名思义就是发射红外线的二极管。红外接收管就是对红外光这个波段很敏感的光电二极管。它的光谱范围700nm1000nm,940nm时光敏度最高。因其只对特定波段的光敏感,所以有较好的分光灵敏度,可避免受到灵敏度以外光信号的干扰。同理,远红线传感器对波长在6.0l000m光较敏感。光敏电阻:是一种对特定波长光照敏感的电阻。在光照下产生载流子,经外加电场作用形成漂移运动,电子和空穴分别向电源正极和负极移动参与导电,从而是电阻值下降。阻值受温度影响较大,一般低温下敏感度较高,高温下敏感度较低。常用的制作材料

8、为硫化镉(CDS),用此材料做成的光敏电阻它感受光的波段和人眼相近。碰撞传感器:实际上就是一个行程开关,它通过接触碰撞产生一个开关量。DI1AD8AD13.扩展板上接口DO1DO5DI6图2.2 扩展板上八个AD(模拟量输入)接口,从AD1到AD8。6个DI(数字量输入)接口,DI1DI6 。5个DO(数字量输出),DO1DO6。光敏电阻,远红外接在AD接口上,红外发射传感器接在DO上,红外接收接在DI上。碰撞传感器接在DI接口上。4.机器人的避障原理在机器人本体上有三个红外发射二极管,分布在机器人的两侧和中间。一个接收传感器在中间。三个发射管轮流发射红外线。当红外光遇到在其探测范围

9、内的障碍物,并与障碍物构成一定角度时,便有光反射到接收传感器。红外线探测距离10cm80cm 90°范围内的比210mmx150mm面积大的障碍物。,在传感器的上有一个可变电阻可以通过调节电阻来调节红外线发射距离。碰撞传感器在接触到障碍物时,会向CPU发送一个电平信号,而光敏电阻在避障时只是做为一个辅助判断。四、程序举例:程序功能:用红外传感器实现避开障碍物的功能。用到的函数IR_CONTROL(6,1),函数参数的意义:6表示红外接收传感器接在DI6上,1表示这红外发射接在DO1上。这个函数有一个返回值,返回为0时说明遇到障碍物,否则返回为1。实现的避障基本思路:左边红外探测到有障

10、碍向右转,右边探测到障碍时向左转,当中间或者中间和左右边任一个探测到障碍时,先退后再向探测到障碍物方向相反的方向运动。1.流程图图2.32.源程序五、练习题1.尝试写一个碰撞传感器避障的程序。2.将碰撞传感器和红外测障结合起来写一避障程序项目三、机器人的寻迹一、项目目标:1.掌握寻迹原理。 2.掌握MP3扩展卡的使用。 3.寻迹传感器原理。二、项目描述:1.综合叙述在自主式智能导航系统中,机器人要实现自动导引功能就必须要感知引导线,即常说的“寻迹”,这相当于给机器人一个视觉功能。他能沿引导线运动。引导线采用与地面颜色有较大差别的线条作引导。寻迹传感器安装在机器人的底部,用来探测引导线的位置信息

11、,并把它传输到CPU中处理,CPU根据传感器传回引导线的位置信息来调整电机的运行速度,从而达到调整机器人运动姿态的目的。在引导线上某些位置加上特定的标记,使机器人能在这些点能够停下来,播放一段音乐或是语音后继续。语音部分通过外接一个MP3播放卡来实现。2.传感器寻迹传感器是一对光电二极管。一个发射管,一个接收管。当发射光照射到不同颜色物体上时所吸收强度不一样,导致反射光强度不一样,这样对不同颜色接收管接收的光强度也不一样。传感器如下图:图3.1传感器上的可变电阻,可以调节发射红外线的强度。3.MP3播放卡 MP3播放卡的功能与我们用的普通的MP3功能基本相同,内存为256MB。它与机器人之间通

12、过串口通信。播放卡的通信协议如下:波特率:9600bit/s,一位起始位,一位停止位。指令间隔最少为15ms每个指令是1字节1. 指定播放第几首 第几首 (<1280)(即小于128的数都是播放第几首) 返回: 第几首发播放指令,若15MS未收到返回,再要重发播放指令。要删除一首,要先发停止命令,返回0则不成功。2. 读回当前歌曲的总时间 0x81 返回: 秒 3. 查询状态 0x82 返回: 1 停止 2 暂停 3 播放 5 录音6 快进7 快退8 删除 4. 查询当前曲目播放的时间 0x83 返回两字节:分 秒 5. 暂停/播放 0x84 返回: 0x84 6. 音量 0x85/0x

13、86 (0x85à音量 + , 0x86à音量 -) 返回: 0x85/0x86 7. 快进退 0x87/0x88 返回: 0x87/0x88 8. A-B重复 0x89 返回: 0x89 第一次 设A点第二次 设B点第三次 正常播放注:在播放状态下才有此功能9. FLASH总空间和剩余空间 0x8C/0x8D (0x8Cà总空间, 0x8Dà剩余空间)返回两字节: M256m (以M(兆)为单位)10. 停止快进快退 0x8e 返回: 0x8e11. 停止播放 0x8F (可以控制:“播放”“录音”) 返回: 0x8F 13 取得音量值: 0x90返回

14、: 音量 14上一首/下一首 0x91/0x92 返回: 0x91/0x9215.查询总歌曲数 0x93 返回: 歌曲数(1个字节) 16.查询当前歌曲号 0x94 返回: 当前歌曲号(1个字节)17 设置播放速度 0xA0+ 速度 可在024之间变化,正常播放时的速度值为12返回: 0x8F 00 0xAA 校验和 - 成功19 设置EQ音效值 0xB0 EQ 1自然; 2重低音; 3摇滚4爵士; 5流行; 6柔和;7古典返回: 0xB0 EQ20 设置循环值 0xC0 REPEAT 1 单曲播放到尾; 2单曲循环; 3全部播放4全部循环; 返回: 0xC0 REPEAT 下载到MP3播放卡

15、中的歌曲一般为mp3格式。在播放卡中对歌曲的排序是依据拷贝到FLASH中歌曲的先后顺序来的。第一次拷贝到播放卡中的即为第一首歌曲。歌曲的音量最大为63。三、程序举例程序功能:在白色的地面上,贴黑色引导线,在黑色引导线上做一些位置标记,这里的位置标记为一条比两传感器位置宽的黑线,这样当两个传感器同时检测到黑线时,机器人就认为这是一个停留点。机器人沿着黑色引导线运动,并在标记处停留并播放语音信号。这个程序我们可以把它分成两部分来做,一部分是寻迹部分,另一部分为与MP3通信部分,即MP3播放卡的控制。程序中用到的函数:serial_init(9600):串口初始化,设置串口波特率。serial_se

16、nd(2,t):串口发送数据函数,2为串口号,在机器人的扩展板一共有两个串口。t为串口发送的内容。serial_receive(2):串口数据接收函数。2为串口号,如果是接收来自串口1数据时,把函数改为serial_receive(1),即可。Clr_Screen(): 清屏。Mprintf(1,"song=%d",receivedata);:1为数据显示在第几行。可以显示的行数为1,3,5,7。1.流程图2.源程序项目四、机器人的无线通信一、项目目标1.掌握无线通信模块的使用。2.机器人间的通信实现3.用PC机遥控机器人的动作二、项目描述:1.综合叙述大学版机器人配备的无

17、线通信模块,使机器人间的能够进行信息交互。可以于进行群体机器人的研究和机器人的远程无线控制。2.无线通信模块特点以及通信协议无线模块的通信信道是半双工的,最适合点对多点的通信方式,这种方式首先需要设1个主站,其余为从站,所有站都编一个唯一的地址。通信的协调完全由主站控制,主站采用带地址码的数据帧发送数据或命令,从站全部都接收,并将接收到的地址码与本地地址码比较,不同则将数据全部丢掉,不做任何响应;地址码相同,则证明数据是给本地的,从站根据传过来的数据或命令进行不同的响应,将响应的数据发送回去。这些工作都需要上层协议来完成,并可保证在任何一个瞬间,通信网中只有一个电台处于发送状态,以免相互干扰。

18、 也可以用于点对点通信,使用更加简单,在对串口的编程时,只要记住其为半双工通信方式,时刻注意收发的来回时序就可以了。通信模块指标:1.微功率发射,最大发射功率10mW, 2.ISM频段,无需申请频点。载频频率433MHz 3.高抗干扰能力和低误码率。 基于FSK的调制方式,采用高效前向纠错信道编码技术,提高了数据抗突发干扰和随机干扰的能力,在信道误码率为10-2时,可得到实际误码率10-510-6。 传输距离: 在视距情况下,模块天线安装位置离地面高度>2米可靠传输距离大于100m,在干扰较好的环境下。 电源: 使用直流电源,电压+3.65.0V,可以与其它设备共用电源,但请选择纹波系数

19、统好的电源,如果有条件话,可采用5V稳压片单独供电。另外,系统设备中若有其他设备,则需可靠接地。若没有条件可靠接入大地,则可自成一地,但必须与市电完全隔离。 FSK调制原理:数字频率调制又称频移键控(FSK),二进制频移键控记作2FSK。数字频移键控是用载波的频率来传送数字消息,即用所传送的数字消息控制载波的频率。2FSK信号便是符号“1”对应于载频,而符号“0”对应于载频(与不同的另一载频)的已调波形,而且与之间的改变是瞬间完成的。 从原理上讲,数字调频可用模拟调频法来实现,也可用键控法来实现。模拟调频法是利用一个矩形脉冲序列对一个载波进行调频,是频移键控通信方式早期采用的实现方法。2FSK

20、键控法则是利用受矩形脉冲序列控制的开关电路对两个不同的独立频率源进行选通。键控法的特点是转换速度快、波形好、稳定度高且易于实现,故应用广泛。2FSK信号的产生方法及波形示例如图所示。图中s(t)为代表信息的二进制矩形脉冲序列,即是2FSK信号。 3.PC机遥控机器人的上位机程序 上位机采用VC编写三、程序举例:程序功能:三台机器人间的通信。1.三台机器人的数据传递过程在例程中一共有三个程序,三台机器人各下载一个程序,其中一台下载有serial_main.c机器人为通信主机, 其它两台机器为通信从机。Serial_main.c机器人:Serial_2.cSerial_3.c2.源程序Serial

21、_main.c#include "ingenious.h"unsigned int receivedata=0;int a = 0;void zhengfang()/*走个圆*/ move(-400,-200,0);/*演示走一个圆形*/ sleep(5000); stop(); void yuan() move(400,200,0);/*演示走一个圆形*/ sleep(5000); stop();void main() int i = 0; while(1) receivedata = serial_receive(2); if(a=0) move(200,195,0);

22、 /*先往前走两秒*/ sleep(2000); stop(); /*停两秒*/ serial_send(2,0x00f0); /*命令其他机器前进1s*/ sleep(2000); zhengfang(); serial_send(2,0x0002); /*命令2号机走圆*/ a += 1; if(receivedata = 0x0001)/*等待3号机走完正方形后走圆*/ yuan(); serial_send(2,0x0012); /*命令3号机走圆形*/ if(receivedata = 0x0011)/*等待3号机走完圆后后一起走圆*/ zhengfang(); sleep(1000

23、); yuan(); a=0; /*从头开始*/ Serial_2.c#include <stdio.h>#include "ingenious.h"unsigned int receivedata=0;int a = 1;void zhengfang() move(-400,-200,0);/*演示走一个圆形*/ sleep(5000); stop(); void yuan() move(400,200,0);/*演示走一个圆形*/ sleep(5000); stop();void main() while(1) receivedata = serial_re

24、ceive(2); if(receivedata = 0x00f0) /*一齐前进一秒*/ move(200,200,0); sleep(1000); stop(); if(receivedata = 0x0002) zhengfang(); serial_send(2,0x0003);/*通知3号机走正方形*/ if(receivedata = 0x0012) yuan(); serial_send(2,0x0013);/*通知3号机走圆形*/ if(receivedata = 0x0011) zhengfang(); sleep(1000); yuan(); a=0; /*从头开始*/ S

25、erial_3.cinclude <stdio.h>#include "ingenious.h"unsigned int receivedata=0;int a = 1;void zhengfang() move(-400,-200,0);/*演示走一个圆形*/ sleep(5000); stop(); void yuan() move(400,200,0);/*演示走一个圆形*/ sleep(5000); stop();void main() while(1) receivedata = serial_receive(2); if(receivedata =

26、0x00f0) /*一齐前进一秒*/ move(200,200,0); sleep(1000); stop(); if(receivedata = 0x0003) zhengfang(); /*serial_send(2,0x0004);/*通知4号机走正方形*/ serial_send(2,0x0001); if(receivedata = 0x0013) yuan(); /*serial_send(2,0x0014);/*通知4号机走圆形*/ serial_send(2,0x0011); zhengfang(); sleep(1000); yuan(); /*if(receivedata

27、= 0x0011) zhengfang(); sleep(1000); yuan(); */ 项目五、趋光机器人一、 项目目标1.熟悉趋光传感器的基本原理2.掌握趋光程序的编写3.完成练习题中列举项目二、项目描述1.项目综合叙述: 在机器人的本体上有两个远红外传感器,可以作为火焰探测传感器。当传感器探测到火焰时,经AD采样的到的数字量将会变大。根据不同方向的传感器返回数值来确定位置光和热源位置。用户可以通过调节电位器来调节远红外传感器灵敏度,检测距离范围为01m。2.传感器 图5.1 远红外传感器图5.2 远红外传感器 远红外传感器将外界红外光的变化转化为电流的变化,在电阻上产生电压,通过A/

28、D 转换器反映为01023 范围内的数值。外界红外光越强,数值越大。因此越靠近热源,机器人显示读数越大。根据函数返回值的变化能判断红外光线的强弱,从而能大致判别出热源的远近。注意:由于远红外火焰探头工作温度为-2585,存放温度为30 100,超过以上温度范围,远红外火焰探头可能会出现工作失常甚至损坏,所以在使用过程中应注意火焰探头离热源的距离不能太近,以免造成损坏。外,远红外传感器探测角度为60°(参见下图),测试时最好让热源处于探头的检测范围内。 图5.3远红外传感器探测角度3.参考程序项目六、灭火机器人一、项目目标:1.机器人走迷宫实现策略2.传感器的综合应用二、项目描述1.综

29、合描述智能机器人灭火比赛最早是由美国三一学院杰克门德尔逊等一批国际著名机器人学家发起创办的,比赛要求参赛机器人按照预先编排好的程序,通过传感器和超声波等探测设备对周围环境进行模拟分析搜索,在“房间”里用最快的速度找到代表火源的蜡烛并将其扑灭,谁用时最短谁就获胜。目前,灭火比赛已发展成为世界上最为普及、最具影响力的智能机器人比赛。我们的大学版智能机器人的灭火项目,强调竞技而注重对灭火竞赛所用到的灭火策略和传感器的学习。现在国际标准灭火场地是如图:孤立的房间图中红色为火焰,每个房间都将保留标识火源的白线,即在火焰的前面贴一条白色线。灭火思路:首先寻找火源,发现火源后,确定火源的方位,接近火源,然后

30、做出灭火动作,熄灭蜡烛。 实现的方法:首先是寻找火源。如果事先知道火源在哪个房间,可以通过走直线和转弯的方法直接进入房间灭火。如果事先并不知道火源在哪个房间,就要用走迷宫的方法,逐个房间进行寻找。走迷宫可以遵循左手法则或右手法则,一边走迷宫,一边检测火焰。接近蜡烛时,火焰传感器的返回值跟环境值有明显的区别,机器人从而来判断是否找到蜡烛。 发现火源后,就要接近火源,当到达可灭火的范围后,就开始灭火。机器人是利用火焰传感器和地面灰度传感器(检测火焰周围白线的)来判断离火源的远近。具体地说,就是利用正前方火焰传感器采集的火焰值的大小来驱使机器人靠近火源,然后通过左右两边的火焰返回值进行矫正,如左比右

31、亮(火焰传感器返回值表现为左大于右),机器人向左前方移动,右比左亮(火焰传感器返回值表现为右大于左)向右前方移动。一边矫正一边前进;当正前方火焰值到达预定的值时,机器人停止前进,启动风扇开始灭火。2.传感器安装机器人根据需要做部分改装,MT-UROBOT机器人专门配备了灭火套件。灭火套件如图探测火焰的传感器与前面趋光项目的传感器是一样的,所以这里的火焰探测传感器也是接在AD接口上的,在灭火项目中如果不考虑的那个孤立的房间处理时,这些传感器可以不用加,因为在机器人本体上已有两个传感器。支架的安装如图:检测蜡烛周围白线的灰度传感器(前面项目中的寻迹传感器)安装如图:3.灭火过程 在项目描述中我们说

32、过灭火过程主要分为:1.寻找火焰 2.找到火焰调整机器人方位 3.熄灭火焰寻找火焰的策略:通过右手或者左手法则走迷宫的方法,对房间进行逐个搜索。这里采用左手法则来走迷宫,所谓的左手法则就是机器人沿着左边的墙走。机器人依靠本体上的避障传感器来实现,把机器人的右轮的速度设置的比左轮速度快,机器人肯定会运动到接近墙面如图中1的位置,这时左边的红外测障传感器探测到障碍物(墙面,返回值为0),机器人调整两轮的速度到左轮快右轮慢,运动到2位置时,测障传感器返回的值为1,这时在调整机器人速度到前一个状态,即右轮速度快左轮速度慢。所以机器人的沿墙走的路线是一条如图曲线。在遇到直角时,同样也是通过本体上中间和右

33、侧的测障传感器来判断的。机器人沿墙走路径墙面发现火焰并调整机器人位置:当在机器人找到点燃蜡烛的房间时,机器人要调整位置使灭火风扇正对火焰。根据两个远红外传感器的数值来确定蜡烛位置。远红外传感器在使用前要首先要校正,就是在相同的环境下调节传感器上的可变电阻使得到的数字量相差不大,这样在判断火焰位置时两个传感器才有可比对性。熄灭火焰:机器人调整灭火姿态时也可以大概的判断离火源有多远,但为了不撞倒蜡烛,在火源周围贴有白线,在机器人离很近时通过寻迹传感器判断是否遇到白线。有白线停下,启动风扇灭火。4.参考程序: 程序说明:程序的构成如图,根据程序的基本构成图可以写成四个函数,根据传感器的状态,这几个函

34、数被依次调用。AD2,AD3远红外传感器接口,DO(5,0)为DO口的输出函数,参数5是指第5个数字输出接口,0表示输出低电平。DO口输出电平能够直接驱动用来灭火的电机。 源程序:#include <stdio.h>#include "ingenious.h"int AD2 = 0;int AD3 = 0;int AD7 = 0;int AD5 = 0;int AD6 = 0;int AD8 = 0;int obs1=0;int obs2=0;int obs3=0;int obs4=0;int DI3=0,DI2=0;void adjust();void follow_wall();void M_fire();void main() while(1) AD2 = AD(2); AD7 = AD(7); AD3 = AD(3); AD8 = AD(8); if(AD2<200)&&(AD3<200)/*&&(AD7<280)*/) f

温馨提示

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

评论

0/150

提交评论