基于Arduino的《电子设计实践》课程教学改革

2019-01-22 06:54王凡周文辉刘保军刘金华彭芳
现代计算机 2018年35期
关键词:电子设计开源超声波

王凡,周文辉,刘保军,刘金华,彭芳

(电子科技大学中山学院,中山 528400)

0 引言

作为计算机、自动化、机械等非电类理工科重要实践课程,《电子设计实践》旨在学生完成电路分析、模拟电子技术、数字电子技术课程之后,能够理论联系实际,在实践课程中运用所学的电路知识,设计并制作出具有一定实用价值的电子产品,从而提高学生的动手实践以及科学创新能力。然而对于非电类专业的学生在学习《电子设计实践》的过程中主要出现以下不足:

(1)相对薄弱的电路知识。对于非电类的理工科学生,由于电路类课程的学时一般都比较少,并且没有高频电子线路等后续课程。学生在课堂上多为传统灌输式教学,又缺乏对应的实践课程,使得学生一直处于被动接受状态。特别是随着课程的深入,学生累积的问题愈来愈多。

(2)原有的实践课程多以验证型的实验为主,所选取的实验内容已经无法反应当今电子技术的进步。并且实验所用的电子制作大都可以在网上买到半成品,学生只需要简单的调试即可完成,实际并未真正参与到设计与制作的整个流程之中。

(3)学生在选择电子设计类的毕业设计题目时,往往出现无从下手的局面。多数会重复往年的课题,达不到毕业设计对于学生创新能力的要求。

针对上述这些问题,很多高校都建设了创新型的新型实验室[1],采用单片机或PLC等设备作为电子设计的核心控制器。但是这些实验设备往往出于统一性与模块化的考虑,所有的扩展电路都必须采用相同的模块设计,导致了设计内容的单一。随着近几年开源硬件的兴起,本文提出了一种将开源硬件Arduino作为核心控制器应用于《电子设计实践》课程的教学改革,让学生通过完全自主的选题与制作,实现主动学习,从而培养其创新思维。

1 Arduino的特点与优势

1.1 Ardduuiinnoo简介

Arduino是一个诞生于意大利的教学用开源控制器,目前使用最广泛的Arduino UNO主控板采用AT⁃mega328处理器作为主控单片机[2]。在这块处理器的周围有14个数字输入/输出端口,6个模拟输入端口,6个PWM输出端口,2路外部中断,并且支持SPI、IIC、UART通信,其结构如图1所示。2005年,Arduino开发团队采用CC授权方式在网上公开了硬件设计图,这样任何人都可以复制生产Arduino电路板,而无需任何费用。Arduino在全球范围了推动了开源硬件和创客运动的快速发展,其应用范围可以从3D打印机到四轴飞行器这些最流行的电子设计,使得Arduino成为了一个开放的电子开发平台。

图1 Arduino UNO结构图

1.2 Ardduuiinnoo的优势

采用Arduino进行电子开发,不需要了解控制器的内部结构和寄存器设置;Arduino语言基于AVR-Libc这个优秀的开源项目,其编程语言的风格非常类似于C语言,使得学生非常容易上手。同时在全球有着大量的Arduino开发者,他们提供了众多的开源实例和第三方硬件,在GitHub就可以找到非常丰富的类库。这样使用者可以快速地扩展自己的Arduino项目功能。

2 实践课程设置

为了提高学生的自主学习和创新与动手能力,在《电子设计实践》课程中采用项目驱动的学习方式。即结合学生的爱好、专业而自主选择理论与实际结合具有一定研究价值的课题。

2.1 课程设计

在课堂开始,首先需要激发学生的兴趣点,才能达到“做中学、玩中学”的效果。教师需要收集大量Ardu⁃ino的现有实例,特别是与手机、玩具结合的情况。让学生可以利用Arduino去实现自己的兴趣。

课程初期,学生对于实验设备和所需要使用的仪器还比较陌生。教师需要对基本电子元器件辨别以及使用进行一定的讲解。学生经过初期的学习之后应该对电子设计的基本流程、常用工具、仿真软件、调试与故障排查都能有一定的了解。

课程中期,需要对Arduino进行概述讲解。虽然无法面面俱到,但是主要功能都要有所涉及,包括了数字与模拟I/O的基本使用,串口的输入输出,PWM的使用,以及第三方扩展库的使用。在讲解的过程中教师应该同时使用硬件进行相应的演示,让学生可以体会到开源硬件的便利与优势。

在学生掌握了基础知识之后,就可以根据自选题目再继续深入研究。此时教师的角色将从授课者变为了辅助者。不再需要由教师来讲解具体的电路知识,而是引导学生去自主解决电路设计与制作遇到问题。

传统的实践考核方式很大程度采用最后的实践报告评分来体现,而改革实践评分应注重整个项目环节,对于课堂考勤、资料收集、电路设计、模拟仿真及最终作品完成情况都需列为考核环节,并且最终对设计作品进行答辩。以百分制的考评机制,促进评分的精确与细化。

2.2 课程实施

学生自由组成小组合作完成设计。若学生的自拟题目具有可行性,应该更多鼓励学生的自主选题。教师在选题时可以预先准备好大约40个不同的设计,准备的课题应该符合以下几个要求:①趣味性,题目应该多结合生活实际,能够激发学生自主学习的兴趣;②均衡性,不同的题目之间的难度不能相差太大,要考虑到学生的知识储备,动手能力;③扩展性,题目需要具有一定的开放性,学生可以根据自己的想法对项目进行一定的扩展。④协作性,每个小组的人数需要合理安排,在整个项目完成过程中需要有软件仿真,软件编程,硬件制作等环节,因此每组人数不能超过4人。这样在整个的实践过程中每人都有自己的任务,同时又锻炼了团队合作能力。

