基于51单片机的智能小车设计(精选5篇)

时间:2019-05-14 03:18:55下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《基于51单片机的智能小车设计》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《基于51单片机的智能小车设计》。

第一篇:基于51单片机的智能小车设计

智能小车的设计与制作

摘要:本课题组设计制作了一款具有智能判断功能的小车,功能强大。小车具有以下几个功能:自动避障功能;寻迹功能(按路面的黑色轨道行驶);趋光功能(寻找前方的点光源并行驶到位);检测路面所放置的铁片的个数的功能;计算并显示所走的路程和行走的时间,并可发声发光。作品可以作为高级智能玩具,也可以作为大学生学习嵌入式控制的强有力的应用实例。

作品以两电动机为主驱动,通过各类传感器件来采集各类信息,送入主控单元AT89S52单片机,处理数据后完成相应动作,以达到自身控制。电机驱动电路采用高电压,高电流,四通道驱动集成芯片L293D。其中避障采用红外线收发来完成;铁片检测部分采用电感式接近开关LJ18A3-8-Z/BX检测;黑带检测采用红外线接收二极管完成;趋光部分通过3路光敏二极管对光源信号的采集,再经过ADC0809转化为数字信号送单片机处理判别方向。由控制单元处理数据后完成相应动作,实现了无人控制即可完成一系列动作,相当于简易机器人。

关键字:智能控制 蔽障 红外线收发 寻迹行驶 趋光行驶

1.总体方案论证与比较

方案一:采用各类数字电路来组成小车的控制系统,对外围避障信号,黑带检测信号,铁片检测信号,各路趋光信号进行处理。本方案电路复杂,灵活性不高,效率低,不利于小车智能化的扩展,对各路信号处理比较困难。

方案二:采用ATM89S52单片机来作为整机的控制单元。红外线探头采用市面上通用的发射管与及接收头,经过单片机调制后发射。铁片检测采用电感式接近开关LJ18A3-8-Z/BX检测,黑带采用光敏二极管对光源信号采集,再经过ADC0809转化为数字信号送到单片机系统处理。此系统比较灵活,采用软件方法来解决复杂的硬件电路部分,使系统硬件简洁化,各类功能易于实现,能很好地

满足题目的要求。

比较以上两种方案的优缺点,方案二简洁、灵活、可扩展性好,能达到题目的设计要求,因此采用方案二来实现。方案二的基本原理如图1所示。

图1 智能车运行基本原理图框图

避障部分采用红外线发射和接受原理。铁片检测采用电感式接近开关LJ18A3-8-Z/BX检测,产生的高低电平信号经过处理后,完成相应的记录数目,驱动蜂鸣器发声。黑带寻迹依靠安装在车底部左右两个光敏二极管对管来对地面反射光感应。寻光设计在小车前端安装3路(左、中、右)光敏电阻对光源信号采集,模拟信号经过ADC0809转化为数字信号送到MCU处理。记程通过在车轮上安装小磁块,再用霍尔管感应产生计数脉冲。记时由软件实现,显示采用普通七段LED。此系统比较灵活,采用软件方法来解决复杂的硬件电路部分,使系统硬件简洁化,各类功能易于实现。

2.模块电路设计与比较 1)避障方案选择

方案一:采用超声波避障,超声波受环境影响较大,电路复杂,而且地面对超声波的反射,会影响系统对障碍物的判断。

方案二:采用红外线避障,利用单片机来产生38KHz信号对红外线发射管进行调制发射,发射出去的红外线遇到避障物的时候反射回来,红外线接收管对反射回来信号进行解调,输出TTL电平。外界对红外信号的干扰比较小,且易于实现,价格也比较便宜,故采用方案二。

红外线发射接受电路原理图如图2所示。

采用红外线避障方法,利用一管发射另一管接收,接收管对外界红外线的接收强弱来判断障碍物的远近,由于红外线受外界可见光的影响较大,因此用250Hz的信号对38KHz的载波进行调制,这样减少外界的一些干扰。接收管输出TTL电平,有利于单片机对信号的处理。采用红外线发射与接收原理。利用单片机产生38KHz信号对红外线发射管进行调制发射,发射距离远近由RW调节,本设计调节为10CM左右。发射出去的红外线遇到避障物的时候反射回来,红外线接收管对反射回来信号进行解调,输出TTL电平。利用单片机的中断系统,在遇障碍物时控制电机并使小车转弯。由于只采用了一组红外线收发对管,在避障转弯方向上,程序采用遇障碍物往左拐方式。如果要求小车正确判断左转还是右转,需在小车侧边加多一组对管。外界对红外信号的干扰比较小,性价比高。调试时主要是调制发射频率为接收头能接收的频率,采用单片机程序解决。发射信号强弱的调节,由可调精密电阻调节。

图2 红外线发射接受电路原理图

2)检测铁片方案选择

方案一:采用电涡流原理自制的传感器,取才方便,但难以调试,输出信号也不可靠,成功率比较低,难以准确输出传感信息。

方案二:采用市面易购的电感式接近开关,本系统采用市面比较通用LJ18A3-8-Z/BX来完成铁片检测的任务。虽然电感式接近开关占的体积大,对本是可以接受,且输出信号较可靠,稳定性好,受外界的干扰小,故采用方案二。

检测铁片电路原理图如图3所示。

图3 检测铁片电路原理图

3)声音提示

方案一:采用单片机产生不同的频率信号来完成声音提示,此方案能完成声音提示功能,给人以提示的可懂性比较差,但在一定程度上能满足要求,而且易于实现,成本也不高,我们出自经费方面考虑,采用方案一。

方案二:采用DS1420可分段录放音模块,能够给人以直观的提示,但DS1420录放音模块价格比较高,也可以采用此方案来处理,但方案二性价比不如方案一。4)黑带检测方案选择

方案一:采用发光二极管发光,用光敏二极管接收。由于光敏二极管受可见光的影响较大,稳定性差。

方案二:利用红外线发射管发射红外线,红外线二极管进行接收。采用红外线发射,外面可见光对接收信号的影响较小,再用射极输出器对信号进行隔离。本方案也易于实现,比较可靠,因此采用方案二。黑带检测电路图如图4所示。

输出信号进入74LS02。稳定性能得到提升。当小车低部的某边红外线收发对管遇到黑带时输入电平为高电平,反之为低电平。结合中断查询方式,通过程序控制小车往哪个方向行走。电路中的可调电阻可调节灵敏度,以满足小车在不同光度的环境光中能够寻迹。由于接收对管装在车底,发射距离的远近较难控制,调节可调电阻,发现灵敏度总是不尽人意,最后采用在对管上套一塑料管,屏蔽外界光的影响,灵敏度大幅提升。再是转弯的时间延迟短长控制。

图4 黑带检测电路图 3)计量路程方案

方案一:利用红外线对射方式,在小车的车轮开一些透光孔来计量车轮转过圈数,从而间接地测量路程。

方案二:利用霍尔元件来对转过的车轮圈数来计程,在车轮子上装小磁片,霍尔元件靠近磁片一次计程为车轮周长。此方案传感的信号强,电路简单,但精度不高。

如果想达到一定的计量精度,用霍尔传感元件比较难以实现,因为在车轮上装一定量的小磁片会相互影响,而利用红外线对射方式不会影响各自的脉冲,可达到厘米的精度,因此采用方案一来实现。计量路程示意图见图5。

通过计算车轮的转数间接测量距离,利用了霍尔元件感应磁块产生脉冲的原理,再对脉冲进行计数。另可采用红外线原理提高记程精度,其方法为在车轮均匀打上透光小孔,当车轮转动时,红外光透射过去,不断地输出脉冲,通过单片机对脉冲计数,再经过一个数据的处理过程,这样就可把小车走过的距离计算出来,小孔越多,计数越精密。

