池远猜测,问题可能出在飞控核心,stm32单片机上。
(单片机又称单片微型计算机,可以写入控制程序。)
(而芯片大多数是不可以写入程序的,它们在出厂的时候已经设置好,功能相对单一。)
单片机有两种故障可能:
一是烧录程序并调试过程中,出现了被他忽略,但飞行过程中影响颇大的错误。
二是编写的程序,本身存在bug或巨大误差,也就是算法不够完善。
飞行姿态控制这个问题,困扰了他很久。
为了排除故障一。
他硬着头皮,学习了一大堆计算机硬件大学知识。
本来以池远硬件初学者的水平,应该使用入门级的51单片机或者上手更容易的arduino。
(只要懂一点硬件和c++就能开发)。
但是,这只小火箭对他意义重大,他想要竭尽全力、尽善尽美。
其中,要想让固体火箭准确抵达目的地,对计算和控制有更高的要求。
因此他选择倾向实际产品研发制造的stm32单片机。
好吧,难度陡然提升。
池远又花了 亿点点 时间,恶补相关知识。
软件,c语言方面,池远基本过关,问题在硬件部分。
哇,其中涉及的知识之多,之陌生。
首先要掌握前置知识——
计算机基础知识(硬件反面):微机原理。
电路基础知识:数电、模电。
之后便是不断尝试,失败,纠错,总结。
玩开发板、单片机的,一开始上手练习,作品没有,单片机倒会烧掉一个又一个。
实际做起来,不比物竞简单多少,只是更注重实践。
当他在实践过程中遇到问题,那就逛各大电子论坛。
不行他就去打扰自己的老爸老妈。
很好,将stm32单片机搞明白。
但是,最近一次试飞,依然失败告终。
这样一来,故障一排除。
“所以,问题出在算法程序……我还得研究飞控算法是吗?”
他嘴角露出苦笑。
涉及什么什么算法,那都是要杀死一片片脑细胞的玩意!
不过都到这了,怎么可能就这样止步。
池远决定直接挑战。
消除恐惧的最好办法,就是面对恐惧!
深究算法中的不足,池远也意识到拿别人的算法省事,但终究是别人的算法。
使用环境并不一定一样。
“飞控算法……我使用的是,捷联惯性导航系统和卡尔曼滤波算法,还是不能偷工减料,自己写吧。”
池远翻看着密密麻麻试飞失败的数据,还是觉得一阵头大。