从零开始,学做智能小车【3-电路篇】
从机械到电路教你做智能小车
X-SHARK 智能小车V1.0 设计参考手册西安电子科技大学测控技术与仪器教研中心2006-05-091.概述X-SHARK智能巡线小车模型是一辆完全由PCB拼装的小车。
所有的机械结构和零部件都安装固定在电路板上。
因此完全不需要机械加工,非常适合业余机器人爱好者自制。
本文简述了X-SHARK智能巡线小车的设计思路和实现过程。
包括小车的机械结构、电路、软件、控制算法、调试方法等。
可作为一般的设计参考。
小车的左右后轮分别由2只6V直流减速电机提供动力;前导向轮是一只万向轮。
430单片机的PWM发生器产生2路占空比可变的方波,经三极管扩流后分别驱动后轮左右电机。
控制2路PWM的比例,不仅可以调节小车向前运动的速度,还可通过2路PWM占空比的差异,改变小车运动方向。
10只反射式红外传感器位于小车前方,垂直探测地面的黑线。
由传感器采回的数据求出黑线偏移量,由PID算法计算出转弯量,再计算PWM发出两轮的速度差,控制小车沿轨迹行驶。
小车离意外开黑线时,传感器无数据,还有相应的错误处理和寻线程序。
2.机械结构2.1 后轮(驱动轮)两块2mm厚的PCB板通过2支沉头螺栓定为一体,构成了后轮的主体。
用小锉刀沿两板夹缝,挫一道V型槽,上一条O型橡胶圈,就构成一只轮胎。
后轮的固定采用过盈配合。
轮的中心孔为2.8mm,比电机轴略小0.2mm。
PCB板挖空2个圆孔,并用狭缝和中心孔贯通,构成一个有弹性的“卡缝”。
将电机轴用力推入轮中心孔,PCB由于弹性形变会略微扩张,弹力将轴紧紧抱死。
改进:现在的缺点是O型圈容易脱落,可用704硅橡胶固定。
另外为了固定O型圈,需要用挫加工V型槽。
可改为3块PCB构成轮子,中间一块半径略小2mm。
2.2 前轮(导向轮)前轮是决定小车能否灵活拐弯的关键部分。
这辆小车和汽车不同,不是靠前轮摆舵控制转弯,而是靠左右后轮速度差来实现转弯控制。
这样前轮实际上是从动轮。
下图中,当左轮速度高于右轮时,小车右转弯;前轮的速度可以分解为前进的速度和水平侧移的速度。
自制智能循迹小车电路
自制智能循迹小车电路自制智能循迹小车电路着素质教育的越来越被重视,很多学校都把制作智能小车作为首选课题,智能小车生动有趣还牵涉到机械结构、电子基础、传感器原理、自动控制甚至单片机编程等诸多学科知识,学生通过动手实践能大大提高解决实际问题的能力,而且智能小车还是一个很好的硬件平台,只要增加一些控制电路就能完成循迹小车、救火机器人、足球机器人、避障机器人、遥控汽车等课题。
白色的场地上有一条16毫米宽的黑色跑道,我们的循迹小车能沿着黑色跑道自动行驶,不管是跑道如何弯曲小车都能自动行驶真是太神奇了!大家知道当光源射到白色物体和黑色物体上时的反光率是不同的,我们这里用红色的LED作为光源,光线通过地面反射到光敏电阻上通过检测光敏电阻阻值变化能判断小车是否行驶在白色区域上,如果检测到是黑色跑道,说明小车跑偏,这一侧的电机就会减速甚至停转这一侧的绿色的LED熄灭,驱动小车向相反方向行驶,这样小车就能始终沿着跑道行驶了。
本着从简到繁的原则,我们首先来制作一款由数字电路来控制的智能循迹小车,在组装过程中我们不但能熟悉机械原理还能逐步学习到:光电传感器、电压比较器、电机驱动电路等相关电子知识。
下面我们先来熟悉一下三个主要器件:光敏电阻器件这就是光敏电阻,它能够检测外界光线的强弱,外界光线越强光敏电阻的阻值越小,外界光线越弱阻值越大,当红色LED光投射到白色区域和黑色跑道时因为反光率的不同,光敏电阻的阻值会发生明显区别,便于后续电路进行控制。
这就是光敏电阻,它能够检测外界光线的强弱,外界光线越强光敏电阻的阻值越小,外界光线越弱阻值越大,当红色LED光投射到白色区域和黑色跑道时因为反光率的不同,光敏电阻的阻值会发生明显区别,便于后续电路进行控制。
LM393比较器集成电路LM393是双路电压比较器集成电路,由两个独立的精密电压比较器构成。
它的作用是比较两个输入电压,根据两路输入电压的高低改变输出电压的高低。
输出有两种状态:接近开路或者下拉接近低电平,LM393采用集电极开路输出,所以必须加上拉电阻才能输出高电平。
智能小车制作入门篇
智能小车制作入门篇最近接触了很多机器人爱好者,很多人都对机器人技术展示出了浓厚的兴趣,也在计划如何动手制作自己的第一个机器人。
但是似乎很多的人都摸不到门路,只能是站在大门外满怀兴趣的向内观望,观望了一阵兴趣渐失只好叹口气走开……很多初学者可能都是看了一些视频或是现场的比赛,勾起了儿时的美好回忆,兴起了自己动手制作机器人的念头,很多人可能并不是嵌入式开发的业内人士,甚至没有听说过单片机、步进电机这些名词,看着别人满地乱跑的各种机器人,颇有无处下手的感觉。
有的人一上来就准备做一个可以双足行走的人形机器人,可以平稳行走,可以靠摄像头来读取环境信息,可以语音识别,最好还可以变形…… :—(我的意见是:新手最好还是老老实实的从小车开始吧。
人形机器人可以说是一个系统的大工程,不是一个人玩的起来的,而且资金上的投入也是不可计量的。
一个人形机器人的成型产品最少要卖到几千块——要知道,你在开发过程中是不可能没有错误投入的。
机器人小车技术上门槛较低,资金投入也少,市场上的各种产品和零配件的支持也较多,虽然简单,但可以实现的功能可一点也不少。
我在这里凭自己的经验介绍一些自己动手制作机器人小车的基础知识,如果你是曾经自己动手做过的高手,那么你可以绕行,我这里介绍的都是为未入门者准备的最基本的理论知识和一些动手经验。
那么现在我们开始,首先是理论部分——小车的控制结构。
[一]小车的整体控制系统小车是怎么来控制的?为什么小车判断出障碍物后可以自动的绕开?理论:控制工程——处理自动控制系统各种工程实现问题的综合性工程技术。
包括对自动控制系统提出要求(即规定指标)、进行设计、构造、运行、分析、检验等过程。
它是在电气工程和机械工程的基础上发展起来的。
闭环控制:闭环控制有反馈环节,通过反馈系统是系统的精确度提高,响应时间缩短,适合于对系统的响应时间,稳定性要求高的系统。
开环控制:开环控制没有反馈环节,系统的稳定性不高,响应时间相对来说很长,精确度不高,使用于对系统稳定性精确度要求不高的简单的系统。
如何着手制作一个机器人小车--给初学者【下】
如何着手制作一个机器人小车--给初学者【下】[三]控制器部分适合机器人的控制芯片有很多:单片机、DSP、甚至我们计算机上所用的CPU,都可以。
不过我们这里主要介绍的针对机器人小车的技术,所以把其他的先放一放,让我们把注意力放到物美价廉的单片机上来。
首先还是理论课,不要抱怨,我的信条是:不懂理论的开发者永远只能是一个拼装师。
单片机:单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
概括的讲:一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
小芯片有大智慧单片机是自动控制系统中应用非常广泛的控制芯片,现在就在我们身边的许多的电器中都有单片机的身影。
想自己动手制作机器人的话,相应的单片机知识是必不可少的。
系统的单片机知识我这里不想多说,想要对单片机系统有一个深入的理解,还是要找一本比较好的单片机教材一页一页的看下去,网上的任何“技巧”“快速入门”(包括本文)都只能算是水果、零食之类,闲暇无事时可以拿来开开胃,真正想要吃饱吃好,还是要用大饼卷馒头就着米饭吃才行。
我这里只提一些基础的入门概念,给真正的入门者起一点抛砖引玉的作用。
一块我们刚刚从商家手里拿到的单片机芯片,还是一块空白,什么也做不了。
如同一个刚出世的孩子,我们开发人员要做的,就是教会单片机处理各种各样的问题,给单片机配备上各种各样的扩展工具,使单片机可以将复杂的问题简单化,数字化。
单片机开发涉及两方面:硬件、软件。
单片机不同于其他电器,拿过插销直接插在电源上就可以使用,一块空白的单片机想要使用,还需要一些其他的电路来支持。
一般来说,最基本的电路就是单片机最小系统:所谓的单片机最小系统就是指可以让单片机工作起来的最基本的电路,在所有的单片机系统中,你都可以找到类似的电路。
至于它的原理,我这里就不累述了,找本书看去吧。
我再介绍一些做机器人需要的扩展电路:程序下载电路:单片机最终需要程序来控制,一般都是在PC上编写好程序,通过下载线来下载到单片机中执行。
零基础三天三十元做出智能车(第六讲)
占空比
例如:脉冲宽度1μs,信号周期4μs的脉冲序列占 空比为0.25。 在一段连续工作时间内脉冲占用的时间与总时间的 比值。
占空比
• • • • • 生动比喻:占空比又比如 0% 占空比 :人每天三顿饭一顿也不吃 33%占空比 :人每天三顿饭只吃一顿 67%占空比 :人每天三顿饭只吃两顿 100%占空比 :人每天三顿饭吃三顿
占空比
• 使用PWM控制一个电机快慢前进与后退 • 使用PWM控制两个个电机快慢前进与后退
驱动电路图
二:各模块连接
循迹电路图
系统板电路图
实物图
三:算法
• 学习如何控制单片机 输出 • 实现 信号 • 单片机 驱动模块
反馈 信号 控制
电机
• 循迹模块
路线分析
左电机 P0.2 P0.3 LA 0 0 LB 0 不转 1 前转 右电机 P0.0 P0.1 RA 0 0 RB 0 不转 1 前转
三天三十元让你做出智能车
第一章:三天学会制作循迹小车!
第六节课
零基础
主讲:张欢
一:认识和使用占空比控制电机转速பைடு நூலகம்
• (1):占空比又称为PWM • (2):什么是占空比?
认识占空比(PWM)
占空比的图例占空比又名占空度、占空因数。 • 占空比有如下含义: 在一串理想的脉冲周期序列中(如方波), 正脉冲的持续时间与脉冲总周期的比值。
谢谢观看 ! 零基础三天三十元做出智能车 系类视频教程
感谢大家对穿山乙工作室的支持!
1
1
0 后转
1 不转
1
1
0 后转
1 不转
单片机------电机驱动模块------小车
P0.2 P0.3 P0.0 P0.1
手把手教做智能小车
手把手教做智能小车我们学习完51单片机入门之后,一定要多做一些有意思的小制作,才能将单片机知识理解的更加深刻,而智能小车不失为一个不错的选择,今天将全程介绍智能小车的制作过程。
一般而言,常见的智能小车分为:蓝牙遥控、超声波避障、光电寻迹等。
这次主要介绍蓝牙遥控和超声波避障。
1.蓝牙遥控小车1.1功能要求使用手机串口软件和小车上的蓝牙芯片进行通信,控制小车转向、前进、后退、停止、启动等。
1.2元器件准备STC89C52单片机一片(其他型号的51同样可以,注意要有配套的下载器或者开发板,下载程序比较方便);L298N驱动模块两个;亚克力板车架一个(淘宝有卖,配有电机、轮胎);蓝牙模块一个(型号HC06);电池盒、电池(建议两节18650电池);杜邦线若干;上述所有的原材料淘宝均有卖,请自行选购。
1.3小车拼装购买齐备上述原材料之后,可以查看卖家提供的说明或者相应芯片的Datasheet,并使用杜邦线将各部分电路连接起来。
既然选择学习单片机和电子制作,就要有一定的探索精神和钻研精神,小车拼装过程比较简单,就不再一一赘述,拼装完如下:这是我几年之前做的,比较简陋,刚开始使用的是四节小电池,动力不够强劲,后来改成两节18650就跑的飞起。
1.4程序设计部分小车的基本功能要求有了,主体也实现了,接下来当然是程序设计了。
下面以STC89C52单片机为例,以KEIL2为开发软件,程序如下,比较简单,自行理解:#includesbit IN1=P1^0;sbitIN2=P1^1;sbit IN3=P1^2;sbit IN4=P1^3;sbit IN5=P1^4;sbit IN6=P1^5;sbit IN7=P1^6;sbit IN8=P1^7;#define left_go {IN1=1,IN2=0,IN3=1,IN4=0;}//P1:0-3控制左边#defineleft_back {IN1=0,IN2=1,IN3=0,IN4=1;}#define left_stop {IN1=0,IN2=0,IN3=0,IN4=0;}#define right_go{IN5=1,IN6=0,IN7=1,IN8=0;}//P1:4-7控制右边#define right_back {IN5=0,IN6=1,IN7=0,IN8=1;}#define right_stop {IN5=0,IN6=0,IN7=0,IN8=0;}#define uchar unsignedchar#define uint unsigned intvoid run();void backrun();void leftrun();void rightrun();void stoprun();void delay(uchar time);void init();uchar flag,com;void main(){ init(); while(1) { if(flag==1) { switch(com) { case 1: run(); break; case 2: backrun(); break; case 3: leftrun(); break; case 4: rightrun(); break; case 5: stoprun(); break; default: break; } }RI=1; }}void init(){ TMOD=0x20; TH1=0xfd; TL1=0xfd;TR1=1; REN=1; SM0=0; SM1=1; EA=1; ES=1;flag=0;}void run(){ left_go; right_go;}voidbackrun(){ left_back; right_back;}void leftrun(){ left_back; right_go;}void rightrun(){ left_go; right_back;}voidstoprun(){ left_stop; right_stop;}void ser() interrupt 4{ RI=0; com=SBUF; flag=1;} 几年前初学单片机写的C51程序,献丑了!1.5 完成至此,蓝牙小车就初步完成,在网上找一个串口软件,连上小车上的蓝牙芯片,就可以实现相应的功能。
智能小车实验报告心得(3篇)
第1篇一、引言随着科技的不断发展,人工智能技术逐渐渗透到我们生活的方方面面。
作为人工智能的一个典型应用,智能小车实验为我们提供了一个将理论知识与实践操作相结合的平台。
在本次智能小车实验中,我深刻体会到了理论知识的重要性,同时也感受到了动手实践带来的乐趣和成就感。
以下是我对本次实验的心得体会。
二、实验目的本次实验旨在通过设计、搭建和调试智能小车,让学生掌握以下知识:1. 传感器原理及在智能小车中的应用;2. 单片机编程及接口技术;3. 电机驱动及控制;4. PID控制算法在智能小车中的应用。
三、实验过程1. 设计阶段在设计阶段,我们首先对智能小车的功能进行了详细规划,包括自动避障、巡线、遥控等功能。
然后,根据功能需求,选择了合适的传感器、单片机、电机驱动器等硬件设备。
2. 搭建阶段在搭建阶段,我们按照设计图纸,将各个模块连接起来。
在连接过程中,我们遇到了一些问题,如电路板布局不合理、连接线过多等。
通过查阅资料、请教老师,我们逐步解决了这些问题。
3. 编程阶段编程阶段是本次实验的核心环节。
我们采用C语言对单片机进行编程,实现了小车的基本功能。
在编程过程中,我们遇到了许多挑战,如传感器数据处理、电机控制算法等。
通过查阅资料、反复调试,我们最终完成了编程任务。
4. 调试阶段调试阶段是检验实验成果的关键环节。
在调试过程中,我们对小车的各项功能进行了测试,包括避障、巡线、遥控等。
在测试过程中,我们发现了一些问题,如避障效果不稳定、巡线精度不高、遥控距离有限等。
针对这些问题,我们再次查阅资料、调整程序,逐步优化了小车的性能。
四、心得体会1. 理论与实践相结合本次实验让我深刻体会到了理论与实践相结合的重要性。
在实验过程中,我们不仅学习了理论知识,还通过实际操作,将所学知识应用于实践,提高了自己的动手能力。
2. 团队合作在实验过程中,我们充分发挥了团队合作精神。
在遇到问题时,我们互相帮助、共同探讨解决方案,最终完成了实验任务。
智能循迹小车的电气设计
智能循迹小车的电气设计智能循迹小车的电气设计是一个非常重要的部分,关乎到整个小车的性能和功能。
在这篇文章中,我们将介绍智能循迹小车电气设计的基本原理和步骤,以及需要考虑的一些关键因素。
智能循迹小车的电气设计基本原理智能循迹小车的电气设计基于一个自动控制系统,该系统根据车身上安装的线路传感器反馈的信号进行调控。
当小车在运动时,传感器捕捉到的信息被转化为数字信号,然后经过处理后发送给电机控制器,从而使小车朝着正确的方向移动。
为了使小车能够正确运行,电路设计必须考虑到以下几个方面:1. 控制系统:控制系统是整个电路设计的核心,它负责监测传感器信号,并根据传感器信号和预设的算法调整电机速度和方向。
控制系统可以使用微控制器或单片机来实现,也可以使用集成电路或逻辑门电路来构建。
2. 传感器:循迹小车的传感器用于检测车身所行走的路线,传感器类型有多种,如光电传感器、红外线传感器和线性编码器等等。
传感器需要校准和定位才能保证其检测到的信号准确无误。
3. 电机控制器:电机控制器是控制电机速度和方向的设备。
控制器通常是一个数字极速调节器(ESC),它可以识别并反映控制系统的信号,并告诉电机如何移动。
电气设计的步骤智能循迹小车的电气设计基本上可以分为以下几个步骤:1. 控制系统的设计:确定微控制器或单片机类型,并选择合适的控制算法设计控制系统。
如果需要,应该查阅相应资料,并咨询专业设计师的意见。
2. 传感器类型的选择:根据项目需求和可行性,选择合适的传感器类型和数量。
传感器应该易于安装和校准,同时还要鉴别好传感器安放位置以及其所掌握信息的种类。
3. 电机选择和控制器设计:确定适用于循迹小车的电机类型,并确定需要的控制器规格和容量。
控制器必须根据电机的功率而设计。
4. 电气线路的设计:通过对控制系统、传感器和电机控制器之间电线的细节设计,确保电路连接完好,稳定可靠。
5. 程序调试:一旦程序和电路连接完成,合理调试是非常必要的。
智能小车制作解析
在车体布局中,除了舵机以外我们还加装了最小系统及电源模块电路板、电机驱动模块电路板、循迹模块电路板等硬件部分。在布置安装时,循迹模块电路板用可变形的铁皮固定于车体前端10cm处,最小系统和电源模块融合为一个19cm长11cm宽的电路板安装于小车中部,而电机驱动模块电路板安装于小车尾部。
第二章硬件设计
2.1电源模块设计
在电源模块的设计中,我们考虑到各模块工作电压的需求以及小车的耗电情况,将原装的电池改为了飞思卡尔专用的电池。设计稳压电源时,考虑到电池电压较低,并且在电量损耗时存在电压降低的情况,应此我们采用了低压差的稳压芯片LM2940。
在最初的电路原理图设计时,我们采用了三路电源分别供电的方法,一路5V电源专门为最小系统供电,以此避免大电流器件对单片机造成干扰影响单片机稳定运行,另外一路5V电源为电机驱动模块和循迹模块提供工作电压。第三路电源单独为舵机提供5V电源。
正是也因为舵机的控制信号是一个脉宽调制信号,所以很方便和数字系统进行接口。只要能产生标准的控制信号的数字设备都可以用来控制舵机。我们用89s52单片机产生舵机的控制信号来进行控制的方法,编程语言为C51。我们就用它来产生周期20 ms的脉冲信号,根据需要,改变输出脉宽。从而实现对其控制。
2.5后轮驱动模块设计
由于单片机的驱动能力不足,无法驱动像电机这样的大功率外部器件,因此必须外加驱动电路。这次智能小车我们选择了相对电路连接较为简单,最为常用的L298驱动电路。一片L298可以同时驱动两路直流电机和一路两相步进电机。电机驱动模块作为和最小系统分开的一个独立模块,我们在设计时以小巧实用为原则,并将其布置于车尾端,方便电机的接入。
在以上电路中有两个电源,一路为L298工作需要的5V电源VCC,一路为驱动电机用的电池7.2V电源VSS。由于工作时L298的功耗较大,安装时我们加装了散热片。
自动循迹智能小车制作(飞思卡尔智能车制作)
自动循迹智能小车制作目录摘要................................................................. 错误!未定义书签。
1 设计要求 (3)2 方案的选择与比较 (3)2.1 主控芯片选择 (3)2.2 电源的选择 (3)2.3 寻迹方案 (4)2.3 电机驱动方案 (4)3 最终方案 (5)4各功能模块的实现 (6)4.1 微控制器模块的设计 (6)4.2电源模块原理图 (6)4.3 TCRT5000红外检测模块 (6)4.4 系统PCB图 (7)4.5 系统程序流程图 (8)5 性能测试 (9)6 性能评价及总结 (10)7 附录 (11)附录1:元件清单 (11)附录2 系统原理图 (12)附录3系统程序 (13)8参考文献 (19)1 设计要求设计一自动寻迹小车,其实现功能如下:1.使其能够检测到轨迹的路线,并按照预订轨迹运行;2.要求在小车冲出预定路线后能够自动回到预定轨迹上;3.小车能够按多种不同的轨迹运行。
2 方案的选择与比较2.1 主控芯片选择方案1:采用51系列单片机,该系列单片机结构简单,但是能实现很多功能。
与其它单片机相比较价格便宜。
端口电流较大,可以达到20mA,驱动能力强。
方案2:采用msp430系列单片机,该系列单片机片上资源丰富,功能强大,但是端口灌电流和拉电流较小,驱动能力不强。
它主要运用在需要低功耗的地方。
本系统主要是进行寻迹运行的检测以及电机的控制,经过对比分析,我们选用AT89S52单片机作为主控芯片来驱动电机,进而控制电机转速。
2.2 电源的选择方案1:采用9V蓄电池为直流电机供电,将9V电压降压、稳压后给单片机系统和其他芯片供电。
蓄电池具有较强的电流驱动能力以及稳定的电压输出性能。
虽然蓄电池的体积过于庞大,在小型电动车上使用极为不方便。
方案2:采用9V南孚干电池直接个电机驱动芯片L298N供电,并将9V经过7805稳压及电容滤波后给单片机供电。
智能小车电路及其详解
该电路由复位电路、时钟电路、边缘检测电路、障碍物检测电路、电机驱动电路、中断电路构成一、复位电路复位电路Vcc给瞬间电压时电容相当于短路,复位端为高电平有效信号,单片机复位,当电路达到稳定时,电荷通过电阻R2与大地相连,复位端恢复低电平,又可以正常工作。
二、时钟电路晶振电路由10M石英晶振和C7 C8组成可产生固定频率的方波三、边缘检测电路边缘检测电路设四路光电开关,用4.7K电阻和0.1uF电容组成积分电路对来自光电开关的信号进行滤波得到稳定的电平送给单片机,来控制机器人在台上动作。
四、障碍物检测电路障碍物检测电路设八路光电开关,用4.7K电阻和0.1uF电容组成积分电路滤波,前后各三,左右各一,当正前方检测到信号时直接发起攻击,当前方侧面检测到信号,自主机器人将转一定角度发起攻击,当侧面检测到信号时,将会转一个大角度发起攻击。
五、电机驱动电路(1)HIP4081Vcc为内部逻辑电路和MOS管上臂和下臂驱动器的低压电源;Vss为H桥供电电源,MOS管从这个电源端获得输出电流,该脚电压范围为Vcc0~+80 V;Vo1为半桥的输出脚1,当PWM输入ALI为高,BLI为低时,该脚输出为Vs;Vo2为半桥的输出脚2,当PWM输入ALI为低,BLI为高时,该脚输出为Vs;SENSE为2个半桥下臂的共同联接点,可连接一个到Vs地的检测电阻以检测电流,该脚也可以直接连到Vs的地。
GND为输入逻辑和Vcc的地;PWM输入为用于输入与TTL兼容的PWM信号,占空比在0%~100%之间;DIS为用于关断4个MOS管,该脚为1时为关断,为0时使能。
(2)H桥要使电机运转,必须使对角线上的一对三极管导通。
例如,如图4.13所示,当Q1管和Q4管导通时,电流就从电源正极经Q1从左至右穿过电机,然后再经Q4回到电源负极。
当另一对三极管Q2和Q3导通的情况,电流将从右至左流过电机。
六、中断电路边缘检测采用7425(或非门)将四路光电开关连接到P3.2中断,障碍物检测采用CD4068(8路与门)将八路光电开关连接到P3.1中断中。
重力感应智能小车完整制作过程
插上超声波测距模块,一定要断电插。然后用 USB 口下载程序,测试充电,红灯为正在充电,蓝灯 为充满电。
第九步、连接蓝牙测试。
打开小车电源。
. 在设置里面选择蓝牙,然后搜索设备,这个蓝牙模块的默认名子是 BLUE_SPP,然后选择连接,输入 默认密码:1234 连接成功后会在已配对的设备中显示。OK,蓝牙连接完成了。
在板子上打两个洞,用扎带扎上,这样可以提高电源线的抗拉扯能力,防止拉断。
电池贴上双面胶,粘在小车底盘里面,用扎带扎上可以很牢固。
将电源板用铜柱固定在小车底盘中间层,电源部分就大功告成。
第八步、安装主控板和电机线。
用铜柱固定主控板
电机线穿过底盘并打个结防止拉扯断
焊接好电机线,一正一反的焊接
插好针座有要开机
.. 自己下载〈Android 小车遥控器〉和〈蓝牙遥控终端〉这两款软件。这两个软件都可以遥控。我在程 序中已经可以很好的接收这两上软件的控制信号。
注意:蓝牙模块的名称 BLUE_SPP 都是一样的,密码也都是 1234,但 MAC 这个物理地址每一个模 块都是不一样的。
如果可以遥控但行走的方向不对,只要把电机的线反过来连接就可以了。如果行走的不是直线,那就 要换好一点的电机了,当然也可以在转的快一点的电机线上面串一个 1 欧姆左右的电阻就可以。好了, 教程很详细,但也需要你们自己的努力,细心,坚持和爱思考的和改良的精神。祝各位 DIY 大神们 成功。
os_js1=0; Measure(); } } else//遥控与自动混合模式 { switch (zd_os) { case 0:mode_0();break;//原地 360 度探测模式 case 1:mode_1(); break;//直线行走探测模式 case 2:mode_2(); break;//随机左右转弯模式 }
手把手教你做智能小车
3. 模块介绍...................................................................................................................7
3.1
主控模块 ................................................................................................................... 7
4.1
硬件设计 ................................................................................................................. 16
4.2
软件设计 ................................................................................................................. 16
5.6
红外遥控驱动文件(remote.c) ...........................................................................23
5.7
舞蹈模式驱动(dance.c) ..................................................................................... 25
5.2
红外循线(IR.c) .......................................................................................................21
智能小车的制作、硬件模块与软件实现、相关电路图、传感器等
sbit JYOU=P1^2;//右边的激光传感器 sbit JZUO=P1^3;//左边的激光传感器 sbit JQIAN=P1^4;//前面的激光传感器 sbit TPSLZUO=P1^5;//左边的霍尔传感器 sbit TPSLYOU=P1^6;//右边的霍尔传感器 sbit TPSLQIAN=P3^5; //前面的霍尔传感器 sbit GDKGQIAN=P0^4; //前面的光电开关 sbit GDKGYOU=P0^5; //右面的光电开关 sbit GDKGZUO=P0^6; //左面的光电开关 sbit XiaoDeng=P1^0; //小灯 sbit BEEP=P1^1; //蜂鸣器 uchar temp1; uchar code Table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; /********************************主函数***********************************/ void main() {
Init(); while(1) { Bizhang(Tpsl); guangyuan(Tpsl); ruku(); display(Tpsl); } }
/*******************************初始化函数********************************/ void Init() { IP=0X0A; //设置定时器T0,T1的优先级 TH1=0XFF; //定时器T1做为中断使用 TL1=0XFF; TMOD=0X11; TH0=(6-6 光源检测电路
13.3.2
电机驱动电路
设计采用2个直流电机完成小车的行进动作,驱动电路如图 13-7所示。驱动电路采用L293芯片与单片机的P30、P00、 P01、P31、P02、P03引脚连接,其中P30、P00、P01用 于控制接在L293的3脚和6脚上的电动机A;P31、P02、P03 用于控制接在L293的11脚和14脚上的电动机B。L293芯片的 1脚(ENA)和9脚(ENB)为使能端,即只有它们为高电平 时,单片机才能控制电机正反转,控制小车行进。L293输入 电平控制信号和电机工作状态的关系如表13-1所示。 表13-1 L293输入输出逻辑关系
单片机智能小车的电路和程序以及元件
采用由双极性管组成的 H 桥电路。用单片机控制晶体管使之工作在占空比可调的开 关状态,精确调整电机转速。这种电路由于工作在管子的饱和截止模式下,效率非常高; H 桥电路保证了可以简单地实现转速和方向的控制;电子开关的速度很快,稳定性也很 高,是一种广泛采用的调速技术。
3 程序框图………………………………………………………………………………7 4 系统的具体设计与实现………………………………………………………………9
4.1 路面检测模块……………………………………………………………………9 4.2 LCD 显示模块………………………………………………………………………9 4.3 测速模块…………………………………………………………………………9 4.4 控速模块…………………………………………………………………………9 4.5 复位电路模块……………………………………………………………………9 4.6 模式选择模块……………………………………………………………………9 5 最小系统图……………………………………………………………………………10 6 最终 PCB 板图…………………………………………………………………………12
本文由惜忆泪情整理
4.系统的具体设计与实现:
4.1 路面检测模块: 应用一个金属感应器,安装在车盘下,离地略小于或约四毫米。当金属传感器检测
到铁片时将对单片机发送中断信号,单片机运行中断,改变输给电机驱动信号的电压占 空比来控制小车的速度。 4.2 LCD 显示模块:
采用 1602LCD,由单片机的总线模式连接。为节约电源,LCD 的背光用单片机进行控 制。 4.3 测速模块:
51单片机智能小车电路
51单片机智能小车之答禄夫天创作顶顶电子设计的这款简易智能小车, 采纳STC89C51/52单片机作为小车的检测和控制核心;采纳光电开关、声控传感器、光敏传感器、温度传感器、红外接收器等来检测和感应各种外界情况, 从而把反馈到的信号送单片机, 使单片机依照预定的工作模式控制小车在各区域按预定的速度行驶;智能小车既可以采纳LED数码管来显示有关信息, 也可以采纳1602LCD实时显示小车行驶的距离.机器小车主要由底盘(含2个带机电的驱动轮、2个从动轮, 底板)、电路板和6节5号电池盒三部份组成, 其正面和底面外形如图所示:下图是51单片机智能小车的电路组成框图:下图是智能小车中主要元件在小车中的位置实物图:二、产物配置智能小车产物配置如下:1.小车底板1块、车轴插片4片3.车轴2根, 垫片2只, 铜螺帽2只5.智能小车开发板1块(除DS18B20外, 板上集成电路配备完整)6.避障光电传感器1只(TCR T5000)、循迹光电传感器2只(RPR220)、速度光电传感器1只(RPR220)10.固定电路板与底板的长螺丝、橡皮垫圈各2只11.6节5号电池盒(因电池属易燃易爆物品,故不配送,请自行购买)12.丰富的源法式、电路原理图和把持使用手册用户购买后, 只需要再另外购502胶水(1元左右)、双面胶(1元左右)和6节5号电池(采纳普通的华太电池即可, 6节约1.5元)即可进行组装与实验了.需要说明的是,小车的组装非常简单,有关详细的组装方法, 我们将在智能小车把持使用手册上, 采纳图解的形式进行说明.三、选配件用户购买产物后, 可进行小车的基本实验, 如果用户想进行一些特殊的实验, 需要购买以下产物, 说明如下:1.温度传感器DS18B20, 价格6元.链接:配置DS18B20后, 可进行温度显示的实验.2.1602液晶显示器, 价格16元.链接:配置1602液晶显示器后, 可进行液晶显示方面的实验.3.高性能光电开关E3F-DS10C4, 价格16元.链接:配置E3F-DS10C4后, 可年夜年夜提供小车避障和循迹的效果.4.无线遥控套件, 价格26元.链接:配置无线遥控套件后, 可进行无线遥控小车实验.5.ISD1700语音模块, 价格66元.链接:配置ISD1700语音模块后, 可使小车具有说话的功能.以上为选配件, 请用户根据情况进行选择.四、实验说明智能小车附带的法式十分丰富, 全部采纳C语言编写, 非常方便使用和移植, 主要法式如下:实验1——电池电压检测法式实现功能:开机后, 数码管上显示出电池电压的值, 当电池电压低于7V时, 蜂鸣器鸣叫, 暗示电池电压低, 需要更换电池.下图是小车显示的电池电压情况(显示的电压值为8.5V):实验2——模拟PWM控制小车速度法式实现功能:用单片机的IO口模拟PWM信号, 控制小车的转速, 具体要求是:开机后, 小车按全速运转, 当按下K1键时, 小车运行的速度是全速的0.1, 当按下K2键时, 小车的转速是全速的0.5.实验3——用按时中断控制小车速度法式实现功能:采纳按时中断方法, 控制小车的转速, 具体要求是:开机后, 小车按全速的0.2运转.实验时,为了便于对比, 读者可在源法式的基础上修改按时器0中断处置函数:void Timer0(void) interrupt 1 //按时器0中断处置函数入口{TH0=0xfc;//按时1msTL0=0x66;EA=0;//关中断tim=tim+1;//时间计数加1if(tim<20){EN1=0;EN2=0;}else {EN1=1;EN2=1;}if(tim==100)tim=0;EA=1;//开中断}修改的方法是:改变上述语句if(tim<20){EN1=0;EN2=0;}中的tim的值, 例如, 将此改为if(tim<50){EN1=0;EN2=0;}, 重新编译源法式, 再下载到小车的单片机中, 此时会发现小车的运转速度快了很多.实验4——话筒控制小车起停法式实现功能:在智能小车上装置有话筒, 要求采纳声音可以控制小车的起停, 具体要求是:开机后, 小车运转, LED1、LED2指示灯亮;当拍一下巴掌或敲击一下器物发出响亮的声音时, 小车停转, LED1、LED2指示灯熄灭;再次拍一下, 小车继续运转, LED1、LED2指示灯又点亮.实验5——光控小车法式实现功能:在智能小车上装置有光敏电阻, 能够感受到光线的变动情况, 要求通过光敏电阻判断出白天和黑夜, 当白天时(光线正常时, 小车前面的两个指示灯LED1、LED2不亮), 当夜晚时(光线暗时), 小车前面的两个指示灯LED1、LED2点亮.实验6——红外遥控数码管显示法式实现功能:在智能小车上装置有红外遥控接收头, 能够接收遥控器发出的信号, 要求按下遥控器的01H键时, 小车前进(前方的两个指示灯熄灭);按下遥控器上的05H键时, 小车停止(前方的两个指示灯熄灭);按下遥控器上的04H键时, 小车左转(左前方的指示灯点亮);按下遥控器上的06H键时, 小车右转(右前方的指示灯点亮);按下遥控器上的09H键时, 小车后退(前方的两个指示灯点亮).遥控器上的键值能同时在LED数码管上显示出来.以下是按下遥控器上的05H时, 小车显示的情况:实验7——红外遥控LCD显示法式实现功能:在智能小车上装置有红外遥控接收头, 能够接收遥控器发出的信号, 开机时, LCD显示如下画面:要求按下遥控器的01H键时, 小车前进(前方的两个指示灯熄灭);按下遥控器上的05H键时, 小车停止(前方的两个指示灯熄灭);按下遥控器上的04H键时, 小车左转(左前方的指示灯点亮);按下遥控器上的06H键时, 小车右转(右前方的指示灯点亮);按下遥控器上的09H键时, 小车后退(前方的两个指示灯点亮).遥控器上的键值和状态能同时在LCD上显示出来(前时时显示FRONT, 后退时显示BACK, 左转时显示LEFT, 右转时显示RIGHT, 停止时显示STOP).以下是按下遥控器上的05H时, 小车显示的情况:实验8——数码管温度显示法式实现功能:在智能小车上设有温度传感器DS18B20的装置位置, DS18B20装置好后, 能够感知外界的温度, 要求外界温度能通过LED数码管显示出来.以下是显示的温度情况:实验9——LCD温度显示法式实现功能:在智能小车上设有温度传感器DS18B20的装置位置, DS18B20装置好后, 能够感知外界的温度, 要求外界温度能通过LCD显示出来.以下是显示的温度情况:实验10——避障小车法式实现功能:在智能小车的头部, 设有避障光电开关装置位置, 如果装上此光电开关后, 就能够感受到前方障碍物的, 当检测到有障碍物时, 可控制小车后退并转向, 从而避开障碍物, 到达避障的目的.特别说明:本实例采纳的是普通的光电开关(TCR T5000)进行避障, 由于该开关检测距离较短(一般只有1cm左右), 因此, 避障效果不是很好, 只有当小车离障碍物较近时, 才华检测到障碍物的存在, 容易发生车头触碰障碍物的情况;要真正到达比力好的效果, 需要采纳性能较好的光电开关, 如E3F-DS10C4等, 其检测距离达10cm以上, 既使小车速度较快, 一般也不会发生撞车的现象.另外, 如果想全方位进行避障, 还需要在小车的前面多装几个光电开关, 对分歧方位的障碍物进行检测, 用户可根据情况自行设计和装置.实验11——小车循迹法式实现功能:在智能小车的头部, 设有两个循迹光电开关装置位置, 如果装上这个光电开关后, 就能够感受到空中铺设的路途情况, 从而控制小车按事先制作的黑色路途行进.以下是小车循迹实验效果图:特别说明:本实例采纳的是普通的光电开关(RPR220)进行循迹, 由于该开关检测距离较短, 因此, 循迹效果不是很好, 另外, 还需要根据铺设的路途情况对源法式中的延时法式进行调整(当转向年夜时, 将延时常数调小一些, 当转向小时, 将延时常数调年夜一些), 以便使小车偏离路途时, 能够及时转到正常的轨道上来.为了能够到达比力好的循迹效果, 建议采纳性能较好的光电开关, 如两只E3F-DS10C4等, 其检测灵敏度较高, 检测距离较远, 固然, 既使采纳性能较好的光电开关, 也需要根据实际的路途情况, 对源法式中的延时时间进行调整.这个源法式实验时有一定难度, 用户一定要铺设好路途, 对源法式进行简单的修改, 并坚持一定的耐心, 否则, 不容易胜利!实验12——小车里程计算法式实现功能:当小车运行时, 在数码管上可以显示出小车转动的圈数, 而且每转一圈, 指示灯LED3会闪烁一次, 当按下K1键时, 小车停止, 同时, 在数码管上显示出小车运行的距离.以下显示的是小车转动的圈数:特别说明:本实例采纳的是普通的光电开关(RPR220)进行检测, 由于该开关检测距离较短(一般只有1cm左右), 因此, 装置速度光电开关时, 应尽量靠近车轮的内侧, 如果小车转动时, 指示灯LED3不闪烁, 说明光电开关装置位置不正确, 需要反复进行调整, 直至正常为止.实验13——无线控制小车法式创作时间:二零二一年六月三十日实现功能:将无线遥控接收模块的+5V、GND、10(D0)、11(D1)、12(D2)、13(D3)、VT脚用杜邦线分别接智能小车开发板的VCC、GND、P00~P04脚, 如下图所示:连接好后, 可实现以下功能:按无线发射器的A键小车前进(再按按压则停止), 按B键小车后退(再按按压则停止), 按C键小车左转(再按按压则停止), 按D键小车右转(再按按压则停止).实验14——具有语音功能的小车法式实现功能:将ISD1700语音模块J1中的VCC、GND插针用杜邦线分别接智能小车开发板的VCC、GND脚, 将ISD1700语音模块J4中的PLAY、FWD插针用杜邦线分别接智能小车开发板的P00~P01脚, 如下图所示:创作时间:二零二一年六月三十日。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
从零开始,学做智能小车【3-电路篇】
Write By cpholr 电子科大巡线机器人大赛的历年几乎没有变过的一条规则----在白色宝丽板上黑线的宽度为25毫米。
如果所示,当然图中对于黑线的宽度并不能够直接读出。
给图片只是让大家大概的了解一下。
而本文只讨论使用红外传感器来进行巡线。
对于前面提过的发射调制激光,调制接收激光的巡线方案不进行讨论,因为虽然说用激光来巡线可以获得更长的前瞻,就相当于可以预知更远的跑道的黑线,但是大家不要忘记了,巡线机器人的赛道一定会有上坡和下坡,对于激光巡线的方式,在刚上坡和刚下坡的时候可能会遇到一段盲区,而那个时候小车如何发疯谁也不知道。
再谈及前面提到的摄像头巡线的方案,总体来说,也是很危险的,因为比赛的场地随时可能发生变换,有可能在活动中心一楼,光线很强,但不均匀,也可能在活动中心二楼,光线暗的要死。
而这些条件对于摄像头采集图像巡线来说,是个巨大的挑战。
而如果要用摄像头巡线,目前比较主流的几种单片机中,至少需要使用STM32F103,72MHz,而且图像处理极度复杂,从上图中也看到了,弯道的半径很小,有可能摄像头同时采集到好多根线,处理起来麻烦的要死。
当然还有其他的种类传感器。
不过,依据巡线机器人6年比赛的经验,对于速度最大的限制应该是1-场地的“滑”,导致速度无法提高,2-减速电机的速度慢。
所以使用红外传感器在这样子的场地上比赛无疑是最可靠的。
前面提过,黑线的宽度是25毫米,而一般来说,大家做的红外巡线传感器的长度一般是与车的长度等宽。
就是说,小车最宽的地方有多宽,红外巡线传感器的长度就有多长。
一般在200毫米左右吧,有些同学使用小电机,把小车做成mini型,小车的宽度就在150mm左右了。
假如小车的宽度在200mm,那么使用多少个红外巡线传感器合适呢。
以往很多同学很可惜啊,我看过两届的比赛,一个是2009级的学长,还有2010级的这一届比赛,有一些同学不知道从哪里得来的误导,就使用了4个红外巡线传感器,写程序的同学再牛逼,小车跑出来
的效果都是歪歪扭扭的。
可能就是因为LM339有四通道的电压比较器,导致“官方”推荐的参赛方案中,为了省事情就只用了4个红外巡线传感器来举例。
很明显的,那些傻乎乎的同学就被坑了,导致调了半天,预赛的时候就被无辜淘汰了。
以我的经验,还是12个红外巡线传感器比较合适,刚好使用了3个LM339的12个电压比较器的通道。
当然,如果单片机的AD资源足够,也可以使用AD来做,而不需要采用LM339比较器的方案。
但是一般的单片机,是不具备超过8个的AD通道(STM32例外),所以呢,想要使用AD方案的同学呢,建议使用STM32,如果不会用STM32,那就学,感觉学不会,那就老老实实用LM339比较器方案,不但节省系统资源,而且调试起来比AD要方便。
但是事实上,对于一般的大二大一的同学,一下子上手STM32有点困难,因为STM32的编程方式跟51单片机已经是天差地别了。
如果要使用,推荐总体使用库函数,而在对时间要求比较高的场合,再直接对寄存器的操作。
以下开始讲解电路了,饶了一个太平洋才回到正题,唉,勿喷。
废话说多了,上电路图了:
画电路图的软件的名字叫做Altium Designer,本人用的版本是Altium Designer Winter 09,现在最新版本已经是Altium Designer 10了。
要是想做电子类竞赛的同学,这个软件是非学不可的。
鉴于本文的面向对象是大一或者大二年级的同学,假设大家没有学过Altium Designer,也看不懂电路图。
按照之前的经验有有些东西对上述电路图,会有一些疑问。
常见的问题有:
1.LM339的芯片,在LM339的datasheet中,就是在芯片资料中,它的引脚图和我给的电路图中会有
所不同。
上图就是芯片的实际引脚图,虽然图上的引脚顺序不同,但是引脚的标号是一致的,在Altium Designer中为了布线的方便,将部分引脚进行调换。
这样是不影响读图或者最后导入成PCB的,因为软件识别电路图的标识是引脚号的编号,而与图中的排列顺序无关。
所以大家在焊接电路的时候,需要按照引脚重新还原对应,就是按照芯片的实际情况来。
2.关于ST188的引脚,很多初学者表示很蛋疼
图中的白色管子是发射管,黑色管子是接收管。
下图是实际的对应图
3.网络标号。
很多人感觉很疑惑,上面的几块电路图明明没有连起来啊。
事实上对于软件来说,他们是
连起来的,大家可以看到上图中
这种颜色的字体就是网络标号的意思,在Altium Designer中的含义是,所有网络标号相同的节点都是有电气连接的。
意思就是说,凡是相同网络标号的点,在焊接电路的时候都是要用电线连起来的。
4.Header。
这个问题似乎有点低级,但是我遇到过不下十个同学问过我这个是什么东西。
有一种东西叫
做杜邦线知道吧。
而杜邦线往哪里插呢?
就是往叫做插针的地方插。
而Header 14就是代表针数为14根针的插针。
是这个东西。
就是一块电路板已经焊接完成,留下的对外接口。
用杜邦线可以将电路继续和其他的电路板连接。
就是这样。
高手勿喷。
别忘了本文针对对象是初学者。
而上面的电路,做成PCB的成品就是下面的这个图了
这个电路实现了什么功能呢?
通上电后,可以很清楚的看到,当左边第一个ST188对着黑线的时候,相对应的,就是左边第一个LED灯发光了,而从电路中可以看到,当OUT1(网络标号),输出的是低电平的时候,LED1才会发光的是吧。
而此时,其他的LED灯都是灭的。
当顺序的将电路板往一个方向移动的时候,可以看到,LED灯交替发光了。
如此玩过一遍之后,你一定知道了这个东西是干什么的吧。