图 5 计量路程示意图

3)智能车驱动电路

方案一:采用分立元件组成的平衡式驱动电路,这种电路可以由单片机直接对其进行操作,但由于分立元件占用的空间比较大,还要配上两个继电器,考虑到小车的空间问题,此方案不够理想。

方案二:因为小车电机装有减速齿轮组,考虑不需调速功能,采用市面易购的电机驱动芯片L293D,该芯片是利用TTL电平进行控制,对电机的操作方便,通过改变芯片控制端的输入电平,即可以对电机进行正反转操作,很方便单片机的操作,亦能满足直流减速电机的要求。智能车驱动电路实现如图6所示。

图6 智能车驱动电路

小车电机为直流减速电机,带有齿轮组,考虑不需调速功能,采用电机驱动芯片L293D。L293D是著名的SGS公司的产品。为单块集成电路,高电压,高电流,四通道驱动,设计用来接收DTL或者TTL逻辑电平,驱动感性负载(比如继电器,直流和步进马达),和开关电源晶体管。内部包含4通道逻辑驱动电路。其额定工作电流为1A,最大可达1.5A,Vss电压最小4.5V,最大可达36V;Vs电压最大值也是36V,经过实验,Vs电压应该比Vss电压高,否则有时会出现失控现象。表1是其使能、输入引脚和输出引脚的逻辑关系。

表1 引脚和输出引脚的逻辑关系

EN A(B)IN1(IN3)IN2(IN4)电机运行情况

H H L 正转

H L H 反转

H 同IN2(IN4)同IN1(IN3)快速停止

L X X 停止

L293D可直接的对电机进行控制,无须隔离电路。通过单片机的I/O输入改变芯片控制端的电平,即可以对电机进行正反转,停止的操作,非常方便,亦能满足直流减速电机的大电流要求。调试时在依照上表,用程序输入对应的码值,能够实现对应的动作,调试通过。3)寻找光源功能

方案一:在小车前面装上几个光电开关,通过不同方向射来的光使光电开关工作,从而对小车行驶方向进行控制,根据光电开关特性,只有当光达到一定强度时才能够导通,因此带有一定的局限性。

方案二:在小车前面装上参数一致的光敏二极管或者光敏电阻,再通过A/D转换电路转换成数字量送入单片机,单片机再对读入的几路数据进行存储、比较,然后发出命令对外围进操作。对方案一、二进行比较,方案二硬件稍为复杂,但能够对不同强度的光进行采集以及比较,操作灵活,所以采用方案二。

寻找光源电路图如图7所示。

图7 寻找光源电路图

3)显示部分

方案一:采用LCD显示,用单片机可实现显示数据,但显示亮度和字体大小在演示时不尽人意,价格也比较昂贵。

方案二:采用LED七段数码管,采用经典电路译码和驱动,电路结构简单,并且可以实现单片机I/O口的并用,显示效果直观,明亮,调试容易。故采用LED数码管显示。

4)显示电路如图8所示。

图8 显示电路

3.系统原理及理论分析 1)单片机最小系统组成

单片机系统是整个智能系统的核心部分,它对各路传感信号的采集、处理、分析及对各部分整体调整。主要是组成是:单片机AT89S52、模数转换芯片ADC0809、小车驱动系统芯片L293D、数码管显示的译码芯片74LS47、74LS138及各路的传感器件。2)避障原理

采用红外线避障方法,利用一管发射另一管接收,接收管对外界红外线的接收强弱来判断障碍物的远近,由于红外线受外界可见光的影响较大,因此用250Hz的信号对38KHz的载波进行调制,这样减少外界的一些干扰。接收管输出TTL电平,有利于单片机对信号的处理。3)计程原理

通过计算车轮的转数间接测量距离,在车轮均匀打上透光小孔,当车轮转动时,红外光透射过去,不断地输出脉冲,通过单片机对脉冲计数,再经过一个数据的处理过程,这样就可把小车走过的距离计算出来。4)黑带检测原理

利用光的反射原理,当光线照射在白纸上,反射量比较大,反之,照在黑色物体上,由于黑色对光的吸收,反射回去的量比较少,这样就可以判断黑带轨道的走向。由于各路传感器会对单片机产生一定的干扰,使信号发生错误。因此,采用一级射极输出方式对信号进行隔离,这样系统对信号的判断就比较准确。4.系统程序设计

用单片机定时器T0产生38KHz的方波,再用定时器T1产生250Hz的方波对38KHz方波进行调制。为了提高小车反应灵敏度,对红外线接收信号及黑带检测信号都采用中断法来处理。用定时方法对铁片检测、计量路程、倒车、拐弯及数码管动态扫描进行处理。

主程序流程图见图9,各子程序图见图

10、图

11、图12。

图9 主程序流程图

图 10 外部中断0服务子程序

图 11 外部中断1服务子程序

图12 定时器1中断子程序

6.调试及性能分析

整机焊接完毕,首先对硬件进行检查联线有无错误,再逐步对各模块进行调试。首先写入电机控制小程序,控制其正反转,停机均正常。加入避障子程序,小车运转正常,调整灵敏度达最佳效果。加入显示时间子程序,显示正常。铁片检测依靠接近开关,对检测信号进行处理并实时显示和发出声光信息,无异常状况。路程显示部分是对霍尔管脉冲进行计数,为了尽量达到精确,车轮加装小磁片。接着对黑带检测模块调试,发现有时小车会跑出黑带,经判断是因为红外线收发对管灵敏度不高,调整灵敏度后仍然达不到满意效果,疑是受环境光影响,利用塑料套包围红外线收发后问题解决。趋光电路主要由三个光敏电阻构成,调整三个光敏电阻的角度同时测试软件,以最佳效果完成趋光功能。

整机综合调试,上电后对系统进行初始化,接着控制电机使小车向前行驶,突然发现系统即刻进入外部中断1,重复多次测试,结果都是自动进入该中断。推断是由刚上电时电机起动所引起,为了避免上电瞬间的影响,在启动小车后延时几毫秒,再开外部中断,结果问题解决。允许的话应采用双电源供电,即电机和电路应分开供电,L293D与单片机之间采用隔离信号控制。这样就不会出现小车启动时程序出错和数码管显示闪动的问题。在计程精度上,可用红外线原理获得较高精度。7.结论

通过各种方案的讨论及尝试,再经过多次的整体软硬件结合调试,不断地对系统进行优化,智能小车能够完成各项功能到达车库。8.参考文献

《单片机应用技术》 《周立功单片机》 《单片机原理与应用》

《8051单片机程序设计与实例》 《MCS-51单片机实验指导》

第二篇:基于单片机设计智能小车的参考文献

参考文献

[1] 赵海兰.基于单片机的红外遥控智能小车的设计[J].无线互联科技, 2011年3期.[2] 何立民.单片机技术的现状与未来[J].中国计算机报, 2012年 No:30.[3] 姚培等.基于单片机控制的智能循迹避障小车[J].机电信息,2010年12期.[4] 赵振德.多功能遥控智能小车的制作[J].电子制作, 2011年4期.[5] 李瀚霖等.智能小车研究与设计[J].科技致富向导,2011年26期.[6] 周淑娟.基于单片机智能寻迹小车的设计方案[J].工业技术与职业教育,2011年6月第9卷第2期.[7] 黄杰.基于模糊控制的智能车辆设计[J].中国科技信息,2010.20.[8] 陈铁军.智能控制理论及应用[M].北京:清华大学出版社,2009.1.[9] 张毅刚,彭喜元,彭宇.单片机原理及应用[M],高等教育出版社,2010.5.[10] 刘南平.电子产品设计与制作技术[J].科学出版社,2008.[11] 杨刚.电子系统设计与实践[J].电子工业出版社,2009.3.[12] 寸晓非.基于飞恩卡尔的智能循迹车设计.荆楚学院报,2012.04.[13] 隋研.基于数字PID的智能小车控制[J].杂志商店,2012.06 [14] 张友德.单片机原理与应用技术.机械工业出版社,2004 [15] 吴黎明.数字控制技术.科学出版社,2009.11.

