王中心,刘飞彪,解 珂
(阜阳师范学院 计算机与信息工程学院,安徽省 阜阳市 236037)
“恩智浦杯”智能汽车竞赛是教育部自动化专业教指委主办,“恩智浦”公司协办的全国性大学生高规格赛事,采用校内赛、赛区赛直到全国总决赛的形式。智能车竞赛从车模搭建、电路板设计制作到路径算法及程序调试,整个过程准备时间长,涉及以计算机专业为主的多个学科,综合性强,可以锻炼学生的创新力、意志力及养成良好的任务分工协作能力。从2006年首届竞赛到2017年第十二届竞赛,平均每年参赛学校达600余所、参赛学生达万人以上。
目前计算机专业学生综合实践能力培养存在的问题[1]主要有以下4点:
1)学生欺“软”怕“硬”,遇到软硬件一体的工程设计则无从下手;
2)教师在教学内容上偏理论化,特别是与具体工程项目相关的实践环节上;
3)课程知识体系相对独立,缺乏系统性规划;
4)学生存在综合素质与知识结构方面的缺陷,解决复杂工程问题能力差[2]。
针对现状,全国各个高校也在不断地进行各种教学探索与改革,教育部也在国家级层面提出了新时期新工科建设的要求[3];同时教育部也启动了“系统能力培养——专业课程体系改革及课程建设”项目,旨在提高学生解决复杂工程问题的能力、多专业知识交叉融合的能力、团队合作能力及最核心的学生学习的能力[4-5]。通过多年指导“恩智浦杯”智能车竞赛,已发现通过该竞赛项目非常有助于培养计算机专业学生综合实践能力。
“恩智浦杯”智能汽车竞赛采用指定的车模,利用恩智浦半导体公司的各种控制芯片,要求小车能够根据指定道路自动行驶。该赛事是以迅猛发展的汽车自动驾驶为背景,涵盖了计算机、机械、电子等多学科交叉知识,其主要内容包括路径识别、角度控制、平衡控制及车速控制等,以最短时间按规则跑完赛道为胜[6]。同时为增加乐趣,该赛项还增添了创意赛,学生可以根据自己的创意和想象力完成具有一定功能的与智能车平台相关的竞赛装置,极大地提高了学生学习热情。智能车竞赛涉及的相关学科如图1所示。
图1 智能车竞赛涉及的相关学科
由图1可以看出,在智能车的设计过程中涉及计算机、仪器仪表、机械设计、电子电气及自动化控制等多个专业的知识,综合性很强[7];从内容上涵盖机械结构、电路设计、信号分析、数学建模、控制理论及嵌入式编程等;从涉及的元器件上包含NXP的多系列控制器,驱动部件如直流电机、舵机,各种类型传感器如陀螺仪、加速度计、摄像头、CCD、电感等,其他各类型芯片如电源芯片、驱动芯片及各种运放及基本的电容、电阻等。
工程实践上含智能车组别选择、方案设计、器件采购、原理图设计、PCB设计制作、电路元件焊接、系统组装及调试等环节。除此之外,在智能车设计过程中还要考虑到设计成本、车模的稳定性、对赛场环境的适应性,甚至车模重量、悬挂、赛道摩擦力等细节的东西。整个环节通常要历时半年甚至更久。整个过程对于参赛学生意志力的考验、学生对各个专业知识的综合运用能力、特别是路径识别车模控制算法的提升有极大好处。一次智能车竞赛,学生得到脱胎换骨的体验,无论从理论知识的获取还是实践能力的提升,都取得了极大进步。竞赛培养了学生坚韧不拔的意志及勇于探索的精神,提升了自我解决工程问题的能力,还体验了团队合作的快乐[7]。
在智能车设计过程中,涉及的知识点主要包括C语言编程、PROTEL或AD制图、电子技术,单片机技术、数字信号处理、图像处理、嵌入式开发与自动控制技术等。这些知识点几乎全部出自计算机专业所开设的课程[2]。这些课程主要涉及公共基础课、专业基础课和专业课,如图2所示。因此通过智能车竞赛的平台有利于学生对这些课程知识的综合实践应用,有利于学生实践能力的提升。教师在进行这些课程教学时也应主动添加一些与智能车设计相关的实践应用案例,激发学生学习及参赛的兴趣,做到以赛促教、以赛促学、以赛促改,以竞赛为推手,促进教学相长[8-9]。
智能车的设计过程体现了以计算机为主的相关学科专业知识的综合应用。智能车设计的目标任务就是在汽车模型上以摄像头、CCD线性传感器或者电磁感应传感器为感应手段,通过单片机计算,驱动模型车在具有多种元素的道路环境中行驶,以速度取胜。因此必须深入分析如十字、环形、人字形、直角弯等道路元素特征,才能设计出有针对性的路径识别方案;必须清楚认识运动稳定性和加速特性才能挖掘车辆速度潜力;必须在学习了基本模拟/数字电路基础上,学会如何滤波、抑制温漂及干扰,电路才能稳定;必须在图像处理中做到对赛场光线强弱的自适应;必须了解车模的机械特性,建立相应数学模型,才能设计出合理的控制方案。此外还有不少的非线性问题需要处理,如加在电机的PWM与实际车速等。
基础课专业基础课专业课高等数学大学物理计算机基础C程序设计电路分析模拟电子技术数字电子技术信号与系统计算机组成原理传感器技术自动控制原理嵌入式系统应用数字图像处理
知识点应用电路设计C语言编程数据采集车轮参数定位闭环控制信号调理信息提取参数优化
图2智能车设计相关计算机专业课程
在智能车设计过程中需要队员掌握多种现代工具(如测量仪器、CAD等)。开发方面,硬件包括基础的示波器、信号发生器,到嵌入式MCU调试使用的JTAG、BDM,以及软件集成开发环境IDE、GCC工具链等等。需普遍掌握基于模型的CAD方法,如电路建模仿真的PSPICE、Multisim;机械结构设计的ProE、AutoCAD;图形算法模拟计算的MATLAB等[10]。不少成绩好的团队开发了软件模拟的算法验证平台,如基于VB/VC的软件“虚拟车”验证基础算法等。
智能车设计制作过程需要考虑多方面的技术、工程和其他因素,并可能相互有一定冲突,如行驶速度和稳定性、车模重量与加速度能力、道路识别鲁棒性和复杂性等。控制精确性与车速之间、光学条件和摩擦力等与控制的鲁棒性之间均有冲突。任何团队都面临着传感器、控制器、车模等各自的差异性问题,从而带来程序调试过程的独特性,均需要采用不寻常的方法进行调试和解决。追求高速的团队,一定需要有自己独特的方法以适应不同的光学环境、摩擦系数和障碍躲避等,这就需要学生不断进行创新性思维及各种参数的调试验证[11]。
智能车竞赛是一个较大的项目运作过程,过程中需要不同学生担任不同的角色,承担不同的任务分工,最后通过大家的相互配合完成。这一过程锻炼了学生的协同工作能力、交流沟通能力,有助于养成良好的团队意识;更重要的是学生通过竞赛享受到自主学习的快乐、培养了自主学习和终身学习的意识,具有了不断学习和适应发展的能力。