微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 井歌教你做智能车,新手福音~欢迎高手斧正~

井歌教你做智能车,新手福音~欢迎高手斧正~

时间:10-02 整理:3721RD 点击:
看到论坛里都是传资料的、、感觉想吐槽。资料那么多,看的完么,我觉得看的再多,不如找个东西做做,废话不多说,准备上帖~

最近开始学习51单片机,看了好久的程序,毫无成就感可言,相信吧友们都能理解这种感觉,没有得到应用的程序就是个死程序。于是乎就想找点东西试试,正好朋友开了个淘宝店,是卖智能车等产品的,毕竟是同学嘛,O(∩_∩)O哈哈~,就先“借”一辆玩玩了。我觉得这车还是很酷的,所有必需为它量身编写一套程序,以显示人家的牛逼之处!虽然说网上关于智能车的帖子很多,但是我自己还是想做一做,不求最好,但求更优。

先说说这辆车现有的硬件吧,PCB车板地盘(这个必需赞~\(≧▽≦)/~)、带电机、车轮、L293驱动、当然同学还帮我配了循迹,避障,测速,超声波模块等,这些基本能满足小车的所有功能,真实太给力了!我用的是51最小控制系统,装的是stc12c5a的芯片,感觉口应该还够用。下面就开始我开发小车之路咯。

木有人。.。。

首先做的是要把车搞跑起来,这也算所有其他功能的基础!要能调节小车车速就得有可变PWM输出,而对于stc12c5a这款芯片而言,可以有多种方式实现这个功能,例如延迟实现的方波(占空比要手动改),定时器实现的(要设置基准时间,周期可调,占空比也能跳),自带PCA/PWM模块(感觉控制寄存器有点多,新手头晕+_+)。我自己用定时器实现了两路可调PWM输出,感觉还是挺好用的,时间也比较准,吧友们可以尝试一下其他的方法哦~
当然,有人会说两个电机给一样的PWM输出为什么转速不一样呢,这个问题很简单,正如,伟大的哲学家井歌所说“世界上没有两片一样的树叶!”所以即使型号相同的电机输入一样的PWM值也可能转速不一样,转矩也会不一样,而我们所能做的就是补偿修正(给转速慢的永久加一点占空比)。做工程和搞理论的区别就在这里,有时理论里很简单的东西实际用起来也会很复杂。
针对上面再补充点,就是PWM周期的问题,一般电机都是对PWM频率有要求的,PWM波频率越小,电机转矩也会越大,所以在用定时器时要注意分频,不然可能占空比达到30%都转不动。
现在,小车已经能跑了,但是作为一个单片机控制的车这还远不能体现他的智能之处,所以,我按照前辈们所想的给他加了循迹等,下面先讲循迹功能。
应该说,小车硬件固定好后,要改善小车性能就只能靠软件了(不过这款车到目前为止还是我用过最称手的车^_^),这辆小车配有四个循迹探头,而且可选择使用全部或只用两个,我在网上也看过有人只用两个探头做的循迹,感觉车速还是很慢,在拐大弯的时候总是不流畅,所以我把另外两个探头也利用起来,对小弯也提前拐!对了,忘了说这辆车是用差速控制,所以拐弯的方式有很多种,例如要右拐可以(100,60)或(100,-60)(其中负的表示后转)。
还有自己最好做一个封闭的跑道,里面可以包含直道,小弯,大弯,S弯,如果都能跑下来应该就算通过了,跑道难度越大,对你程序的要求也越高,所以吧友们可以尝试给自己点难度哦~

顶一个

来了。尽快更新

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top