51单片机智能机器人实验报告
智能机器人实验报告电子稿
实验一教你的机器人“走路”
一、要求与目的
熟悉机器人用于走路的“脚”,要教你的机器人学会走路,同时你要掌握控制机器人走路的基本方法。
二、内容
1、机器人为什么会“走”
要想让机器人移动,就要控制电机的转动。控制机器人“行走”的基本指令是motor(x,y)函数和drive(x,y)函数。
2、驱动电机的函数
通过JC程序控制电机转动,使机器人行走的指令有两个,它们是motor(x,y)函数和drive(x,y)函数,介绍:
一、motor(x,y)函数
此函数是“启动”电机,x取值1、2,分别表示左右两个电机;y表示电机转速两个电机同时以相同速度启动,意味着什么?机器人将怎样运动?
答:机器人将直走。
进一步讨论:如果将一侧电机速度改为0,机器人将会怎样运动?(顺时针、逆时针旋转)
答:左侧电机速度为零,则逆时针旋转;反之,则顺时针旋转。实验题一:让机器人顺时针、逆时针旋转
(1)用vjc语言或者流程图让能力风暴顺时针走直径约1米的圆形路径;
程序:
void main()
{
while(1)
{
motor( 1 , 80 );
motor( 2 , 20 );
}
stop();
}
(2)用vjc语言或者流程图让能力风暴逆时针走约1米立方的正方形路径;
程序:
void main()
{
while(1)
{
drive( 100 ,0);
wait( 1.000000 );
stop();
motor( 1 , -20 );
motor( 2 , 20 );
wait( 0.500000 );
stop();
}
}
实验题二:首先机器人前进2秒,之后机器人逆时针旋转1.8秒,然后机器人前进1秒,最后停下来。小结:motor函数主要是实现旋转。
实验代码:
Void main()
{
Drive(60,0);
Wait(2.000000);
Stop();
Drive(0,-60);
Wait(1.800000);
Stop();
Drive(80,0);
Wait(1.000000);
Stop();
}
二、drive(x,y)函数
此函数是“直行”,x表示基准速度,y表示左右电机与基准速度的差。机器人左侧电机速度为x-y,右侧电机速度为x+y。
推断:drive函数既可以直行,也可以转弯。
试一试下面程序能够干什么?答:可以画圆。
Void main()
{drive(60,-20);
wait(11.0);——参数11.0可以调整,调整的变化是什么?
stop(); }
答:调整后所画圆弧弧度变小。
实验二机器人“听令”出发
一、要求与目的
机器人的光敏传感器和红外传感器可以像人的眼睛一样,获取光线强弱的信息和周围障碍物体的信息。并且机器人还可以用声音传感器获取声音信息,在本次的项目中,将通过声音传感器为机器人发令。
二、内容
1、项目分析
能力风暴机器人的声音传感器实际上是一只可以接收声音大小的麦克风,通过该传感器,机器人可以“听到”发出的声音指令,并根据环境声音大小对机器人实现智能控制。知识点提示:声音传感器(麦克风)函数MICROPHONE()用于检测声音传感器接
收到的声音信息。函数对音量检测值的范围为0—255的整数,函数值越大,声音越大。环境声音信号的检测:通过下面的程序可以检测到周围环境的声音信息,同时也可以检测到发令的声音强度信息,并将发令声音信息记录下来,作为机器人“听令”出发的判断依据。void main()
{ int micv;
while(1)
{ micv=microphone();
printf(“micv%d\n”,micv);
wait(0.3);
}
}
通过上面的程序获取环境声音的检测数据,并填入下面的空中以备项目实施时的应用:机器人所在场地的声音环境检测值是____15______,发令时的声音检测值是______70_______。
2、算法分析
通过反复判断环境声音信号的检测值来实现机器人的“听令”出发。
知识点提示:VJC系统的关系式:用能力风暴机器人的VJC系统编写程序时,循环控制和条件控制语句中都要用到条件判断,条件判断中的条件可以用VJC系统的关系表达式来表示。大于,不等于!=,小
于,大于等于=,等于= =,小于等于=。单片机printf函数