2016年辽宁省电子设计大赛自动循迹小车制作心得[通俗易懂]

2016年辽宁省电子设计大赛自动循迹小车制作心得[通俗易懂]使用STM32F103的程序在这里:https://download.csdn.net/download/weixin_42089190/10456099这个是报告:https://download.csdn.net/download/weixin_42089190/10456097寄存器的配置其实大同小异,各位看官可以下载下来参考一下转眼间2018年6月3日了,刚刚完…

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

使用STM32F103的程序在这里:https://download.csdn.net/download/weixin_42089190/10456099

这个是报告:https://download.csdn.net/download/weixin_42089190/10456097

寄存器的配置其实大同小异,各位看官可以下载下来参考一下

     转眼间2018年6月3日了,刚刚完成了校级电赛的选拔,完成了全部基本部分与部分发挥部分(校级题目比省级多了进出车库的发挥项,因此实际上对于16年省赛的题目要求是全做出来的)。想想一个多月的努力,不禁想要把自己的制作过程写出来,既是对自己的思路的整理,也希望能给后来人一些启发。今天先写出来,我以后会慢慢整理的。                           

msp430f5529以及msp430g2553,stm32f103用I2C与ldc1314以及ldc2214的代码都整理好了。大家可以到CSDN用积分下载。()

还可以在微信公众号三丰杂货铺后台发送1314获取百度网盘下载链接。

又一转眼,两年过去了。距离这个比赛已经好久。我此时(2020年5月28日)已然大四,马上要念研究生了。现在回头看这篇我刚开始接触CSDN写的文章,还没有学会markdown,而且认识也比较粗浅。大概会等毕业再进行详细更新,手头有的资料也会放上来。现在诸位看管暂且看这浅显的文字吧。文章末尾加了微信公众号,欢迎大家关注。

 

省赛今年推荐芯片加了一个FDC2214,这个芯片和LDC1614的寄存器几乎一模一样,我感觉应该好好练一练I2C,然后用I2C和2214和1614通信一下,肯定会有帮助!

 

因为是回忆,可能略有写散乱,希望诸君见谅。我会慢慢整理,最终版本应该会比较完善。

大家有什么问题,可以在下边评论,博主有时间会回答的。

 

 

目录

 

 

 

题目

车模的选择

 

1314的使用

2214的使用

 

 

路程识别

 

时间计算

硬币检测

 

 

 

 

七、发挥部分

八、其他发挥部分

九、感悟

 

一、题目

 

2016年辽宁省电子设计大赛自动循迹小车制作心得[通俗易懂]

 

2016年辽宁省电子设计大赛自动循迹小车制作心得[通俗易懂]

 

对于整个要求,我们先做了一个大致规划,1314检测线圈,PWM或者PID控制小车行走,12864显示路程,光电门测量路程,外部中断记录时间,MSP430G2553作为核心。蜂鸣器在发现硬币时响。

 

 

 

二、车模的选择

 

 

      其实,车模的选择对于这个比赛很重要。

 

 

     1、选择电机

    尤其是电机,很重要。电机的扭矩不够大的话,程序所要求的最低速度根本达不到。为什么要最低速度,因为速度太快,车就可能跑偏……

 

 

   2、轮胎

 

 

   其次是轮胎,要三个还是要四个?抓地能力要怎么选择?四轮车就意味着你的一侧的轮胎是并联在一起的,三轮的话只需要后轮搞成万向轮,控制前面两个轮子就好。楼主当初查资料,人家说三轮转弯快,四轮直行快,看见就看见了,也没啥直观的认识,因此买了一个四轮的。

喏,像这样:

                   2016年辽宁省电子设计大赛自动循迹小车制作心得[通俗易懂]

 

 

 

 

 

事实证明我还是太naive,因为给的速度过小,四轮车极容易堵转。(为了在缓慢速度下调节车子),最后我们还是把车换成了三轮的。后面加了个万向轮。结果,万向轮也容易被线堵住,我们没办法,车最后就成了这个鸟样儿:

2016年辽宁省电子设计大赛自动循迹小车制作心得[通俗易懂]

 

当然,我们这个车也仍需要改进,因为万向轮的自由度太大,极易跑偏,其实应该加四个小柱子,把它们限定在一前面。(这个是听别人的建议,我们测评时没加限制)。现在回想,我认为,四轮车的话,又使用了好一点儿的电机,那驱动板就不能用L298N了,至少要用大电流的驱动模块,花几十块钱。

 

 

当然,为什么轮胎数量和抓地力有影响,其实归根结底还是电机的问题,电机不听话,给不了我们想要的速度,想让轮胎如臂指使,光靠那样的玩具电机是做不到的。而且,我们测评的时候,有很多同学使用四轮也相当6,(当然,测评时还有用履带的,相当稳)后来者们可以参考一下下面的电机:

