树莓派小车C语言循迹,自动循迹小车_单片机/STM32/树莓派/Arduino/开发板创意项目-聚丰项目-电子发烧友网…[通俗易懂]

树莓派小车C语言循迹,自动循迹小车_单片机/STM32/树莓派/Arduino/开发板创意项目-聚丰项目-电子发烧友网…[通俗易懂]1金属探测模块采集与计算金属探测LDC1314是根据电磁感应原理制成的,将一金属置于变化的磁场当中时,根据电磁感应原理就会在金属内部产生涡流,涡流产生的磁场反过来又影响原磁场,这种变化可以转换为电压幅值的变化,供相关电路进行检测。通过改变金属和线圈之间的距离得到不同的值,对前端探测到的数据进行再处理和分析,当其中一个线圈探测到铁丝则让小车向相反方向前进,若发现附近有硬币存在该探测器发出声音警报。L…

大家好,又见面了,我是你们的朋友全栈君。

1金属探测模块采集与计算

金属探测LDC1314是根据电磁感应原理制成的,将一金属置于变化的磁场当中时,根据电磁感应原理就会在金属内部产生涡流,涡流产生的磁场反过来又影响原磁场,这种变化可以转换为电压幅值的变化,供相关电路进行检测。通过改变金属和线圈之间的距离得到不同的值,对前端探测到的数据进行再处理和分析,当其中一个线圈探测到铁丝则让小车向相反方向前进,若发现附近有硬币存在该探测器发出声音警报。

LDC1314可以同时测量阻抗和频率。LDC1314是通过调节振荡器的幅度同时检测LC的谐振损耗来实现这个测量的。通过检测注入到LC谐振单元的能量,可以计算出RP。在LDC1000中RP值被转化为数字量,数值跟RP的值成反比。LDC1314可以检测到LC的谐振频率。谐振频率用于计算LC中的L值。频率值也有LDC1314转换为数字量。谐振LC中的C是已知的(电板上焊接),所以根据谐振频率就能计算出L值。根据衰减振荡的曲线可以计算出RP。

采用高精度的LCD1314电磁传感器,不断采集由传感器的通道1和通道0采集的谐振频率的数据。LCD1314和所有设备寄存器之间的通信采用400kHz的I2C接口,实现高速连信,精确测量采集的谐振的频率,在通过内部的12位AD的转换将其测量的模拟量转化为可输出的数字量读取测量数据,然后通过输出到STM32单片机自带的LCD,实时的检测数据。但由于LCD1314的传感器受到电流、温度的影响,因此需要一定的补偿X。小车采用了两只5V 2.5A直流电机,作为运动系统的驱动,传感器实时检测谐振,并且转换成数据量,单片机处理传来的数据量,调节输出PWM占空比,控制两只电机的运动的状态。从而实现小车的寻迹。

本系统对比控制法,和软件滤波。当两个通道不接触铁丝是,测得数据居为date0和

date1.由于传感器的收到干扰。补偿为80bcb379d1a010eee213e9c7c8e57775.gif80bcb379d1a010eee213e9c7c8e57775.gif实时检测的数据为date0(t),date1(t)。采用软件滤波,对date0和date1采样十次测平均值。

date1(t)>=date1+MA[N] :则控制右边的电机速度减慢,左边加快

date0(t)<=date0 +MA[N] && date1<=date1+MA[N] :则左右前进

其中,MA[N] :新的平均值;MA[n-1]:上一个移动的平均值;N:要求的平均值的样本;X[n]:当前LDC样本。

2循迹小车运动控制分析

采用了占空比可调的周期矩形信号控制。脉冲频率对电动机转速有影响,脉冲频率高连续性好,但带带负载能力差脉冲频率低则反之。经试验发现,脉冲频率在40HZ以下,电动机转动平稳,但加负载后,速度下降明显,低速时甚至会停转;脉冲频率在10HZ以下,电动机转动有明显跳动变化。

理论计算后得,脉冲频率在15HZ到30HZ时效果最佳。而具体采用的频率可根据个别电动机性能在此范围内调节。通过第一端口输入信号,第二端口输入低电平与第一端口输入低电平,第二端口输入信号分别实现电动机正转与反转功能。通过对信号占空比的调整来对车速进行调节。速度微调方面,可以通过对占空比跨度渐增或渐减分别对速度的逐加和逐减。

