Author(s):
Jeff C. Jensen - UC Berkeley
Edward A. Lee - UC Berkeley
Sanjit Seshia - UC Berkeley
Industry:
Education, Research, Mechatronics
Products:
Statechart Module, Embedded Module for ARM Microcontrollers
The Challenge:
通过一系列面向机器人开发的实验室实践课程与团队项目,吸引电子工程和计算机科学学院的同学们积极投入嵌入式系统设计。
加州大学伯克利分校工程师采用专用于ARM单片机的NI LabVIEW嵌入式模块,对连接到iRobot Create移动机器人平台的Cortex-M3单片机编程,使得同学们可开发一个嵌入式系统。
The Solution:
采用专用于ARM单片机的NI LabVIEW嵌入式模块,对连接到iRobot Create移动机器人平台的Cortex-M3单片机编程,使得同学们可开发一个嵌入式系统,与具有实时约束的真实世界进行交流。
"通过使用LabVIEW,同学们可以更快地开发复杂的功能,使整个过程更富有成就感及教育意义。"
加州大学伯克利分校的电子工程和计算机科学学院是全球顶级学院之一。 作为本科生课程的一部分,同学们有机会去研究嵌入式系统和计算物理系统带来的独特挑战。 同学们将学习实时嵌入式系统的并发性和计算的并发模型、传感器和执行机构建模、软件分析工具、代码生成以及控制算法等方面的知识。
要开发一个可靠的嵌入式系统,需要广泛的专业技能,包括静态代码分析、实时运行以及传感器和执行机构的接口技术。 我们希望同学们能完成一系列的实验室实习课程,强化一个成功的嵌入式工程师所必须掌握的技能。
机器人硬件平台
通过课程实验作业,同学们将体会到如何使用专用于ARM单片机的LabVIEW嵌入式模块、状态图及ANSI C等多种设计工具来控制机器人。机器人需要处理传感器发送来的真实世界的数据,对它们所处的环境做出快速反应并驱动执行机构产生有意义的物理响应,是嵌入式系统教学的极佳工具。在设计课程材料时,我们也采用了LabVIEW直观的图形化设计工具,为同学们提供灵活、开放的程序设计平台,使同学们可混合使用数据流、ANSI C和状态图等程序设计方法。
同学们从iRobot Create等预先构建好的机械平台开始,专注于课程作业中的软件及单片机的相关内容。此移动平台与iRobot Roomba类似,iRobot Roomba是一款配备有车轮驱动器和30多个传感器的智能家用吸尘器。但是,它内部的8位处理器对于复杂智能机器人的控制算法而言并不够用。因此,加州大学伯克利分校的工程师们将iRobot Create与Luminary Micro Cortex M3 ARM单片机连接起来,通过通用异步收发器(UART)串口传输指令。这样就实现了一个更耐用、更强大的控制器,创建了更多通用I/O端口,可进行高速模数转换,并且具备使用LabVIEW和ANSI C程序对机器人进行编程的能力。
采用带有ARM单片机的iRobot Create平台,同学们使用嵌入式软件技术将机器人自主引导到一座小山顶上,并在此过程中避开障碍物。同学们使用的硬件包括iRobot Create、Luminary Micro ARM Cortex M3、一个加速度计以及一个用于诊断和通信的蓝牙芯片。最初同学们使用ANSI C对Luminary进行编程,以实现有限状态机、中断以及在不使用操作系统的情况下与传感器和执行机构的连接。在使用ANSI C开发出一个可以工作的控制器之后,同学们开始使用LabVIEW在桌面仿真中对他们的控制器进行综合处理,然后,采用专用于ARM单片机的LabVIEW嵌入式模块,使用一个数据流、状态图模型与实时操作系统一起生成的控制程序对机器人进行编程。
在上述过程中,同学们都可以学习到建模、静态分析、代码执行路径、程序可达性分析及实时系统性能约束的重要性。在iRobot Create平台上实施实验室实践项目使得同学们体会到了诸多挑战,如通过传感器、执行机构以及专用于ARM单片机的LabVIEW嵌入式模块提供的实时操作系统与真实世界进行交流等。
采用专用于ARM 单片机的LabVIEW嵌入式模块带来的优势
模型和系统实施之间的联系是加州大学伯克利分校课程的主旨之一。与传统的ANSI C比较,采用LabVIEW图形化程序设计语言可以更容易地对并发和定时进行分析和推理。通过将LabVIEW描述与ANSI C实施进行比较,同学们能够对嵌入式软件的原理产生更深的理解。通过使用LabVIEW,同学们可以更快地开发复杂的功能,从而使整个过程更有满足感,也更有教育意义。
通过充分利用LabVIEW嵌入式图形化系统设计工具,同学们也对代码生成这一嵌入式行业不断发展的技术有了更深的体会。拥有了在桌面电脑和实时嵌入式平台上执行LabVIEW程序的能力,同学们就可以在为嵌入式目标生成代码之前,先对逻辑执行的正确性进行验证。在LabVIEW前面板有一个实时更新的图形界面,强化了调试环境,使同学们可以迅速得到结果。
最终项目
专用于ARM单片机的LabVIEW嵌入式模块提高了效率,同学们得以在更少的时间里学习和理解更多的软件开发概念。作为课程的最后一个部分,同学们需要在10周时间内开发一个自选项目。选择LabVIEW和ARM硬件的同学们开发出来了智能悬停直升机、密集跟随的车辆队列以及连接到许多传感器以实现路径寻找和地图绘制的智能车辆机器人。由于使用LabVIEW,同学们得以在各种嵌入式应用中以非常快速的速度完成软件的设计、模拟及部署。