第三篇:基于89C51单片机的智能小车设计

湖北轻工职业技术学院

单片机实训报告

专 目:基于STC89C52的智能小车设计 名:刘

象 号:20110302113 业:电子信息工程技术

指导老师:何

俐 日

期:2013-01-06

信息工程系电信教研室

目录

引言...............................................................................................................................3 一 整体方案设计.........................................................................................................4 1.1整体方案设计的思路............................................4 1.2整体方案的流程图..............................................4 二 智能小车系统概况.................................................................................................4 2.1恒压恒流桥式2A驱动芯片L298N...................................................................4 2.2直流电机简介..................................................5 2.3显示模块的综合概括............................................7 三 模块方案比较与论证:.........................................................................................9 3.1 电机模块的选择..............................................9 3.2 电机驱动模块的选择..........................................9 3.3 控制器模块的选择............................................9 四 系统硬件电路设计...............................................................................................11 4.1 显示模块的设计.............................................11 4.2 直流电机的驱动模块.........................................12 五 软件的简单介绍...................................................................................................14 5.1 KEIL的简介..................................................14 5.2 PROTUES的简介................................................14 5.3 STC_ISP_V483的简介.........................................15 六 结论.......................................................................................................................18 七 致谢.......................................................................................................................18 参考文献.....................................................................................................................19 附录一:实物图.........................................................................................................20 图1实物图.................................................................................................................20 图2实物图.................................................................................................................21 附录二:总程序.........................................................................................................21

第 1 2 页

湖北轻工职业技术学院

引言

随科学技术的进步,智能化和自动化技术越来越普及,也广泛应用于机器人玩具制造领域,使智能机器人越来越多样化。智能机器人是一个多种高新技术的集成体,它融合了机械、电子、传感器、计算机硬件、软件、人工智能等许多学科的知识,涉及到当今许多前沿领域的技术。而随着社会的不断发展,智能设备的不断出现,无线遥控的运用也越来越广泛。无线遥控器由于控制距离远,抗干扰性强,已越来越多的出现在生活的各个方面。本文使用了一款通用的无线遥控电路,基于STC89C52作为控制核心,采用专用编码解码电路,由于其体积小、功能强大,因此可非常方便的移植到遥控机器人、遥控小车上等,并实现远距离控制。在早期,遥控小车并不少见,但大多产品制造简单,实现的功能少,往往只有一些简单的功能,例如左转右转,前进后退等,大多采用红外控制,外加一些复杂的电路组合而成。遥控小车的使用者针对的是小孩子,但笨重的设备和昂贵的价格往往让许多小孩的甜美梦想落空。在现在,用单片机进行无线遥控小车的方案,利用较少的外设实现了基本的功能。其较强的抗干扰性使得该遥控器具有很好的通用性其功能也日趋完善。其中包括防撞防爆系统和基本的方向控制,另外在行进中可以尽享柔美的音乐,看美丽的灯光随音律而闪烁,让孩子玩得更开心!此外,电路的简化,材料的减少使得价格也降低了不少,真的是物美价廉,可以为孩子的童年再添一些笑语。

第 3 1 页

湖北轻工职业技术学院

一 整体方案设计

1.1整体方案设计的思路

利用红外线传感器发射和接收信号模块来控制单片机,让单片机翻译传输指令,从而实现相应的功能。具体的过程如下:四路红外传感器,每一路发射一个信号,检测接收到的信号,若出现高电平,则说明该方向前方有障碍物,则单片机控制电机正转和反转,从而实现绕开障碍物继续前行。同时还增加一个无线发射和无线接收模块控制单片机,让单片机翻译传输指令,从而实现相应的功能。无线发射模块发出指令,无线接收模块接收信号后,传递给单片机,单片机翻译接收到信号后,传输给驱动电路驱动电机旋转,从而实现让小车的前进、后退、左转和右转。1.2整体方案的流程图

基于单片机STC89C52整体设计的智能小车,根据原来设计的思路上画出了相对应的流程路,由于是整体结构图,就只是画出了大致的结构流程,而细节将在后面做出介绍。

图1整体方案的流程图 二 智能小车系统概况

2.1恒压恒流桥式2A驱动芯片L298N L298是SGS公司的产品,比较常见的是15脚Multiwatt封装的L298N,内部同样包含4通道逻辑驱动电路。可以方便的驱动两个直流电机,或一个两相步进电机。L298N芯片可以驱动两个二相电机,也可以驱动一个四相电机,输出电压最高可达50V,可以直接通过电源来调节输出电压;可以直接用单片机的IO

第 4 页

湖北轻工职业技术学院

口提供信号;而且电路简单,使用比较方便。

L298N可接受标准TTL逻辑电平信号VSS,VSS可接4.5~7 V电压。4脚VS接电源电压,VS电压范围VIH为+2.5~46 V。输出电流可达2.5A,可驱动电感性负载。1脚和15脚下管的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。L298可驱动2个电动机,OUT1,OUT2和OUT3,OUT4之间可分别接电动机,本实验装置我们选用驱动一台电动机。5,7,10,12脚接输入控制电平,控制电机的正反转。EnA,EnB连接控制使能端,控制电机的停转。表1是L298N功能逻辑图。In3,In4的逻辑图与表1相同。由表1可知EnA为低电平时,输入电平对电机控制起作用,当EnA为高电平,输入电平为一高一低,电机正或反转。同为低电平电机停止,同为高电平电机刹停。等。

图2单片机利用L298控制电机的原理图

15脚是输出电流反馈引脚,其它与L298相同。在通常使用中这两个引脚也可以直接接地。上图是其与51单片机连接的电路图 2.2直流电机简介 2.2.1直流电机的应用

电动机简称电机,是使机械能与电能相互转换的机械,直流电机把直流电能变为机械能。作为机电执行元部件,直流电机内部有一个闭合的主磁路。主磁通在主磁路中流动,同时与两个电路交联,其中一个电路是用以产生磁通的,称为激磁电路;另一个电路是用来传递功率的,称为功率回路或电驱回路。现行的直流电机都是旋转电驱式,也就是说,激磁绕组及其所包围的铁芯组成的磁极为定子,带换向单元的电驱绕组和电驱铁芯结合构成直流电机的转子。直流电机有以下4方面的优点:

1)调速范围广,且易于平滑调节。

第 5 页

湖北轻工职业技术学院

2)3)4)过载、启动、制动转矩大。易于控制,可靠性高。调速时的能量损耗较小。

所以,在调速要求高的场所,如轧钢机、轮船推进器、电机、电气铁道牵引、高炉送料、造纸、纺织、拖动、吊车、挖掘机械、卷扬机拖动等方面,直流电机均得到广泛的应用。

2.2.2直流电机的基本工作原理

直流电机工作原理:当电刷A,B接在电压为U的直流电源上时,若电刷A是正电位,B是负电位,在N极范围内的导体ab中的电流是从a流向b,在S极范围内的导体cd中的电流是从c流向d。载流导体在磁场中要受到电磁力的作用,因此ab与cd两导体都受到电磁力的作用。根据磁场方向和导体中的电流方向,利用电机左手定则判断,ab边受力的方向是向左的,而cd边则是向右的。由于磁场是均匀的,导体中流过的又是相同的电流,所以ab边和cd边所受电磁力的大小相等。这样,线圈上就受到了电磁力的作用而按逆时针转动。当线圈转到磁极的中性面上时,线圈中的电流等于零,电磁力等于零,但是由于惯性的作用,线圈继续转动。线圈转过半周之后,虽然ab与cd的位置调换了,ab边转到S极范围内,cd边转到N极范围内,但是由于换向片和电刷的作用,转到N极下的cd边中电流方向也变了,是从d流向c,在s极下的ab边中的电流则是从b流向a。因此电磁力的方向仍然不变,线圈仍然受力按逆时针方向转动。可见,分别处在N,S极范围内的导体中电流方向总是不变的,因此线圈两个边的受力方向也不变,这样线圈就可以按照受力方向不停地旋转,通过齿轮或皮带等机构的传动,便可以带动其他机械工作。

