技术文章和通讯

一年级与MATLAB计算机编程类,添加有趣Arduino微控制器和模型火车

俄亥俄州立大学洛厄尔汤姆斯和达斯汀·西,


俄亥俄州立大学的一年级工科序列是旨在让学生了解大多数大学提供的工程学科。面临的挑战是保持学生的兴趣,并防止第一年变成痛苦的艰难通过核心科学和数学课程。我们如何解决这个挑战?我们让学生玩列车,同时教他们基本使用MATLAB编程技能®

1700年的学生同上1181:基础工程每年不仅学习MATLAB工程概念和基本的计算机编程;他们还完成最后一个项目中,他们为一个N量表开发一个控制器使用MATLAB和Arduino训练集®单片机。这个项目能让学生展示他们所学到的。这也给了他们第一次有机会体验的快乐工程通过观察他们的努力的结果来生活在实验室里,我们经常看到学生跳跃和欢呼,因为他们看到他们控制算法为第一次工作。

学习MATLAB编程

他们解决培训项目之前,学生学习测量、绘图,数据分析,和其他核心并行工程概念与编程的基础知识。在MATLAB实验作业加强编程课程,涵盖数组、字符串、循环、逻辑表达式、条件和其他结构。

大多数学生的课程很少或根本没有编程经验。我们发现,MATLAB是一个很好的学习第一语言。MATLAB交互式比C和类似的语言,不需要编译和有更少的学生掌握的低层细节。一旦他们了解基本的编程概念在MATLAB中,学生学会快速将它们应用在其他语言。MATLAB也是理想的工程师1181因为它是俄亥俄州立大学的所有工程学科。

用MATLAB控制列车和Arduino硬件

学生开始训练项目在第十一周的课程。他们的目标是开发一个MATLAB控制器与一个Arduino单片机与火车和它绕一个圆形轨道。Break-beam传感器单独跟踪到一个“城”部分和“国家”部分(图1)。当列车进入城市,MATLAB代码必须减少火车速度,开始穿越公路闪光,然后穿过门后一秒钟延迟下降。当火车离开了城市,进入国家,MATLAB代码必须提高火车速度,关掉闪光,并提高门口。

图1所示。N量表火车在实验室里设置。
图1所示。N量表火车在实验室里设置。

在四组工作,学生们使用MATLAB和MATLAB支持包Arduino硬件编写一个程序,与Arduino Uno通过串口进行通信。金宝app程序检查break-beam传感器的状态通过Arduino的数字输入,并使用Arduino的数字输出闪光led和操作提高和降低门的伺服电机。

在三个实验室会话,学生们实现MATLAB控制算法。这些通常包括一个环形轮询与条件检查传感器的状态和逻辑管理伺服系统和led灯。

对许多学生而言,最具挑战性的项目正在实施一个非阻塞的延迟,需要闪光发光二极管和降低门后一秒。学生们发现他们不能使用MATLAB暂停()功能,因为该算法可能错过传感器输入而暂停执行。相反,他们学会使用MATLAB抽搐()toc ()函数的时间延误而不中断循环轮询(图2)。

图2。学生代码使用抽搐()和toc()来实现非阻塞延迟。
图2。学生代码使用抽搐()和toc()来实现非阻塞延迟。

建立一个模拟器调试和独立工作

安排实验室时间1700名学生是一个巨大的挑战。我们实验室有18个表空间,每个一列火车的设置。四人团队,我们可以容纳72名学生。长时间等待实验室进行了更长的时间,因为学生不得不做所有调试一个实际的火车上设置在实验室。另一个问题是,每一个成员团队通常有编程experience-tended做大部分的工作,而其他三个关注。

为应对这些挑战,两个研究生在MATLAB开发训练模拟器,模拟火车在实验室设置(图3)。模拟器使用MATLAB图窗口画出轨道,火车,break-beam传感器和门。学生们可以使用模拟器调试控制算法代码,然后使用相同的代码在实际训练集。团队然后实验室时间优化算法而不是调试,大大减少每个团队需要的时间与实际列车。进一步,我们现在可以给学生完成作业独立使用模拟器,确保没有一个程序员做所有的工作。

图3。MATLAB训练模拟器。
图3。MATLAB训练模拟器。

MATLAB在第二学期

工科学生继续使用MATLAB同上1182:基础工程2。在本课程中,学生必须设计和构建一个先进能源车辆使用尽可能少的力量和它绕一个单轨轨道。学生在MATLAB分析能耗使用电压和电流测量记录由Arduino Nano安装在车辆上(图4)。

图4。单轨车辆和MATLAB接口用于情节功耗,距离,速度,动能,能源效率作为时间的函数。
图4。上图:单轨车辆。底部:MATLAB接口用于情节功耗,距离,速度,动能,能源效率作为时间的函数。

阶课程和毕业capstone项目,学生建立他们的技能在MATLAB开发的整个一年级的工程项目。例如,在同上2167:数据采集与MATLAB,学生探索数据采集(采集)设备的使用,包括usb - 6009和myDAQ从民族乐器。在一次锻炼,一个球是通过垂直下降管内衬break-beam传感器(图5)。使用采集设备与数据采集工具箱™会话模式,我们收集的数据传感器以每秒20000个样本。我们使用MATLAB计算球的速度下降,并比较结果在真空中球的速度下降,从牛顿定律计算。

图5。采集设置测量的速度使用MATLAB和数据采集工具箱坠球。
图5。采集设置测量的速度使用MATLAB和数据采集工具箱坠球。

击掌和其他积极的反馈

在第一学年结束时,学生有扎实的掌握数据分析和MATLAB编程,了解向量,索引、循环和条件的工作。火车项目不仅导致击掌在实验室里,但也非常有利的评论从我们的学生。

采用一年级以来工程课程与MATLAB序列,一个更高比例的学生选择继续在工程项目。我们相信保留率的增加在一定程度上是由于学生们经历过的满足感面临和克服在第一年的真正的工程挑战。

关于作者

洛厄尔汤姆斯程序支持专家在俄亥俄州立大学工程学院。金宝app

达西是一个研究生教学助理在俄亥俄州立大学工程学院。

2013 - 92134 v00出版

查看相关文章的能力