因为本系统采用了四个金属探头来探测跑道铁丝标识,所以采用了5种行驶模式:前进模式,左转模式,右转模式,行驶左转模式,行驶右转模式来解决应对跑道中不同类型的道路,前进模式,行驶左转模式,行驶右转模式,以前面两个金属探头为主,后面两个金属探头为辅助,而左转模式和右转模式以后面两个探头为主,前面两个探头作为辅助;这样做的好处在于能够更好的适应跑道,加强小车的行驶稳定性,当在直道行驶过程中,一旦当小车因为速度过快惯性跑出,前面的探头检测不到跑道时候,而后面探头却能检测到跑道,此时调用行驶左转或者右转模式来迅速校正小车头向,最大限度避免惯性的影响,而正常情况下采用前进模式,而左转模式与右转模式刚好与之前相反,当前面探头一侧检测到跑道另一侧却没有,而后面探头不能检测到铁丝的时候(铁丝在两个探头中间),此时可以确定为弯道,此时调用左转模式与右转模式;这样用不同的模式在加上PID算法来应对不同的情况,能够最大限度的提升小车的行驶稳定性的情况下,还能够加强小车的行驶速度。

3控制算法分析

在模拟控制系统中,控制器最常用的控制规律是PID控制。PID控制器又称PID调节器,是工业控制中系统中常用的有源校正装置。可以用软件实现PID控制算法,而且可以利用计算机的逻辑功能,使PID控制更加灵活。数字PID控制生产过程是一种最普遍采用的控制方法

系统的传感器得到的测量结果 控制器作出决定 通过一个输出设备来作出反应 控制器从传感器得到测量结果,然后用需求结果减去测量结果来得到误差。然后用误差来计算出一个对系统的纠正值来作为输入结果,这样系统就可以从它的输出结果中消除误差。

最为理想的控制当属比例-积分-微分控制规律。它集三者之长:既有比例作用的及时迅速,又有积分作用的消除余差能力,还有微分作用的超前控制功能。

当偏差阶跃出现时,微分立即大幅度动作,抑制偏差的这种跃变;比例也同时起消除偏差的作用,使偏差幅度减小,由于比例作用是持久和起主要作用的控制规律,因此可使系统比较稳定;而积分作用慢慢把余差克服掉。只要三个作用的控制参数选择得当,便可充分发挥三种控制规律的优点,得到较为理想的控制效果。

本方案采用单回路PID控制方案,选取电机转动值作为反馈信号,此方案间接对电机进行控制

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/138981.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 详解CALayer的anchorPoint和position[通俗易懂]

    详解CALayer的anchorPoint和position[通俗易懂]CALayerCALayer属于QuartzCore框架,用于在iOS和MacOS系统上可见元素的绘制,和属于UIKit框架的UIView的关系是,UIView默认会创建一个CALayer属性,用于图象的绘制和显示.当然,CALayer也可以单独创建.区别UIView可以处理用户交互事件,而CALayer不行.CALayer具备以下UIView没有的功能:阴影,圆角,边框 …

    2022年10月8日
    5
  • API接口签名验证

    API接口签名验证

    2021年10月13日
    47
  • CentOS6 更换yum源的方法

    CentOS6 更换yum源的方法

    2021年6月4日
    146
  • idea2021.11激活码【2021免费激活】[通俗易懂]

    (idea2021.11激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlCEX82FN4RV-eyJsa…

    2022年3月29日
    61
  • 推荐系统(Recommendation system )介绍[通俗易懂]

    推荐系统(Recommendation system )介绍[通俗易懂]前言随着电子商务的发展,网络购物成为一种趋势,当你打开某个购物网站比如淘宝、京东的时候,会看到很多给你推荐的产品,你是否觉得这些推荐的产品都是你似曾相识或者正好需要的呢。这个就是现在电子商务里面的推

    2022年8月4日
    5
  • QT多线程实战_Qt多线程开发项目

    QT多线程实战_Qt多线程开发项目文章目录需求的提出多线程线程间通信需求的提出窗口本身就是一个死循环,在这样一个死循环中执行任何耗时的操作,都会导致程序崩溃。所以多线程对于窗口编程而言是必要的。例如,在窗口中拖入一个pushButton和lineEdit,将pushButton的名字改为pbStart,然后为其绑定一个函数,函数中创建一个死循环,并让死循环中的内容实时输出到lineEdit。接下来设计一个逻辑,当点击pbStart之后,开始执行死循环,同时按钮内容变为Stop;当按钮内容为Stop时,点击按钮,停止执行死循环。所以

    2025年6月1日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号