从以上分析可以看到,要使线圈按照一定的方向旋转,关键问题是当导体从一个磁极范围转到另一个异性磁极范围时(也就是导体经过中性面后),导体中电流的方向也要同时改变,换向器和电刷就是完成这一任务的装置。在直流电机中,换向器和电刷把输入的直流电变为线圈中的交流电。可见,换向器和电刷是直流电机中不可缺少的关键部件。

当然,在实际的直流电机中,不只有一个线圈,而是有许多线圈牢固地嵌在转子铁芯槽中,当导体中通过电流在磁场中因受力而转动时,就带动整个转子旋转,这就是直流电机的基本工作原理。2.2.3直流电机的参数

转矩-电机得以旋转的力矩,单位为㎏•m或N•m。

转矩系数-电机所产生转矩的比例系数,一般表示每安培电驱电流所产生的转矩大小。

摩擦转矩-电刷、轴承、换向单元等因摩擦而引起的转矩损失。

第 6 页

湖北轻工职业技术学院

启动转矩-电机启动时所产生的旋转力矩。

转速-电机旋转的速度,工程单位为r/min,即转每分。在国际单位制中为rad/s,即弧度每秒。

电枢电阻-电枢内部的电阻,在有刷电机里一般包括电刷与换向器之间的接触电阻,由于电阻中流过电流时会发热,因此总希望电枢电阻尽量小。

电枢电感-因为电枢绕组由金属线圈构成,必然存在电感,从改善电机运行性能的角度来说,电枢电感越小越好。

电气时间常数-电枢电流从零开始达到稳定值的63.2%时所经历的时间。测定电气时间常数时,电机应处于堵转的状态并施加阶跃性质的驱动电压。工程上,常常利用电动机转子的转动惯量J、电枢电阻Ra、电机反电动势系数Ke和转矩系数Kt求出机械时间常数:

Tm(J*Ra)(/Ke*Kt)„1-1 转动惯量-具有质量的物体维持其固有运动状态的一种性质。

反电动势系数-电机旋转时,电枢绕组内部切割磁力线所感应的电动势相对于转速的比例系数,也称发电系数或感应电动势系数。

功率密度-电机每单位质量所能获得的输出功率值。功率密度越大,电机的有效材料的利用率就越高。

转子-rotor;定子-stator;电枢-armature;励磁-excitation。2.3显示模块的综合概括

显示模块包括:LCD1602,温度传感器DS18B20,时钟芯片DS1302三个部分组成。

2.3.1LCD1602的简介

1602B可以显示2行16个字符,有8位数据总线D0-D7,和RS、R/W、EN三个控制端口,工作电压为5V,并且带有字符对比度调节和背光。该模块也可以只用D4-D7作为四位数据分两次传送。这样的话可以节省MCU的I/O口资源。1602B引脚说明如下:

表2.3 LCD液晶显示器各引脚功能及结构

编号 1 2 3 4 符号 VSS VDD VL RS

引脚说明 电源地 电源正极 对比度调节 数据/命令选择

编号 9 10 11 12

符号 D2 D3 D4 D5

引脚说明 双向数据口 双向数据口 双向数据口 双向数据口

第 7 页

湖北轻工职业技术学院 6 7 8 R/W E D0 D1

读/写选择 模块使能端 双向数据口 双向数据口 14 15 16

D6 D7 BLK BLA

双向数据口 双向数据口 背光源地 背光源正极

注意事项:从该模块的正面看,引脚排列从右向左为:15脚、16脚,然后才是1-14脚(线路板上已经标明): VDD:电源正极,4.5-5.5V,通常使用5V电压;

VL:LCD对比度调节端,电压调节范围为0-5V。接电源的正极时对比度最弱,接地电源时对比度最高,但对比度过高时会产生“鬼影”,因此通常使用一个10K的电位器来调整对比度,或者直接串接一个电阻到地;

RS:MCU写入数据或者指令选择端。MCU要写入指令时,使RS为低电平;MCU要写入数据时,使RS为高电平;

R/W:读写控制端。R/W为高电平时,读取数据;R/W为低电平时,写入数据; E:LCD模块使能信号控制端。写数据时,需要下降沿触发模块。D0-D7:8位数据总线,三态双向。如果MCU的I/O口资源紧张的话,该模块也可以只使用4位数据线D4-D7接口传送数据。本充电器就是采用4位数据传送方式;

BLA:LED背光正极。需要背光时,BLA串接一个限流电阻接VDD,BLK接地,实测该模块的背光电流为50mA左右;

BLK:LED背光地端。

第 8 页

湖北轻工职业技术学院

三 模块方案比较与论证:

3.1 电机模块的选择

方案1:采用步进电机作为该系统的驱动电机。由于其转过的角度可以精确的定位,可以实现小车前进路程和位置的精确定位。虽然采用步进电机有诸多优点,步进电机的输出力矩较低,随转速的升高而下降,且在较高转速时会急剧下降,其转速较低,不适用于小车等有一定速度要求的系统。经综合比较考虑,我们放弃了此方案。

方案 2:直流电机:直流电机的控制方法比较简单,只需给电机的两根控制线加上适当的电压即可使电机转动起来,电压越高则电机转速越高。对于直流电机的速度调节,可以采用改变电压的方法,也可采用PWM调速方法。PWM调速就是使加在直流电机两端的电压为方波形式,通过改变方波的占空比实现对电机转速的调节。

基于以上分析,我们选择了方案二,使用直流电机作为电动车的驱动电机。3.2 电机驱动模块的选择

方案 1:采用SM6135W电机遥控驱动模块。SM6135W是专为遥控车设计的大规模集成电路。能实现前进、后退、向右、向左、加速五个功能,但是其采用的是编码输入控制,而不是电平控制,这样在程序中实现比较麻烦,而且该电机模块价格比较高。

方案 2:采用电机驱动芯片L298N。L298N为单块集成电路,高电压,高电流,四通道驱动,可直接的对电机进行控制,无须隔离电路。通过单片机的I/O输入改变芯片控制端的电平,即可以对电机进行正反转,停止的操作,非常方便,亦能满足直流减速电机的大电流要求。调试时在依照上表,用程序输入对应的码值,能够实现对应的动作。表1是其使能、输入引脚和输出引脚的逻辑关系。

表3.2 L298N的引脚和输出引脚的逻辑关系

EN A(B)

H H H L

IN1(IN3)

H L 同IN2(IN4)

X

IN2(IN4)

L H 同IN2(IN4)

X

电机运行情况

正转 反转 快速停止 停止

基于以上分析,我们选择了方案二,用L298N来作为电机的驱动芯片。3.3 控制器模块的选择

方案1:采用凌阳的SPCE061A小板作为主控制芯片,而且可以采用凌阳的小车模组,可以很快的完成其基本功能,当是用该小板存在一定的局限性,较难

第 9 页

湖北轻工职业技术学院

扩张功能,而且各个模块的拼凑,没有比集成在一块板的稳定性高。

方案2:采用STC89C52作为主控制芯片,该芯片有足够的存储空间,可以方便的在线ISP下载程序,能够满足该系统软件的需要,该芯片提供了两个计数器中断,对于本作品系统已经足够,采用该芯片可以比较灵活的选择各个模块控制芯片,能够准确的计算出时间,有很好的实时性。

