(1)图像出现卡帧现象
图像卡帧情况的出现大多数是因为某段代码的循环有bug,程序一直在重复一个很冗长的循环,导致程序运行时间很长。部分图像不能得到解压,从而导致图像出现卡帧现象。这种情况需要找出有bug的循环代码,可以通过一个计算程序运行时间的程序语段来计算各个子程序的运行时间,找到运行时间不正常的程序,然后进行修改。
(2)车模加速冲出赛道
有时车模会以非常大的加速度冲出赛道,但是舵机和摄像头等均正常工作,在摄像头的舵机都正在工作的情况下,出现这种情况可以基本排除程序跑飞的可能。很有可能是编码器接口的松动导致,因为编码器一旦检测不到值,车模当前无论跑多快,速度都会显示为0。在闭环的条件下,电机得到的偏差就会很大,在p项的作用下,车模很快就会达到限幅的占空比值,因此表现出急剧加速现象。
(3)车模在直线行驶时抖动
对于车模走直线时抖动,不断调整控制参数也不起作用的情况,可以再次检查一下摄像头图像是否正常,通过尺子辅助将车模摆在一条长直道的赛道中心,通过上位机观察中线值是否都在80左右,不超过±3的波动。出现这种情况很有可能是摄像头没有校正好,或者摄像头没有固定好,在车模运行过程中发生松动,导致摄像头不居中,车模在行驶过程中无法走直,导致舵机不停地打角来修正路径,因此出现抖动的情况。
(4)车模有时出现程序设定以外的情况
车模有时出现突然反向转向、突然失灵或者突然加速冲出赛道的情况,但程序检查调试没有bug,硬件也没有问题,此时可以考虑是否是实验室的电磁干扰问题。由于实验室仪器设备较多,不同组别的队伍同用一条赛道,导致整个场地的电磁干扰十分严重,从而使单片机或主板上部分元件短暂失灵。解决方法是用锡纸在车模上制作一层屏蔽层,且屏蔽层接地。(www.xing528.com)
(5)车模行驶中突然停止
车模在冲击较大的路段出现突然停车的情况,很可能是电路板误接触的原因。一般为了降低整车重心,主板都会放得尽量低,同时主板上的电源线一般都会画得比较粗,电源相关焊盘也会比较大,在小车颠簸的情况下,这些裸露的焊盘碰到小车底板上的金属器件,就会导致电压掉电从而突然停车。
浮点数精度带来的一个麻烦是,当两个浮点数进行逻辑运算时,可能出现问题。具体解释就是,人为认为相等的两个浮点数,在单片机中实际是不相等的。
(7)break语句引发的问题
为了节省CPU资源,一些循环语句经常会配合break语句一起使用。但是当循环嵌套时,break语句的位置若设定不对,则很容易导致长循环或死循环的出现。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。