1、中科鸥鹏第二讲 机器人的伺服电机 BASIC Stamp 2教学底板本课件基于秦志强、陈伟和王文斌合作编译的高职教材基础机器人制作与编程基础机器人制作与编程制作而成主讲人:秦志强博士中科鸥鹏本讲摘要n连续旋转伺服电机简介n任务1:将伺服电机连接到教学板n任务2:伺服电机调零n任务3:如何保存数值和计数n任务4:测试伺服电机n本章小结:工程素质和技能归纳中科鸥鹏连续旋转伺服电机简介 机器人的伺服电机是用来将机器人大脑发出的运动指令转换为运动动作的部件,相当于人的肌肉的作用。 本讲教你如何连接、调整以及测试机器人伺服电机。为此,你需要理解和掌握控制伺服电机方向、速度和运行时间的相关PBASIC指令
2、及其编程技术。中科鸥鹏连续旋转伺服电机简介n机器人伺服电机有很多种,本讲要介绍的主要是连续旋转伺服电机。中科鸥鹏任务任务1:将伺服电机连接到教学板:将伺服电机连接到教学板n在本任务中首先将伺服电机连接到电源和BASIC Stamp模块的I/O口,然后搭建一个LED电路来监视BASIC Stamp模块发送到伺服电机的运动控制信号。n连接伺服电机所需的零部件连接伺服电机所需的零部件 帕拉斯公司生产的连续旋转伺服电机2个; 搭建LED电路所需的零配件(LED和470欧姆电阻)2套中科鸥鹏n连接伺服电机到教学底板连接伺服电机到教学底板 把三位开关拨至0位切断教学底板的电源。 显示的是教学板上伺服电机接
3、线端子。中科鸥鹏n如果使用6V电池组,将两个伺服电机接线端子之间的跳线帽接Vin n如果使用7.5 V、1000 mA的直流电源,将跳线帽接Vdd 中科鸥鹏n下图是你将要搭建的电路的示意图,跳线设定接Vin。n注意:每个伺服电机的控制电缆有三根线,其中白色的线用来传送电机的控制信号,红色用来接到电源上,而黑色的则是地线。这些线的颜色的定义在伺服电机出厂时就已经定义好。以后你将会在工程上看到,许多电气元件都是通过线的颜色来标记电线所承担的功能。中科鸥鹏n连接完成后,搭建好的系统如下图 教学底板与电池盒、伺服电机接线示意图 中科鸥鹏n右边的真实接线图将LED监视电路在教学板上连接好;然后转到任务2
4、。 伺服电机控制信号的LED监视电路 中科鸥鹏任务任务2:伺服电机调零:伺服电机调零n所谓伺服电机调零是指,当发送一个特定的控制信号(零点标定信号)给伺服电机时,让电机保持静止的过程。n由于伺服电机在工厂没有预先调整,它们在接收到该零点标定信号时可能会转动。因此你要用螺丝刀调节伺服电机模块内的调节电阻让伺服电机保持静止。这就是伺服电机调零过程。 中科鸥鹏Excerpts from page 54 Excerpts from page 54 伺服电机调零零点标定信号的时序图 CenterServoP12.bs2 This program sends 1.5 ms pulses to the se
5、rvo connected to P12 for manual centering. $STAMP BS2 $PBASIC 2.5DEBUG Program Running!DOPULSOUT 12, 750PAUSE 20LOOP中科鸥鹏n注意:以上程序一旦执行,将永远执行下去,直到你关断微控制器的电源为止n最好每次只对一只电机做标定,因为这样的话,在你调节电机时你就可以听到什么时候电机停止。 (为何用听到,而不用看到?)中科鸥鹏n如果电机没有进行零点标定,它的连接喉就会转动,而且你也能听到里面马达转动的响声。n如果电机还没有进行零点标定,用螺丝刀轻轻调节伺服电机上的电位器,直到电机停止转动
6、。(仔细倾听电机的声音,确信电机已经停止转动)中科鸥鹏程序示例程序示例: CenterServoP13.bs2n CenterServoP13.bs2n This program sends 1.5 ms pulses to the servo connected ton P13 for manual centering.n $STAMP BS2n $PBASIC 2.5nDEBUG Program Running!nDOnPULSOUT 13, 750nPAUSE 20nLOOPn注意:如果上述任务完成后,不再进行后面的任务,一定要记得注意:如果上述任务完成后,不再进行后面的任务,一定要记得
7、将教学板的电源断开。将教学板的电源断开。中科鸥鹏任务任务3:如何保存数值和计数:如何保存数值和计数n你在编写某个程序时,肯定并不总是需要机器人永远执行同一个操作或者说任务,而只希望它执行一段指定的时间或者执行一些固定的次数。这时,你就要在PBASIC 程序中用于到变量。n变量用来保存数值。 1.后面的机器人程序很大程度上都要依赖使用变量。 2.用变量保存数值的最主要的作用就是程序能用这些变量来计数。 3.一旦你的程序能计数,你就能控制和跟踪事件发生的次数。中科鸥鹏用变量存储数值,数学运算和计数用变量存储数值,数学运算和计数n变量可以用来储存数值。 PBASIC语言在使用一个变量之前,要先给该变
8、量起一个名字,并说明该变量的大小类型。这叫声明一个变量。声明一个变量的PBASIC语法如下:nvariableName VAR Size中科鸥鹏nPBASIC程序中可以声明的变量类型如下:Bit 存储0或者1;Bib 用来存储0到15之间的任意数值;Byte 用来存储0到255之间的任意数值;Word 用来存储0到65535之间的任意数值,或者-32768到32767之间的任意数值。n注意:为何有上述特定的变量类型大小呢?请参考二进制的说明。中科鸥鹏程序示例程序示例: VariablesAndSimpleMath.bs2n这个例程演示了如何对变量进行声明、初始化和运算。n VariablesA
9、ndSimpleMath.bs2n Declare variables and use them to solve a few arithmetic problems.n $STAMP BS2n $PBASIC 2.5nvalue VAR Word Declare variablesnanotherValue VAR Wordnvalue = 500 Initialize variablesnanotherValue = 2000nDEBUG ? value Display valuesnDEBUG ? anotherValuenvalue = 10 * anotherValue Perfor
10、m operationsnDEBUG ? value Display values againnDEBUG ? anotherValuenEND中科鸥鹏n如果你想做一些包含负数的计算,你可以使用DEBUG指令的SDEC格式说明来显示。删除程序VariablesAndSimpleMath.bs2的下面部分:value = 10 * anotherValue Perform operationsDEBUG ? value Display values again改成如下代码:value = value - anotherValue Answer = -1500DEBUG value = , SDE
11、C value, CR Display values again运行更改后的程序并验证value的值是否由500变为-1500。 中科鸥鹏计数并控制循环次数计数并控制循环次数n最方便的控制一段代码执行次数的方法是利用FORNEXT循环,语法如下:nFOR Counter = StartValue TO EndValue STEP StepValue NEXTn1.省略号“”表示你可以在FOR 和NEXT之间放一条或多条的程序指令。 2.使用前面的循环前要确保先声明一个变量替代参数Counter。 3. 参数StartValue 和EndValue可以是数值也可以是变量。 4.语法描述中位于大括
12、号 之间的东西,表示是可选参数。中科鸥鹏不同的初始值和终值以及计数步长不同的初始值和终值以及计数步长n你可以给变量StartValue 和EndValue 赋不同的值n修改FORNEXT循环如下:FOR myCounter = 21 TO 9DEBUG ? myCounterPAUSE 500NEXTn增加STEP 3到FORNEXT循环,如下所示:FOR myCounter = 21 TO 9 STEP 3DEBUG ? myCounterPAUSE 500NEXT运行更改后的程序,验证是否以3为步长递减。中科鸥鹏任务任务4:测试伺服电机:测试伺服电机n对子系统进行测试是开发过程的好习惯,它
13、不仅仅是让你拆开机器人,而是在组装之前尽可能修补可能出现的一些问题。n所谓子系统测试是在将一些分立的部件组装成一个更大的设备之前先对各分立的部件进行测试的过程。n特别是在非常复杂的设备中,如果没有事先对子系统进行测试,要找出存在的问题几乎不可能。中科鸥鹏测试伺服电机1.3 ms的控制脉冲序列使电机顺时针全速旋转 1.7ms的连续脉冲序列使电机逆时针全速旋转中科鸥鹏例程例程: ServoP13Clockwise.bs2n输入、保存并运行程序ServoP13Clockwise.bs2。n验证电机的输出轴是否顺时针旋转,并且速度在50 到 60 RPM之间。 ServoP13Clockwise.bs
14、2 Run the servo connected to P13 at full speed clockwise. $STAMP BS2 $PBASIC 2.5DEBUG Program Running!DOPULSOUT 13, 650PAUSE 20LOOP中科鸥鹏思考n下面的理解非常重要。 想一想:当电机安装在机器人底盘的两侧,一个顺时针旋转而另一个逆时针旋转,将使机器人沿直线运动。听起来是否有些古怪? 如果你无法理解,试试这样: 把两个电机背靠背放在一起重新运行程序。中科鸥鹏调整速度和方向调整速度和方向 n两个电机全速转动时,两个PULSOUT指令的参数 Duration有四种不同的组
15、合n通过测试不同的运动组合,并填写运动描述栏,你将慢慢熟悉这些组合并为你自己建立一个参考。中科鸥鹏FORNEXT循环控制电机的运行时间循环控制电机的运行时间 n到目前为止,你已经完全理解了脉冲宽度控制连续旋转电机速度和方向的原理。n控制电机速度和方向的方法是非常简单的,当然也有一个简单的方法来控制电机运行的时间,那就是用FORNEXT循环。 中科鸥鹏预计电机运行时间预计电机运行时间 n设定一个你想让电机运行的时间。n用0.024除时间n所得到的结果就是你需要执行的循环次数。n更改程序BothServosThreeSeconds.bs2使两个电机都运行你所设定的时间。n比较预计的时间与实际运行的时间。 (记住当做完实验后断开系统的电源。)中科鸥鹏工程素质和技能归纳工程素质和技能归纳n帕拉斯伺服电机的接线图和接线;n伺服电机控制信号的监控电路和电路搭建;n伺服电机的零点校准和PULSOUT、PAUSE和循环的使用;nPABSIC变量的使用和循环次数的控制;n电机测试和子系统测试;n两个电机的同时运动以及运动时间的控制等。
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。