循迹小车讲解一:原理分析

1、循迹小车原理
(1)小车的类型:
常见的有三轮车,四轮车两种;
三轮车,主要是后面两个主动轮,前面一个万向轮组成;
循迹小车讲解一:原理分析_第1张图片
循迹小车讲解一:原理分析_第2张图片

循迹小车讲解一:原理分析_第3张图片

四轮车,比赛中常见的有4个都是直轮,或者4个是麦克纳姆轮两种;
循迹小车讲解一:原理分析_第4张图片

循迹小车讲解一:原理分析_第5张图片
(2)由于是新手,所以简单说下三轮车的原理;
四轮的,自己学习解决;
循迹小车讲解一:原理分析_第6张图片

第一个;
A、三轮车,主要有五种动作。
前进;
左转;
右转;
后退;
停止;
其中,左转,右转又可以分为大转弯,和小转弯;

B、其中左转,右转,都是根据两个轮子的速度差实现;

左轮速度>右轮速度;则向右边转弯;
左轮速度<右轮速度;则向左转弯;

速度差越大,转弯越大;
因此可以设置速度差,实现大转弯和小转弯的目的;

当一个轮子的速度为0,另外一个轮子有速度的时候,会绕着速度为0的轮子转圈,转圈的半径为两个轮子的轮间距,但是实际上,会发生轮子打滑的情况,所以会有点偏移;

由于是直流电机作为动力,因此,可以控制电机的速度,进行小车的速度控制。

因此,实际控制小车的几个动作,实际就转化为控制电机的速度;

(3)直流电机控制的基本内容:

直流电机,比赛常用的有几种,一种是黄色的T电机;一种是带编码的电机;带编码的电机可以测速等等,稍贵,但是扭矩大,运行性能好。因此在比赛常用。。
这里由于黄色的电机比较便宜,用这个入手。进行学习。
循迹小车讲解一:原理分析_第7张图片
循迹小车讲解一:原理分析_第8张图片

控制方向:
由于是直流电机,所以两个引脚,A,B。
如果给5V电压,A接正极,B接负极,那么电机往一个方向运动;如果A接负极,B接正极,那么电机反方向运动。

所以通过调节A和B的接线,就能控制电机正反转;

控制速度:
如果给3.5V电压,那么电机的速度会比5V的慢,因此,可以通过控制电机的电压控制转速。

如果我们人为去交换A、B的接线,就太复杂了,怎么解决呢?

如果我们人为去改变电机的电压,调节滑动变阻器等,也比较复杂,而且不够实时,怎么办呢?

而且,一般要驱动电机,需要带电机驱动模块。

比如常用的有L298N模块,TB6612模块,或者mos管自己搭建驱动电路;

新手可以用TB6612模块或者L298N模块;

这里对TB6612模块进行讲解,如何对电机进行速度控制和方向控制。

首先介绍PWM的概念。
PWM是脉冲宽度调制的意思。简单这么理解,如下图的波形。
T是周期,t1是高电平的时间,t2是低电平的时间。
t1高电平的时间越长,如果等于周期,那么整个周期,IO口的电平就是5V ,如果是50%,那么是2.5V.
因此可以控制t1的时间,控制t1/T的比例,从而控制输出的电压,从而控制电机的速度。

循迹小车讲解一:原理分析_第9张图片

一般直流电机的频率是7K-13K,没实验过,可以实验看下效果区别。

所以,控制小车的轮子的速度,就是控制各自的PWM的高电平比例,就是占空比。

那么怎么产生一个PWM波形,可以控制比例呢?
我们者利用的51单片机,有四种方法产生PWM。
第一,延时
就是延时t1,P10(假如这个是PWM输出脚)=1,延时t2,P10=0

delay(t1);
P10=1;
delay(T-t1)
P10=0

第二
定时器,定时一段时间,P10=1,定时一段时间,P10=0;

第三,就是增强型的51单片机,我们现在用的stc8a单片机,有内置的PWM模块。
这里我们用的就是这个。

我已经写好函数,直接包含头文件,和c文件,初始化之后,就能直接使用了。
我这里是低电平的时间,第三个参数,所以要1-0.3转为高电平比例。
0,是P20通道,6000是频率6K。
HPWM_Set(0,6000,1-0.3);
所以改变最后的参数(比例,所以参数在0-1之间),就能控制电机的速度了。
循迹小车讲解一:原理分析_第10张图片

循迹小车讲解一:原理分析_第11张图片

循迹小车讲解一:原理分析_第12张图片
TB6612模块的具体介绍,网上很多。

循迹小车讲解一:原理分析_第13张图片

