基于LDC1000的自动循迹小车

基于LDC1000的自动循迹小车大三上学期课程设计的题目选了做小车,需要使用的是TI公司的LDC1000或者LDC1314,题目如下:首先选择做这道题是因为之前做小车比较熟悉,仔细分析一下其实也就是缺个传感器,其他的该有的都有了只需要稍作修改,于是乎开始了这一段有意思的旅途。将整个系统分为采集、处理、控制三部分。第一部分为采集模块,采用LDC1000采集赛道信息并转化为数字信号传输给数据处理模块。

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

大三上学期课程设计的题目选了做小车,需要使用的是TI公司的LDC1000或者LDC1314,题目如下:
这里写图片描述

这里写图片描述

这里写图片描述

首先选择做这道题是因为之前做小车比较熟悉,仔细分析一下其实也就是缺个传感器,其他的该有的都有了只需要稍作修改,于是乎开始了这一段有意思的旅途。

将整个系统分为采集、处理、控制三部分。
第一部分为采集模块,采用LDC1000采集赛道信息并转化为数字信号传输给数据处理模块。
第二部分为以MK60DN512ZVLQ为主控芯片的处理模块,根据预先写好的算法处理输入数据,输出不同的PWM以控制小车行驶状态。
第三部分为控制模块,被控制部件状态包含舵机转向和电机转速两部分。
系统工作框图如图1 所示:
这里写图片描述

然后传感器的选择有LDC1000LDC1314

LDC1314为四通道12位电感数字转换器,支持的传感器频率范围1KHZ至10MHZ。由于支持的传感器频率范围较宽,因此还支持使用非常小的PCB线圈,从而进一步降低感测解决方案的成本和尺寸。

LDC1000是主要针对近距离金属探测应用,系统体积小,成本低。能实现感测系数可调,自定义导体感测范围,还可以近距离感测特定的金属导体。采用了SPI接口编程,占用硬件资源少,只需要外接一个PCB线圈或者自制线圈就可以实现非接触式电感检测。但LDC1000仅支持单通道。

从上面的介绍来看似乎选个LDC1314就完美了,没错我的想法也是这样的,题目一出找了几天资料后发现1314的资料太少了,感觉很难做不做从何入手,相比而言1000的资料多一些,于是果断申请了TI的一片LDC1314和一片LDC1000,几天后到了,才发现我的天这封装。。。
这里写图片描述

好吧我服了,封装没现成的,那么花了几个小时自个画了个,折腾一下午然后把它刷出来,发现焊不上,网上的一个教程是先在焊盘上先加一层锡,然后用热风机吹,鼓捣了一下发现好像焊上了,下图只是将LDC1000的典型电路花了出来,然后再把引脚引出来,接下来就面临一个更大的问题,线圈???

1、自己绕,可是不知道参数啊,绕多大多啊圈。。。
2、买现成的,这样参数确定了,但是是多大。。。
3、PCB线圈,按照一份文档里面的设计了几个PCB线圈
可是实验室条件很难做到很细的走线,最后以失败告终,
这里写图片描述

就这样过去好几天没有进展,便打开某宝,搜了搜找到个现成的模块看上去还ok就买了回来,如下图
这里写图片描述

回想一下,这个真的要自己设计的话难度挺大的,主要是线圈的设计吧,找到一份比较好的文档:
这里写图片描述

机械结构上的设计
在一开始时选用飞思卡尔的B车模改装一下,其实就是把底盘换了个短一点的,因为题目对于车长有要求,接着发现单电机配合舵机转弯时不大顺利,于是偷天换日将后面的两只轮子改成E车模的。。。于是诞生了下面的奇葩车。

金属检测理论分析
LDC1000的电感检测原理是利用电磁感应原理。在PCB线圈或自制线圈中加上一个交变电流,线圈周围就会产生交变电磁场,这时若有金属物体进入此电磁场就会在金属物体表面产生涡流(感应电流)。涡流电流跟线圈电流方向相反,涡流产生的反向磁场跟线圈耦合形成一个变压器。由于变压器的互感作用,在初级线圈可检测到次级线圈(金属物体的涡流效应)的参数。
LDC1000是依靠检测等效并联电阻来测定金属物体是靠近还是远离线圈,所以当有金属物体接近时,就会使传感器的数值发生变化,对这一变化进行判断便可得知小车是否在正确的轨道上。

线圈扫描理论分析
LDC1000采集的信号有两个:传导目标(金属物体)接近时导致的线圈涡流损耗Rp,以及线圈的电感值L。根据线圈的不同,这个传感回路的震荡频率范围为5kHz~5MHz,涡流损耗Rp的分辨率是16 位,电感测量L的分辨率为24 位。Rp 可推算出金属的距离,利用Rp值的变化完成金属物的定位。
设计使用LCD1000 配合单线圈摆动扫描,增大扫描赛道面积,将线圈固定在一个舵机上,使线圈在铁丝上面水平扇形摆动。在一个摆动周期内取不同位置的读数,相当于有多个线圈在检测赛道。这样可大大降低整体设计的成本。
该方案在程序中实现方法是:K60不断监测LDC1000传感器送回的数据。一次完整的采样周期是:舵机从右往左扫描——采集数据保存至数组——舵机从左往右回到初始位置。通过设置一个阈值,当大于阈值时则为检测到铁线,小于阈值时则没有,并计算当前检测到铁线的值在数组中的相对位置,以此作为前轮舵机转向和后轮驱动的依据,达到循迹的目的。

