五、直流电机测试
AS-UII 机器人上有两个直流电机,机器人的调速是通过调节电机的平均电压实现的。AS-UII 机器人的驱动方式是差动驱动。两个主要的库函数是motor()和drive()。库函数motor(a,b)应用时应注意: 1) 库函数motor(a,b)只控制单个的电机转速; 2) 库函数motor(a,b)有两个参数a、b,都是整型数;
3) 库函数motor(a,b)中a 指定是左轮或是右轮,a=1 代表左轮,a=2 代表右轮;b指定转速,b 的取值范围是-100~+100。 库函数drive(a,b)应用时应注意:
1) 此库函数是复合语句,同时控制左右两个电机的转速; 2) 此语句有两个参数a、b,都是整型数;
3) a 指定平移的速度,b 指定旋转的速度。左轮的速度=a+b,右轮的速度=a-b。
实验1:编写程序,使机器人以左轮40 右轮80 的速度前进0.5 秒钟,并走一条弧线。
void main() {
motor( 1 , 40 ); motor( 2 , 80 ); wait( 0.500000 ); stop(); }
实验2:比较以下两个程序,分析原因: 程序1: void main() {
drive( 80 ,0); wait( 0.500000 ); stop(); } 21 程序2: void main() {
drive( 60 ,20);
16
wait( 0.500000 ); stop(); }
程序运行结果: 1. 走直线
2. 走右拐弧线
原因分析
Drive的命令是直线行驶,而drive(a,b)可以决定左右电机的速度,左电机速度=a+b,右电机的速度=a-b.
第一个程序中,左右轮的速度是一样的,而且没有旋转速度。平移速度是80,旋转速度为0。
第二个程序中,左轮速度为80,右轮速度为40,平移速度为60,旋转速度为20。左轮比右路速度快,因而向右走弧线。
六、光电编码器测试
1、工作原理
光电编码器是一种能够传递位置信息的传感器,它由码盘和光电编码模块组成,分别安装在主动轮内侧和轮子支架内侧。光电编码模块运用反射式红外发射接收模块。反射器(即码盘)是黑白相间的铝合金圆片,黑白条纹把圆分成66 等分。当码盘随轮子旋转时,光电编码模块发出的红外线照射在码盘上,黑条和白条反射回来的信号状态不同,从而产生一个脉冲。轮子转一圈共产生33 个脉冲,每个脉冲对应角度约为10.91 度。
码盘及光电编码模块外形
17
光电编码模块安装位置示意图
2、编程测试
检测左右光电编码器当前状态的库函数为:encoder(1),encoder(2)。 在JC 对话窗口中输入如下程序块:
{while(1){printf(\按回车(Enter),JC 能立即编译这一段程序并下载运行,LCD 上会显示0 或1。0 表示当前无反射信号,码盘片的黑格正对编码器;1 表示当前有反射信号,码盘片的白格正对编码器。库函数rotation(1)、rotation(2)可以读出左右光电编码器脉冲累计值。
3、实验
要求:然后缓慢转动左轮,编程测量转一圈是否有33 个脉冲。 程序:
void main() {while(1) {
rotation(1);
printf(\wait(1.0); } }
七、运动控制实验
要求:编写一个机器人直线行走的程序,先让机器人以快速前进3秒,再让机器人以慢速后退5秒,再在原地旋转1圈。
18
void main() {
drive( 100 ,0); wait( 3.000000 ); stop(); drive( -60 ,0); wait( 5.000000 ); stop(); drive( 0 , 80); wait( 1.000000 ); stop(); }
19
相关推荐: