挑战自我的hard题目——新生杯的心路历程


“新生杯”电子设计竞赛是由电子科技大学中山学院星火电子社主办,面向全体大一新生举办的电子比赛。比赛意在给新生们提供了一个动手实践的机会,使大一新生们深入地了解电子知识,理解团队合作的重要性,从中获取更多的比赛经验,感受电子科技带给我们的魅力。

——星火电子社

引言

  随着闭幕式的结束,“新生杯”电子设计竞赛也终于告一段落。在比赛中,各组队伍各显神通,制作了各有千秋的作品。但是,在新生杯提供的四个选题中,大部分都选择了相对较容易的A题——简易倒车雷达。只有不到两成的队伍选择了其他更有挑战的题目并前来答辩。其中,我们就是选择D题——PPM制式全比例遥控装置并成功实现功能的唯一一支队伍。

新生杯参评作品分布图
新生杯参评作品比例

  说来惭愧,之所以选择D题,其中一个原因是D题的总分比较高(150分,其他题目是120分);第二个原因是A题对于有技术基础的队伍并没有优势,而选择D题则可以较好地展示队伍的实力。然而,这次略有些冒险的选择险些让我们与一等奖无缘。

选题

  首先,先让我们来看看D题的要求:

PPM制式全比例遥控装置试题1
PPM制式全比例遥控装置试题1
PPM制式全比例遥控装置试题2
PPM制式全比例遥控装置试题2

项目第一步——PPM编码

  题目中要求使用PPM制式对信号进行编码,并使用接收模块进行解码。简而言之,题目就是要做一个小遥控器和接收机嘛!依照题目里给出的参数,我们成功的使用ARM单片机成功调试出来了PPM波形(寝室里自备一台示波器真的很有必要,推荐电子类专业的同学有能力的都准备一台,可以帮助发现很多问题):

PPM波形
PPM波形,起始判定脉冲长度6.5ms,总长度22.5ms

  下面就是要做PWM解码部分了,考虑到我们队伍缺钱的传统,我们决定不买X宝上几十块钱的PPM-PWM模块,自己造一个出来。一开始我们使用Arduino开发板板载的AVR单片机进行原型机的开发。经过测试,如果使用AVR单片机作为处理芯片显然不合适,PWM输出接口接上舵机,已经抖动到姥姥家去了,看来还真得上ARM单片机啊……

初期测试场景
初期测试场景:左侧摇杆为模拟量输入装置,右上方Arduino开发板为临时性解码模块,示波器上的黄色波形为PPM调制波形,蓝色波形为PWM输出波形

  在之后的改进中,我们将接收端平台迁移到了STM32平台上,得到的接收波形果然就稳定了,舵机可以跟随摇杆顺畅活动,十分丝滑:

STM32方案的接收机
STM32方案的接收机(见左下角)

自创的通信协议——FreeWorm

  在此项目中,我们不可避免地需要传送数字信号(系统参数或数据命令),如果每个数字信号单独使用一路PPM通道就太浪费了。为此,为你们开发了FreeWorm协议。FreeWorm是为本比赛而自创的通讯协议,其使用PPM发射机的第七通道每11帧传送一个字节,可用于数据或命令的传送,输出稳定不易干扰。在使用此协议的数据包中,前8帧为各个通道数据帧,第9帧为校验信号,第10-11帧为同步信号。

数据帧的结构
数据帧的结构

  FreeWorm协议将一个PPM通道划分为16阶来传送,每两个数据帧之间设计了有规律的模拟信号“不连续”阶梯,可以在数据帧传送中实时自我校验完整性,即使同步信号缺失也可以计算数据传输的进度;并且两个数据帧之间梯度不连续,能有效解决模拟信号转数字信号中的抖动问题,具有一定的抗干扰性。

惊险的过程——投料制作

  在原型机上调试好程序,画好原理图和PCB板子,就可以把PCB文件发给工厂制作PCB板了。然而……

错误芯片封装
芯片都被你饿瘦了.jpg
错误摇杆封装
这摇杆也有毛病啊.jpg

  由于AD自带IC封装库中的LQFP48封装有两种,我们把封装选错了;摇杆的X宝网也很默契地把封装给错了,项目一度陷入停滞。(PCB投产前一定要打印覆铜层仔细检查!血泪教训!!)此时,已经是16日(周三)了,距离比赛答辩只剩下不到72小时了:重新打板,还能来得及吗?抱着最后一丝幻想,我们光速修改了PCB文件,确认了封装,当晚就提交给了PCB厂——谁曾想:为了省钱没选收费加急,厂商居然第二天晚上才让PCB下产线?

订单状态
中国制造太快了

  眼看着PCB打板交期要凉凉,我们又开始讨论起替代方案。最终,我们购买了几片LQFP48转接板,从四周飞线,算是勉强能解决问题。

飞线
飞跃无极限

  还好,这个不是办法的办法最后并没有用上。我们先引出了I²C总线,测试并修改了OLED外围电路部分的错误,使用原型机上的MCU进行测试,一切正常。现在是万事俱备,只欠板子了。

  答辩周六当天下午,板子终于发出来到了中山。我等不及快递发到学校了,直接打车奔往小榄附近的中转场提货。下午4:30,快件终于被找到了,等到回到学校,已经是下午5点了,距离答辩只剩下两个小时!

打车过程

  无奈,我们两人迅速分工,在一小时以内焊出来了一套完整的系统。在欣喜中加电测试,却发现OLED花屏、MCU毫无反应,简直是晴天霹雳!经过紧急排障,发现如果按住I²C总线的上拉电阻就可以让OLED正常工作,初步判断是外围电路的问题。考虑到问题暂时无法解决,我们就决定先用手按住总线电阻临时性让PCB能够工作,同时辅以面包板原型机向评委进行展示。还好,评委比较注重系统功能完成度,整个新生杯也算是有惊无险地完成了。

(未完待续)

挑战自我的hard题目——新生杯的心路历程

发表评论

邮箱地址不会被公开。 必填项已用*标注

滚动到顶部