当前位置:文档之家› 智能循迹小车制作方法详解

智能循迹小车制作方法详解

智能循迹小车制作方法详解
智能循迹小车制作方法详解

BF-1餐饮服务机器人实验报告册

院系名称:

专业班级:

学生姓名:

协会:

目录

目录 (1)

第一章绪论 (2)

1.1机器人在当今的重要性 (2)

1.2机器人的发展与现状 (2)

1.3我与机器人 (2)

第二章实验报告 (3)

2.1实验名称 (3)

2.2实验目的 (3)

2.3实验器材 (3)

2.4实验原理 (3)

2.5实验步骤 (3)

2.6数据分析 (4)

2.7结论 (4)

2.8误差讨论 (4)

第三章方案设计与论证 (5)

3.1移动平台 (5)

3.2控制模块 (5)

3.3驱动模块 (6)

3.4循迹模块 (8)

3.5稳压模块 (8)

第四章程序与调试 (10)

4.1有关C51单片机 (10)

4.2开发环境 (10)

4.3程序框图 (10)

4.4调试过程 (10)

第五章附件 (12)

5.1 BF-1机器人实图 (12)

5.2 BF-1机器人餐厅 (12)

5.3 BF-1机器人部分硬件图 (13)

5.4 BF-1机器人电路原理图 (14)

5.5 BF-1机器人程序框图 (16)

5.6 BF-1程序 (17)

致谢 (24)

参考文献 (24)

第一章绪论

1.1机器人在当今的重要性

随着社会的发展,工业生产量越来越大,单单靠人来工作是不行的,机器人的出现从一定程度上解决了这一问题。尤其在中国,社会正在进入老龄化,除了生产之外还需要有很大一部分人力来照顾老人,但是如果有机器人来替我们完成部分工作,就可以缓解社会压力。机器人研究涉及的学科涵盖机械、电子、传感器、驱动与控制等多个领域,过去,对机器人行业有过重大贡献的人数不胜数。不过,从简单的时间线已经能够看出,从第一代工业机器人、第二代带有“感觉”的机器人到第三代智能机器人,机器人的体积越来越小,与PC结合得越来越紧密。说不定,个人机器人就快成为现实了。

1.2机器人的发展与现状

1920年捷克斯洛伐克作家卡雷尔·恰佩克在他的科幻小说《罗萨姆的机器人万能公司》中,根据Robota(捷克文,原意为“劳役、苦工”)和Robotnik(波兰文,原意为“工人”),创造出“机器人”这个词。之后机器在短短的几十年间飞速发展,到今天,机器人技术在一些发达国家已经相当成熟。

1954年美国人乔治·德沃尔制造出世界上第一台可编程的机器人,并注册了专利。这种机械手能按照不同的程序从事不同的工作,因此具有通用性和灵活性。

1968年美国斯坦福研究所公布他们研发成功的机器人Shakey。它带有视觉传感器,能根据人的指令发现并抓取积木,不过控制它的计算机有一个房间那么大。Shakey可以算是世界第一台智能机器人,拉开了第三代机器人研发的序幕。

1999年日本索尼公司推出犬型机器人爱宝(AIBO),当即销售一空,从此娱乐机器人成为目前机器人迈进普通家庭的途径之一。

2002年丹麦iRobot公司推出了吸尘器机器人Roomba,它能避开障碍,自动设计行进路线,还能在电量不足时,自动驶向充电座。Roomba是目前世界上销量最大、最商业化的家用机器人。

2006年 6月,微软公司推出Microsoft Robotics Studio,机器人模块化、平台统一化的趋势越来越明显,比尔·盖茨预言,家用机器人很快将席卷全球。

在中国近几年机器人研究也有所发展,但是与发达国家的技术还有相当大的差距,机器人知识在民间的普及还不够全面。作为当今大学生,我们应该学着接触科学前沿,努力学习,丰富自己的知识储备,为我国的机器人发展做出自己的贡献。

1.3我与机器人

在很小时候就喜欢看类似于《铁臂阿童木》之类有关机器人的动画片,后来在电视上看到大学生机器人比赛,总幻想有一天自己也可以拥有一个属于自己的机器人。有这个梦想很多年了,大学给我了一个接触机器人的机会,使得我可以在这方面努力。虽然距离正真意义上的机器人还有很长的路要走,但是目前的小制作还是给我在追求梦想多的道路上很大的动力。我会坚持自己的梦想,刻苦钻研,使自己在这方面的道路上可以走的更远。

第二章 实验报告

2.1实验名称

BF-1机器人的设计与制作

2.2实验目的

验证BF-1机器人的可实现性,学习相关的电路和编程知识,对机器人有些基本的认识,扩展自己的思维方式,强化自己的动手能力。

2.3实验器材

1.主要元件列表:

2.主要工具:电烙铁、锡丝、螺丝刀、剪刀、钳子、电钻。

2.4实验原理

单芯片计算机可以像电脑一样写入程序发出指令。(原理图见第五章_附件_5.4_ BF-1机器人电路原理图。)

2.5实验步骤

1.在网上搜集相关资料,设定整个方案的大致轮廓。学习电路、单片机的基本知识,熟悉相关软件的使用方法。

序号 元件 规格

量 备

注 序号 元件 规格 数

量 备注

1 单片机 STC89C5

2 1 21 三极管 8050 1 2 电机驱动 L298n 1 22 蜂鸣器 1 有源

3 电压比较器 Lm339 1 23 数码管 1 八段一位

4 稳压管 L7805CV 1 24 排针 40P 2 宽体

5 电阻1 220 4 25 杜邦线 10cm 20

6 电阻2 330 12 26 IC 座1 14P 1

7 电阻3 5.1k

8 27 IC 座2 40P 1 8 电阻4 10k 2 28 电池盒 1 六节5号

9 电容1 30pF 2 29 万用板1 5*7cm 1 10 电容2 0.1uF 4 30 万用板2 7*9cm 2 11 电容3 10uF 1 31 万用板3 9*1cm 1 12 电容4 100uF 1 32 减速电机 2 13 电容5 470uF 1 33 轮子 6cm 2 14 电位器 10k 4 34 电机固定架 2 配套电机 15 二极管 IN4007 8 35 万向轮 1 16 晶振 11.0592MHz 36 铜柱1 M3*10mm 8 17 红外对管 TCRT5000 5 37 铜柱2 M3*30mm 10 18 自锁开关 1 38 螺丝 M3*5mm 19 按键开关 5 39 螺母 M3 20 发光二极管 3

40 排线 布线用

2.根据掌握的知识和BF-1要实现的具体功能,绘制出机器人的机械图和原理图。通过仿真软件对各部分电路做出大致的评估。

3.根据制定好的图纸完成机器人的硬件部分,包括机械和电路,对电路进行简单的测试,完善电路。

4.根据BF-1要实现的具体功能,编写程序,反复调试,完成最终程序。

2.6数据分析

BF-1机器人最终可以在特定的环境中(第五章_附件_5.4_ BF-1机器人餐厅)完成规定动作:在厨房放上菜后设定桌号,然后机器人将饭菜送到指定的餐桌,当客人取下饭菜之后,机器人可以自行返回厨房。

2.7结论

实验验证了BF-1餐饮服务性机器人的可行性,对于我来说是一个小小的鼓励。在完成整个实验的过程中,我学到了很多新的知识,其中在微控制原理这一方面有很大的收获,因为以前从没有接触过,现在懂了不少。此外在机器人的制作过程中,除了熟悉Keil C51等单片机开发环境外,我还掌握了AutoCAD、Protel、Proteus等计算机软件的基本操作,这些对以后的电路设计都是很好的基础。

最主要的是在实验中我更加体会到了探索的乐趣,加深了我对机器人的兴趣爱好,坚定了我要继续在这方面学习的信心。并且在探索的过程中我还认识了很多志同道合的同学,大家都有着一样的兴趣,在一起共同学习共同进步,这是一件非常美好的事情。

但是即使对于这种简单的机器人来说,我还有很多东西无法解决,所以以后要努力学习,丰富自己的知识,为自己的梦想奋斗。

2.8误差讨论

机器人在直线处不能总是沿直线行进,偶尔会出现左右摇摆的情况,这可能是循迹程序不完善的因素。在整个电路中,有关电阻和电容的使用并没有经过精致地计算。以上几条以我现在的知识水平暂且无法解决,需要以后相关知识完备后在做完善。BF-1本来装有人体释热传感器,用来防止机器人在送饭过程中撞上道路上的行人,但是在实际中此功能不能实现,后测试发现是传感器损坏,在没有找到新的传感器的情况下,此功能暂时去除。

第三章方案设计与论证

3.1移动平台

对于BF-1机器人来说,只需要进行简单的前后左右移动就可以,无需复杂的机械臂。所以在平台的选择上就简单了很多。

方案一:

用四通道玩具遥控车的底盘。优点:容易找到,不需要太多的改造,且价格便宜。缺点:速度不容易掌控,转向迟钝。

方案二:

在网上购买机器人专用的平台。优点:容易上手,可以直接使用,各个方面相对稳定。缺点:价格较贵,失去了动手制作的意义。

方案三:

使用减速电机,自己制作移动平台。优点:费用少,感受制作过程。缺点:平台的坚固度和稳定性相对较弱。

图3.1 减速电机

综合以上,结合我自身的经济能力和知识水平,我决定采用方案三,从网上购买了两个减速电机,安装在万用板上作为机器人的移动平台。之所以选择用万用板,是因为万用板上容易打洞,便于电机和相关器件的安装。

3.2控制模块

对于BF-1机器人来说,并没有太过复杂的程序,对控制器的CPU、RAM、ROM都没有太高的要求,所以我采用单片机作为机器人的核心。

方案一:

直接用电压比较器作为核心,通过比较不同传感器的变化从而输出高低电平控制电机驱动模块,达到循迹的目的。但是对于BF-1机器人来说要做到循迹行走、停止、键盘输入、显示、运算等工作,所以没有计算机来控制是不能实现的。故此方案不可行。

方案二:

选用一片CPLD(如EPM7128LC84-15)作为系统的核心部件,实现控制与处

理的功能。CPLD具有速度快、编程容易、资源丰富、开发周期短等优点,可利用VHDL语言进行编写开发。但CPLD在控制上较单片机有较大的劣势。同时,CPLD 的处理速度非常快,而小车的行进速度不可能太高,那么对系统处理信息的要求也就不会太高,在这一点上,MCU就已经可以胜任了。若采用该方案,必将在控制上遇到许许多多不必要增加的难题。为此,我们不采用该种方案,进而提出了第三种设想。

方案三:

采用单片机作为整个系统的核心,用其控制行进中的小车,以实现其既定的性能指标。充分分析我们的系统,其关键在于实现小车的自动控制,而在这一点上,单片机就显现出来它的优势——控制简单、方便、快捷。这样一来,单片机就可以充分发挥其资源丰富、有较为强大的控制功能及可位寻址操作功能、价格低廉等优点。因此,这种方案是一种较为理想的方案。

针对本设计特点——多开关量输入的复杂程序控制系统,需要擅长处理多开关量的标准单片机,而不能用精简I/O口和程序存储器的小体积单片机,D/A、A/D功能也不必选用。根据这些分析,我选定了C51单片机作为本设计的主控装置,51单片机具有功能强大的位操作指令,I/O口均可按位寻址,程序空间多达8K,对于本设计也绰绰有余,更可贵的是51单片机价格非常低廉。由于51单片机的普遍性,所以在市面很容易买到51单片机的开发板,编写烧录程序都相对方便。

图3.2 C51单片机开发板

在综合考虑了传感器、两部电机的驱动等诸多因素后,我决定采用一片单片机,充分利用STC89C52单片机的资源。

3.3驱动模块

方案一:

采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行

调整.此方案的优点是电路较为简单,缺点是继电器的响应时间慢,易损坏,寿命较短,可靠性不高。

方案二:

采用功率三极管作为功率放大器的输出控制直流电机。线性型驱动的电路结构和原理简单,加速能力强,采用由达林顿管组成的 H型桥式电路(如图3.3.1)。

图3.3.1 H桥式电路

方案三:

使用现市面上有很比较成熟的H桥集成芯片,这些芯片工作稳定,用单片机控制达林顿管使之工作在占空比可调的开关状态下,精确调整电动机转速。这种电路由于工作在管子的饱和截止模式下,效率非常高,集成芯片保证了简单的实现转速和方向的控制,电子管的开关速度很快,稳定性也极强,是一种广泛采用的 PWM调速技术。这种调速方式有调速特性优良、调整平滑、调速范围广、过载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点。经过反复地比较,我选用了L298n(如图3.3.2)。

图3.3.2 L298n

3.4 循迹模块

方案一:

采用简易光敏电阻结合外围电路探测,但实际效果并不理想,对行驶过程中的稳定性要求很高,且误测几率较大、易受光线环境和路面介质影响。在使用过程极易出现问题,而且容易因为该部件造成整个系统的不稳定。故最终未采用该方案。

方案二:

采用四只红外对管(如图 3.4),分别置于机器人车身前轨道的两侧,根据四只光电开关接受到白线与黑线的情况来控制小车转向来调整车向,测试表明,只要合理安装好,只用中间的两只光电开关就可以很好的实现循迹的功能。

图3.4 红外对管

方案三:

用激光传感器来循迹。外界环境的影响对激光传感器干扰很小,并且通过单片机来分时点亮激光管,可以实现多个激光发射管对一个激光接收管。但是激光管在安装过程中要求较高,一旦遇到静电就容易衰减。并且激光发射管和激光接收管相对与红外对管是非常昂贵的。

综合利弊,我最终选用第二种方案。用LM399作为电压比较器,将采集到模拟信号转换为数字信号,直接供单片机的I/O口。

3.5稳压模块

BF-1机器人的控制板需要5V的电压为单片机供电,但是由于L298N降压严重,所以5V电压对于电机驱动模块是不行的,至少需要7V左右的电压才能保证电机可以接收到5V的工作电压。

方案一:

用6节充电镍氢电池(电压1.2V)串联,前四节引出两根导线(电压4.8V)为控制模块和循迹模块供电,总电池组两端接两根导线(电压7.2V)为电机驱动模块供电。但是在电池的饱和状态和过放状态之间,电池的电压变化较大,对于需要稳定电压来工作的单片机来说,此方案不能达到要求。

方案二:

用6节充电镍氢电池(电压1.2V)串联成7.2V的电池组,直接为电机驱动模块供电。用三个二极管串联,将电压将至5.1V为控制模块和循迹模块供电。此方案与方案一有着相同的弊端,随着电池电量的改变,加压后的电压波动较大。所以我放弃此方案。

方案三:

用6节充电镍氢电池(电压1.2V)串联成7.2V的电池组,直接为电机驱动模块供电。采用L7805稳压元件将7.2V电压降压到5V为控制模块和循迹模块供电。稳压电路很简单,转换后的电压比较稳定,并且L7805的价格也不算贵,所以我采用此方案。

第四章程序与调试

4.1有关C51单片机

在BF-1机器人中使用的是STC89C52单片机。STC89C52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口。另外 STC89X52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35Mhz,6T/12T可选。

图4.1 单片机

4.2开发环境

在程序的编写中有汇编语言和C语言,C语言相对于汇编语言更容易理解,门槛低,容易学习。所以我选择用C语言来编写BF-1的程序。

Keil C51软件是目前功能最强大的单片机C语言集成开发环境(图4.2)。

图4.2 Keil C51界面

4.3程序框图

因为机器要完成将饭菜送达指定的餐桌,所以在机器人运行之后首先要有先有键盘输入相应的桌号,当BF-1接到接到命令后就会根据指定将饭菜送到指定位置,在送饭的过程中,机器人要做到沿指定路线行进(即循迹),还要通过计算判断是否到达指定餐桌。当到了餐桌后,如果客人将饭菜端下之后,机器人还要在返回厨房,等待下一次命令。(详细程序见第五章_附件_5.5_程序框图。)

4.4调试过程

在机器人的机械调试过程中,本来我是打算将BF-1的底盘制作成思路驱动的,因为在我们的印象中四个轮子的车子比较常见,当然四个个轮子的稳定性也要好些。但是在实际的制作中我发现四轮驱动的底盘并不好控制,尤其是在转弯时,四轮底盘的会显得很迟钝。后来我改用两个驱动轮加一个万向轮作为小车的底盘,(详细视图见第五章_附件_5.3.1_移动平台),靠后面两个轮子的速度差转向。在这样的情况下,移动平台的灵活性增强很多,可以实现原地任意角度转向。

机器人的电路调试中过程中并没有遇到太多问题,因为我事先搜集过大量有关电路,做了一定分析和筛选之后绘制了BF-1的原理图,并且在焊接板子之前做好了PCB图,重要部分也做过Porteus仿真。所以在整个过程中仅仅是遇到了两个问题。第一个问题是我先前在每一个模块的电路的电源处都接了一个整流二极管来防止电源反接对电路造成危害,但是后来发现控制模块和循迹模块的电压都偏低。经过检查才发现,原来经过7805稳压后的电压已经是5V了,在经过二极管时会有0.7V的压降。为此我将各模块的整流二极管除去,将防止反接电路提至稳压管之前,这样就既保证了各模块电路不会受到电源反接的危害,又保证了整个系统电压的稳定。第二个问题就是滤波电容位置,我先前实在控制板的电源排阵附近安装了104电容,但事实上系统在运行中偶尔还会因为高频干扰出错。查了相关资料后,我将104电容接在MCU的VCC管脚附近,有效的解决了这一问题。

由于刚接触嵌入式不久,所在程序调试中遇到不少问题。就键盘检测而言,进入检测的双重循环以后开始设置桌号,但是却不知道如何再跳出这双重循环进行下一步操作。在和学长的共同讨论后,我们决定采用一个For循环定义变量a,在内部循环中一旦a被赋值就用Braek语句跳出,在外部循环中a值改变打破For 循环条件,故自然跳出外围循环。还有就是在桌号检测的程序中,为了能使机器人准确地判断桌号,我用了检测后延时再检测来防止误检,但是延时的时间长度就是一个难题了,短了会重复检测同一桌号,长了会丢掉桌号。经过反复地调试,最终确定下来的延时时间能使桌号检测的准确率达到80%,这是因为机器人在行进的过程中速度并不是恒定。后来我将程序改为检测后延时检测,确定检测到桌子之后再延时走过这个桌号,这样的程序就相对稳定很多,基本不会出现桌号判断失误的可能。(详细程序见第五章_附件_5.6_BF-1程序。)

第五章附件5.1 BF-1机器人实图

5.2 BF-1机器人餐厅

5.3.1 移动平台

5.3.2电机驱动模块

5.4.1 控制模块

5.4.2 循迹模块

5.4.3 驱动模块

5.5 BF-1机器人程序框图

5.6 BF-1程序

/******BF-1机器人程序******/

/******河南工业大学***电气学院***周伟伟******/ /******头文件******/

#include//BF-1的单片机是STC89C51

/******宏定义******/

#define uint unsigned int//宏定义

#define uchar unsigned char//宏定义

#define shumaguan P0//数码管

/******硬件连接定义******/

sbit buzz=P2^0;//蜂鸣器

sbit ma0=P2^2;//电机A控制口

sbit ma1=P2^3;//电机A控制1

sbit ma2=P2^4;//电机A控制2

sbit mb0=P2^5;//电机B控制口

sbit mb1=P2^6;//电机B控制1

sbit mb2=P2^7;//电机B控制2

sbit key1=P1^0;//设置按键

sbit key2=P1^1;//+按键

sbit key3=P1^2;//-按键

sbit key4=P1^3;//确定按键

sbit zhongli=P1^7;//重力传感器

sbit hw1=P3^0;//红外传感1

sbit hw2=P3^1;//红外传感2

sbit hw3=P3^2;//红外传感3

sbit hw4=P3^3;//红外传感4

sbit shire=P3^7;//人体释热传感器

/******全局变量******/

uchar circs,n,t,num,s;

/******电机A控制函数******/

void go_ma()//电机A前进

{

ma0=1;

ma1=1;

ma2=0;

}

void back_ma()//电机A后退

{

ma0=1;

ma1=1;

ma2=0;

}

void stop_ma()//电机A停止

{

ma0=1;

ma1=0;

ma2=0;

}

/*****电机B控制函数******/

void go_mb()//电机B前进

{

mb0=1;

mb1=1;

mb2=0;

}

void back_mb()//电机B后退

{

mb0=1;

mb1=1;

mb2=0;

}

void stop_mb()//电机B停止

{

mb0=1;

mb1=0;

mb2=0;

}

/******BF-1机器人运动函数*******/ void advance()//BF-1机器人前进

{

go_ma();

go_mb();

}

void back()//BF-1机器人后退

{

back_ma();

back_mb();

}

void left_turn()//BF-1机器人左转

{

stop_ma();

go_mb();

}

void right_turn()//BF-1机器人右转{

go_ma();

stop_mb();

}

void stop()//BF-1机器人停止

{

stop_ma();

stop_mb();

}

/******BF-1机器人设备服务函数******/ void delayms(uint xms)//延时函数

{

uint i,j;

for(i=xms;i>0;i--)

for(j=110;j>0;j--);

}

void display(uchar y)//数码管显示

{

uchar code table[]={

0xc0,0xf9,0xa4,0xb0,

0x99,0x92,0x82,0xf8,

0x80,0x90,0x88,0x83,

0xc6,0xa1,0x86,0x8e};

shumaguan=table[y];

}

void alarm()//蜂鸣器报警

{

buzz=0;

delayms(500);

buzz=1;

delayms(500);

}

/******BF-1机器人键盘检测函数******/ void key_scan()//键盘检测

{

for(n=100;n==100;)//进入键盘检测循环{

if(key1==0)//设置按键

{

delayms(10);

if(key1==0)

{

while(1)

{

display(num);

基于单片机的智能寻迹小车毕业设计

基于单片机的智能寻迹小车毕业设计 系统主要由红外避障模块、声控模块、光电寻迹、电机驱动及语音播报模块组成。 采用P89V51单片机作为智能小车控制核心。系统能实现对线路进行寻迹,小 车可以 前进或后退,遇到障碍物可以自行停止并可以实现反向运行,系统可以利用声 音控 制小车的启停。整个系统小巧紧凑,控制准确,性价比高,人机互动性好。 P89V51单片机;红外避障;线路寻迹;直流减速电机 ABSTRACT System is mainly by infrared obstacle avoidance module, voice module, opto-electronics and motor drive tracing module. Used as a single- chip smart car P89V51 control core. System can realize the tracing lines, cars can go forward or backward, encountered obstacles can stop and reverse operation can be achieved, the system can use voice to control the start and stop car. Compact the entire system to control the accurate, cost-effective, good human-computer interaction. KEYWORD: P89V51MCU;Infrared obstacle avoidance;Tracing;DC motor speed 1

智能循迹小车设计与实现

智能循迹小车设计与实现 摘要本文介绍的是基于单片机STC89C52控制智能循迹小车的设计。利用红外对光管检测黑线与障碍物,并以STC89C52单片机为控制芯片控制电动小汽车的运动,从而实现自动循迹避障的功能。其中小车的电机由LG9110驱动,整个系统的电路结构简单,可靠性高。 关键词STC89C52 LG9110 红外对光管循迹小车

The manufacture of intelligent tracking car Abstract This articale introduces the design of intelligent tracking car based on the STC89C52 single chip computer.Based infrared detection of black lines and the road obstacles,and use a STC89C52 MCU as the controlling core for the movement.A electronic drived,which can automatic track and avoid obstacle,was designed and fabricated.In which,the electric machinery of car is drived by the LG9110.The electric circuit stuction of whole system is simple,and the function is dependable. Keywords STC89C52 LG9110 Infrared emitting diode Tracking car

智能循迹小车程序

#include #define uchar unsigned char #define uint unsigned int //D0-D7:f,b,a,e,d,h,c,g 共阴依次编码 //74LS04反相器驱动数码管 uchar code table[10] = {0x5F,0x42,0x9E,0xD6,0xC3,0xD5,0xDD,0x46,0xDF,0xD7}; uchar i = 0; //用于0-3数码管轮流显示 uint j = 0; //计时的次数 uint time=0; //计时 uint pwm=16; //占空比 uint speed; //调制PWM波的当前的值 sbit R=P3^2; //右边传感器P3^2 sbit L=P3^3; //左边传感器P3^3 //电机驱动口定义 sbit E NB=P1^0; //前轮电机停止控制使能 sbit E NA=P1^1; //后轮控制调速控制端口 sbit I N1=P1^2; //前轮 sbit I N2=P1^3; //前轮 sbit I N3=P1^4; //后轮 sbit I N4=P1^5; //后轮 void Init() { TMOD = 0x12; //定时器0用方式2,定时器1用方式1 TH0=(256-200)/256; //pwm TL0=(256-200)/256; TH1 = 0x0F8; //定时2ms TL1 = 0x30; EA = 1; ET0 = 1; ET1 = 1; TR0 = 1; TR1 = 1; } void tim0(void) interrupt 1 //产生PWM { speed ++; if(speed <= pwm) //pwm 就相当于占100的比例 { ENA = 1; } else if(speed < 100) { ENA = 0; }

基于STC89C52单片机-红外智能循迹小车 (1)

基于STC89C52单片机红外智能循迹小车 实验报告册 学院:电气工程学院 协会:电子科技协会 班级:电气1206 班 姓名:蔡申申 学号:201223910625 联系方式:151 **** ****

摘要 本报告论述了自己参加第八届河南工业大学科技创新大赛——基于STC89C52RC单片机红外智能循迹小车的方案论证、制作过程、调试过程。设计采用STC89C52RC单片机为核心控制器件,采用TCRT5000红外反射式开关传感器作为小车的循迹模块来识别白色路面中央的黑色引导线,采集信号并将信号转换为能被单片机识别的数字信号,单片机获取路面信息后,进行分析、处理,最后控制减速电机转动实现转向。实验表明:该系统抗干扰能力强、电路结构简单、制作成本低,运行平稳、可靠性好。 关键词:STC89C52单片机、反射式光电对管、PWM调速 减速电机

目录 摘要 (2) 1 绪论 (4) 1.1 智能循迹小车概述 (4) 1.1.1 循迹小车的发展历程回顾 (4) 1.1.2 智能循迹分类 (4) 1.1.3 智能循迹小车的应用 (5) 2 智能循迹小车总体设计方案 (5) 2.1 整体设计方案 (5) 2.1.1 系统设计步骤 (5) 2.1.2 系统基本组成 (5) 2.2 整体控制方案确定 (6) 3 系统的硬件设计 (6) 3.1 单片机电路的设计 (6) 3.1.1 单片机的功能特性描述 (6) 3.1.2 晶振电路 (7) 3.1.3 复位电路 (7) 3.2 光电传感器模块 (8) 3.2.1 传感器分布 (8) 3.3 电机驱动电路 (9) 3.3.1 L298N引脚结构 (9) 3.3.2 电机驱动原理 (9) 4 系统的软件设计 (10) 4.1 软件设计的流程 (10) 4.2 本系统的编译器 (10) 5 系统的总体调试 (11) 5.1 硬件的测试 (11) 5.2 系统的软件调试 (11) 结论 (11) 致谢 (11) 参考文献 (12) 附录A 原理图与模块电路图 (12) 附录B 程序代码 (13) 附录C 硬件实物图 (15)

智能循迹小车详细制作过程

(穿山乙工作室)三天三十元做出智能车 基本设计思路: 1.基本车架(两个电机一体轮子+一 个万向轮) 2.单片机主控模块 3.电机驱动模块(内置5V电源输出) 4.黑白线循迹模块 0.准备所需基本元器件 1).基本二驱车体一台。(本课以穿山乙推出的基本车体为 例讲解) 2).5x7cm洞洞板、单片机卡槽、51单片机、石英晶体、红 色LED、1K电阻、10K排阻各一个;2个瓷片电容、排针40 个。 3).5x7cm洞洞板、7805稳压芯片、红色LED、1K电阻各一 个;双孔接线柱三个、10u电解电容2个、排针12个、9110 驱动芯片2个。 4).5x7cm洞洞板、LM324比较器芯片各一个;红外对管三 对、4.7K电阻3个、330电阻三个、红色3mmLED三个。 一、组装车体

(图中显示的很清晰吧,照着上螺丝就行了) 二、制作单片机控制模块 材料:5x7cm洞洞板、单片机卡槽、51单片机、石英晶体、红色LED、1K电阻、10K排阻各一个;2个瓷片电容、排针40个。 电路图如下,主要目的是把单片机的各个引脚用排针引出来,便于使用。我们也有焊接好的实物图供你参考。(如果你选用的是STC98系列的单片机在这里可以省掉复位电路不焊,仍能正常工作。我实物图中就没焊复位)

三、制作电机驱动模块 材料:5x7cm洞洞板、7805稳压芯片、红色LED、1K电阻各一个;双孔接线柱三个、10u电解电容2个、排针12个、9110驱动芯片2个。 电路图如下,这里我们把电源模块与驱动模块含在了同一个电路板上。因为电机驱动模块所需的电压是+9V左右(6—15V 均可),而单片机主控和循迹模块所需电压均为+5V。 这里用了一个7805稳压芯片将+9V电压稳出+5V电压。

智能循迹小车___设计报告

智能循迹小车设计 专业:自动化 班级:自动化132 姓名:罗植升莫柏源梁桂宾 指导老师: 2014年4月——2010年6月 摘要:

本课题是基于STC89C52单片机的智能小车的设计与实现,小车完成的主要功能是能够自主识别黑色引导线并根据黑线走向实现快速稳定的寻线行驶。小车系统以 STC89C52单片机为系统控制处理器;采用红外传感获取赛道的信息,来对小车的方向和速度进行控制。此外,对整个控制软件进行设计和程序的编制以及程序的调试,并最终完成软件和硬件的融合,实现小车的预期功能。 引言

当今世界,传感器技术和自动控制技术正在飞速发展,机械、电气和电子信息已经不再明显分家,自动控制在工业领域中的地位已经越来越重要,“智能”这个词也已经成为了热门词汇。现在国外的自动控制和传感器技术已经达到了很高的水平,特别是日本,比如日本本田制作的机器人,其仿人双足行走已经做得十分逼真,而且具有一定的学习能力,还据说其智商已达到6岁儿童的水平。 作为机械行业的代表产品—汽车,其与电子信息产业的融合速度也显著提高,呈现出两个明显的特点:一是电子装置占汽车整车(特别是轿车)的价值量比例逐步提高,汽车将由以机械产品为主向高级的机电一体化方向发展,汽车电子产业也很有可能成为依托整车制造业和用车提升配置而快速成为新的增长点;二是汽车开始向电子化、多媒体化和智能化方向发展,使其不仅作为一种代步工具、同时能具有交通、娱乐、办公和通讯等多种功能。 无容置疑,机电一体化人才的培养不论是在国外还是国内,都开始重视起来,主要表现在大学生的各种大型的创新比赛,比如:亚洲广播电视联盟亚太地区机器人大赛(ABU ROBCON)、全国大学生“飞思卡尔”杯智能汽车竞赛等众多重要竞赛都能很好的培养大学生对于机电一体化的兴趣与强化机电一体化的相关知识。但很现实的状况是,国内不论是在机械还是电气领域,与国外的差距还是很明显的,所以作为机电一体化学生,必须加倍努力,为逐步赶上国外先进水平并超过之而努力。 为了适应机电一体化的发展在汽车智能化方向的发展要求,提出简易智能小车的构想,目的在于:通过独立设计并制作一辆具有简单智能化的简易小车,获得项目整体设计的能力,并掌握多通道多样化传感器综合控制的方法。所以立“智能循迹小车”一题作为尝试。 此项设计是在以杨老师提供的小车为基础上,采用AT89C52单片机作为控制核心,实现能够自主识别黑色引导线并根据黑线走向实现快速稳定的寻线行驶。

智能循迹小车C程序(完美-详尽)

-----------------------小车运行主程序------------------- -------------------------------------------------------- 简介:@模块组成:红外对管检测模块----五组对管,五个信号采集端口 直流电机驱动模块----驱动两个直流电机,另一个轮子用万向轮 单片机最小系统------用于烧写程序,控制智能小车运动 @功能简介:在白色地面或皮质上用黑色胶带粘贴出路线路径宽度微大于相邻检测管间距。 这样小车便可在其上循迹运行。 @补充说明:该程序采取“右优先”的原则: 即右边有黑线向右转, 若无,前方有黑线,向前走, 若无,左边有黑线,向左转, 若全无,从右方向后转。 程序开头定义的变量的取值是根据我的小车所调试选择好的, 如果采用本程序,请自行调试适合自己小车的合适参数值。 编者:陈尧,黄永刚(江苏大学电气学院二年级,三年级) 1.假定:IN1=1,IN3=1时电机正向转动,必须保证本条件 2.假定:遇到白线输出0,遇到黑线输出1; 如果实际电路是:遇到白线输出1,遇到黑线输出0, 这种情况下只需要将第四,第五句改成: #define m0 1 #define m1 0 即可。 3.说明1:直行---------------速度full_speed_left,full_speed_right. 转弯,调头速度------correct_speed_left,correct_speed_right. 微小校正时---------高速轮full_speed_left,full_speed_right; 低速轮correct_speed. 可以通过调节第六,七,八,九,十条程序,改变各个状态 下的占空比(Duty cycle ),以求达到合适的转弯,直行速度 4.lenth----------length检测到黑线到启动转动的时间间隔 5.width----------mid3在黑线上到脱离黑线的时间差 6.mid3-----------作为判断中心位置是否进入黑线的标志,由于运行的粗糙性和惯性, 常取其他对管的输出信号作为判断条件 7.check_right----若先检测到左边黑线,并且左边已出黑线,判断右端是否压黑线时间拖延

智能循迹小车总体设计方案

智能循迹小车总体设计方案 1.1 整体设计方案 本系统采用简单明了的设计方案。通过高发射功率红外光电二极管和高灵敏度光电晶体管组成的传感器循迹模块黑线路经,然后由AT89S52通过IO口控制L298N驱动模块改变两个直流电机的工作状态,最后实现小车循迹。 1.2系统设计步骤 (1)根据设计要求,确定控制方案; (2)将各个模块进行组装并进行简单调试; (3)画出程序流程图,使用C语言进行编程; (4)将程序烧录到单片机内; (5)进行调试以实现控制功能。 1.2.1系统基本组成 智能循迹小车主要由AT89S52单片机电路、循迹模块、L298N驱动模块、直流电机、小车底板、电源模块等组成。 (1)单片机电路:采用AT89S52芯片作为控制单元。AT89S52单片机具有低成本、高性能、抗干扰能力强、超低功耗、低电磁干扰,并且与传统的8051单片机程序兼容,无需改变硬件,支持在系统编程技术。使用ISP可不用编程器直接在PCB板上烧录程序,修改、调速都方便。 (2)循迹模块:采用脉冲调制反射红外发射接收器作为循迹传感器,调制信号带有交流分量,可减少外界的大量干扰。信号采集部分就相

当于智能循迹小车的眼睛,有它完成黑线识别并产生高、低平信号传送到控制单元,然后单片机生成指令来控制驱动模块来控制两个直流电机的工作状态,来完成自动循迹。 (3)L298N驱动模块:采用L298N作为点击驱动芯片。L298N具有高电压、大电流、响应频率高的全桥驱动芯片,一片L298N可以分别控制两个直流电机,并且带有控制使能端。该电机驱动芯片驱动能力强、操作方便、稳定性好,性能优良。L298N的使能端可以外接电平控制,也可以利用单片机进行软件控制,满足各种复杂电路的需要。另外,L298N的驱动功率较大,能够根据输入电压的大小输出不同的电压和功率,解决了负载能力不够的问题。

51红外循迹小车报告(舵机版)最终版

简易教程

前言 往届全国大学生电子设计竞赛曾多次出现了集光、机、电于一体的简易智能小车题目,此次,笔者在通过多次论证、比较与实验之后,制作出了简易小车的寻迹电路系统。 整个系统基于普通玩具小车的机械结构,利用小车的底盘、前后轮电机及其自动复原装置,能够平稳跟踪路面黑色轨迹运行。系统分为检测、控制、驱动三个模块。首先利用光电对接收管和路面信号进行检测,然后经过比较器处理,对软件控制模块进行实时控制,输出相应的信号给驱动芯片驱动电机转动,从而控制整个小车的运动。 智能小车能在画有黑线的白纸“路面”上行驶,这是由于黑线和白纸对光线的反射系数不同,小车可根据接收到的反射光的强弱来判断“道路”---黑线,最终实现简单的循迹运动。 个人水平有限,有错误不足之处,还望各位前辈同学多多包含,指出修正,完善。谢谢! 李学云王维 2016年7月27号

目录 前言 (1) 第一部分硬件设计 (1) 1.1 车模选择 (1) 1.2传感器选择 (1) 1.3 控制模块选择 (2) 第二部分软件设计及调试 (3) 2.1 开发环境 (3) 2.2总体框架 (3) 2.3 舵机程序设计与调试 (3) 2.3.1 程序设计 (3) 2.3.2 调试 (3) 2.3.3 程序代码 (4) 2.4 传感器调试 (5) 2.4.1 传感器好坏的检测 (5) 2.4.2 单片机能否识别信号并输出信号 (5) 2.5 综合调试 (7) 附录1 (9) 第一篇舵机(舵机及转向控制原理) (9) 1.1概述 (9) 1.2舵机的组成 (10) 1.3舵机工作原理 (11) 1.4舵机使用中应注意的事项 (12) 1.5如何利用程序实现转向 (12) 1.6舵机测试程序 (13) 附录2 (14) 第二篇光电红外传感器 (14) 2.1传感器的原理 (14) 2.2红外光电传感器ST188 结构图 (15) 2.3传感器的选择 (15) 2.4传感器的安装 (16) 2.5使用方法 (16) 2.7红外传感器输入输出调试程序 (17)

智能循迹避障小车方案设计书

封面

作者:PanHongliang 仅供个人学习 目录 摘要………………………………………………………………………………………2 ABSTRACT………………………………………………………………………………

…2 第一章绪论 (3) 1.1智能小车的意义和作用 (3) 1.2智能小车的现状 (3) 第二章方案设计与论证 (4) 2.1 主控系统 (4) 2.2 电机驱动模块 (4) 2.3 循迹模块 (6) 2.4 避障模块 (7) 2.5 机械系统 (7) 2.6电源模块 (8) 第三章硬件设计 (8) 3.1总体设计 (8) 3.2驱动电路 (9) 3.3信号检测模块 (10) 3.4主控电路 (11) 第四章软件设计 (12) 4.1主程序模块 (12) 4.2电机驱动程序 (12) 4.3循迹模

块 (13) 4.4避障模块 (15) 第五章制作安装与调试 (18) 结束语 (18) 致谢……………………………………………………………………………………… 19 参考文献 (19) 智能循迹避障小车 摘要:利用红外对管检测黑线与障碍物,并以STC89C52单片机为控制芯片控制电动小汽车的速度及转向,从而实现自动循迹避障的功能。其中小车驱动由 L298N驱动电路完成,速度由单片机输出的PWM波控制。 关键词:智能小车;STC89C52单片机; L298N;红外对管 Intelligent tracking and obstacle-avoid car Abstract:Based infrared detection of black lines and theroad obstacles, and use a STC89C52 MCU as the controlling core for the speed and direction, A electronic drived, which can automatic track and avoid the obstacle, was designed and fabricated. In which, the car is drived by the L298N circuit, its speed is controlled by the output PWM signal from the STC89C52. Keywords: Smart Car。STC89C52 MCU。L298N。Infrared Emitting Diode 第一章绪论 1.1智能小车的意义和作用 自第一台工业机器人诞生以来,机器人的发展已经遍及机械、电子、冶金、交通、宇航、国防等领域。近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。人们在不断探讨、改造、认识自然的过程中,制造能替代人劳动的机器一直是人类的梦想。 随着科学技术的发展,机器人的感觉传感器种类越来越多,其中视觉传感器成为自动行走和驾驶的重要部件。视觉的典型应用领域为自主式智能导航系统,对于视觉的各种技术而言图像处理技术已相当发达,而基于图像的理解技术还很落后,机器视觉需要通过大量的运算也只能识别一些结构化环境简单的目标。视

智能循迹小车C程序完美详尽

