电子设计竞赛:某大一新生从初战到失利的实战经验
电子设计竞赛初体验+复失利盘—经验一览
(是什么,为什么,如何实现)
笔者所在学校的电子设计竞赛校赛刚刚测评结束。很不幸,尽管笔者小组在调试环节成功运行,但比赛阶段由于没及时发现小车上的脱线问题,导致比赛严重失利,仅获得基础分数。但失败总是有的,尽管结果不尽人意,但仔细回想,这一个月里,为此也在实践中学习,和总结出了很多的经验,吃了很多教训。故为了给自己交代,也是未来以后不再吃同样的亏,特此写该文章作为记录,也希望能帮到更多对电子设计竞赛迷茫的准大一新生和电赛新玩家。
以下是赛题:

以下为个人总结的这段时间的学习心得和感悟:
1.状态机。
在判定什么时候该执行什么内容时,if-else的层层嵌套无疑是繁琐且可修改、调试性差的。所以如果引入状态机,在事先画好各种可能状态,并编写为可调用的代码,便可以大幅精简代码并使代码具有更强的可调试性。

使用方式:建立结构体+switch语句
2.PID调参和控制代码。
小车每次偏差大->比例项过大导致超调,减小kp
小车在稳定后始终稳定在一个较大误差->积分项过大,减ki
小车反复抖动->不平滑,需要调整微分项kd
3.控制:开环控制和闭环控制
开环:仅进行输出端的输出功率控制,适用于无需精确利用数据的地方,如简单控制提升小车速度。(可惜的是,由于基础硬件问题,我们使用的直流电机难以进行闭环控制,只能采用开环控制)
闭环:需要时刻接收和处理小车、无人机的电机转速来实现精确控制转速,乃至坐标,旋转角等刚需数据的地方。
4.MPU6050的读取、姿态解算以及滤波(卡尔曼滤波和互补滤波)
MPU6050作为三轴加速度计和陀螺仪,在需要精确旋转角的时候可以通过计算加速度积分来得出偏航角yaw,从而保证角度;在平衡车项目里也可以采取读取俯仰角来结合pid精确保证小车稳定。
5.小车制动的重要性
实践中发现,小车在到拐点处往往会有冲出拐点的可能,导致摄像头无法真正在需要的点位扫描图像。因此,实现减速并非纯粹使速度降为0,而是利用瞬时反向速度回拉+短时间降速为0来实现制动
6。文件备份以及模块、功能改动的标注
笔者发现,要想完成赛题这种需要多个模块结合的调试,仅作一个文件来在一个代码反复增减,往往会出现下一次不知道哪里就改出问题的情况,也可能在某一次改动导致某一变量被删除导致代码出问题。因此,记录每一个文件版本,并做好每次改动内容及注释是非常重要的。

7。Ai辅助编程:
要求越细致详细越可能成功,但要注意的是ai往往可能把线接错或者某些地方的逻辑不对--------解决方案:多问ai代码逻辑,多检查每次增删内容。
8.灰度传感器如何实现误差值的反馈:权重分配
|
传感器 |
X1 |
X2 |
X3 |
X4 |
X5 |
X6 |
X7 |
X8 |
|
权重 |
-7 |
-5 |
-3 |
-1 |
1 |
3 |
5 |
7 |
9.蓝牙串口调参?(值得学习)
远程调参,在手机上观察参数比电脑接线来一边跟着跑一边检测要更方便也更现实
10.接线记录
接线拍照记录防止掉线忘连(飞线的弊端)
11.模块化的必要性
逐个模块功能分开测试,从最基础任务测试起,不要求直接按项目要求去做。
12.多级菜单
复杂任务,可以学习oled多级菜单来进行对每个单模块的测试
Oled:人机交互的最直接通道。
结合多级菜单,则可以在复杂项目中逐模块调试,检查哪些模块真正出问题了,导致实际成品出问题
13.治理ai(防止幻觉)
Ai很多时候是具有幻觉的,这时候
软件层:须结合老版本或者商家代码去测试,并逐行比较
硬件层:电池电量是否足够?接线是否正确?串口回传的数据如何,是否和预期的参数都一致?
14.整体思路
框架构思->代码了解(模块是干什么的,如何工作的,如何在代码中实现?:结合商家资料和代码理解,加以ai辅助)->硬件基础调试->结合串口回馈数据进行实际对比->实际演练中暴露出什么问题?
15.Ai使用
ai加智能体可以做到帮忙增减文件代码内容,非常方便,但同时也要时刻注意ai的理解逻辑。Ai逻辑往往和实际需求有所偏差
16.整理自己对整个任务的逻辑规划以及设计设想是,对实操的时候有一个明确的指引
17.勇敢推翻自己原定的设想,有时候看起来“笨”的方法反而更容易实现,效果更好,但相对应的鲁棒性可能相对差点
18.程序滤波
很多时候,实际物理场景会出现偶然的数据抖动,这时候需要加入软件层面滤波:从多次裁决(如50次取35次才算成功)到卡尔曼滤波这种基于预测的滤波方式来防止现实抖动
失利复盘:
在本次比赛的调试环节,小车可以正常运行,但在测试阶段,却重复出现问题。经事后检测发现,仅仅是因为线脱落,这也是我们最开始在队内缺乏硬件选手,即可画电路板的组员这样的情况下做出的选择埋下后患的实际后果。由此得出,一个成熟的电赛团队,不可或缺一个有能力的会画电路板的硬件选手。因此,笔者虽攻于电控层面,但同样也在本次惨痛教训后决心要掌握电路板设计和绘制。
以下附上本次制作的小车,留作第一次参加电赛的经历纪念。

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)