基于以上分析,我们选择了方案二,用STC89C52作为电机的主控制芯片。

第 10 页

湖北轻工职业技术学院

四 系统硬件电路设计

系统采用存储空间较大的STC89C52作为主控制芯片,电动车电机驱动芯片采用L298N;并利用直流电机驱动小车,能较有效的控制其在特定位置转弯及行驶出错处理,该系统无论在结构和技术上都具有较好的科学性。4.1 显示模块的设计

4.1.1 显示模块的仿真图

显示模块中主要考虑的是显示什么,综合考虑后,我想到的首先是时间的显示,于是我采用时钟芯片DS1302来实现时间的显示,单纯的显示时间似乎很无趣,于是我加入了温度的显示,温度传感器DS18B20结构完善,连接简单,功能齐全,易于控制。合并以上的思路,我确定出了显示的模块,具体的仿真图如下:

图3 显示模块的电路原理图

4.1.2 显示模块的流程

显示模块是智能小车额外增加的功能,但它仍然是重要的组成部分,显示模块是如何工作的呢?其实,先是由按键控制时钟芯片DS1302,进行时间的调节,在调节的过程中,信号传递给STC89C52,单片机将其翻译后发送信号给时钟芯片DS1302,时钟芯片DS1302会将时间的改变显示在LCD1602上,同样的道理,温度传感器DS18B20也是先将检测到的信号传递给单片机,单片机再传递给LCD1602

第 11 页

湖北轻工职业技术学院

4.2 直流电机的驱动模块

4.2.1 直流电机驱动模块的仿真图

图4 直流电机驱动模块的仿真图

4.2.2 直流电机驱动模块的流程图

电机驱动模块的核心是电机的驱动芯片及电机,电机选择了直流电机,这样可以方便控制,而电机的驱动芯片L298可以同时控制两个直流电机,其中芯片中连接单片机的5引脚和7引脚用于控制直流电机1,而芯片中的10引脚和12引脚用于控制直流电机2.电机1接的是小车的左轮,电机2接的是小车的右轮,当两个电机一起正向转动时,小车前进;当两个电机一起反向转动时,小车后退;当电机1正转,电机2反转时,小车右转;当电机1反转,电机2正转时,小车左转。由于无线模块只能控制锁存的4条线路,不能将功能都进行有效控制,只能控制前进和后退,所以额外采用按键来控制左转和右转。

第 12 页

湖北轻工职业技术学院

图5 直流电机驱动模块的流程图

第 13 页

湖北轻工职业技术学院

五 软件的简单介绍

在这次研究中,主要用到了keil,protues,proter和STC_ISP_V480等软件 5.1 Keil的简介

单片机开发中除必要的硬件外,同样离不开软件,我们写的C语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。5.2 protues的简介

Protues软件是英国Lab center electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。Protues软件具有其它EDA工具软件(例:multisim)的功能。这些功能是:(1)原理布图(2)PCB自动或人工布线(3)SPICE电路仿真。

支持当前的主流单片机,如51系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列、68000系列等。软件仿真功能如下:1)提供软件调试功能 2)提供丰富的外围接口器件及其仿真RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。这样很接近实际。在训练学生时,可以选择不同的方案,这样更利于培养学生。3)提供丰富的虚拟仪器,利用虚拟仪器在仿真过程中可以测量外围电路的特性,培养学生实际硬件的调试能力。4)具有强大的原理图绘制功能。电路功能仿真特点如下:在PROTUES绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在PROTUES的原理图中看到模拟的实物运行状态和过程。PROTUES 是单片机课堂教学的先进助手。PROTUES不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。

第 14 页

湖北轻工职业技术学院

它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。

课程设计、毕业设计是学生走向就业的重要实践环节。由于PROTUES提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台。

随着科技的发展,“计算机仿真技术”已成为许多设计部门重要的前期设计手段。它具有设计灵活,结果、过程的统一的特点。可使设计时间大为缩短、耗资大为减少,也可降低工程制造的风险。相信在单片机开发应用中PROTUES也能获得愈来愈广泛的应用。

软件缺点:器件库溃乏,库中缺少很多重要芯片,严重影响电路仿真软件出错或乱码,此时仿真效果不及硬件仿真。5.3 STC_ISP_V483的简介

在运行STC_ISP_V483下载软件之前,应该先给出ISP的C程序源代码ISP.C.要注意的是:此程序是在Keil-C中要建立工程文件,包含IAP.C函数,并且在IAP.C和ISP.C中都要保留STC的定义.传入用户代码时,需要与计算机进行通信,一般采用RS232串行通信,数据协议采用简单协议。具体的使用方法:

一、先把学习实验板和计算机连接好(接好串口线和电源)

二、打开STC-ISP v483,在MCU Type栏目下选中单片机,如STC89C52RC:根据您的9针的数据线连接情况选中COM端口,最好把波特率适当下调一些,按图示选中各项:

第 15 页

湖北轻工职业技术学院

图6STC-ISP v483的界面图

三、先确认硬件连接正确,按下图点击“打开文件”并在对话框内找到您要下载的HEX文件:

四、选中两个条件项,这样可以使您在每次编译KEIL时HEX代码能自动加载到STC-ISP,点击“Download/下载”:

五、手动按下电源开关便即可把可执行文件HEX写入到单片机内,下图是正在写入程序截图:

第 16 页

湖北轻工职业技术学院

图7 单片机程序下载截图

第 17 页

湖北轻工职业技术学院

六 结论

根据本次设计要求,我们认真分析了设计课题的需求,还系统学习了51系列单片机的工作原理及其使用方法,并独自设计智能小车的整个项目。

虽然条件艰苦,但经过不懈钻研和努力,购买到了所有所需的元器件,并系统的进行了多项试验,最终做出了整个小车的硬件系统,然后结合课题任务和小车硬件进行了程序的编制,本系统能够基本满足设计要求,能够较快较平稳的是小车沿引导线行驶,但由于经验能力有限,该系统还存在着许多不尽人意的地方有待于进一步的完善与改进。

通过本次课题设计,不仅是对我们课本所学知识的考查,更是对我的自学能力和收集资料能力以及动手能力的考验。本次毕业设计使我们对一个项目的整体设计有了初步认识,还认识了几种传感器。本次毕业设计使我们意识到了实验的重要性,在硬件制作和软件调试的过程中,出现了很多问题,最终都是通过实验的方法来解决的。还有以前对程序只是一个很模糊的概念,通过这次的课题设计使我对程序完全有了一个新的认识,并能使用Keil软件熟练的进行编程了。通过本次课题设计,极大的锻炼了我们的思考和分析问题的能力,并对单片机有了一个更深的认识。

总之,在课题设计的过程中,无论是对于学习方法还是理论知识,我们都有了新的认识,受益匪浅,这将激励我们在今后再接再厉,不断完善自己的理论知识,提高实践运作能力。

七 致谢

本设计能够顺利完成,还承蒙何老师以及身边的组队同学的指导和帮助。在设计过程中,何老师给予了悉心的指导,最重要的是给了我们组队解决问题的思路和方法,并且在设计环境和器材方面给予了大力的帮助和支持,在此,我对何老师表示最真挚的感谢!同时感谢所有帮助过我的同学!

第 18 页

湖北轻工职业技术学院

参考文献

