




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 国家示范性院校机器人小车的设计制作与控制课题名称: 智能控制与程序设计 机器人小车的设计制作与控制 班 级: 2012高职国培电子信息技术班 完 成 人: 高寿斌 小组成员: 高祖彦 尹玉梅 芦娅云 学习时间: 2012.6.25-6.29 电子信息工程学院2012年6月29日目 录智能控制与程序设计01硬件设计与制作211 元器件组成212 硬件设计与制作22软件环境与机器人智能421 单片机介绍422 软件环境43智能机器人控制项目731 单片机输出接口与电机伺服控制732 C语言函数与机器人巡航控制1133 C51输入输出接口与红外线导航1534 单片机输入接口与机器人触觉导航184小
2、结及体会2141 关于课程建设2142 该课程对学生团队精神的培养2143 关于C51单片机与智能机器人21211硬件设计与制作11 元器件组成本作品采用AT89S52作为主控制器,其它电子元器件清单如下表1所示:表1 硬件设计电子元器件及工具列表序号产品名称型号规格数量备注1AT89S52芯片1块2C51实验主板1块3ISP线路板1块4机器人运动底盘1个5电池盒1只6驱动轮2只7伺服电机PARALLAX2只8防滑皮套2只9电路板联接柱子25mm410盘头螺钉3*82211螺母32012沉头螺钉3*8413十字槽盘头螺钉M3*5114螺钉3*20415电池5#4节16包装箱子1只17铜柱M3*
3、20+M3*6118红外发射管EL-1L12只19红外接收管19382只20电阻4704只21三极管90132只22LPT1口1条23串线口9PIN1条辅助工具24螺丝刀1把工具25尖嘴钳1把工具12 硬件设计与制作制作流程如图1所示。图1 硬件安装示意图制作安装完成后,小车样品如图2所示。图2 小车样品图2软件环境与机器人智能21 单片机介绍计算机一般由CPU(Central Processing Unit:进行运算、控制)、RAM(Random Access Memory:数据存储)、ROM(Read Only Memory:程序存储)、输入/输出设备(串行口、并行口等)组成,而单片机是将
4、上述部分全部做在一块芯片上。本智能小车用AT89S52芯片控制,该芯片是高性能、低功耗的8位单片机,内含8k字节ISP(In-system Programmable)的可反复擦写1000次的FLASH只读程序存储器,采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS51指令系统及其引脚结构。22 软件环境设计开发所需要的软件环境条件如下:(1)Windows XP(32位)操作系统(2)Keil uVision2 IDE开发环境,生成可执行文件。其操作界面如图3所示。图3 Keil uVision2操作界面(3)SL ISP其作用是将可执行文件下载到单片机。其操作界面如图4所示。
5、图4 SLISP操作界面(4)串口调试终端其作用是显示单片机与PC机交互信息。23 软件开发调试示例该示例项目让智能机器人通过串口向电脑发送反馈信息,如在屏幕上显示“Hello,this is a message from your Robot”。(1)硬件连接将智能机器人用数据线同时通过COM1与LPT1口与电脑连接。(2)程序开发在Keil uVision2 IDE中开发代码,源代码如下:#include<uart.h>int main(void) uart_Init(); /串口初始化 printf("Hello,this is a message from you
6、r Robotn"); while(1);(3)生成可执行文件代码编写完毕,在Keil uVision2 IDE中生成可执行文件,生成文件的类型为.hex类型,如“HelloRobot.hex”。(4)将执行文件输入单片机在SL ISP中可执行文件HelloRobot.hex输入到单片机。(5)在串口调试终端查看信息结果打开串口调试终端,可以查看由机器人反馈的信息,如图5所示。图5 串口测试终端信息反馈3智能机器人控制项目本作品具有丰富的兼容接口,连接相应硬件设备,通过软件开发,可以使该智能机器人具备丰富的智能功能。C51单片机的输入/输出接口定义如图6所示。图6 AT89S52引脚
7、I/O定义图31 单片机输出接口与电机伺服控制311 单灯闪烁控制(1)硬件连接LED电路连接:将其短针脚(阴极、负极)通过电阻与P1_0相连,同时将其长针脚(阳极、正极)插入“VCC”接口,电路图如图7所示。图7 LED电路图硬件连接后如图8所示。图8 LED灯连接效果图(2)软件代码程序代码:#include<BoeBot.h>#include<uart.h>int main(void) uart_Init();/初始化串口 printf("The LED connected to P1_0 is blinking!n"); while(1) P
8、1_0=1; / P1_0输出高电平 delay_nms(500); /延时500ms P1_0=0; / P1_0输出低电平 delay_nms(500); /延时500ms (3)控制效果(功能)将上述代码在Keil uVision2 IDE生成可执行文件,输入智能小车后,灯可闪烁。其闪烁效果如图9所示。图9 时序图反应高、低电压信号与时间的关系图312 机器人伺服电机控制信号(1)功能实现机器人伺服电机的控制。(2)伺服电机的安装图10 伺服电机实物图伺服电机的电路安装如图11所示。图11 伺服电机与教学底板的连线原理图和实际接线示意图(3)程序控制伺服电机基本原理零点标定信号。操作如图
9、12所示。图12 标定零点信号测试伺服电机。下列程序代码可让电机顺时针全速旋转:while(1) P1_0=1; delay_nus(1300); P1_0=0; delay_nus(20000); 效果如图13所示。图13 1.3 ms的控制脉冲序列使电机顺时针全速旋转电机逆时针全速旋转:while(1) P1_0=1; delay_nus(1700); P1_0=0; delay_nus(20000); 图14 1.7 ms的连续脉冲序列使电机逆时针全速旋转(4)程序源代码下列程序代码可以实现电机伺服控制:#include<BoeBot.h>#include<uart.h
10、>int main(void)int Counter;int PulseNumber,PulseDuration;uart_Init();printf("Program Running!n");printf("Please input pulse number:n");scanf("%d",&PulseNumber);printf("Please input pulse duration:n");scanf("%d",&PulseDuration);for(Counter=
11、1;Counter<=PulseNumber;Counter+) P1_1=1;delay_nus(PulseDuration);P1_1=0;delay_nms(20);for(Counter=1;Counter<=PulseNumber;Counter+) P1_0=1; delay_nus(PulseDuration); P1_0=0;delay_nms(20);while(1);32 C语言函数与机器人巡航控制321 功能通过程序控制,让机器人前后左右运动。322 基本原理(1)机器人方向定义机器人方向定义如图15所示。图15 机器人方向定义(2)方向控制的基本方法将del
12、ay_nus函数的参数n以不同的值组合就可以使机器人以其它的方式运行,从而达到方向制作的目的。向后行走:P1_1=1; delay_nus(1300); P1_1=0;/左轮顺时针 P1_0=1; delay_nus(1700); P1_0=0;/右轮逆时针 delay_nms(20);原地左转P1_1=1; delay_nus(1300); P1_1=0;/左轮顺时针 P1_0=1; delay_nus(1300); P1_0=0;/右轮顺时针 delay_nms(20);原地右转P1_1=1; delay_nus(1700); P1_1=0;/左轮逆时针 P1_0=1; delay_nus
13、(1700); P1_0=0;/右轮逆时针 delay_nms(20);从前面向左旋转P1_1=1; delay_nus(1500); P1_1=0;/左轮静止 P1_0=1; delay_nus(1300); P1_0=0;/右轮顺时针 delay_nms(20);从前面向右旋转P1_1=1; delay_nus(1700); P1_1=0;/左轮逆时针 P1_0=1; delay_nus(1500); P1_0=0;/右轮静止 delay_nms(20);从后面向左旋转P1_1=1; delay_nus(1500); P1_1=0;/左轮静止 P1_0=1; delay_nus(1700)
14、; P1_0=0;/右轮逆时针 delay_nms(20);从后面向右旋转P1_1=1; delay_nus(1300); P1_1=0;/左轮顺时针 P1_0=1; delay_nus(1500); P1_0=0;/右轮静止 delay_nms(20);323 程序源代码(1)循环控制下列程序代码可以控制机器人前进、左转、右转、后退。#include<BoeBot.h>#include<uart.h>int main(void) uart_Init(); int counter; printf("Program Running!n"); for(c
15、ounter=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); for(counter=1;counter<=26;counter+)/左转 P1_1=1;delay_nus(1300);P1_1=0; P1_0=1;delay_nus(1300);P1_0=0; delay_nms(20); for(counter=1;counter<=26;counter+)/右转 P1_1=1;delay_nus(1700);P1
16、_1=0; P1_0=1;delay_nus(1700);P1_0=0; delay_nms(20);for(counter=1;counter<=65;counter+)/后退 P1_1=1;delay_nus(1300);P1_1=0; P1_0=1;delay_nus(1700);P1_0=0; delay_nms(20);(2)函数调用简化运动程序下列程序代码,通过函数调用,可以简化运动程序:#include<BoeBot.h>#include<uart.h>void Forward(int PulseCount,int Velocity) /0<V
17、elocity<=200 int i; for(i=1;i<=PulseCount;i+) P1_1=1;delay_nus(1500+Velocity);P1_1=0; P1_0=1;delay_nus(1500-Velocity);P1_0=0; delay_nms(20); void Left(int PulseCount,int Velocity) int i; for(i=1;i<= PulseCount;i+) P1_1=1;delay_nus(1500-Velocity);P1_1=0; P1_0=1;delay_nus(1500-Velocity);P1_0=
18、0; delay_nms(20); void Right(int PulseCount,int Velocity) int i; for(i=1;i<= PulseCount;i+) P1_1=1;delay_nus(1500+Velocity);P1_1=0; P1_0=1;delay_nus(1500+Velocity);P1_0=0; delay_nms(20); void Backward(int PulseCount,int Velocity) int i; for(i=1;i<= PulseCount;i+) P1_1=1;delay_nus(1500-Velocity
19、);P1_1=0; P1_0=1;delay_nus(1500+Velocity);P1_0=0; delay_nms(20); int main(void) uart_Init(); printf("Program Running!n"); Forward(65,200); Left(26,200); Right(26,200); Backward(65,200);33 C51输入输出接口与红外线导航331 实现功能本作品采用AT89S52作为主控制器与红外传感器来探测障碍,组合构架出机器人红外避障的功能。(1)主要组成单元单片机系统单元,电机单元,红外传感器单元。其结构
20、与原理如图16、17所示。图16 硬件示意图图17 红外电路图(2)系统工作原理红外发射管发射一定频率的红外脉冲信号,当此信号遇到障碍物时,该特定频率的信号会反射到红外接收管被接收到,然后主控制器控制机器人作出相应的避开动作,如图18所示。这样就产生机器人红外避障的功能。图18 红外工作原理示意图硬件组装完成后,实物如图19所示。图19 实物图332程序流程(1)搭建与测试IR发射和探测器对(2)探测和避开障碍物(3)高性能IR导航探测333 软件改造说明#include"BoeBot.h"#include"uart.h"#include"in
21、trins.h"#define LeftIRP1_3/左边接收#define RightIRP3_3/右边接收#define LeftLaunchP1_6/左边发射#define RightLaunch P3_6/右边发射int IRLaunch(unsigned char IR) /红外发射int counter;if(IR='L')for(counter=0;counter<1000;counter+)LeftLaunch=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_n
22、op_();_nop_();_nop_();LeftLaunch=0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();if(IR='R')for(counter=0;counter<1000;counter+)RightLaunch=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();RightLaunch=0;_nop
23、_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();int main(void) bit irDetectLeft,irDetectRight;unsigned int pulseCount,pulseLeft,pulseRight;int i;doIRLaunch('R');irDetectRight = RightIR;IRLaunch('L');irDetectLeft = LeftIR;if(irDetectLeft=1)&&
24、;(irDetectRight=0) pulseCount=10;pulseLeft=1300;pulseRight=1700;else if(irDetectLeft=0)&&(irDetectRight=1)pulseCount=10;pulseLeft=1700;pulseRight=1700;else if(irDetectLeft=1)&&(irDetectRight=0)pulseCount=10;pulseLeft=1300;pulseRight=1300;else pulseCount=15;pulseLeft=1500;pulseRight=1
25、500;for(i=0;i<pulseCount;i+)P1_1=1;delay_nus(pulseLeft);P1_1=0;P1_0=1;delay_nus(pulseRight);P1_0=0;delay_nms(20);while(1);34 单片机输入接口与机器人触觉导航341 实现功能安装机器人“胡须”,胡须在接触障碍时智能后退。342 硬件安装(1)硬件安装所需硬件如图20所示。图20 所需硬件安装方法如图21所示。图21 胡须安装示意图(2)搭建胡须电路 图22 胡须电路图 图23 电路搭建实物图343 程序代码#include<BoeBot.h>#includ
26、e<uart.h>int P1_4state(void)/获取P1_4的状态,右胡须return (P1&0x10)?1:0;int P2_3state(void)/获取P2_3的状态,左胡须return (P2&0x08)?1:0;void Forward(void) P1_1=1;delay_nus(1700); P1_1=0;P1_0=1;delay_nus(1300);P1_0=0;delay_nms(20);void Left_Turn(void) int i; for(i=1;i<=26;i+)P1_1=1;delay_nus(1300); P1_
27、1=0;P1_0=1;delay_nus(1300);P1_0=0;delay_nms(20);void Right_Turn(void) int i; for(i=1;i<=26;i+)P1_1=1;delay_nus(1700); P1_1=0;P1_0=1;delay_nus(1700);P1_0=0;delay_nms(20);void Backward(void) int i; for(i=1;i<=65;i+)P1_1=1;delay_nus(1300); P1_1=0;P1_0=1;delay_nus(1700);P1_0=0;delay_nms(20);int main(void)uart_Init();printf("Program Running!n"); while(1)if(P1_4state()=0)&&(P2_3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB31/T 998-2016能源补给系统道路交通指引标志设置规范第1部分:充换电
- DB31/T 914.3-2021小型游乐设施安全第3部分:运营管理要求
- DB31/T 389-2015防雷装置安全检测技术规范
- 葡萄酒酿造过程中的酿造设备选型与配套技术指南考核试卷
- 螺杆泵采油地面系统安全预防知识考核试卷
- 金属工具的设计理念更新与实践考核试卷
- 2024年无机基础化学原料资金筹措计划书代可行性研究报告
- 2025年中国笔记本键盘行业市场现状及未来发展前景预测分析报告
- 2025年中国比赛推广行业市场前景预测及投资价值评估分析报告
- 食品安全检测与分析软件授权租赁合同
- 2025年财务管理全球经济试题及答案
- 2025-2030年芳纶纤维行业市场深度调研及发展趋势与投资研究报告
- 2024年滨州市沾化区区属国有企业招聘考试真题
- 纺织机械操作知识掌握策略试题及答案
- 烟台科目一试题及答案
- 2025年广东佛山市三水海江建设投资有限公司招聘笔试参考题库含答案解析
- 初中英语人教新目标 (Go for it) 版七年级下册Unit 7 Its raining!Section A教学设计
- 民法典物权编详细解读课件
- 【高中英语】2025年高考英语作文预测(10大主题+55篇范文)下
- (完整)北京版小学英语1至6年级词汇(带音标)
- DL∕T 1901-2018 水电站大坝运行安全应急预案编制导则
评论
0/150
提交评论