在小组选定好课题之后,所有组员通过讨论分配任务,并开始撰写实践项目设计书及预算编制表。从分配任务到课题答辩之间会安排大约1个月的时间,在此期间教师每周会安排至少2次的答疑时间,以帮助学生解决设计中遇到的问题,从而推进项目的正常进行。

2.3 项目举例

基于Arduino友好的硬件支持环境以及代码驱动资源。可实践的项目非常丰富。利用传感器所采集的数据,可以显示数据或者控制机械。

以超声波测距倒车雷达作为实践项目之一,引导学生进行项目分析,得到其目标为采用Arduino为系统核心,使用超声波传感器,通过监测发射一连串调制后的超声波及其回波的时间差来得知传感器与目标物体间的距离值。并将传感器所接收的信号在Arduino的处理后通过LED数码管实时显示出来,当检测距离小于或等于设置值时,提供蜂鸣器报警。其系统构成如图2所示。

图2 超声波测距的倒车雷达系统组成

采用Arduino作为主控制板,主要负责信号的采集与处理,在控制的过程中可以采用模块化的思想,将功能需求采用层次化的形式表示处理,如图3所示。

图3 声波测距的倒车雷达系统功能分解

通过对具体项目功能的逐步分解,其设计涉及到模拟电路,数字电路,C语言,传感器技术等。教师可帮助学生将复杂问题分解为多门课程的有机结合。其具体实现可分解为:

(1)超声波传感器测距

超声波是频率很高的声音,其频率超出了人类可以听到的声音的频率范围。一个超声波脉冲通过超声波传感器的一个元件的转化器发出,当超声波碰到物体时发生反射,通过同一个转化器得到回声[3]。通过计算脉冲的往返时间,可以计算传感器到反射物的距离。其具体计算公式为:

其中L为测试距离;Δt为发射波与反射波的时间间隔;C0为超声波在常温下干空气中的速度,一般取340m/s;T为绝对温度。

URM37 v3.2超声波传感器使用工业级的AVR控制器作为主控单元,内置温度传感器辅助校正距离值,具有RS-232和TTL电平的串口,可以通过电脑串口采集数据。同时传感器具有PWM脉宽输出模式,可以使用Arduino直接读取脉冲。

(2)LED数码显示设计

LED数码管常用段数一般为7段有的另加一个小数点,LED数码管根据LED的接法不同分为共阴和共阳两类。项目中采用共阴极的7段LED数码管。由于采用了多位LED显示,所以采用了Maxim公司的MAX7219芯片作为LED驱动。MAX7219为紧凑的串行输入/输出共阴极显示驱动器,用于连接微处理器与8位7段LED数码管显示器、条形图显示器或64个独立的LED。器件内置BCD B码译码器、多路复用扫描电路、段和位驱动器以及存储每位数字的8x8静态RAM。只需一个外部电阻即可设置所有LED的段电流。

在本项目设计中,由于使用了LED显示,所以要确保Arduino的库文件夹中已有LedControl.h库。生成LedControl对象并且设置到用到引脚和芯片数量[4]。

LedControl lc=LedControl(DataIn, CLK, LOAD,NumChips);

为了确保显示可用,需要设置亮度为中间值,清除显示器显示。

lc.shutdown(0,false);

lc.setIntensity(0,8);

lc.clearDisplay(0);

为了将平滑处理后的传感器数据在LED 7段数码管上显示,定义一个displayDigit()函数,参数为一个浮点数,通过setDigit函数显示每位的数字。

(3)可调节报警设计

作为倒车雷达对使用者的警示作用,项目设计中通过一个可调节的变阻器来调整报警传感器的范围,当距离小于或等于设置范围时将提供蜂鸣器报警。

设计中将定义一个readPot函数用于从变阻器中读取设置。

float readPot(){

float potValue=analogRead(potPin);

alarmRange=500*(potValue/1024);//把变阻器读出的值换算为传感器测量范围

return alarmRange;}

当传感器的测量值小于或者等于alarmRange的值时,将调用自定义的startAlarm()函数。

将完整控制的代码通过Arduino的IDE环境烧录到控制板之后,将会实时显示距离障碍物的距离,当与障碍物距离小于或者等于报警设置值时,将会发出高低起伏的报警。经学生调试组装之后的超声波测距雷达倒车系统如图4所示。

3 结语

基于Arduino的电子设计实践激发了学生对电子设计课程的兴趣,激发了学生的学习兴趣,促进了学生综合素质的培养。通过由学生自行设计、制作和调试的项目设计过程使学生得到设计思想、设计技能、调试技能与研究技能等一次较为全面的工程实践训练,有利于培养和提高学生的自学能力、设计能力和综合运用电子技术理论知识去分析和解决工程实际问题的能力。并且由于开源硬件具有的优秀扩展性,一定高水平的项目也适合于未来毕业设计的选题。

图4 超声波测距雷达倒车系统实物图

猜你喜欢
电子设计开源超声波
超声波诊断甲状腺结节的临床应用观察
基于焊缝余高对超声波探伤的影响分析
五毛钱能买多少头牛
2019开源杰出贡献奖
蝙蝠的超声波
一种基于通用面包板的教学模式应用
蝙蝠的超声波
大家说:开源、人工智能及创新
开源中国开源世界高峰论坛圆桌会议纵论开源与互联网+创新2.0
创新实践类综合素质项目教学模式与方法