[1]康华光.电子技术基础模拟部分[M].(第四版).北京:高等教育出版社,1999.[2]康华光.电子技术基础数字部分[M].(第四版).北京:高等教育出版社,2000.[3]陈大钦.电子技术基础实验[M].(第二版).北京:高等教育出版社,2000.[4]谢自美.电子线路设计•实验•测试[M].(第三版).武汉:华中科技大学出版社,2006.[5]胡乾斌 李光斌 李玲等.单片微型计算机原理与应用[M].(第二版).武汉:华中科技大学出版社,2006.[6]郭天祥.新概念51单片机C语言教程[M].电子工业出版社,2009.[7]谭浩强.C语言设计[M].(第三版).清华大学出版社,2005.[8]崔炳哲.电子控制入门[M].北京:科学出版社,2003.[9]樊昌信 曹丽娜.通信原理[M].(第六版).北京:国防工业出版社,2009.[10]全国大学生电子设计竞赛组委会编.全国大学生电子设计竞赛[M].北京理工大学出版社,1999.[11]郭强.液晶显示应用技术[M].北京:电子工业出版社,2003.[12]郁有文 常健 程继红.传感器原理及工程应用[M].(第二版).武汉:西安电子科技大学出版社,2006.[13]许纪倩.机械工人速成识图[M].(第二版).北京:机械工业出版社,2009.[14]高军.电动智能小车[D].http://www.xiexiebang.com/ [15]Zhi-HongJiang.51MCU technology and application development case selection[M].Tsinghua University Press 2008.第 19 页

湖北轻工职业技术学院

附录一:实物图

图1实物图

第 20 页

湖北轻工职业技术学院

图2实物图

附录二:总程序

}

void dianji1(){

for(j=10;j--;j>0)left2=0;#include #define uchar unsigned char #define uint unsigned int uchar num=1,num1=1,m,m1,i,j;sbit zxun=P0^0;sbit yxun=P0^1;sbit left=P1^5;sbit right=P1^6;sbit left1=P3^0;sbit left2=P3^1;sbit left3=P3^2;sbit left4=P3^3;void dianji2(){ for(i=10;i--;i>0){

if(num>=10)

num=0;

else

{

if(num<=m1)

left=1;

else if(num<10)

left=0;

}

}

{

}

}

void run(){ m=2;

m1=2;left1=1;

left3=1;left4=0;

}

void zuo(){

m=0;m1=1;left1=1;left2=0;left3=1;}

left4=0;void you()

第 21 页

if(num1>=10)num1=0;else {

if(num1<=m)

right=1;else if(num1<10)

right=0;

}

湖北轻工职业技术学院

{ m=1;m1=0;left1=1;left2=0;left3=1;left4=0;} void timer0()interrupt 1 { TH0=0XF8;//1ms定时

TL0=0X30;num++;num1++;dianji2();dianji1();} void main(){ TMOD=0X01;TH0= 0XF8;//1ms定时

TL0= 0X30;TR0= 1;ET0= 1;EA = 1;while(1){

switch(P0&0x03){

case 0x00:

// 全部没有压线,直转

run();

break;

case 0x01:

// 右压线,左转

zuo();

break;

case 0x02:

// 左压线,右转

you();

break;} } }

第 22 页

第四篇:智能小车单片机课程设计报告

单片机课程设计

题 目: 专 业: 班 级: 组长 成员 成员 成员 成员

智能小车设计 计算机科学与技术

14级2班

姓名 学号

年 12 月 23 日

2016

打开命令行终端的快捷方式: ctr+al+t:默认的路径在家目录

ctr+shift+n:默认的路径为上一次终端所处在的路径.linux@ubuntu:~$ linux:当前登录用户名.ubuntu:主机名

:和$之间:当前用户所处在的工作路径.windows下的工作路径如C:IntelLogs linux下的工作路径是:/.../..../ ~:代表的是/home/linux这个路径.(家目录).ls(list):列出当前路径下的文件名和目录名.ls-a(all):列出当前路径下的所有文件和目录名,包括了隐藏文件..:当前路径..:上一级路径

ls-l:以横排的方式列出文件的详细信息

total 269464(当前这个路径总计所占空间的大小,单位是K)drwxr-xr-x 3 linux linux 4096 Dec 4 19:16 Desktop

chmod u-或者+r/w/x 文件名 chmod g-或者+r/w/x 文件名 chmod o-或者+r/w/x 文件名(3).cd /home/linux 进入到1目录里并创建一个2普通文件,再退回上一级,并且删除1目录 6.拷贝文件.cp(copy)路径1/源文件 路径2:把路径1下的文件拷贝到路径2下

cp 路径1/源文件 路径2/目标文件:把路径1下的文件拷贝到路径2下并且重命名位目标文件.cp(copy)-r 路径1/目录名 路径2:把路径1下的目录拷贝到路径2下 7.剪切文件

mv(move)路径1/源文件 路径2:把路径1下的文件剪切到路径2下

mv 路径1/源文件 路径2/目标文件:把路径1下的文件剪切到路径2下并且重命名位目标文件

mv 源文件 目标文件:重命名文件

mv 路径1/目录名 路径2:把路径1下的目录剪切到路径2下 8.clear:清屏 9.exit 退出终端 vi编辑器.vi 文件名:如果文件不存在则创建并打开 如果文件已存在,则直接打开

VI编辑器的三种模式

1.命令行模式:刚进入编辑器的时候,默认处在这种模式下

2.编辑模式(插入模式):输入a/i/o即可进入,按下esc键退回命令行模式,再输入冒号 ,即可进入底行模式.3.底行模式下:w(保存),q(退出),wq(保存并退出),q!(强制退出不保存)按下退格键,删除冒号,即可进入命令行模式.终极保存法;w!sudo tee %d回车再回车即可

命令行模式下的快捷操作: 1.整行复制:光标移动想要复制的那一行,输入yy即可,再把光标移动到你想要粘贴位置的上一行,输入p即可

2.多行复制:光标移动想要复制的那几行的 6.多行剪切:光标移动想要剪切的那几行的 再编译一个c应用程序,在程序中来调用库里实现的函数

gcc 应用程序名-l库名(注意是去掉lib和.so的库名)

文件IO linux系统下一切设备皆文件

操作文件: open():打开一个文件

read()://从文件里边读出数据 write()//向文件里写入数据 close()//关闭文件

man手册: man 2 函数名

open: 头文件

#include #include #include

1.int open(const char *pathname, int flags);//仅限于打开一个已存在文件

参数1:文件的路径 参数2:打开方式的标志

O_RDONLY,//只读方式打开

O_WRONLY,//只写方式打开

O_RDWR.//可读可写方式打开 返回值: 打开成功:返回一个正数(文件描述符)打开失败:-1

2.int open(const char *pathname, int flags, mode_t mode);//可以打开一个不存在的文件 参数1:文件的路径 参数2:打开方式的标志

O_RDONLY,//只读方式打开

O_WRONLY,//只写方式打开

O_RDWR.//可读可写方式打开

如果文件不存在必须|O_CRAET,创建该文件 参数3:权限 数 比如:0666

返回值: 打开成功:返回一个正数(文件描述符)打开失败:-1

write: 头文件: #include

typedef int ssize_t

ssize_t write(int fd, const void *buf, size_t count);参数1:就是open函数的返回值,文件描述符 参数2:你想要写入的数据

参数3:你想要写入的数据的字节大小

返回值: 写入成功:返回的是写入的字节大小 写入失败:-1

strlen:实际长度 sizeof:数组的大小

arduino viod setup(){ 端口的配置;}

void loop(){ 任务的执行;

}

arduino之呼吸灯实验: int led=13;void setup(){ pinMode(led,OUTPUT);} void loop(){ digitalWrite(led,HIGH);delay(1000);digitalWrite(led,LOW);delay(1000);} 渐变灯: 暗->亮->暗

PWM波:可调脉冲宽度波.3,5,6,9,10,11这几个端口可以输出pwm波 analogWrite(pin, value)//输出pwm波 pin:管脚号:3,5,6,9,10,11中的任意一个 value:0~255中的任何一个数: 0:占空比为0% 255:占空比位100%

