华北电力大学
实 验 报 告
| |
实验名称:
机器人控制技术基础
课程名称: 机器人控制技术基础
实 验 人:张 钰 信 安1601 201609040126 李 童 能 化1601 201605040111 韩翔宇 能 化1601 201605040104 成 绩:
指导教师: 林永君、房静
实验日期: 2016年3月4日-3月26日
华北电力大学工程训练中心
第一部分:单片机开发板 实验一:流水灯实验
实验目的:通过此实验,初步掌握单片机的 IO 口的基本操作。 实验内容:控制接在 P0.0上的 8个LED L0—L8 依次点亮,如此循环。 硬件说明:
根据流水灯的硬件连接,我们发现只有单片机的IO口输出为低电平时LED灯才会被点亮,我们先给P0口设定好初值,只让其点亮一盏灯,然后用左右移函数即可依次点亮其他的灯。 源程序如下: #include sbit led_1=P0^0; sbit led_2=P0^1; sbit led_3=P0^2; sbit led_4=P0^3; sbit led_5=P0^4; sbit led_6=P0^5; sbit led_7=P0^6; sbit led_8=P0^7; void main() {
for(;;) { led_1=0; display_ms(10);
}
} led_1=1; led_2=0; display_ms(10); led_2=1; led_3=0; display_ms(10); led_3=1; led_4=0; display_ms(10); led_4=1; led_5=0; display_ms(10); led_5=1; led_6=0; display_ms(10); led_6=1; led_7=0; display_ms(10); led_7=1; led_8=0; display_ms(10); led_8=1; 第二部分:机器人小车
内容简介:机器人小车完成如图规定的赛道,从规定的起点开始,记录完成赛道一圈的时间。必须在30秒之内完成,超时无效。其中当小车整体都在赛道外时停止比赛,视为犯规,小车不规定运动方向,顺时针和逆时针都可以采用,但都从规定的起点开始记录时间。 作品优点及应用前景:
单片机可靠性高,编程简单单片机执行一条指令的时间是μs级,执行一个扫描周期的时间为几ms乃至几十ms。相对于电器的动作时间而言,扫描周期是短暂的,可以认为在一个扫描周期内输入端子的状态是不变的,而对其状态变化的采集和处理也是实时的,从而满足了实时控制的要求。本次设计的简易智能电动车,采用STC89C52RC单片机作为小车的检测和控制核心,使单片机按照预定的工作模式控制小车在各区域按预定的速度行驶, 通过控制单片机进而控制小车,体现了智能化,通过使用不同的函数及设定不同的函数参数,能够在不同的要求下改变小车的前后轮转动方向以及转动速度,来完成不同的目的要求。在画正方形的同时能够完成四个1/4圆弧的制作。
循迹实验场地图:
传感器电路图:
源程序:
#include sbit l_l = P0^0; sbit r_l = P0^1; sbit l_m = P1^2; sbit r_m = P1^1; void delay(unsigned int ms) {
} void main() { unsigned int i;
l_l = 1; r_l = 1; l_m = 1; r_m = 1; for(;;) unsigned int i,j; for(i=0;i
if((l_l ==0)&&(r_l ==1)) { l_m = 1; for(i=0;i
{
} r_m = 0; delay(5); r_m = 1; delay(45);
}
else if((l_l ==1)&&(r_l ==0)) {
} else if((l_1==1)&&(l_2==1)) {
} else {
l_m = 0; r_m = 0; delay(5); l_m = 1; r_m=1; l_m=1; r_m = 1; for(i=0;i
} l_m = 0; delay(5); l_m = 1; delay(45);
}
r_m = 1; delay(45); }
}
第三部分:心得体会、合理性建议或意见
参加这次机器人实验基础培训,我最大的收获便是对机械控制有了初步的了解,然后学会了Keil uVison和Proteus等软件的用法,掌握了基本的C51单片机的初步调试和更改程序。在调试程序的过程中,我认识到了规范的重要性,写程序时一定要规范,否则就会在调试过程中报错。然后就是在焊制传感器的过程中,掌握了电络铁的使用,并了解了传感器的构成和程序控制方法。然后在调试程序过程中,一开始我们准备将所有控制函数写在头文件中,然后在主函数中调用,可是后来实践过程中总是不能达到预期效果,经过思考后,我想到了调用函数过程中变量的生存期问题,最终不得不放弃这种方法,采用正常的C语言函数写法。其次,在理论课的学习中,接触到了对未来学习模电或者数电有用的知识和模拟程序。非常感谢学长们的帮助,我们从中学到了很多。