TB6612的的用法:
(A),TB6612是双驱动,也就是可以驱动两个电机。
这个合适我们三轮车,因为有两个电机,一个是万向轮,因此我们的小车,就需要一个TB6612模块就行了。

下面分别是控制两个电机的IO口
(B)STBY口接单片机的IO口清零电机全部停止,置1通过AIN1 AIN2,BIN1,BIN2 来控制正反转。
因此,我们可以设置STBY为5V,让电机可以得到单片机的控制;
(C)
VM 接12V以内电源。
这个根据电机的特性和小车运动的场合进行选取。我们这里可以接5V。
(D)
VCC 接5V电源
GND 就不多说了啊
(E)
驱动1路
PWMA:接单片机的PWM口,通过PWM的占空比,控制电机的速度;
通过控制下面的00,01,10组合,控制电机的方向,顺时针,逆时针转动。
AIN1,AIN2接单片机的IO引脚;
真值表:
AIN1 0 0 1
AIN2 0 1 0
停止 正传 反转
A01 和AO2 接电机1的两个脚;
(F)
驱动2路
PWMB:接单片机的PWM口,通过PWM的占空比,控制电机的速度;

BIN1和BIN2,接单片机的IO引脚;
通过控制00,01,10组合,控制电机的方向,顺时针,逆时针转动。
真值表:
BIN1 0 0 1
BIN2 0 1 0
停止 正传 反转
B01,BO2 接电机2的两个脚

循迹小车讲解一:原理分析_第14张图片
综上,根据电路原理图,我们的电机是

假如左轮是A路电机,右轮是B路电机。

那么A路电机:
P20----PWMA—速度;
P04-----0--------停止
P05-----0

P20----PWMA—速度;
P04-----1--------前进?
P05-----0
如果不是前进,调换A01, A02的两条电线。

P20----PWMA—速度;
P04-----0--------后退?
P05-----1
如果不是后退,调换A01, A02的两条电线。

那么B路电机:
P21----PWMB—速度;
P06-----0--------停止
P07----0

P21----PWMB—速度;
P06-----1--------前进?
P07-----0
如果不是前进,调换B01, B02的两条电线。

P21----PWMB—速度;
P06-----0--------后退?
P07-----1
如果不是后退,调换B01, B02的两条电线。

同时,可以调节PWMA和PWMB的比例大小,决定小车的转弯方向;

如果PWMA>PWMB,左轮速度大于右轮速度,那么右转;
如PWMA=0.7,PWMB=0.4,速度差越大,转弯越大;
如果PWMA 如PWMA=0.4,PWMB=0.7,速度差越大,转弯越大;
但是,由于电机的制造误差等等,特性会有偏差。
因此相同的比例,小车也可能会偏离。
如PWMA=0.4=PWMB。小车也可能越走越不是一条直线。。

因此,需要有一条引导线,引导小车直行。或者加测速装置,测得左轮的速度,右轮的速度,单片机调整到一样,就能直走了。

这里,我们用循迹的方法实现。

一般用的是黑线,白纸的方法。

那么怎识别到是黑线呢?

用的是传感器,当做小车的感觉器官;

这个传感器有多种类型,有视觉的,有光电的等等。

我们这里暂时红外传感器,比较便宜。

而且用的是数字式的红外传感器。。
一般用的是TCRT5000红外模块,原理图等如下。
循迹小车讲解一:原理分析_第15张图片

循迹小车讲解一:原理分析_第16张图片
循迹小车讲解一:原理分析_第17张图片

使用比较简单,接上VCC=5V,GND,将D0接到单片机的一个引脚IO,不断读取IO的状态电平,如果是得到0,那么是白线(黑线),如果是1,那么是相反的线。
这里,用红外的模块划过黑线,看看是什么状态才确定。

如果接A0,那么需要ADC转换,后面有时间再做这个吧。

循迹小车讲解一:原理分析_第18张图片
我们这里,用了5个IO口,检测5个模块。
P10—P15
P10是1号模块
P11是2号模块
。。。。。
P15是5号模块;

从而得到实际的小车的状态。
如果3号模块检测到黑线,(0或者1)那么,小车继续直行;
如果1号检测到黑线,那么就左转,而且是左大转弯;
如果是2号,检测到,那么就左小转弯
同理,进行右转弯,大转弯。

通过PWMA和PWMB的实际差值,差值越大,转弯越大;

如果有十字路口,
5个传感器,有3个以上碰到黑线,那么就是判断,到了十字路口

如果在其他地方也放置传感器,那么可以检测多种道路的状态。

循迹小车讲解一:原理分析_第19张图片

上面就是循迹小车的原理。

后面说下如果用单片机进行循迹。如何导入文件,如何使用函数。
待续。。。。。。。。。。。

你可能感兴趣的:(单片机)