/*------------------------------------------------------ -----------------------小车运行主程序------------------- -------------------------------------------------------- 简介:@模块组成:红外对管检测模块----五组对管,五个信号采集端口 直流电机驱动模块----驱动两个直流电机,另一个轮子用万向轮 单片机最小系统------用于烧写程序,控制智能小车运动 @功能简介:在白色地面或皮质上用黑色胶带粘贴出路线路径宽度微大于相邻检测管间距。 这样小车便可在其上循迹运行。 @补充说明:该程序采取“右优先”的原则: 即右边有黑线向右转, 若无,前方有黑线,向前走, 若无,左边有黑线,向左转, 若全无,从右方向后转。 程序开头定义的变量的取值是根据我的小车所调试选择好的, 如果采用本程序,请自行调试适合自己小车的合适参数值。 编者:陈尧,黄永刚(江苏大学电气学院二年级,三年级) 1.假定:IN1=1,IN3=1时电机正向转动,必须保证本条件 2.假定:遇到白线输出0,遇到黑线输出1; 如果实际电路是:遇到白线输出1,遇到黑线输出0, 这种情况下只需要将第四,第五句改成: #define m0 1 #define m1 0 即可。 3.说明1:直行---------------速度full_speed_left,full_speed_right. 转弯,调头速度------correct_speed_left,correct_speed_right. 微小校正时---------高速轮full_speed_left,full_speed_right; 低速轮correct_speed. 可以通过调节第六,七,八,九,十条程序,改变各个状态 下的占空比(Duty cycle ),以求达到合适的转弯,直行速度 4.lenth----------length检测到黑线到启动转动的时间间隔 5.width----------mid3在黑线上到脱离黑线的时间差 6.mid3-----------作为判断中心位置是否进入黑线的标志,由于运行的粗糙性和惯性, 常取其他对管的输出信号作为判断条件 7.check_right----若先检测到左边黑线,并且左边已出黑线,判断右端是否压黑线时间拖延

智能循迹小车总体设计方案

智能循迹小车总体设计方案 整体设计方案 本系统采用简单明了的设计方案。通过高发射功率红外光电二极管和高灵敏度光电晶体管组成的传感器循迹模块黑线路经,然后由AT89S52通过IO口控制L298N驱动模块改变两个直流电机的工作状态,最后实现小车循迹。 系统设计步骤 (1)根据设计要求,确定控制方案; (2)将各个模块进行组装并进行简单调试; (3)画出程序流程图,使用C语言进行编程; (4)将程序烧录到单片机内; (5)进行调试以实现控制功能。 系统基本组成 智能循迹小车主要由AT89S52单片机电路、循迹模块、L298N驱动模块、直流电机、小车底板、电源模块等组成。 (1)单片机电路:采用AT89S52芯片作为控制单元。AT89S52单片机具有低成本、高性能、抗干扰能力强、超低功耗、低电磁干扰,并且与传统的8051单片机程序兼容,无需改变硬件,支持在系统编程技术。使用ISP可不用编程器直接在PCB板上烧录程序,修改、调速都

方便。 (2)循迹模块:采用脉冲调制反射红外发射接收器作为循迹传感器,调制信号带有交流分量,可减少外界的大量干扰。信号采集部分就相当于智能循迹小车的眼睛,有它完成黑线识别并产生高、低平信号传送到控制单元,然后单片机生成指令来控制驱动模块来控制两个直流电机的工作状态,来完成自动循迹。 (3)L298N驱动模块:采用L298N作为点击驱动芯片。L298N具有高电压、大电流、响应频率高的全桥驱动芯片,一片L298N可以分别控制两个直流电机,并且带有控制使能端。该电机驱动芯片驱动能力强、操作方便、稳定性好,性能优良。L298N的使能端可以外接电平控制,也可以利用单片机进行软件控制,满足各种复杂电路的需要。另外,L298N的驱动功率较大,能够根据输入电压的大小输出不同的电压和功率,解决了负载能力不够的问题。

智能循迹小车程序代码

/**************************************************************** ************ 硬件连接 P1_4接驱动模块ENA使能端,输入PWM信号调节速度 P1_5接驱动模块ENB使能端,输入PWM信号调节速度 P1_0 P1_1接IN1 IN2 当P1_0=1,P1_1=0; 时左电机正转驱动蓝色输出 端OUT1 OUT2接左电机 P1_0 P1_1接IN1 IN2 当P1_0=0,P1_1=1; 时左电机反转 P1_2 P1_3接IN3 IN4 当P1_2=1,P1_3=0; 时右电机正转驱动蓝色输出 端OUT3 OUT4接右电机 P1_2 P1_3接IN3 IN4 当P1_2=0,P1_3=1; 时右电机反转 P1_0接四路寻迹模块接口第一路输出信号即中控板上面标记为OUT1 P1_1接四路寻迹模块接口第二路输出信号即中控板上面标记为OUT2 P1_2接四路寻迹模块接口第三路输出信号即中控板上面标记为OUT3 P1_3接四路寻迹模块接口第四路输出信号即中控板上面标记为OUT4 八路寻迹传感器有信号(白线)为0 没有信号(黑线)为1 ***************************************************************** ***********/ #include #define Right_moto_pwm P1_4 //接驱动模块ENA使能端,输入PWM 信号调节速度 #define Left_moto_pwm P1_5 //接驱动模块ENB使能端,输入PWM 信号调节速度 #define Left_1_led P2_0 //四路寻迹模块接口第一路 #define Left_2_led P2_1 //四路寻迹模块接口第二路 #define Right_1_led P2_2 //四路寻迹模块接口第三路 #define Right_2_led P2_3 //四路寻迹模块接口第四路 #define Left_moto_go {P1_0=0,P1_1=1;} //左电机前进 #define Left_moto_back {P1_0=1,P1_1=0;} //左电机后退 #define Left_moto_stop {P1_0=1,P1_1=1;} //左电机停转 #define Right_moto_go {P1_2=0,P1_3=1;} //右电机前转

PWM调速+循迹__智能小车程序

//T0产生双路PWM信号,L298N为直流电机调速,接L298N时相应的管脚上最好接上10K 的上拉电阻。 /* 晶振采用12M,产生的PWM的频率约为100Hz */ #include #include #define uchar unsigned char #define uint unsigned int sbit en1=P3^4; /* L298的Enable A */ sbit en2=P3^5; /* L298的Enable B */ sbit s1=P1^0; /* L298的Input 1 */ sbit s2=P1^1; /* L298的Input 2 */ sbit s3=P1^3; /* L298的Input 3 */ sbit s4=P1^2; /* L298的Input 4 */ sbit R=P2^0; sbit C=P2^1; sbit L=P2^2; sbit key=P1^4; uchar t=0; /* 中断计数器*/ uchar m1=0; /* 电机1速度值*/ uchar m2=0; /* 电机2速度值*/ uchar tmp1,tmp2; /* 电机当前速度值*/ /* 电机控制函数index-电机号(1,2); speed-电机速度(0-100) */ void motor(uchar index, char speed) { if(speed<=100) { if(index==1) /* 电机1的处理*/ { m1=abs(speed); /* 取速度的绝对值*/ s1=1; s2=0; } if(index==2) /* 电机2的处理*/ { m2=abs(speed); /* 电机2的速度控制*/ s3=1; s4=0; } } } void Back(void) {

智能循迹小车详细制作过程

(穿山乙工作室) 三天三十元做出智能车 0.准备所需基本元器件 1).基本二驱车体一台。(本课以穿山乙推出的基本车体为例讲解) 2).5x7cm 洞洞板、单片机卡槽、51单片机、石英晶体、红色LED 、1K 电阻、10K 排阻各一个;2个瓷片电容、排针40个。 3).5x7cm 洞洞板、7805稳压芯片、红色LED 、1K 电阻各一个;双孔接线柱三个、10u 电解电容2个、排针12个、9110驱动芯片2个。 4).5x7cm 洞洞板、LM324比较器芯片各一个;红外对管三对、4.7K 电阻3个、330电阻三个、红色3mmLED 三个。 一、组装车体 基本设计思路: 1.基本车架(两个电机一体轮子+一个万向轮) 2.单片机主控模块 3.电机驱动模块(内置5V 电源输出) 4.黑白线循迹模块

(图中显示的很清晰吧,照着上螺丝就行了) 二、制作单片机控制模块 材料:5x7cm洞洞板、单片机卡槽、51单片机、石英晶体、红色LED、1K电阻、10K排阻各一个;2个瓷片电容、排针40个。 电路图如下,主要目的是把单片机的各个引脚用排针引出来,便于使用。我们也有焊接好的实物图供你参考。(如果你选用的是STC98系列的单片机在这里可以省掉复位电路不焊,仍能正常工作。我实物图中就没焊复位)

三、制作电机驱动模块 材料:5x7cm洞洞板、7805稳压芯片、红色LED、1K电阻各一个;双孔接线柱三个、10u电解电容2个、排针12个、9110驱动芯片2个。 电路图如下,这里我们把电源模块与驱动模块含在了同一个电路板上。因为电机驱动模块所需的电压是+9V左右(6—15V 均可),而单片机主控和循迹模块所需电压均为+5V。 这里用了一个7805稳压芯片将+9V电压稳出+5V电压。 +9V

智能循迹小车设计

智能循迹/避障小车研究 工作报告 一、智能循迹小车程序结构框图 二、Proteus仿真图 三、软件程序设计

一、智能循迹小车程序结构框图 经过几天在网上的查找,对智能循迹/避障小车有了大致的了 解, 一般有三个模块: 1、最基本的小车驱动模块,使用两个二相四线步进电机对小车的两个后轮分别进行驱动,前轮最好用万向轮,能使小车更好地转弯; 2、小车循迹模块,在小车底部有三个并排安装的红外对管,对黑色与白色的反射信号不同,经单片机处理后对小车进行相应处理; 3、避障模块,我写的程序中对于避障模块是用中断来处理的(即安装在小车车头的红外对管检测到有障碍物后,就会向单片机的P3_2口输出一个高电平或是低电平,这时中断程序将对小车进行预先设定好的避障处理),但是在程序结构框图中,我不太会表示中断处理方式,所以就用查询的方式画了。