远程视频监控步骤: 1.将jpegsrc.v8b.tar.gz(图片库)和mjpg-streamer-code-182.tar.gz(视频查看软件)拷贝到ubuntu的家目录

2.解压缩

tar xvf jpegsrc.v8b.tar.gz 3.cd jpeg-8b 4../configure //创建Makefile文件 5.make 6.sudo make install //安装

程序运行时,默认寻找的头文件的路径在/usr/include,库文件的路径/lib

cd /usr/local/include sudo cp * /usr/include cd /usr/local/lib

sudo cp libjpeg* /lib

7.切换到家目录:cd 移植查看视频的软件:

tar xvf mjpg-streamer-code-182.tar.gz cd mjpg-streamer-code-182 cd mjpg-streamer make clean //清除已经编译过的程序

make

运行查看视频的软件:sudo./start.sh 打开火狐浏览器

在地址栏输入127.0.0.1:8080 若发现视频绿屏

先强制结束程序运行:ctl+c.解决方法:

修改start.sh

将 要对uboot环境信息进行设置

首先把拨码开关拨到0000位置.选择uboot的启动方式.uboot从外存启动.1.找到自己的COM端口号;打开putty 2.选中Serial,把波特率改为115200,端口号改为自己的端口号,Flow contrlo选择none 3.开启电源,会出现一个倒计时,在倒计时完成之前,随便敲一个键盘.4.输入命令print可以显示uboot的打印信息

确保: ipaddr=192.168.1.100//代表开发板的ip地址 serverip=192.168.1.200//代表ubuntu的IP地址 bootargs=root=nfs nfsroot=192.168.1.200:/source/rootfs ip=192.168.1.100 init=/linuxrc console=ttySAC0,115200//

打开虚拟机: 1.进入到/tftpboot目录下.把zImage拖到虚拟机,前加cp ,后加./ 使用ls查看一下是否出现zImage 2.cd /source 把rootfs这个压缩包拖到虚拟机,前加cp ,后加./ 使用ls查看一下是否出现rootfs.tgz 3.解压命令: sudo tar-xvf rootfs.tgz 要让你输入密码;输入1回车即可,密码是不可见的.再用ls查看是否多了一个蓝色的文件rootfs.4.修改ubuntu的ip地址.找到wiffi图标,点击选中edit connection->IPV4 seting->manual->add ip netmask gateway 192.168.1.200 255.255.255.0 192.168.1.1 点击保存.关闭窗口.再打开图标选中wired connection1 再看ip是否改回来了.5.网线连接开发板和电脑

在putty界面输入:ping 192.168.1.200 如果host 192.168.1.200 is alive,这是挂载系统很好的征兆.not alive的话需要关闭电脑的无线网

输入boot或者重启开发板不要再按下任何键了,如果出现

####很快就要挂载成功了 如果出现TTTTTTTTTTTTTT 在ubuntu输入命令:sudo service tftpd-hpa restart 其中sudo的作用是暂时将用户的权限提升到超级用户(root)的权限.如果出现Please press Enter to activate this console.代表系统挂载成功.通过gcc编译生成的程序不能在开发板上运行.通过命令file a.out看到文件的格式为intel 30386,说明这是X86格式的程序,只能PC上运行

而不能在arm板上运行,解决措施,使用交叉编译器来编译.交叉编译器的配置: 将arm-cortex_a8-linux-gnueabi.tar.bz2拖到ubuntu的家目录

解压命令tar-xvf arm-cor+tab键自动补齐,用ls查看是否生成arm-cortex_a8个目录.配置交叉编译器: sudo vi /etc/bash.bashrc文件

在最后一行添加export PATH=$PATH:/home/linux/arm-cortex_a8/bin 保存并退出文件

保存完成后重启文件:source /etc/bash.bashrc

重启成功后输入arm-cor+tab键会自动补齐成arm-cortex_a8-linux-gnueabi-代表交叉编译器配置成功.利用交叉编译器编译程序: arm-cortex_a8-linux-gnueabi-gcc 文件名,并将生成的可执行程序拷贝到/source/rootfs下

然后再到putty上执行./a.out就可以在开发板上运行程序了.

相关代码

Che.c

#include “cgic.h” #include #include #include #include #include

void zigbee_serial_init(int fd){ struct termios options;

tcgetattr(fd, &options);options.c_cflag |=(CLOCAL | CREAD);options.c_cflag &= ~CSIZE;options.c_cflag &= ~CRTSCTS;options.c_cflag |= CS8;options.c_cflag &= ~CSTOPB;options.c_iflag |= IGNPAR;options.c_iflag &= ~(BRKINT | INPCK | ISTRIP | ICRNL | IXON);

//options.c_cc[VTIME] = 2;options.c_cc[VMIN] = 12;

options.c_oflag = 0;options.c_lflag = 0;

cfsetispeed(&options, B115200);cfsetospeed(&options, B115200);

tcsetattr(fd,TCSANOW,&options);

} int cgiMain(){ int fd;char a='1';cgiHeaderContentType(“text/htmlnn”);fprintf(cgiOut,“n”);fprintf(cgiOut,“n”);fprintf(cgiOut,“n”);

fprintf(cgiOut,“n”);fprintf(cgiOut,“SMART CARn”);fprintf(cgiOut,“n”);fprintf(cgiOut,“”);fprintf(cgiOut,“n”);fprintf(cgiOut,“n”);fprintf(cgiOut,“

n”);fprintf(cgiOut,“



n”);fprintf(cgiOut,“
n”);fprintf(cgiOut,“

n”);fprintf(cgiOut,“n”);fprintf(cgiOut,“    n”);fprintf(cgiOut,“”);fprintf(cgiOut,“    n”);fprintf(cgiOut,“

n”);fprintf(cgiOut,“n”);fprintf(cgiOut,“
n”);

fd=open(“/dev/ttyUSB0”,O_RDWR);if(-1==fd)

fprintf(cgiOut,“open usart failedn”);

}