检测硬币
当传感器检测铁线时,由于铁线的表面积较小,产生的涡流较小,K60读出LDC1000采集回来的数据较小;当检测的硬币时,由于硬币的表面积较大,产生的涡流大,K60读出LDC1000采集回来的数据将比之前大很多。因此,我们可通过设定阈值来区分铁线与硬币的
最重要的就是找到一个阈值~

测行驶距离
我们采用欧姆龙500 线的光电编码器。电机每转一圈,编码器输出500个脉冲,则车轮走过了75mm。
单片机通过FTM模块的正交解码功能实现对脉冲的计数,从而实现对小车行驶距离的计算

程序设计
程序上移植了浮点科技电轨传感器LDC1000驱动的例程,非常感谢。
这里写图片描述

接下来电源等其他的都是以前的了
这里写图片描述

最后的小车:
这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述
总结
首先是赛道与电感传感器的问题。我们在前期测试的时候,由于赛道本身有个别地方存在转角过大,小车转向不足的问题。此种情况时会造成无法识别的情况,从而使小车冲出赛道。后来通过利用前轮舵机转向,后轮双电机差速能较好地解决此问题。
其次是传感器模块线圈限制,导致其感应距离较小,只能将LDC1000模块尽可能靠近铁线,并且使用了热熔胶对其进行了固定,但仍不能完全使其在每个摆脚下与铁线的高度保持一致。另外,由于电感传感器通过杜邦线与车身底部的线圈相连,偶尔会出现数据波动的情况,对小车的正常行驶有很大的影响,后来换用质量较好的灰色排线情况有所改善。
还有,测距不是很准确。究其原因,与车身机械结构有很大的关系。改进方向为:多次获取记录赛道距离数据,使用matlab建模(编码器脉冲数与实际距离的函数关系模型)拟合曲线。
最后,小车整体的稳定性与电池供电电压有着很大关系,电池电压在7.2伏左右时系统最为稳定。当小车供电电压低于6V时甚至更低时,可能会引起很多意想不到的情况,例如LDC1000检测出的值错误,感应不到金属,小车转向异常,驱动力不足等。在我们起初遇到此情况时,以为是电感传感器的问题,在多次调试无效后,换了个电池,才偶然发现问题的起因,为此耽误了很多的时间。

测试答辩后
答辩的时候很有意思的就是老师要求我们将赛道反过来(因为赛道上面是直接将铁线贴上去的),然后测试能不能跑完,然而在一开始还行,第一个弯就gg,这里就说明确定一个阈值只能适应你这个跑道,如果想要更好的适应性,能做的一个是动态阈值,根据测得的值来确定,总而言之,在这次课设中学到了很多~

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/133836.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • mpvue中,fly请求拦截[通俗易懂]

    mpvue中,fly请求拦截[通俗易懂]mpvue中,fly请求拦截

  • 什么是pl/sql语句_过程化SQL有三种循环结构

    什么是pl/sql语句_过程化SQL有三种循环结构—认识PL/SQL   ***PL/SQL的使用几乎贯穿于整个Oracle的学习过程,也是作为一个初级开发人员必须掌握的重要知识点。   ***结构化查询语言(SQL)是用来访问和操作关系型数据库的一种标准通用语言,它属于第四代语言(4GL),       简单易学,使用它可以很方便地调用相应的语句来取得结果。该语言的特点就是非过程化。也就是说,使用       的…

    2022年10月11日
  • 腾讯课堂金牌机构靠谱吗_讲护肤品课怎样讲

    腾讯课堂金牌机构靠谱吗_讲护肤品课怎样讲雷军的风口飞猪论,伴随着小米的现象级成功,已经深入创业者之心。以至于,不少创业者都在极力说明,他已站在风口,风马上来。其实,对于正在设计、打磨、运营初创产品的团队,“风口…

  • asp.net中英文转换

    asp.net中英文转换一、中英文切换主要是依靠资源文件(Resources):资源文件名称格式:"页面名称加后缀.resx"      资源文件分为本地[App_LocalResources]和全球化[App_GlobalResources]二、实现过程:  本地资源:1.添加文件夹[App_LocalResources]                    2.创建以.resx结尾的资源文件   …

    2022年10月24日
  • jenkins踩坑——插件冲突「建议收藏」

    jenkins踩坑——插件冲突「建议收藏」当前jenkins版本:2.286冲突插件:FoldersPlugin和ExtendedChoiceParameterPlug-In问题现象通过FoldersPlugin创建目录层次的工程某一个工程创建之后无法读取文件中的内容,而这个工程是从同一目录的其他工程(可以读取文件内容)复制而来。仅项目名称和svn路径不同问题分析增加插件com.cwctravel.hudson.plugins.extended_choice_parameter.ExtendedChoiceParam

  • 盒子模型(Box Model)「建议收藏」

    盒子模型(Box Model)「建议收藏」所谓盒子模型:就是把HTML页面中的布局元素看作是一个矩形的盒子,也就是一个盛装内容的容器。盒子模型有元素的内容、边框(border)、内边距(padding)、和外边距(margin)组成。盒子里面的文字和图片等元素是内容区域盒子的厚度我们成为盒子的边框盒子内容与边框的距离是内边距(类似单元格的cellpadding)盒子与盒子之间的距离是外边距(类似单元格的cells…

    2022年10月30日

发表回复

您的电子邮箱地址不会被公开。

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