N Y N Y 二、Proteus 仿真图 我用Proteus 大概地仿真了小车的运行状态。图中的两个二相四线步进电机就代表小车的左右轮(假定步进电机顺时针转动方向为小车前进方向),网上有很多种驱动芯片,在仿真时我只使用L298N 芯

片来驱动步进电机。用三个单刀双制开关模拟用于小车循迹的三个红外对管的输出信号,经一个与门与三极管开关连接到P3_3口,中断程序对P1_0, P1_1, P1_2三个口进行检测,并做出相应处理。同时因为避障模块的优先级高于循迹模块,所以将外部中断0用于避障,外部中断1用于循迹。P1_3口则用于检测小车是否到达终点。 1、小车驱动模块: 使用一片298芯片驱动一个二相四线步进电机,电机的电压为12V。

智能循迹避障小车设计

摘要 本系统以设计题目的要求为目的,采用80C51单片机为控制核心,利用红外线传感器进行寻线,控制电动小汽车的自动循迹,并再通过光电开关探测障碍,从而控制电机转向,实现进行壁障功能。整个系统的电路结构简单,可靠性能高,实验测试结果满足要求。本文着重叙述了该系统的硬件设计方法、软件设计方法及测试结果分析。小车运行方案,在现有玩具电动车的基础上,加装红外线光电开关模块和红外寻线模块,实现对电动车位置、运行状况的实时测量,并将测量数据传送至单片机进行处理,然后由单片机根据所检测的各种数据实现对电动车的智能控制。 关键词:80C51单片机、红外线传感器、光电开关、电动小车

Abstract The system requirements of the design project for the purpose of the 80C51 microcontroller for the control of the core,the use of the hunt and infrared sensors,automatic obstacle acoidance control of electric cars,and the photoelectric switch to the barrier function.The electric circuit construction of whole system is simple, the function is dependable. Experiment test result satisfy the request, this text emphasizes introduced the hardware system designs and the result analyse. Car is running the program, under the existing toy electric car, based on the installation of super sonic sensor and infrared sensors, to achieve the location of electric vehicles,operational status of the real-time measurement, and measurement data sent to the microcontroller for processing, then SCM detected according to a variety of data to achieve intelligent control of electric vehicles. Key words: 80C51 single chip computer, infrared sensors, photoelectric switch, the electric car

智能循迹小车程序

智能循迹小车程序 Document number:BGCG-0857-BTDO-0089-2022

#include<> #define uchar unsigned char #define uint unsigned int //D0-D7:f,b,a,e,d,h,c,g 共阴依次编码 //74LS04反相器驱动数码管 uchar code table[10] = {0x5F,0x42,0x9E,0xD6,0xC3,0xD5,0xDD,0x46,0xDF,0xD7}; uchar i = 0; //用于0-3数码管轮流显示uint j = 0; //计时的次数 uint time=0; //计时 uint pwm=16; //占空比 uint speed; //调制PWM波的当前的值 sbit R=P3^2; //右边传感器 P3^2 sbit L=P3^3; //左边传感器 P3^3 //电机驱动口定义 sbit ENB=P1^0; //前轮电机停止控制使能 sbit ENA=P1^1; //后轮控制调速控制端口 sbit IN1=P1^2; //前轮 sbit IN2=P1^3; //前轮 sbit IN3=P1^4; //后轮

sbit IN4=P1^5; //后轮 void Init() { TMOD = 0x12; //定时器0用方式2,定时器1用方式1 TH0=(256-200)/256; //pwm TL0=(256-200)/256; TH1 = 0x0F8; //定时2ms TL1 = 0x30; EA = 1; ET0 = 1; ET1 = 1; TR0 = 1; TR1 = 1; } void tim0(void) interrupt 1 //产生PWM { speed ++; if(speed <= pwm) //pwm 就相当于占100的比例{ ENA = 1; }

智能循迹小车设计方案 智能循迹小车方案

智能循迹小车设计方案智能循迹小车方案 自动化06--2班2009年6月5日自动寻迹小车摘要本寻迹小车是以PCB电路板为车架,AT89S51单片机为控制核心,加以直流电机、光电传感器和电源电路以及其他电路构成。系统由AT89S51通过IO口控制小车的前进后退以及转向。寻迹由RPR2… 各省主要风电塔架制造厂名单序号123456789101112131415161718192021222324 公司名称甘肃玉门锦辉长城甘肃科耀电力有限公司北车集团兰州金牛轨道交通装备有限公司河北强盛风电设备有限公司保定天威电气设备结构有限公司… 学习“七.一”讲话精神,深入剖析“四种危险” 胡锦涛在党庆90年大会上,总结了建党以来的“三件大事”和“两大成果”,提出了往后“两个宏伟目标”,指出中共面临“四种考验”和存在“四种危险”。整篇讲话与时俱进,有新意,有不少新提法,是一篇回顾历史、总结经…

自动化06--2班 2009年6月5日 自动寻迹小车 摘要 本寻迹小车是以PCB电路板为车架,AT89S51单片机为控制核心,加以直流电机、光电传感器和电源电路以及其他电路构成。系统由AT89S51通过IO口控制小车的前进后退以及转向。寻迹由RPR220型光电对管完成。 关键词:AT89S51 直流电机光电传感器自动寻迹电动车 Abstract The smart car is aluminum alloy for the chassis, AT89S51 MCU as its core, including motor and servo, plus photoelectric sensors, as well as other flame sensor and power circuit. MCU controls the car turning back forward or running on the white line. RPR220 reflective photo sensor seeks the trace. Far infrared flame sensor tracks the flame. In addition, the SCM system with Sunplus for voice broadcast can remind current status. The system transmits information through DF module. The car’s status will be transmitted to the Remote Console. OCMJ4X8C LCD

智能循迹小车详细源代码程序MSPID

巡线车程序(完整版) 1 #ifndef _Macro.h_ 2 #define _Macro.h_ 3 #include 4 #include 5 #define uchar unsigned char 6 #define uint unsigned int 7 #define one 11.11 8 #define LMAX 1999 9 #define RMAX 3999 10 #define CPU_F ((double)8000000) 11 #define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0)) 12 13 #define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0)) 14 #define PC 20 // 比例放大系数 15 #define IC 0 //积分放大系数 16 #define DC 85 //大系数 17 #define LEFTOUT TACCR1 18 #define RIGHTOUT TACCR2 19 #define SensorIn P5IN 20 #define F 5000//5000hz 21 #define Period (8000000/F) 22 #define EnableLeftPos P3OUT|=BIT1 23 #define UnenableLeftPos P3OUT&=~BIT1 24 25 #define EnableLeftNeg P3OUT|=BIT0 26 #define UnenableLeftNeg P3OUT&=~BIT0 27 28 #define EnableRightPos P3OUT|=BIT2 29 #define UnenableRightPos P3OUT&=~BIT2 30 31 #define EnableRightNeg P3OUT|=BIT3 32 #define UnenableRightNeg P3OUT&=~BIT3 33 34 #define Basic_Left 100//百分之八十 35 #define Basic_Right 100//Basic_Left 36 #define MAX (100) 37 #define MIN (-100) 38 #define foreward 1 39 #define backward 0

相关主题
文本预览
相关文档 最新文档