浅析程控机械手活动

    本文是我指导学生参加2002年上海市少年科技站程控机械手比赛后对机械手比赛的意义和教材内容的分析、体会和小结。

    由于初次开展这项活动,本人的经验和水平有限,因此本文的错误和欠缺一定不少。希望各位老师和学生不吝施教。

    在信息时代,电子技术与计算机技术、信息技术是密不可分的,机器人就是电子技术和信息技术相结合的杰作。近年来,随着机器人足球比赛、机器人赛跑、机器人投篮、机器人跳舞等与机器人相关的活动的开展,越来越多的科技人员和教育工作者也加入到这一结合了电子、机械和人工智能技术的活动中,使过去科幻小说中遥不可及的机器人成为青少年手中控制自如的作品。

    由于机器人自身的特点和对未来社会的影响,机器人不仅是全面素质教育的好教材、好办法,而且是科普教育的重要园地。通过在中学“第二课堂设”设置“机器人制作”教学内容,培养学生的创新能力、设计能力、动手能力、综合应用能力和学习兴趣,培养新世纪的科技人才,对我国的教育改革和科学技术发展具有重要的现实意义和深远的历史意义。

    青少年开展电子科普活动而研制的简单机器人,是一种电脑软硬件相结合的现代教学系统。与电脑相连后,学生可自己编写程序控制自己制作的机器人的动作,同时还可利用声、光、红外、金属探测等扩展模块完成自动躲避障碍物、报警等任务。

    机械手是机器人家族的一员,它最早应用于汽车工业中的焊接流水线,当前已广泛应用于工业、医学、航天、等各个领域。该机械手学生学习怎样用电脑程序(软件)控制电子设备(硬件),它一方面使一台自己制作的机械手完成比普通电动车、遥控车多得多的动作、任务,另一方面把抽象难懂的计算机编程变成了一件生动形象、轻松有趣的活动,一个函数、一条语句的执行结果可以对应为机械手的动作,如手臂旋转、升降、手腕前后移动、手指抓和放。等,大大提高了学生学习计算机语言和电子技术的兴趣!

    这次机械手比赛叫机械手灌篮球。它让机械手连续抓三个不同位置的小球放进一个固定的蓝筐。谁的正确率高、用的时间少谁就优胜。

一、系统简介

   本系统是基于 TURBO PASCAL 程序设计语言编制软件,并利用计算机通过访问并行口对机器人进行控制。

1.硬件系统

   控制部分是计算机,要求很低,就是“486”即可以。动作部分由四个舵机分别驱动机器人的各个部分:它们分别是手、手臂、手腕、机身。(手臂的位置旋转移位)

2.软件系统

   在 TURBO PASCAL 7.0高级程序设计语言下,编制控制机器人的程序。

3. 软件安装

   在硬盘上创建一个新的文件夹,例如TP,将系统程序和实例程序复制到硬盘上,程序的运行环境是纯DOS状态。

二、硬件连接
1、 计算机与机器人的连接

   用打印机线连接。(符合计算机并行口的标准)

2、 电源

   采用5伏直流稳压电源,供电电流大于600毫安,为四个舵机和机械手的接口电路供电。
   注意:电源的极性,在连接时正负极性不要接反。

3、 输入信号

   计算机并行口的36脚中的第2脚到第9脚是8位数据信号。如用二进制表示那么第二脚是2的0次方,第三脚是2的1次方,依次类推那么第9脚是2的7次方。如用十进制表示那么第二脚2的0次方是1,第三脚是2的1次方是2,第四脚是2的2次方是4,依次类推那么第9脚是2的7次方是128。
   本机械手任选其中的四个端口,再加上33脚接地线,共用5根线作为信号线。

4、 输出信号

   共有4个控制舵机的输出信号,它们分别控制手、手腕、手臂、机身(手臂的位置旋转移位)。在接口电路板上每组输出信号有:信号、电源正极、负极,它们分别对应舵机插座的白、红、黑3根连线。

面向中小学全实施辅校计划

1、 控制信号的介绍

   TURBO PASCAL 可以访问数据端口,将某一个值赋给端口时,该值就被输出到相应的端口。例如计算机并行口的端口地址是378,我们用TURBO PASCAL语言访问数据端口的命令 PORT[&378]:=32{将32送到端口}(大括号内的文字是注释)就可以把某一个值赋给并行端口的第6位置,因为32转换成8位2进制是00100000,对应第6位置“1”。
