基于单片机技术与LabVIEW软件的项目开发与实践
2018-05-13蔡植善陈木生吴仲龙朱成全
蔡植善 ,陈木生,吴仲龙,朱成全
(1.泉州师范学院 物理与信息工程学院,福建 泉州 362000;2.泉州师范学院 信息功能材料福建省高校重点实验室,福建 泉州 362000)
现代电子电路系统的设计与实现,离不开硬件和软件的配合。硬件电路主要由单片机或嵌入式芯片及其外围电路构成;软件部分主要是系统软件和应用软件。本文所指的系统软件主要是指按键扫描、显示和音频驱动、传感器数据采集和通信接口等底层硬件的驱动程序,应用软件主要指数据存储和管理、控制算法的实现、数据输出和发布等功能程序。
应用软件的功能在很大程度上由上位机界面的人机互动功能体现出来。LabVIEW软件具有强大的数据分析和管理功能,方便设计出友好的人机界面,把LabVIEW技术和单片机技术相结合,可以发挥软、硬件各自的优点。如何在高校电类相关专业的单片机教学、课程设计、毕业设计以至科研项目中,把单片机技术、Proteus仿真技术与LabVIEW技术进行有机结合与训练,在应用与实践活动中提高学生素质,是值得探讨的问题。把课堂教学与实践教学结合起来,以培养创新创业型人才作为高等教育的目标和任务,使大学生能主动适应创新型国家建设发展需要,成为高素质创新人才[1-4]。
1 单片机技术的教学目的和特点
1.1 单片机技术的教学目的
单片机原理是电类专业的一门重要专业基础课程,单片机技术在现代电子电路中具有无可替代的作用,没有哪种智能仪器或智能设备可以离得开单片机。对于没有开设微机原理课程的专业来说,单片机原理也是学习计算机原理的一门课程。单片机原理课程的主要教学目的有以下4点:
1)学习和掌握单片机、微机的硬件结构原理;
2)学习和掌握单片机的汇编语言和C语音的编程和调试;
3)掌握单片机集成调试软件 (如Keil软件、Proteus软件)的调试方法;
4)掌握电子电路系统的设计和调试过程,培养学生发现、分析和解决问题的能力。
硬件原理和软件原理的学习是基础,会应用才是最主要的目的。如图1所示,单片机原理学习最终目的是要让学生掌握单片机技术的设计和开发能力[5]。
1.2 单片机技术的教学特点
从多年的教学、学生参加的各种竞赛与科研活动中,体会到单片机技术的教学有以下4个特点。
1.2.1 实践性
单片机应用技术是一门很感性的知识。单片机 “长”什么样,传感器电路、执行机构是什么模样,都要让学生在学习过程中有直观的印象。应用程序如何编写,集成调试环境IDE如何使用,单片机运行程序过程中存储器状态怎么观察等操作,都要让学生动手。所以,在理论教学时提倡实践性教学,在课堂上尽可能采用多媒体教学、实物教学和实例教学。增加实践课时,让学生在完成理论知识学习的同时,完成相应的实验和实践作品。
学生在教室里的时间应尽量缩短,尽可能避免去背那些枯燥乏味的知识片断,应多安排应用实践课时。参加过电子设计比赛和参与过教师科研课题的学生都会对实践有不一样的体会,因为实践的过程可以让他在不知不觉中掌握了知识。
这说明,一方面,只掌握纯粹的理论知识已经无法满足实际应用要求;另一方面,课程的学时数和现有的模式又无法使教师在课堂上有充分的时间拓展新的知识。学校为学生提供了诸如“大学生科研基金”“开放性实验”,提倡教师增加“综合性、设计性实验”在实验项目中的比例,都为学生多角度、多方位参与实践和创新活动提供了很多机会。教师也可以让学生更多地参与科研项目[6-8]。
1.2.2 培养学生的自主学习能力
自主学习能力在单片机课程中显得尤为重要。学生在学习单片机硬件原理、调试程序过程中,会遇到很多问题。这些问题和困难是否能得到及时解决,很大程度上取决于学生个体自主学习的能力是否足够强。问题的解决需要学生自主思考、查阅资料,甚至积极加入相关的学习群去请教“大侠”。如果学习问题无法得到及时解决,会影响学习效率,也会影响信心的建立,严重的话会让学生失去学习的信心。
反之,如果没有老师的指导和帮助,学生能够一点一滴自行解决问题,可以使学生提高效率,建立信心,达到熟能生巧、触类旁通的效果。在软硬件的调试过程中往往会遇到很多在教材、说明书上都无法找到的问题,需要学生依靠自主学习的能力来解决[9]。
1.2.3 认识和使用基本元器件
在接触单片机的初期,大多数同学对基本的元器件都认识不多,对贴片元件更是知之甚少。认识基本的元器件有助于把电路的理论原理与实际功能对应起来。如学习到7段数码管的动态显示编程时,如果不认识双联、四联数码管的结构和引脚分布,对动态显示原理就没有感性的认识,就不易掌握编程。又如学习到继电器控制时,学会用万用表测量常闭、常开引脚,就有助于理解弱电控制强电的原理。
1.2.4 小组讨论互相配合、取长补短
由于生理和心理的不同,男生和女生的兴趣和特长、能力特点各有不同。女生勤奋、细心,男生大局观感强、逻辑思维相对缜密。在学习过程中,鼓励男女生互相搭配,以3~5个为单位组成学习团队,有利于提高学习效率[10-12]。
2 LabVIEW和单片机在电子电路系统应用中的作用和分工
2.1 单片机的作用和分工
市场上主流的单片机不但包含着丰富的数字外设,如可交叉分配的I/O端口,标配的I2C、UART和SPI通信接口、可编程定时器/计数器阵列(PCA)、PWM驱动、看门狗(WDT),而且有多种模拟外设,如ADC、DAC、比较器、放大器甚至部分传感器,所以单片机就是个片上系统(SoC)。因此,其在电路中的分工有如下5点:
1)通过传感器对输入参数的数据采集;
2)与执行机构的信号连接与驱动;
3)芯片级或模块电路之间的数据通信;
4)与上位机之间的通信;
5)按键扫描和液晶显示。
单片机起到输入数据的采集、板上硬件电路的处理与协调和数据通信的作用。
2.2 LabVIEW的作用和分工
LabVIEW(laboratory virtual instrument engineering workbench)程序被称为VI(virtual instrument),即虚拟仪器。其核心思想就是 “软件即是仪器”,即把计算机强大的计算能力与外围硬件资源有机的整合成一个整体,充分发挥软件作用,同时也使硬件资源得到充分应用。
LabVIEW的数学计算和分析功能强大,便于建模和数据管理,两者结合,可以达到良好的控制效果。其在电路系统中的分工有如下5点:
1)对传感器采集的数据进行滤波处理和曲线拟合;
2)虚拟信号发生器;
3)数学建模,数据分析;
4)设计友好的人机界面;
5)接入互联网。
软件提供的子程序使得程序开发更方便[13]。大量的数据计算、存储和分析尽量由它处理。一个由LabVIEW和单片机的应用电路系统如图2所示。
图2 LabVIEW和单片机组成的应用系统框图
3 项目开发案例
3.1 直流电机的调速控制
本实验项目的意义更多在于基础训练,包括单片机C语言和LabVIEW的编程和调试。方案与图2相似,单片机采用STC89C52,电机速度和方向采用霍尔传感器采集 (或光电传感器),电机驱动采用L298N模块。通信接口采用RS232C,无需远程传送。
单片机把电机速度和方向数据通过串口发送给LabVIEW上位机,上位机经PID算法算出调速控制信号返回给单片机,由单片机经驱动电路调整电机速度,使电机速度快速达到设定的速度值并稳定,实现过程的闭环控制。PID算法是直流电机(或步进电机)调速控制及温度控制的一种经典控制算法,如果P、I、D参数整定合适的话,可以达到很好的控制效果。实际上,单纯由单片机完成PID控制也是一种常用方法,但对初学者来说,调试PID算法及整定合适的控制参数,是一个难点,过程长、花费时间多,效果还不一定好。如果把PID算法由LabVIEW承担,利用软件自带的PID工具很快就能编好控制程序。把P、I、D这3个参数通过前面板窗口进行设定和调整,可以使整个调试过程来得直观和高效,提高学生的学习兴趣。本实践案例中,单片机的程序不会太复杂,LabVIEW程序也不大,比较适合基础训练。
3.2 基于LabVIEW和ZigBee组网的火灾监测系统
这是一个有多位学生参与的科研项目,其成果已经得到了初步应用[14]。系统组成如图3所示。
图3 一种基于单片机和LabVIEW的应用案例
每个传感器节点终端都由测温传感器和一氧化碳传感器组成,ZigBee网络由传感器节点终端、路由器和协调器组成。一个网络中协调器只能有唯一一个,起组织和建立网络的作用;路由器视实际需要可以有若干个,主要起数据传递作用;传感器节点终端个数视实际需要监测的房间而定,每个终端监测的房间面积为30~40 m2,终端节点既可以采集数据,也可起数据传递作用。协调器负责接收各传感器节点采集的数据,并把汇集来的监测现场的数据,经过 RS232发送给 GPRS DTU,GPRS DTU通过GPRS无线网络把数据传输到Internet上指定的服务器,主控上位机经虚拟串口从上述服务器实时取回数据并进行数据融合,及时作出火灾危险性评价直至发出报警信号。方案中的温度值和CO浓度值由单片机采集,单片机把采集的数据通过ZigBee透传网络送到上位机滤波和存储处理。上位机软件由LabVIEW开发而成,如图4所示。方案中,传感器数据的滤波处理及关键的数据融合计算由LabVIEW完成。应用案例中,充分发挥了LabVIEW和单片机的各自优点,使报警系统的报警准确、及时,系统界面友好,易于使用。
图4 一种基于单片机和LabVIEW的应用案例
4 结束语
主流单片机都含有丰富的模拟外设和数字外设,便于数据采集、执行机构驱动和组成灵活的通信方式;LabVIEW软件平台易于编程,含有丰富的数学分析和信号处理功能,便于建模和程序实现。人机界面友好,网络功能多样。在本科二年级到四年级学生中,都可以引入单片机与Lab-VIEW技术相结合的训练项目,可以更高效地学习和开发创新、创业项目。
[1]王琼,盛德策,陈雪梅.项目驱动下的大学生创新创业教育[J].实验技术与管理,2013,30(6):99-101.
[2]梁勇.虚拟仿真技术在项目式综合测控系统教学中的应用[J].实验技术与管理,2013,30(3):82-85.
[3]戴一平.LabVIEW平台在教育技术学科实验教学中的应用分析[J].现代教育技术,2012,22(8):113-117.
[4]江敏,钱平.单片机教学向嵌入式教学转型的几点研究[J].电气电子教学学报,2005,27(1):33-34.
[5]苏检德,何富运,殷严刚,等. “单片机应用设计”课程教学改革与实践[J].实验技术与管理,2011,28(12):148-150.
[6]唐炜.基于 “项目驱动”的单片机类课程实践教学改革[J].实验室研究与探索,2010,29(5):130-132.
[7]陈森,张师平,吴平.基于课题型的研究性实验教学模式探索与实践[J].实验室研究与探索,2013,32(7):171-174.
[8]郑志远,樊振军,董爱国,等.设立实验室开放基金提高学生创新能力[J].实验技术与管理,2011,38(4):97-99.
[9]伍亚泰,徐聪聪,陈晓.高校学生自主学习能力培养的策略研究——以华南农业大学农学院为例[J].科教导刊,2015(11):38-39.
[10]贺雯.性别差异的研究及其对教育的启示作用[J].上海师范大学学报 (哲学社会科学版),2005(4):21-24.
[11]刘艳,闫国栋,孟威,等.创新创业教育与专业教育的深度融合[J].中国大学教学,2014(11):35-37.
[12]胡桃,沈莉.国外创新创业教育模式对我国高校的启示[J].中国大学教学,2013(2):90-94.
[13]刘晋霞,胡仁喜,康士廷.LabVIEW2012中文版虚拟仪器从入门到精通[M].3版.北京:机械工业出版社,2013.
[14]蔡植善,陈木生.多传感器数据融合的火灾探测报警系统设计[J].泉州师范学院学报,2015,33(2):72-77.