2016年辽宁省电子设计大赛自动循迹小车制作心得[通俗易懂]

 

当然,如果你是土豪,或者是玩儿飞思卡尔智能车的人,使用500多600多的车模,那你这一部分就完全不用操心了。

 

 

 

三、LDC1314模块

 

 

   首先,对于土豪,大可以买一个1314的EVM评估模块,或者是1000的模块,大概是100多元,对于我们(露出贫穷的微笑),我们上官网申请了3个1314和1614的样片。而电路板使用了老师给的板子,1314的封装也贼坑,最后在老师的帮助下才焊接好。别看我说只说了一两句,对于没有板子,而且不会焊接鬼畜封装的人来说,这一部分相当难。

        另外,1314想要检测金属,还需要线圈,1314是四通道,可以用四个线圈,离散量来检测。连续量貌似要用PID?(当然,听学长说,用PID也还真不一定有PWM跑得快……)线圈可以自己绕,也可以自己买,要是舍得,还可以自己让PCB工厂打印。

 

      有了四个线圈,就可以将它们并排固定在车轮前面来检测,这是最常用的。还有些同学想法极其巧妙,使用的是1000,只有一个线圈,舵机在前面扫一下,车就前进一点儿,挺稳的,但是速度贼慢~

    1314的主要原理就是连接上外部线圈,然后它会储存线圈送回来的Fsensor/F的频率比,如果检测到金属,这个值就会变大,硬币就会更大,然后这个值就放在寄存器里,我们通过II2C协议实时读取数据就可以了。

 

      还有一件难事,就是对于没玩儿过的人来说,如何初始化1314呢,毕竟它只有英文手册,那我只能说,去啃手册吧。。。。楼主队友当时啃了将近10多天,才真正啃下来,能使用了。

 

      1314的寄存器有R/W的,还有R的,像那种R类型的(比如STATUS),一般没啥用。还有一些没啥用的,比如OFFSETx(求偏差值的),RCOUNT(设置频率),这些需要设置,但设置却不需要太精细,随便写一个可能也没啥大影响。(个人感觉)比较重要的寄存器有DATAx,1314的最终结果就储存在这里,前几位是错误标志,后12位就是结果,如果线圈和1314模块接触不良,II2C读出的值就是4095,是不是很熟悉,就是12位都是1嘛。还有一些寄存器就很重要,比如CONFIG,你要一位一位地去看到底是啥用,可以结合百度文库已有的例程,在它的基础上修改。

 

2016年辽宁省电子设计大赛自动循迹小车制作心得[通俗易懂]

 

 

                                                                                        2214的使用

     有想和我讨论的,可以在 下方留言

 

可以这么说,1614和1314很像,2214和1614几乎一样。我今天用1314的程序仿写了一个2214的程序。明天就去找老师要板子。关于,它的使用,我感觉就是要注意DATA有两个寄存器,要先读高16位的寄存器,再读低16位的。

 

 

今天老师又让我们重读手册,因为2214是高精度嘛。我们根据1314程序改出来的值只有8位能用,但它可是一个28位的传感器呀!所以,还需要吃透2214的各种模式。

数据处理的时间,通道转换的时间,应该尽量短,否则就是浪费精度。

 

对于2214的各种管脚:

 

      SD管脚是关断模式选择,直接悬空就好,毕竟我们需要使用它,而不是关闭,这个引脚没啥用。

 

      INTB是中断引脚,可以配置为通知MCU系统状态的变化。

 

我感觉需要重新做的有:

 

      1.更精确地配置时钟

 

 

      2.多通道与单通道的配置

      3.如何处理采集回来的数据(将long传回到PC)

 

 

 

 

 

问题:

       1传感器的频率如何知道呢?

 

四、路程计算

 

 

怎么计算路程了,有用霍尔传感器的,我们用的是光电门和码盘,原理都一样。就是光电门给光,码盘上有空隙,码盘堵住光和不堵住光的时候,会有脉冲,这时候就可以用一个外部中断,来告诉单片机有一个空隙过去了,那计算空隙,路程就出来了。

 

如图:

 

 

五、时间计算

 

这个,大家尽可以用定时器,G2553有两个定时器,还有一个看门狗,我们就用了看门狗。都不用一进入单片机就关狗了~哈哈

 

六、硬币检测

 

 

硬币其实好检测,因为硬币要比铁丝更明显,会读铁丝,自然会读硬币了。然后用蜂鸣器表示一下就行。

 

七、发挥部分

 

 

大家觉得,对于小车来说,最重要的发挥部分是什么呢?没错,就是速度,速度!!!没有速度,再多的功能都是虚的。速度方面需要大家好好去调节。因为电池的影响,或者是重物的影响,此时调好的程序,到了彼时,就一点用都没有了。所以,大家在比赛之前,一定要预留几个小时,将车调到最佳状态,然后就什么都不要动了,静静地等待测评就好了。

 