2、机器人的控制方式和命令
按照上例,将控制信号的数值送到并行口,并行端口的地址是378,则控制命令如下:

port[$378]:=32; {十进制数32对应的8位二进制数是“00100000”}

ys(500) {调用延时子程序,参数是括号中的500.}

以上两条命令的效果是端口$378即计算机并行端口数据线的第6位置“1”,该置“1”信号作为控制舵机的信号,并且将该信号进行适当的延时,通过不同的延时,产生不同脉宽的电平,即控制信号,用以控制舵机运动的角度。

舵机是一种特殊的伺服电机,它用于航模的方向舵上。它的内部由一个电机,一个电位器和一块电路板组成,电机旋转时带动电位器旋转,由电位器输出位置信号,它不能360度旋转。它不同于一般的电机或步进电机。舵机在某一时刻、某一个位置会产生一个位置信号,将计算机输出的控制信号和舵机所产生的位置信号作比较,从而决定舵机转动的方向。舵机所转角度由延时参数来决定。

四、本次参加比赛活动的体会

  由于舵机性能的离散性、计算机性能(CPU工作频率不同)差异也相差很大。因此程序和程序中的参数要反复调试才能确定。

  为了取得机械手运动位置和相关的数据参数我们先编一个程序,用来观察机械手四个舵机的运动情况,取得机械手各个舵机运动在不同的位置的参数。(最大、最小、中间位置的数据)

program test; {程序取名}

uses crt; {定义使用单元}

var {变量说明}

i,x,l,n:integer;{整形}

procedure ys(n:integer);{延时过程程序的头部说明.过程相当于C语言或BASIC语言中的子程序.}

var

i,j:integer;

begin {过程开始,本过程执行双循环,其功能是让机器人运动延时一段时间.}

j:=1;

while j<n do

begin

i:=1;

while i<100 do

i:=i+1;

j:=j+1;

end;

end;

begin {主程序开始,功能是让某一舵机位置初始化定位.}

for x:=1 to 80 do begin

n:=0;

port[$378]:=32; {并行口数据线的第6位置“1”

ys(100); {调用延时过程,参数是100,观察舵机转动的位置}

port[$378]:=0; {发0电平,所有8根线为0,产生周期信号。}

delay(20); {系统延时,DELAY 是标准函数。}

end;

for x:=100 to 400? do {参数X从100随着循环变量增加到400,观察舵机转动的方向和位置。}

begin

port[$378]:=32;{改变参数32,可改变不同的舵机。}

ys(x);

port[$378]:=0;

delay(20);

end;

end.

本程序仅作参考,同学们可以动脑改进,如使程序可以达到一次连续测4个舵机的功能。

  由于舵机所转角度是确定的,要保证机械手每次运动的位置正确性和一致性,在装配机械手时一定想法要使机械手的机械运动保持稳定,以确保机械手每次运动的位置正确性和一致性,这一点非常重要。我们在装配是中前后共作4次修改。把传动索分二段、向反方向拉紧,使传动轮和钢丝索之间不打滑,保持舵机每次运动的位置正确性;我们把机械手底座加上平面轴承,消除其运动中的抖动和不稳定;我们还给手臂加上配重,以减小手臂运动的阻力等措施。其他,如电源的供电稳定性、篮球架设置的位置等问题都要考虑。

  要取得好的成绩必须要反复研究、反复实验才能取得。正是这样,才能培养学生的动手能力,动脑能力。创造性思维能力。

  指导学生编程序首先要学生清楚程序的功能:让机器人从某个地方拾起一个小球,然后抬起手臂,旋转到另一个地方把小球放下。另外学生要学习基本的计算机语言,然后根据程序要完成的任务编写程序的流程图,最后才能编写和调试程序。完成机械手功能的基本思想可以按上面讲述的原理和测试机械手位置的基本程序,同学们可以动脑、创新、不断改进,使你的机械手快速平稳地完成任务。

  这次我们参加比赛的成绩不理想、只拿到一个比赛三等奖、一个创意第三名,但是我们通过参加比赛开展了机器人活动、锻炼了学生和老师收获也不小,为以后开展机器人教学活动打了基础。

 
 
 
 
版权所有 北京汉库科技有限责任公司
(C)Copyright 2005 Hangood.Co.Ltd. All rights reserved
公司电话:010-62979246 62965267 传真:010-62979246 邮箱:stonedoctrine@163.com china-robot@163.com robot-service@163.com(售后服务)