基于stm32单片机的两路循迹小车直角转弯怎么实现?

常见的有三轮车,四轮车两种;
三轮车,主要是后面两个主动轮,前面一个万向轮组成;

四轮车,比赛中常见的有4个都是直轮,或者4个是麦克纳姆轮两种;


(2)由于是新手,所以简单说下三轮车的原理;
四轮的,自己学习解决;

A、三轮车,主要有五种动作。
其中,左转,右转又可以分为大转弯,和小转弯;

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

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

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

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

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

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

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

直流电机,比赛常用的有几种,一种是黄色的T电机;一种是带编码的电机;带编码的电机可以测速等等,稍贵,但是扭矩大,运行性能好。因此在比赛常用。。
这里由于黄色的电机比较便宜,用这个入手。进行学习。

由于是直流电机,所以两个引脚,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的比例,从而控制输出的电压,从而控制电机的速度。

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

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

那么怎么产生一个PWM波形,可以控制比例呢?
我们者利用的51单片机,有四种方法产生PWM。

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

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

我已经写好函数,直接包含头文件,和c文件,初始化之后,就能直接使用了。
我这里是低电平的时间,第三个参数,所以要1-0.3转为高电平比例。
所以改变最后的参数(比例,所以参数在0-1之间),就能控制电机的速度了。


TB6612模块的具体介绍,网上很多。

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

下面分别是控制两个电机的IO口
因此,我们可以设置STBY为5V,让电机可以得到单片机的控制;
这个根据电机的特性和小车运动的场合进行选取。我们这里可以接5V。
PWMA:接单片机的PWM口,通过PWM的占空比,控制电机的速度;
通过控制下面的00,01,10组合,控制电机的方向,顺时针,逆时针转动。
PWMB:接单片机的PWM口,通过PWM的占空比,控制电机的速度;

通过控制00,01,10组合,控制电机的方向,顺时针,逆时针转动。


综上,根据电路原理图,我们的电机是

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

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

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

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

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

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

那么怎识别到是黑线呢?

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

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

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

而且用的是数字式的红外传感器。。
一般用的是TCRT5000红外模块,原理图等如下。


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

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


我们这里,用了5个IO口,检测5个模块。

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

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

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

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

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

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

}

本实用新型公开了一种驾考倒车入库项目模拟考试系统,包括控制电源,断路器,控制单元,沿倒车入库考场的路线边界设置的机械支架和安装在机械支架上的多个光电传感器,所述控制单元包括逻辑控制器,语音控制器,扬声器,与所述逻辑控制器的一路输入端连接的启动开关,所述光电传感器根据倒车入库考场的路线边界分成10组,每组光电传感器并联连接后,分别与所述逻辑控制器的一路输入端连接,所述逻辑控制器的输出端分为8路,分别与语音控制器的8路输入端连接,驱动语音控制器和扬声器播放8种不同的语音信息.该系统成本低廉,易于安装,结构简单,安装拆卸方便,采用非接触式传感技术,可靠性高,易于维护,且操作简单.

}

地面自主行驶车辆在军事、民用、太空等各个社会生活领域都有着广泛应用前景,它的主要功能包括:侦察、监视、目标搜索;城市地形的军事行动;爆炸物处理;安全巡逻;反雷战等等。 论文以地面自主行驶小车的避障与路径规划技术为核心,探讨了感知技术、系统结构等地面自主行驶车辆关键技术。论文不仅从理论上研究了自主避障行驶这一课题,还参与设计并架构了"探索者"号智能小车,通过实践证明了论文中环境感知单元、路径规划算法等研究结果的正确性。论文的主要研究内容和成果包括: 论文分析研究了"探索者"号智能小车的运动系统,给出了小车的理想运动方程为进一步研究打下了理论基础。 论文对航姿推算法进行了研究,给出了误差补偿的计算公式和实践中的误差补偿方案。 论文设计并实现了分段式红外测距传感器和超声波测距传感器;研究了基于这两种传感器的机器人感知系统,最终设计并完成了感知单元系统板。实验证明,这种环境感知系统基本满足车辆自主避障行驶的需要。 论文着重讨论了机器人的避障路径算法。该算法基于局部动态环境信息,具有较高实时性和自适应性。算法将路径规划分为无障路径规划和避障路径规划两种模式。每种模式均采用了模糊控制方法。 针对模糊推理规则计算量大这一难题,论文提出了新颖的基于存储器的模糊推理算法,并证明了该算法可节省大量计算时间。 论文讨论了"U形陷阱"问题,并从理论上提出了解决方法。 论文研究了智能AGV的控制系统结构,并设计了具有较高实时性和自适应性的混合式结构控制系统。 最后,论文给出了"探索者"号在室内、室外各种场景中的实验数据。实验证明论文中各项研究结果基本正确。

}

我要回帖

更多关于 51单片机和stm32区别 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信