再战Arduino小车pid调速——写在开始前

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yanggg1997/article/details/73865272

一、为什么选择学此项目

       本人是自动化专业的本科学生。大学入学以来一直在按照学校的课时安排按部就班的学习,除了参加过一些社团活动之外,竟把大学的学习过成了高中的样子。上课、考试成为了大学学习的主线。虽说认真上好每门课、考出理想的成绩,为自己打下扎实的专业知识基础也是很有必要的,但仅有这些还远远达不到当初选择此专业时所期待的“大学之道”。笔者所理解的大学,在学习方面除了知识的进一步积累,和以往不同的是,还应当有对知识的实际应用。如今大学能提供的感性理解知识的机会少之又少,要想提升知识的实际应用能力还需自己多努力。因此,寻找做一项独立项目来提升能力是很有必要的。

       在网上常常看到一些热衷于DIY的爱好者,他们常做的项目有智能小车、无人机以及自平衡小车等。这些项目具有入门门槛低、创新点多、可玩性高等特点。在一段段炫酷的展示视频后面,往往是熟练的编程技术以及对嵌入式控制技术的灵活应用。选择智能小车作为学习的项目不仅可以在实践中学习嵌入式编程、自动控制技术等相关知识,还具有很高的乐趣,是一个很好的开端。

       选择Arduino平台作为智能小车的控制器,不仅因为Arduino相较于STM32、51单片机等控制器,更加容易入门和掌握,而且其性能已完全可以满足我们起步做智能小车要达到的需求。同时,本项目是以Arduino小车作为平台来学习自动控制领域的PID调节方面的知识,小车只不过是一个承载知识实际应用的载体,选择对初学者更加友好的平台可以使我们把精力投入PID学习上,从而避免了本末倒置的尴尬情况发生。

选择PID调速作为学习的中心,是因为PID是在工程实践中应用最为广泛的一种反馈调节机制,具有非常重要的地位。作为一名自动化专业的学生,完全有必要对PID进行深入学习和探讨。

       综上所述,学习Arduino小车PID调速对于像笔者一样想要初次接触实际项目的人来说十分合适,相信只要有着不畏难的信心和努力做好的决心,投入时间和精力,一定可以打破突破口,取得进步。

二、曾经的教训

       说来惭愧,在几个月之前本人也曾尝试过这个项目,后来却无奈地搁置了好几个月,没有取得一点进展。为什么会出现这样的情况,对出现这样问题的反思可以避免以后陷入同样的困境之中。笔者虽说对早已疲于应对上课和考试,却出于各方面的压力,对学业依旧不敢有所松懈。再加上此学期的课程数量多,难度大,也一度对我造成了很大的困扰和精神压力,为此不得不投入巨大的时间和精力在学业学习上,课外学习小车PID项目的计划不得不因此而搁置。最近看了一个叫《如何掌控你的自由时间》的TED演讲,其中演讲者认为我们日常所说的所谓“没有时间做某事”,实际上就是人为的将这件事的重要性列在了其他事情之后,才会说“没有时间”。不得不承认的是,在本学期出现学业上的困难后,笔者也确实将做小车的重要性列在了搞好学业之后,这也是直接导致项目搁置的一个重要原因。笔者并不是想要强调学业和做项目孰轻孰重,而是想要说明若想切实做好一个项目,哪怕不是项目,仅仅是一件普通的事情,便需要做好思想上重视,认真对待的准备,否则会难以进行下去。

       对于像笔者一样刚刚去敲做实际项目大门的人来说,与以往学习不同的是,在思维上要做出一定的转变。学校课程安排的各项实验往往是紧紧围绕课本内容,每次做实验的时候最好把书上相关章节知识点过一遍,便能轻松取得成功,因此学校提供的实验往往是在理性知识建立的基础上提供一次围绕理性知识的感性认识,加深对知识的理解。而实际做项目的经历恰恰与其相反,往往是在遇到特定项目,需要做出预期效果时,开始寻求解决办法,学习相关的知识。在笔者刚开始接触小车PID调节项目的时候,从图书馆借了几本Arduino入门的书,列的计划里打算把这些书通读一遍,这暴露了自己妄图通过读书来解决实际遇到的所有问题的心理,很显然这是行不通的。学生习惯了老师和课本告诉什么,便会做什么,却少有对分析问题解决问题能力的训练。做项目正是要求掌握并运用这种能力,因此要在思维方式上做出调整,不能以准备考试的思维去做项目,否则费时费力。

       笔者接受到的第三个教训是在做项目时一定要有耐心和解决问题的信心,方能取得成功。在当初查阅资料、看小车的demo程序时,一方面由于初次接触的陌生感让自己感到不安,对能否有能力搞下去产生怀疑,另一方面例程中长篇的代码和陌生的用法也让自己倒吸一口冷气,连其中部分代码的编程语法都是自己之前未曾见过的,此时决心做项目时的热情和信心已所剩无几。这显然是不利于项目进展的。要认识到做项目就是用自己解决问题的能力去解决新的问题,所以必然会遇到新问题,新挑战,而不是全部都是在自己已有的知识储备之内。正是这种接触新问题,努力解决问题的过程才能让我们取得进步。换个角度思考,比如之前在看程序时遇到不会的语法时,若此时放弃,便一直不会这种语法,没有取得任何进步。反而去通过查阅资料或者寻求帮助,确实搞明白了这一语法,哪怕仅搞明白这一点还不足以读懂整个程序,但在学习编程语法这一点上还是真实的取得了进步。量变必然引起质变,只要坚持用正确的方法不断积累量变,质变的飞跃只是时间的问题。

       最后还需阐明的一点是在遇到问题时,若一时不能找到切实可行的解决办法,完全可以利用网络以及周边老师朋友的资源,向他们寻求帮助,而不是在问题里越陷越深。在寻求帮助时也需掌握“提问的智慧”,阐明自己遇到的具体问题是什么,已经做过哪些尝试,想要达到什么效果。在做好以上工作后,寻求帮助可以避免陷入问题无法自拔,甚至有时还会有“一语道破玄机”的意想不到的效果。

       以上是笔者的一些思考和走过的弯路,希望能够对像我这样的初学者有所帮助。若有不当之处,还请各位前辈多加指点,谢谢!

 

展开阅读全文

没有更多推荐了,返回首页