版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、智能机器人创新实践报告循迹小车学 院 自动化科学与工程学院 学生姓名 陈志亮 学生学号 201130610255 指导教师 陈安 提交日期 年 月 日前言本文主要介绍了一种简单的寻线小车的制作方法,下文将介绍设计过程中的各个细节,遇到的问题,设计步骤,硬件组成,软件设计原理。考虑到时间和硬件精度问题,我们这组的寻线小车的各个组成部分均在网上购买而来。主要包括了2轮驱动的智能小车底盘,直流电机驱动模块,四路红外对管寻线模块,51单片机最小系统板。寻线小车是以智能小车底盘为基础,各部分的元器件通过螺丝固定在底盘上,形成一个小车的基本硬件模型。本组的智能小车采用4路红外对管寻线模块进行判断是否转弯,
2、例如:当最左边的红外对管检测到黑线的时候,小车进行“转直角”,即左边的轮子后退,右边的轮子前进。从而修正小车的前进方向。小车主要由四部分组成,分别是单片机芯片部分,传感器部分,电机驱动部分和电源部分。四部分协调工作,实现小车的前进,转弯的动作。下面正文部分将介绍小车的各个元器件的功能,组成,驱动原理和控制系统设计等必要的叙述,详细说明本组设计的思想。一、 硬件部分我负责的是硬件部分,以下是硬件部分的相关说明,包括硬件总体结构,各部分器件的构造,原理,作用以及安装搭建硬件时遇到的一些问题以及对应解决方法。1、 系统总框图:电机电机驱动90c51红外对管检测模块电源驱动本组的智能小车主要包括了四个
3、模块:分别是stc 90c516rd+主控模块,四路红外对管检测模块,电源模块和电机驱动模块。stc 90c516rd+主控模块是智能小车的控制部分,相当于人的大脑。它接收四路红外对管检测模块发出的信号,分析信号从而判断小车将要采取的下一步动作,再输出控制信号给电机驱动模块,进而控制电机的运转,从而控制小车的前进方向。四路红外对管检测模块是检测和传感模块,相当于小车的眼睛,在小车前进的过程中,红外对管感应路面的光线,将光线信号转换为对应电信号传送给主控模块进行判断,辅助主控模块对电机驱动模块进行控制,从而控制电机的运转。电机驱动模块,接受单片机发出的信号并作出相应动作,相当于整个控制系统的“肌
4、肉”,实际上因为单片机输出的信号太小,控制信号必须经过驱动模块放大,然后再驱动电机。电源模块,在电源方面我们是直接采用usb接口供电,以达到不需频繁更换电池的目的。2、 各部分元件说明:1) stc 90c516rd+主控模块 stc 90c516rd+主控模块是智能小车的控制部分,相当于人的大脑。它接收四路红外对管检测模块发出的信号,分析信号从而判断小车将要采取的下一步动作,再输出控制信号给电机驱动模块,进而控制电机的运转,从而控制小车的前进方向。2) 四路红外对管检测模块四路红外对管检测模块是检测和传感模块,相当于小车的眼睛,在小车前进的过程中,红外对管感应路面的光线,将光线信号转换为对应
5、电信号传送给主控模块进行判断,辅助主控模块对电机驱动模块进行控制,从而控制电机的运转。中控板:简介:此模块是为智能小车、机器人等自动化机械装置提供一种多用途的红外线探测系统的解决方案。使用红外线发射和接收管等分立元件组成探头,并使用lm339电压比较器作为核心器件构成中控电路。此系统具有的多种探测功能能极大的满足各种自动化、智能化的小型系统的应用。3) 电机驱动模块电机驱动模块,接受单片机发出的信号并作出相应动作,相当于整个控制系统的“肌肉”,实际上因为单片机输出的信号太小,控制信号必须经过驱动模块放大,然后再驱动电机。l9110特点: 低静态工作电流; 宽电源电压范围:2.5v-12v; 每
6、通道具有 800ma 连续电流输出能力; 较低的饱和压降; ttl/cmos 输出电平兼容,可直接连cpu; 输出内置钳位二极管,适用于感性负载; 控制和驱动集成于单片 ic 之中; 具备管脚高压保护功能; 工作温度:0-80。输入输出的逻辑关系:典型应用电路:4) 电源模块:本组电源模块采用移动电源usb接口进行供电,避免了采用电池组供电的电压不足,电源输出电压不稳定,结构臃肿,频繁更换电池等问题,从而简化了系统,提高了工作效率。5) 底板底板是所有部件的载体,其规格如下:总体结构图:3、 硬件安装搭建时遇到的困难及解决方法:1) 各部分硬件元件的安装布局问题:由于底板的容量有限,在安装各部
7、分硬件元件时应当先对布局作出整体的构思,然后再动手安装。刚开始时由于构思不成熟和经验不足导致了布局紊乱以及安装不稳等问题,后来经过反复讨论及多次尝试安装才理清思路,安装完成。我们花时间认真读懂了说明书,了解各个元器件的作用,又从网上收集了一些资料,经过各个组员的讨论,最终成功搭建了硬件的安装结构。2) 四路红外对管检测模块与中控板lm339的连接问题;首先是对四个红外对管检测模块与中控板的四组接口的测试,开始时是采用随机配对方式,结果发现这样做不容易理清思路,会使后面的编程陷入紊乱;后来经过硬件与软件的结合以及系统的简化,将四个红外对管检测模块按顺序一一接到中控板的四组接口。3) stc 90
8、c516rd+主控模块与电机驱动单元的连接问题;开始时采用主控板的p1接口,发现电机不能按预定的规则进行运转,后来经过查阅相关资料以及询问,讨论,发现p1口无对应上拉电阻,不能输出高电平控制电机驱动单元;于是改用p0接口,有效地避免了前述问题。二、软件设计部分(1) 流程图开始初始化n2、3灯检测到黑线1、4灯检测到黑线y有检测到黑线吗直走n小左转小右转2灯检测到黑线n大右转大左转y1灯检测到黑线y(二)软件程序#include#include#define uint unsigned intsbit l1= p20; /四路寻迹模块接口第一路sbit l2= p21; /四路寻迹模块接口第二
9、路sbit r1= p22; /四路寻迹模块接口第三路sbit r2= p23; /四路寻迹模块接口第四路sbit in12=p05;/左马达sbit in11=p04;sbit in22=p03;/右马达sbit in21=p02;int f1,f2; /标志位int m;#define left_moto_go in11=1,in12=0; /左轮前进#define left_moto_back in11=0,in12=1;/ 左轮后退#define left_moto_stp in11=0,in12=0;/左轮停止 #define right_moto_go in21=1,in22=0;
10、/右轮前进#define right_moto_back in21=0,in22=1;/右轮后退#define right_moto_stp in21=0,in22=0;/右轮停止void delay(uint k) /延时函数 uint x,y; for(x=0;xk;x+) for(y=0;y110;y+);void run() /前进函数 left_moto_go; right_moto_go; delay(30); left_moto_stp; right_moto_stp; delay(10); /调节转速void back(void) /后退函数 left_moto_back; r
11、ight_moto_back; delay(20); /调节转速 left_moto_stp; right_moto_stp; delay(100); /调节转速void left() /左电机不动,右电机前进 left_moto_stp; right_moto_go; delay(10); left_moto_stp; right_moto_stp; delay(40); void right() /左电机前进,右电机不动 left_moto_go; right_moto_stp; delay(10); left_moto_stp; right_moto_stp; delay(40); vo
12、id stop() left_moto_stp; right_moto_stp; delay(10); left_moto_go; right_moto_go; delay(0);void bigright() /左电机前进,右电机后退 left_moto_go; right_moto_back; delay(10); left_moto_stp; right_moto_stp; delay(20);void bigleft() /左电机后退,右电机前进 left_moto_back; right_moto_go; delay(10); left_moto_stp; right_moto_st
13、p; delay(20);void main() in11=0; in12=0; in21=0; in22=0; f1=0; f2=0; while(1) if(f1=0&f2=0) if(l1=0&l2=0&r1=0&r2=0) m=0; if(l2) m=1; f1=0; f2=0; if(r1) m=2; f1=0; f2=0; if(l1|f1=1) m=3; f1=1; if(r2|f2=1) m=4; f2=1; switch(m) case 0: run(); break; case 1: left(); break; case 2: right(); break; case 3
14、: bigleft(); break; case 4: bigright(); break; default : break; (三)程序说明1. 直走实现:左右轮子同时前进,在实际调试过程中发现,当没有调速的时候,车速过快,导致转弯的时候效果不理想,所以在写程序的时候特意加上了调速部分,主要通过调节占空比实现,具体实现如下:void run() /前进函数 left_moto_go; right_moto_go; delay(30); /调节转速 left_moto_stp; right_moto_stp; delay(10); /调节转速 经过多次的调试,我们得到了本组小车最好的占空比为3
15、:1,既保持了速度上有一定的优势,也保证了转弯的时候能够顺利完成。上面程序的占空比为3:1,通过调节占空比可以调节转速。2. 左转实现:通过使左轮停止,右轮前进的方法,可以实现左转的功能,同时也要注意占空比的选择,个人认为占空比比前进函数中的占空比小为好。因为如果占空比太大的话,很容易就超出轨道的范围,具体实现如下:void left() /左电机不动,右电机前进 left_moto_stp; right_moto_go; delay(10); left_moto_stp; right_moto_stp; delay(40); 现在左转的右轮转速占空比为1:4,比前进时的轮子转速占空比大为降低
16、,但是在实际调试的时候车子在转弯的时候总有一点点的小停顿,这是不完美的地方之一。3. 右转实现:通过使左轮前进,右轮停止的方法,可以实现右转的功能,其他同左转。4. 左转直角实现:其实左转直角的实现也可以直接用左转的程序,但是考虑到节省时间,我们可以这样来做:左轮后退,右轮前进,这样的转弯速度更快,具体实现如下:void bigleft() /左电机后退,右电机前进 left_moto_back; right_moto_go; delay(10); left_moto_stp; right_moto_stp; delay(20);5. 右转直角实现:跟左转直角类似,左轮前进,右轮后退。6. 具体工作过程:开机的时候,四路红外对管检测模块全部检测到白板,所以小车前进。理想的情况是小车前进的时候一直走直线,但是由于车轮形状不完全一样等等原因,小车前进时方向跟前进方向有一定的偏离。当2灯检测到黑线的时候,返回高电平给单片机,单片机给电机驱动模块发出指令,实现左转,当左转到一定的角度时,四路红外对管有检测到都是白板
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年消防器材智能化改造升级服务合同2篇
- 2024租赁合同签订程序及条件
- 2025年拓展训练合同范本大全:企业团队凝聚力提升计划3篇
- 二零二四年度2024年三人健身产业合作合同6篇
- 2025年洗车场车辆停放管理及承包合同3篇
- 2025版航空航天专用铝合金采购合同书4篇
- 二零二四年云服务器租赁与智能运维合同3篇
- 个人汽车租赁合同样本 2024年版版B版
- 2025年度临时临时设施租赁合同标准范本4篇
- 2025年无偿使用政府办公楼场地举办会议合同范本3篇
- 非诚不找小品台词
- 2024年3月江苏省考公务员面试题(B类)及参考答案
- 患者信息保密法律法规解读
- 老年人护理风险防控PPT
- 充电桩采购安装投标方案(技术方案)
- 医院科室考勤表
- 镀膜员工述职报告
- 春节期间化工企业安全生产注意安全生产
- 保险行业加强清廉文化建设
- Hive数据仓库技术与应用
- 数字的秘密生活:最有趣的50个数学故事
评论
0/150
提交评论