控制类电子设计的实质,就是不断地封装再封装,以最小的成本去做目标最明确的事。不断封装是为了打开由集成电路构成的硬件与应用层之间的通道,其实这个底层的工作很尴尬,因为底层下面还有更底层的芯片设计。
一个完整的制作过程应该是这样的:
芯片设计->电路(PCB)设计->硬件驱动->应用层。
(由于现在芯片厂的产品线都很齐全,通用性也很好,所以基本没有人从芯片设计开始造轮子。。。)
要实现的功能、目标越简单,这个过程的耦合性也就越高,可移植性就越差,代码量甚至可以精简到几十行汇编;如果功能复杂,任务众多,那么系统化模块化的基于C语言的硬件驱动,或是嵌入式操作系统,或者更高级的语言诸如python这样胶水语言编写的应用层,都是不可或缺的。
那么对于个人而言,简单的芯片简单的任务倒还可以自己从硬件驱动开始写起,但是任务一旦复杂起来,从硬件驱动开始造轮子实在是费时费力的一件事。
我认为电子设计大赛某种角度来说就是在培养造轮子的人才,但其实这无可厚非,毕竟这个世界总得有人去造轮子,总得有人把底层的脏活累活干了,你们优雅的程序员才能优雅地调用库里封装好的函数,用几行优雅的代码解决问题。
但对于我个人而言,从寒假开始的造轮子之旅真的让我身心俱疲,用AD画飞控PCB板,到现在用开发板写传感器驱动。然后还要中途换到51单片机上做一个跟比赛没什么关系的筛选,虽然可以学到东西,然而对比赛来说,除了可以当成方法的总结以外没有任何价值,嵌入式就是这样,换个芯片换个开发环境,哪怕你通过类比总结后对思路一清二楚,你还是要花大把的时间去实现它。
这也是为什么我开始对这些产生厌倦,因为这些都是已经被我确定的事,我现在更感兴趣的是理论,比如PID控制的数学原理,各种更高深的算法,然后等我回炉重造学好数学,我就可以回来做更多有趣的事情。到那时我再去做一个水温控制,我就可以从数学的角度去真正分析它的控制效果,去计算最佳参数,去像大佬论文里一样做数据分析。
我以前总觉得学校里教得偏理论,实验室里做的小玩意儿偏实践,两者有很大差别。其实不然,实践水平提升到一个地步,没有过硬的理论指导就寸步难行,理论到了一个地步再去实践理论也会豁然开朗。
然而现实总是处于一种不自由的状态。有的时候不是你不想做什么就可以不做,因为你需要付出代价去交换,我们把这个过程叫做为了更长远的自由哈哈哈。 所以我要争取参加电赛,我要把四轴这个项目基本要求实现。等我做完这些,无论是造轮子还优雅的应用都不要找我,让我好好上课,没事去图书馆看看书,算几页草稿纸,周六晚玩玩乐队,像在学校养老的大部分人一样,过完剩下的两年。