机器人课程设计说明书Word格式文档下载.docx
《机器人课程设计说明书Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《机器人课程设计说明书Word格式文档下载.docx(16页珍藏版)》请在冰豆网上搜索。
本课程设计所用的AT89S52单片机是在此基础上改进而来的。
AT89S52是一种高性能、低功耗的8位单片机,内含8k字节ISP可反复擦写1000次的FLASH只读程序存储器,兼容标准MCS51指令系统及其引脚结构,在实际工程应用中,功能强大的AT89S52已成为许多高性价比嵌入式控制应用系统的解决方案。
2、机器人与C51单片机
图3是本设计使用的机器人工程对象,它采用AT89S52单片机作为大脑,通过教学板安装在机器人底盘上,完成设计要求的基本能力,使他具备基本的智能。
图3采用C51单片机的机器人
3、所需软件
我们将反复用到三款软件:
KeiluVision2IDE集成开发环境、SLISP下载软件、串口调试软件等。
(一)、KeiluVision2IDE集成开发环境
该软件是德国KEIL公司出品的51系列单片机C语言集成开发系统。
你可以在KEIL公司的网站上获得该软件的安装包。
(二)、SLISP软件下载工具
该软件是广州天河双龙电子有限公司推出的一款ISP下载软件,使用该软件你可以将可执行的文件下载到你的机器人单片机上。
该软件的使用需要你的计算机有并行口。
你可以在双龙公司的网站中获得该软件。
(三)、串口调试软件
此软件是用来显示单片机与计算机的交互信息的。
在硬件上你的计算机至少要有串口或USB接口来与单片机的教学板的串口连接。
这个在实验室中提供了该软件的绿色版本,无需安装即可使用。
三、小车硬件安装过程
1.安装机器人底盘硬件
(1)将13/32英寸的橡胶套圈插到宝贝车底盘衷心的孔内。
(2)确保底盘中心孔的边缘嵌在橡胶圈的凹槽中。
(3)用4个螺丝将螺柱固定在底盘上。
2.拆除舵机摆臂
(1)用螺丝起子去掉舵机摆臂和电机输出轴之间的螺钉。
(2)将舵机摆臂从电机输出轴上取下来。
(3)将螺丝钉保存好,而后还会用到。
3.将电机安装到底盘上
(1)用盘头螺丝和螺母将舵机固定在底盘上。
为了最好的性能,必须从里面而不是从外面把电机放入巨型窗口。
(2)用标签纸标识伺服电机的左右轮。
4.安装电池盒
(1)用平头螺丝和螺母将电池盒固定在宝贝车机器人的底盘下面。
(2)将螺丝穿过电池盒,然后在底盘上面用螺母紧固。
(3)将电池盒的电源连接线穿过底盘中间带有橡胶圈的孔。
(4)将伺服电机线也穿过此孔。
(5)牌例伺服电机线和电源线。
5.安装轮子
(1)轮子的中心孔与底盘尾部的中心孔对准在一条水平线上。
(2)将开口销同时穿过这三个孔(底盘左侧、尾轮、底盘右侧)
(3)将开口销一端弯曲使它不会滑出。
(4)拉伸橡皮圈,把它套在每个轮子上。
(5)每个轮子有一个凹槽用于把它安装到输出轴上。
将两个轮子分别在输出轴上,确保两个高度一致,并已安装进轮子的凹槽。
(6)用螺丝钉将轮子固定在输出轴上。
6安装固定连接线
(1)连接伺服电机到教学底板上的电机接口处。
(2)将贴着“L”(左轮驱动电机)的插头连接到PC3端口,贴着“R”(右轮驱动电机)的插头连接到PC2端口。
(3)确保面包板接近驱动轮而不是尾轮。
(4)将主板放在四个支架上使其与四个孔对齐。
(5)用盘头呆平垫螺丝将主板固定在螺柱上。
四、C51+AVR控制板介绍
概述:
C51+AVR宝贝车控制板,是鸥鹏科技有限公司开发的,一款拥有C51和AVR功能的单片机控制板。
C51部分采用的是AT89S52单片机,AVR部分采用的是ALTMEGA8的单片机。
89S52的主要性能:
Ø
与MCS-51单片机产品兼容
8K字节在系统可编程Flash存储器
1000次擦写周期
全静态操作:
0Hz~33Hz
三级加密程序存储器
32个可编程I/O口线
三个16位定时器/计数器
八个中断源
全双工UART串行通道
低功耗空闲和掉电模式
掉电后中断可唤醒
看门狗定时器
双数据指针
掉电标识符
功能特性描述
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
AVR的主要性能:
高性能、低功耗的8位AVR®
微处理器先进的RISC结构130条指令。
大多数指令执行时间为单个时钟周期32个8位通用工作寄存器全静态工作工作于16MHz时性能高达16MIPS只需两个时钟周期的硬件乘法器非易失性程序和数据存储器8K字节的系统内可编程Flash擦写寿命:
10,000次。
具有独立锁定位的可选Boot代码区通过片上Boot程序实现系统内编程真正的同时读写操作512字节的EEPROM擦写寿命:
100,000次。
1K字节的片内SRAM可以对锁定位进行编程以实现用户程序的加密外设特点两个具有独立预分频器8位定时器/计数器,其中之一有比较功能。
一个具有预分频器、比较功能和捕捉功能的16位定时器/计数器–具有独立振荡器的实时计数器RTC三通道PWM,TQFP与MLF封装的8路ADC8路10位ADC,PDIP封装的6路ADC,8路10位ADC,面向字节的两线接口两个可编程的串行USART可工作于主机/从机模式的SPI串行接口。
具有独立片内振荡器的可编程看门狗定时器片内模拟比较器特殊的处理器特点上电复位以及可编程的掉电检测片内经过标定的RC振荡器片内/片外中断源–5种睡眠模式:
空闲模式、ADC噪声抑制模式、省电模式、掉电模式及Standby模式。
I/O和封装–23个可编程的I/O口–28引脚PDIP封装,32引脚TQFP封装,32引脚MLF封装。
工作电压2.7-5.5V(ATmega8L)–4.5-5.5V(ATmega8)。
速度等级0-8MHz(ATmega8L)–0-16MHz(ATmega8)4Mhz时功耗,3V,25°
C工作模式:
3.6mA空闲模式:
1.0mA掉电模式:
0.5uA
图
(1)
图
(2)
1
电源插头:
单片机供电
17
20pin排母:
AVRLCD显示块的扩展接口。
2
三档拨动开关:
1、档关2、单片机供电
3、舵机供电。
18
IO扩展口舵机插口:
舵机与AVR单片机的连接。
3
C51ISP下载口:
并口下载HEX文件。
19
AVR扩展口。
4
C51单片机供电跳线。
20
扩展面包板。
5
三端稳压器:
提供稳定的5V电源
21
电源指示灯:
显示控制板是否通电。
6
电源选择跳线:
当跳线帽连接到Vin的时候舵机的供电电源是输入电压电源,当跳线帽连接到Vcc,舵机的供电电源是5V。
22
C51单片机电源显示灯:
用于C51单片机通电反馈。
7
舵机连接插头:
舵机与C51单片机的连接。
23
AVR单片机电源显示灯:
用于AVR单片机通电反馈。
8
C51单片机的IO扩展口。
24
轻触开关:
用于C51单片机复位。
9
C51LCD显示块的扩展接口
25
晶振:
给C51单片机提供时钟信号。
10
MAX232通信IC:
用于PC机与单片机进行异步串行通信。
26
给AVR单片机提供时钟信号。
11
DB9母头:
PC机和C51系列的单片机的异步串行通信。
27
用于AVR单片机复位。
12
C51系列单片机:
AT89S52,TOFP封装。
28
舵机和滚轮:
宝贝车的运动执行器件
13
AVRISP下载口:
29
宝贝车的支架。
14
AVR单片机供电跳线。
15
AVR系列单片机28脚PDIP封装。
16
PC机和AVR系列的单片机的异步串行通信。
五、软件编程设计
任务一、基本巡航动作
定义了机器人的前后左右四个方向:
当机器人向前走时,它将走向本页纸的右边;
当向后走时,会走向纸的左边;
向左转会使其向纸的顶端移动;
向右转它会朝着本页纸的底
端移动。
#include<
BoeBot.h>
uart.h>
intmain(void)
{
intcounter;
uart_Init();
printf("
ProgramRunning!
\n"
);
for(counter=1;
counter<
=65;
counter++)//向前
P1_1=1;
delay_nus(1700);
P1_1=0;
P1_0=1;
delay_nus(1300);
P1_0=0;
delay_nms(20);
}
=26;
counter++)//向左转
counter++)//向右转
counter++)//向后
while
(1);
任务二、搭建并测试IR发射和探测器对
元件清单:
(1)两个红外检测器
(2)两个IRLED
(3)四个470□电阻
(4)两个9013三极管
搭建红外线前灯
电路板的每个角安装一个IR组(IRLED和检测器)。
断开主板和伺服系统的电源
建立图5-3所示的电路,可参考实物图5-4
图
任务三、探测和避开障碍物
intrins.h>
#defineLeftIRP1_2//左边红外接收连接到P1_2
#defineRightIRP3_5//右边红外接收连接到P3_5
#defineLeftLaunchP1_3//左边红外发射连接到P1_3
#defineRightLaunchP3_6//右边红外发射连接到P3_6
voidIRLaunch(unsignedcharIR)
if(IR=='
L'
)//左边发射
for(counter=0;
38;
counter++)//发射时间比胡须长
LeftLaunch=1;
_nop_();
_nop_();
LeftLaunch=0;
R'
)//右边发射
counter++)
RightLaunch=1;
RightLaunch=0;
voidForward(void)//向前行走子程序
voidLeft_Turn(void)//左转子程序
inti;
for(i=1;
i<
i++)
voidRight_Turn(void)//右转子程序
voidBackward(void)//向后行走子程序
intirDetectLeft,irDetectRight;
while
(1)
IRLaunch('
//右边发射
irDetectRight=RightIR;
//右边接收
//左边发射
irDetectLeft=LeftIR;
//左边接收
if((irDetectLeft==0)&
&
(irDetectRight==0))//两边同时接收到红外线
Backward();
Left_Turn();
elseif(irDetectLeft==0)//只有左边接收到红外线
Right_Turn();
elseif(irDetectRight==0)//只有右边接收到红外线
else
Forward();
六、心得体会
本次课程设计收获较多,对我们所学的单片机和C语言等课本知识进一步进行了巩固,同时也锻炼了我们的动手实践能力。
随着科技的不断发展,许多人工无法工作的现场都得需要机器人去帮助我们工作,所以机器人的研究和应用是很重要的。
在整个设计过程中,从硬件组装,到软件设计调试,对我们了解这门课程是十分有锻炼价值的。
在这一过程中,起初我们的进展是很慢的,走了不少弯路,在老师的帮助和我们组员齐心合力下,最终完成了龙人宝贝机器人探测小车的设计制作,感觉很有成就感。
通过这次课程设计真是让我受益匪浅。
让我懂得了,以后无论做什么事情,我们都要把理论和实际有机的结合在一起,并且不能惧怕困难,要一步一步,一点一点脚踏实地地去做,我相信,只要我们用于挑战,肯去努力,我一定做好的。
附录:
参考文献
《51单片机应用与C语言程序设计——基于机器人工程对象的项目实践》….……电子工业出版社秦志强等编著
《单片机原理与应用在技术》………北京大学出版社魏立峰等编著
《C程序设计(第三版)》…………..清华大学出版社谭浩强著
《模拟电子技术基础(第四版)》…..高等教育出版社童诗白华成英主编
《传感器(第四版)》………………..机械工业出版社廖文彦主编