电控应该知道的编程知识(一枚大二CS的经验分享)

2 篇文章 0 订阅

写在前面:

本人是一所双非的机器人协会电控组的一员,计算机大二,做比赛主要做电控,偶尔做些视觉。协会电控组好像就我一个是计算机专业的,其他同学大部分是自动化、电气的。

我们协会电控主要干两个活、一个是画pcb,一个是写控制代码。前者我是一窍不通的,pcb学到布线我就放弃了(太难画了),我主要干的活就是写代码。对于非计算机专业的协会同僚,有些人硬件基础很牢,但是代码。。额,就是说,如果你的程序写的很健康的话,会节约很多调试时间

电控写的是c语言,我们学校很多工科专业的学生大一都会上,觉得上课学的很简单,然后学32标准库的时候开始蒙,自己调车的时候更蒙了。我们协会有些学长觉得c语言培训不是很重要,应该注重单片机的学习,但我觉得c语言也很重要,还是刚才那句话:如果你的程序写的很健康的话,会节约很多调试时间

所以这篇文章,我会以一个计算机专业学生的角度,用我的专业知识,给非cs专业、编程基础比较薄弱的电控组同学一些建议和经验,完全是一家之言,能力一般,水平有限,希望大佬们批评指正。

1 程序低耦合

当你的代码出了问题,解决的过程分为两个步骤:1、发现问题;2、解决问题;

我的个人经验,第一个步骤至关重要。如果你没有很好的定位问题、那么何谈解决问题,你在解决所谓的问题时,可能治标不治本,同时又制造了更多问题。最后就像那个笑话说的一样,你写了一堆bug,它刚好能运行。

然而如何高效的定位问题,就需要你的代码写的要易于调试。如何易于调试,需要你的代码具有低耦合性(大二水课UML终于发挥了一点用处)

举个例子,这是一个真实的例子:有个哥们轮子PID怎么调都调不好,最后调了几天,发现是编码器线接触不良。

大家不妨想象一下,你如果遇到了这个问题,你会怎么分析。pid出了问题、无非是三种情况

第一、pid程序出了问题,公式写错了;

第二、编码器出了问题,输出的值不对;

第三、电机pwm出了问题,波形不对或者给反了;

那个哥们就死活找不到问题,因为他的pid程序是用一个函数封装的,调的都是底层库,写的很混乱。

如果他把pwm的程序封装、编码器的程序封装,然后pid程序里调用这两个函数,出了问题后,分别调试pwm和编码器的程序,如果没有问题,那就是pid的问题,如果出现了问题,那就是各自的问题,这样就能很好的定位问题,从而解决问题。

这种函数分布写的方式,就叫做低耦合。你的程序由一个个模块组成,一块一块的,能够及时更换、调试。(当然高耦合也不是坏事,高耦合的程序效率高,省去了调用的时间,但是我还是不推荐,我认为就大学比赛而言,易于调试>效率)

还有我自己的例子。我打智能车,我们组电机驱动中途改了(原来是单路pwm+标志位,改成了双路pwm)我仅仅是改了pwm的封装函数,上面的所有程序没改,我的代码依然运行的好好的,pid参数都不用改。

--------------------------------------------------分割线----------------------------------------------------------

睡觉了,有空再写。。

2023/3/25

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值