zigbee_serial_init(fd);if(cgiFormSuccess==cgiFormSubmitClicked(“up”)){ a='2';write(fd,&a,1);} if(cgiFormSuccess==cgiFormSubmitClicked(“down”)){ a='1';write(fd,&a,1);} if(cgiFormSuccess==cgiFormSubmitClicked(“right”)){ a='4';write(fd,&a,1);} if(cgiFormSuccess==cgiFormSubmitClicked(“left”)){ a='3';write(fd,&a,1);} if(cgiFormSuccess==cgiFormSubmitClicked(“stop”)){ a='0';write(fd,&a,1);} fprintf(cgiOut,"

第五篇:基于单片机的智能跟随小车的设计与实现

基于单片机的智能跟随小车的设计与实现

【摘要】本文设计了一种能够通过传感器实时采集信号、智能分析周围环境以及路径信息、自动控制方向等功能的智能小车。小车以STC89c52单片机控制为核心,利用车前三个反射式红外发射―接收探头检测周围信息,以及利用光电传感器检测前方物体,并将检测信号反馈给单片机,实现小车的避障和跟随功能。基于STC89C52单片机的智能小车系统结构简单,性价比高,易于推广和移植,具有广阔的应用前景。

【关键词】STC89C52;避障;跟随;光电传感器

引言

随着科技的发展和人民生活水平的提高,越来越多的智能车得到普及普及,和传统汽相比,智能小车具有更好的安全性,机动性和广泛的应用性。智能小车,也就是轮式机器的智能化成果,是一种集传感器应用,智能芯片控制,驱动控制的高科技创意性设计。智能小车的功能是对指定的目标物进行跟踪和实时的躲避障碍物,这是他与其他小车最大的区别也是最大的一个特点。小车通过红外传感器对目标物体进行实时识别和跟踪,并且及时的躲避障碍物,具有灵敏性好,智能化程度高的特点。如果把它用在超市,将会极大地方便人们的生活。如果用在商城和机场,人们也不用提着沉重的行李箱满地跑了。

1、总体方案设计

智能小车总体设计内容:一是STC89C52芯片控制电路的设计;二是驱动电路的设计;三是光电传感器电路的设计;四是避障系统的设计;五是电源稳压电路的设计;六是硬件的焊接组装;七是软件的编程调试。小车总共分为5个部分,以单片机为核心的主控模块,电源模块,红外传感模块,驱动模块,避障模块。具体工作原理是:红外传感器在预设距离内检测前方是否有目标物体,如果有则自动进行跟随。同时,红外光电对管检测前方障碍物,当检测到前方有障碍物并且小于预设值时将把信息发回给单片机,控制驱动电路让车轮停止转动并后退绕过障碍物继续跟随。

2、系统的硬件设计

2.1主控模块

主控模块通过单片机利用程序来精确控制小车的运动,从而实现对小车的自动控制。STC89C52单片机具有控制简单、方便、快捷等优点,因此我们采用STC89C52单片机作为控制芯片。

2.2传感器模块

本设计所采用的传感器是集发射与接收为一体的光电传感器,具有很多其他传感器所没有的特性比如发射机距离远,抗干扰能力强,结构简单,可调节等优良的特点[1]。红外传感器是利用物体对近红外线光束的反射原理,由同步回路感应反射回来的光,据其强弱来检测物体的存在与否。通过有无信号来输出高低电平,然后把信号送给单片机处理,实现实时跟随的功能。红外探测法是避障模块所使用的方法,就是利用红外线在不同颜色的物理表面具有不同反射性质的特点来进行避障[2]。由于红外光遇到白光的时候会发生漫反射,光电传感器就可以不断向外发射红外光,接收管就能接收到反射回来的信号,然后发送到单片机。若遇到黑色的物体将不会接收到信号而检测到障碍物进而启动躲避系统。传感器模块原理图如图2所示。

2.3驱动模块

驱动模块采用L298N驱动芯片,总共有四路输入,四路输出。INX均接单片机的P1口,IN1和IN3口控制轮子正转,IN2和IN4口控制轮子逆转,通过调节输入信号的占空比来调节小车轮子转动的速度。当小车左侧遇到障碍物时,驱动电路控制右侧轮子不动,左侧轮子加速转动,进行右转;当小车右侧遇到障碍物时,情况正好相反;当小车前方遇到障碍物时,驱动电路控制轮子停止,然后反转后退,绕过障碍物继续前进。

2.4电源模块

电源供电模块,使用的是直流稳压[3]电源,输入的是直流+12V电压,运用三线稳压器件7805,输出+5V直流电压。电源部分电路设计简单方便,同时也充分发挥了稳压器保护电路的作用。

3、系统的软件设计

软件设计部分决定了智能小车能否实现其跟随和避障的功能,是本次设计的关键部分。小车程序分为以下三部分:主程序部分,跟随和避障程序部分,驱动程序部分[4]。主程序流程图如图3所示。

4、仿真测试

基于PROTEUS仿真软件,我们设计了智能跟随小车控制电路的仿真图,如图4所示。

由于PROTEUS软件中没有红外传感器,所以我们用从上到下编号1-6的六个开关代替传感器,来实现探测目标的功能[5]。图中四个电机的转动方向代表四个轮子的转动方向,同时速度的快慢也可以从图中显示出来。首先,闭合开关3,表示发现目标物体,四个轮子正转,并且加速前进,闭合开关4,表示遇到障碍物,轮子停止转动并且反向转动直到障碍物离开检测范围。断开开关3、4,闭合开关5,表示目标物体向左移动,此时左侧轮子停止转动,右侧轮子正转并且加速转动,当小车右侧出现目标物是动作与之相反。闭合开关6,表示左侧有障碍物,这时右侧轮子不动,左侧轮子正转,实现向右转向的目的。当小车右侧出现障碍物时动作与之相反。

5、系统调试

先进行硬件调试,通过仿真好的电路图[6],用万用表检测已经焊好的电路板上每一个节点是否有短路、断路和接触不良的情况,看各个节点电压是否正常。当硬件调试没有问题,完成了以后进行软件调试,通过修改各个接口对应的程序进行调试,最终完成软件的修改,达到了预期的效果。

6、结束语

本次项目设计非常成功,通过老师的指导和我们的团队合作,小车很好了实现了其跟随和避障的功能效果。最然在开始我们对这个项目没有任何的头绪,但是经过我们共同的努力成功完成了这个作品,每一个人都感到了团队合作的艰辛和成功后的喜悦。通过实验测试智能跟随小车的灵敏性,效果良好,能够很好的按照预期完成指定动作,并且运行稳定。

参考文献

[1]周继明,江世明.传感器技术及应用[M].长沙:中南大学出版社,2005.[2]冯博琴,吴宁.微型计算机原理与接口技术[M].北京:清华大学出版社,2011.[3]余锡存,曹国华.单片机原理及接口技术[M].西安:西安电子科技大学出版社,2007.[4]李学礼.基于Proteus 的8051单片机的实例教程[M].北京:电子工业出版社,2008.[5]谭浩强.C++面向对象程序设计[M].清华大学出版社,2006.[6]周润景,郝晓霞.传感器与检测技术[M].北京:电子工业出版社,2009.[7]来清民.传感器与单片机接口及实例[M].北京:北京航空航天大学出版社,2008.作者简介

张文霞,女,1982年生,鄂尔多斯市人,在读博士,讲师,工作于内蒙古大学鄂尔多斯学院,研究方向为图像处理及模式识别。

下载基于51单片机的智能小车设计(精选5篇)word格式文档
下载基于51单片机的智能小车设计(精选5篇).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    智能小车设计报告

    机器人控制技术 实验设计报告书 题 目:基于STC89C52的智能小车的设计 姓 名:李如发 学 号:073321032 专 业:电气工程及其自动化 指导老师:李东京 设计时间:2010年 6 月 目 录 1.......

    智能小车设计报告

    智能小车设计报告 魏旭峰、孔凡明、陈梦洋 (河北科技大学 电气信息学院 ) 摘要: AT89S52单片机是一款八位单片机,他的易用性和多功能性受到了广大使用者的好评。该设计是结合......

    基于单片机的智能循迹小车外文翻译

    摘要:本次设计的智能循迹小车是以单片机89c51为主控制器。运用反射式红外传感器来进行路径检测和速度监测模块。将检测数据传回单片机进行处理,同时,用单片机产生PWM波来控制小......

    毕业设计论文-基于单片机的循迹智能小车的设计与实现(★)

    编号 南京航空航天大学 毕业设计 题 目 基于单片机的智能小车的设 计与实现 学生姓名 学 号 系 部 专 业 班 级 指导教师 计算机科学与技术 讲师 二〇一七年五月 南京航空......

    基于51单片机的智能小车控制源代码(毕业设计)

    /****************************************************// //***************************************************// // 智能小车控制器基于51单片机实现前进后退转弯与......

    智能小车设计文献综述

    智能小车设计文献综述 智能小车设计文献综述 摘要:随着电子工业的发展,智能技术广泛运用于各种领域,智能小车不仅在工业智能化上得到广泛的应用,而且运用于智能家居中的产品也越......

    电磁智能小车设计报告

    标题:电磁感应智能电动车 摘要:本系统以AVR单片机MEGAl6为核心器件,实现对驱动电路的控制,使电动小车自动行驶。利用电磁原理,在车模前上方水平方向固定两个相距为L的电感,通过比......

    智能循迹小车___设计报告

    智能循迹小车设计 专 业: 自动化 班 级: 自动化132 姓 名:罗植升 莫柏源 梁桂宾 指导老师: 2014年4月——2010年6月 摘要: 本课题是基于STC89C52单片机的智能小车的设计与实现......