智能寻迹机器人实验指导书的模板

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

简介

单片机益智系列——智能寻迹机器人是由益芯科技为科教方便而研发设计。根据现代学校对嵌入式系统开发的需求。依据提高学生实际动手操作能力和思考能力,以加强学生对现实生活中嵌入式系统的应用为参照。智能寻迹机器人全新的设计模式,良好的电路设计,一体化的机电组合,智趣的系统开发,更是成为加强学生学习兴趣的总动源。

智能寻迹机器人采用现在较为流行的8位单片机作为系统大脑。以8051系列家族中的AT89S51/AT89S52为主芯片。40脚的DIP封装使它拥有32个完全IO(GPIO—通用输入输出)端口,通过对这些端口加以信号输入电路,控制电路,执行电路共同完成寻迹机器人。P0.0,P0.1,P0.2,P0.3分别通过LG9110电机驱动来驱动电机1和电机2。由电机的正转与反转来完成机器人的前进,后退,左转,右转,遇障碍物绕行,避悬崖等基本动作。在机器人前进时如果前方有障碍物,由红外发射管发射的红外信号被反射给红外接收管,红外接管将此信号经过P3.7传送入AT89S52中,主芯片通过部的代码进行机器人的绕障碍物操作,同时主芯片将P3.7的信号状态通过P2.5的LED 指示灯显示出来。机器人行走时会通过P3.5与P3.6的红外接收探头来进行检测。当走到悬崖处时,P3.5或P3.6将收到一个电平信号,此电平信号将通过相应端口传送入主芯片中,主芯片通过部代码完成机器人的避悬崖操作。同时P3.5与P3.6的信号状态将通过P2.6/P2.7显示出来。在机器人的左转,右转,后退的过程,可以通过观看以P2.0/P0.7为指示灯的运行状态。P0.4为机器人的声控检测端口,在运行为前进状态时,可以能过声控(如拍手声)来控制它的运行与停止。P0.6为机器人的声音输出端。在机器人遇到障碍物时。进行绕障碍物与避悬崖时可以通过此端口控制蜂鸣器发出报警声。当为白天或黑夜时可以通过P0.5端口中的光敏电阻来进行判断,以方便完成机器人夜间

自动照明等功能。两个按键以查询/中断两种不同的方式来展现按键操作。你可以按下S1键来进行机器的停止。再按下S2键来进行机器人的运行。这个按键的信息分别被P3.2,P3.4接收到。IR1为红外遥控接收器,这就为机器人进行远程遥控创造了可能。这个红外遥控接收头接收到红外信号时将信号经过P3.3送入到主芯片,主芯片对其进行解密后以不同的方式对机器人进行控制。同时将用户的按键信息通过P2端口上LED数码管显示出来。P3.0、P3.l 中COM端口的加入,让你完全可以用电脑对其进行控制。你可以通过对串口发送数据,数据会被显示到LED数码管中,并让机器人执行相应的功能。电脑的串口软件要求波特率为9600。8位数据位,这时你就可以快乐的用电脑来对它进行你的完全控制了。

EXKJ-ZN02功能的组合多样,使得学生可以充分发挥自主能力,制作出不同的机器人。它为学校进行机器人竞赛和毕业项目设计建立了实物平台,是学校教师授课变得更轻松有趣。同时也能改变学生学习模式和激发学习兴趣。更是作为验证学生学习效果的有力工具。良好的电路板设计,让学生制作变得方便容易,其大大提高了学生的制作成功率。提高了学生对电子电路的兴趣,更是教学过程中不可或缺的教具。

实验一程序状态指示灯演示

一、实验简介:

本程序重点演示了一个最简程序的基本结构,它从顺序、判断、循环的形式表现程序的基本结构,此程序通过闪灯不断的闪动,及闪灯闪动的快慢来表示程序不不同工作状态。它也是常数字设备中进行状态表示的方法之一(例:网卡)。

二、实验原理图:

三、实现代码:

//=====================================================

================ //

// 实验名称:程序状态指示灯演示程序// // 开发日期: 2009/01/19

//

// 修改日期: // // 程序作者: guojun :GuoGuoExkj126. //

// 开发商:益芯科技——技术部//

// 程序备注: 此程序仅为表现本机功能而演示用,当用作实际工程时请慎用. // // 特别声明: 此程序可作研究之用,但引用,,使用请注明出处. //

//===================================================== ================ //

#include //包含头文件

#define LED P1 //宏定义显示端口号

void Delay(unsigned int DelayTime) //定义可变延时函数

{

while(DelayTime--); //延时函数进入倒计时

}

void main() //程序主函数码

{

unsigned int CountData=0; //定义一个整形变量,用于闪动次数++ while(1) //主程序循环体开始

{

if(CountData<30) //判断闪动次数是否位于0-30之间

{

Delay(60000); //用60000作为基数开始延时函数

}

else if(CountData<60) //判断闪动次数是否位于30-60之间

{

Delay(30000); //用30000作为基数开始延时函数

}

else if(CountData<90) //判断闪动次数是否位于60-90之间

{

Delay(10000); //用10000作为基数开始延时函数

}

else if(CountData<120) //判断闪动次数是否位于90-120之间

{

CountData=0; //仅进行一次操作即可退出.

}

CountData=CountData+1; //闪动次数基数++

LED=~LED; //将显示端口进行取反操作

}

}

四、运行效果:

程序运行效果为:开机后程序以慢速闪动,一段时间后速度开始加快,再等待时间,闪灯的速度达到最快,之后一段时间后,闪动将回到开始状态。

相关文档
最新文档