这也是我们组所犯的错误,追求完美,想要完成所有功能,结果上台后车没调节好,天知道有多冤枉!而其它组别呢,一个个儿的只调节速度,真的是被坑惨了。

 

八、省赛之外的其他发挥部分

 

 

我们学校在省赛外的其他发挥部分就是识别车库并进入了,这个大家可能并不感兴趣,我今天就先不写了,之后完善。主要是用摄像头,7670和7725都可以。关键是带FIFO,再说一遍,关键是带FIFO。

另外,我们还做了一个语音模块,让小车更智能,这个之后说。

 

九、感悟

感悟
不要怕花钱 想做好比赛,真的是需要花很多钱的,大家不要图省钱。电路板,该打印就打印,博主小组花了70多打印了几十个线圈,一个个测的精度;买摄像头的时候也是先买的不带FIFO的,结果买回来发现根本用不了;
组里某个人要对日程有规划 什么时间干什么事,出什么成果,应该是有规划的,要不然时间就有可能无谓地浪费掉。
   
   
   
   
   
   
   
   

2018年6月3日第一次更新

2018年6月4日第二次更新

2018年6月6日第二次更新,更新1314部分寄存器设置

2018年6月27日第三次更新,更新2214部分寄存器设置

2018年7月3日第四次更新    更新对于2214的理解与难点

2020年5月29号第五次更新,更新个人微信公众号

 

欢迎大家关注我的个人公众号,现阶段主要总结Robomaster相关的计算机视觉知识:Qt,C++,CMake,OpenCV等等
公众号名称:三丰杂货铺

2016年辽宁省电子设计大赛自动循迹小车制作心得[通俗易懂]

 

 

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

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

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

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

(0)
blank

相关推荐

  • HTML添加背景图片_html背景图片铺满网页

    HTML添加背景图片_html背景图片铺满网页2020-04-27 每日一例第43天1.后台代码<html><center><head>0420html中div的用法</head>

  • 轻松学会python的turtle模块,画一箭穿心、小人儿发射爱心、520表白完整代码,海龟作图小创意「建议收藏」

    轻松学会python的turtle模块,画一箭穿心、小人儿发射爱心、520表白完整代码,海龟作图小创意「建议收藏」当我们学了turtle后(如果不懂turtle模块的话,文章末尾会详细介绍的),就想尝试为自己心里喜欢的人画一颗一颗爱心,想用代码逗自己的小猪猪女孩开心,表达自己的爱意,那么福利来了,动动小手指,复制粘贴即可,不过有些地方需要适当修改,快给自己心爱的女孩看看吧importturtleimporttime#实现清屏defclear_screen():

  • mimikatz行为免杀_易语言远程源码

    mimikatz行为免杀_易语言远程源码目录介绍环境准备处理报错生成32位生成64位下载360、360杀毒直接查杀关键字替换-失败去除注释,修改版本信息删除注释信息替换图标修改版本信息重新编译文件过杀软360家族腾讯电脑管家火绒在线查杀参考学习一下月师傅的文章介绍Mimikatz是一款能够从Windows认证(LSASS)的进程中获取内存,并且获取明文密码和NTLM哈希值的工具,攻击者可以借此漫游内网。也可以通过明文密码或者传递hash值来提权。因为这款工具特别出名所以被查杀的机率很大,我们可以通过github上的开源代码对其进行源码免

  • Android Studio 撤销(Ctrl+Z)的对应快捷键[通俗易懂]

    Android Studio 撤销(Ctrl+Z)的对应快捷键[通俗易懂]撤销(Ctrl+Z)前进一步(Ctrl+shift+z)vs中初始也是如此

  • ctk编译linux,CTK插件框架学习5-插件间通信(Netlink实现热拔插监控)[通俗易懂]

    ctk编译linux,CTK插件框架学习5-插件间通信(Netlink实现热拔插监控)[通俗易懂]本章来写一个插件,插件功能为通过NETLINK读取linux系统中的hotplug信息,比如usb、SD卡、磁盘等设备的插拔事件产生的信息,将读到的信息通过插件间通信的方式发出。1.eventadmin库编译CTKPluginFramework下插件间通信是通过事件管理机制实现的,其代码位于CTK/Libs/PluginFramework/service/event目录下,使能事件管理机制,…

  • JavaScript 判断是否为数字的几种方式

    JavaScript 判断是否为数字的几种方式js判断是否为数字方式很多:typeof、instanceof、Number.isNumberparseInt、parseFloatisNaN、isFinite正则表达式本片文章就介绍一下这些方式的区别和用法。1.typeof、instanceof、Number.isInteger使用typeof判断对象是不是基本类型number,比如:letnum=1;typeofnum===’number’;//true使用instanceof判断对象是不是包装类Number

发表回复

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

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