从我开始学单片机到完成一个智能小车的制作我都需要掌握哪些知识?
Posted 无际单片机编程
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从我开始学单片机到完成一个智能小车的制作我都需要掌握哪些知识?相关的知识,希望对你有一定的参考价值。
10年前,我就是通过智能小车这个项目找到工作,成功入行的。
一些套件的购买记录和当时的笔记,很庆幸还能找到,不然大家以为我是键盘侠。
看了很多不同的文章,具备实际参考意义的不多,最大的问题就是方向错误。
首先出发点就错了,如果你一开始就要又要考虑结构、又要考虑硬件、又要考虑画PCB、又要考虑单片机编程、等你做出来黄花菜都凉了。
任何一个项目,哪怕再简单,都涉及到不同领域的专业知识,分别由不同职位的工程师去负责。
整个项目涉及的知识体系,发现没一个你会的,你上来就想吃下整个知识体系,不是白日做梦吗?
不过,即便如此,并不意味着你需要花费很长的时间才能把它做出来。
我从事单片机工作10年,做过很多项目,每个项目对我多多少少都是一个挑战。
有很多让我焦头烂额的问题,毫不夸张地说,每走一步都有问题需要解决,但每次我总能完成。
掌握多少知识不重要,重要的是你的学习方法。
我总结了几个一直屡试不爽的方法,只要这些方法做,2-3个月完全能把智能小车做出来:
1.找现成的开发板
只要你有不懂的,首先不是去网上收集乱七八糟的教程资料,而是到某宝看看有没有相关开发板。
开发板已经把整个项目核心的东西都帮你整理好了,你不再需要像无头苍蝇一样乱撞,直接按开发板学就行了。
2.找懂的人带
曾经我也是一个白嫖怪伸手党,自以为占了便宜,其实白白浪费很多时间,进步龟速。
现在我要学什么,都会考虑到时间成本,毕竟对于一个30多的人来说,时间太宝贵了。
找个懂的人,做过的人带是最快的,但是你要考虑一个问题:为什么别人要帮你?
我经常会碰到一些新手,一上来就问一堆问题,还有就是发一段代码让我帮他找问题,像我欠了他一样。
对于这种人,心情好了我会回一句:我为什么要帮你?
心情不好了,直接拉黑。
一两个问题,别人可能处于热心帮你,但是你一堆问题,谁会无偿帮你?
那去哪里找懂的人带你?
还是可以去某宝,也可以去某鱼,也可以到一些技术群里。
这块不要太抠,除非你自身有被别人利用的价值,否则只能砸钱。
砸多了,以后别人也愿意跟你玩了,有时也不是看钱,真正有能力的根本不会在乎你那点钱。
主要是认可你会做人,谁也不愿意和傻x交往来消耗自己。
从某个层面来看,能花钱找到别人带你,或许会成为你人生的一个机遇。
3.找供应商提供技术支持
这个暂时不适合智能小车这种项目,这里就先不讲了。
以上是方法论,这个主要是认知层面的提升。
下面我再来讲一下术的层面,也就是智能小车制作都需要掌握哪些知识。
前面我们要从一个点入手,也就是先把软件搞定,再向面扩展,比如说硬件设计、PCB Layout等等(看兴趣,一般没必要)。
1.硬件基础
我们的定位决定我们要掌握哪些知识,比如说我是单片机工程师,那我绝对不会去研究硬件如何设计。
一般我也建议先把软件搞定,硬件可以根据你前面购买的那个开发板学习,学到看懂原理图就够了。
比如说以前我那个智能小车是几个MOS管搭建了一个H桥电路去驱动电机。
我们只需要看懂就行了,不用纠结为什么要这样去设计。
其他电路也是一样,以看懂为原则,知道信号怎么输入单片机,单片机怎么控制外围电路哪些接口、协议就可以了。
这个针对性学是最快的,也就是把智能小车的原理图都学懂。
现在开发板一般都有配教程,看着教程看就行了。
2.单片机
以前大多数智能小车都是用STC的51单片机做的,现在还有一些用STM32,因为功能强大了一些。
我建议新手买51单片机开发的就可以了,至少可以HOLD得住。
STM32单片机基本上不会配置寄存器去使用外设,而是直接用库,或者用stm32cubemx图形化配置外设。
这样看起来好像很简单,直接用别人现成的东西,但是不利于新手对单片机底层原理的理解。
这块基础缺失,会导致你以后的路很坎坷,每走一步都是问题,一出现问题无从下手。
51单片机则必须要配置寄存器去使用单片机外设,这样一个项目下来其实提升还是很大的。
单片机和c语言是同步学习的,如果C语言没什么基础,可以看无际单片机编程的教程,是基于单片机平台讲解的,市面上大多数都是基于上位机。
前期不要好高骛远,如果没基础,先从最基本的点灯开始。
把智能小车所需要的外设全部学完以后,再去实现智能小车这个项目的逻辑功能,比如说电机PWM驱动、超声波、红外信号检测等等。
不要一来就去啃整个项目的代码,越看越迷茫,越看越焦虑。
3.学习其他附加模块
智能小车一般是一个主控板(STC单片机外围电路+电机驱动+显示),除此以外要实现寻迹、避障等功能还需要另外加一些模块。
比如说超声波模块、红外寻迹避障模块、甚至是蓝牙模块等等。
主要是学习单片机是用什么协议或接口跟这些模块通讯,获取数据怎么去处理和控制电机。
整个项目的难点或许就在PID算法了,这个取决于你的车方向和速度能否达到极致,能否在最短的时间按照指定的轨迹到达终点。
等你把整体功能完成以后,再去优化PID算法,网上也有很多资料和现成代码,可以参考。
掌握以上几点,基本上就能把智能小车做出来了。
以上是关于从我开始学单片机到完成一个智能小车的制作我都需要掌握哪些知识?的主要内容,如果未能解决你的问题,请参考以下文章
毕业设计:基于单片机的超声波智能跟随小车 - 物联网 智能小车 嵌入式单片机 stm32 跟随小车