基于嵌入式Android的光学实验实操评测系统

2018-12-20 07:55张丙旭徐文涛张广斌
电子设计工程 2018年24期
关键词:实操内核嵌入式

张丙旭 ,徐文涛 ,连 鹏 ,张广斌

(1.南京航空航天大学自动化学院,江苏南京211106;2.南京航空航天大学理学院,江苏南京211106;3.南京航空航天大学计算机科学与技术学院,江苏南京211106)

在工科高校教学中,大学物理实验作为基础学科,其创新教育功能和载体作用早已为人们所共识,在培养学生各方面能力的作用和地位是显而易见的。光学实验作为其中不可或缺的一个环节,仍旧具有诸多缺点。目前光学实验主要依靠显微镜和分光计来观察实验现象,由于目镜观察视野小,在实验过程中老师难以对学生进行实时指导。随着嵌入式技术和互联网的发展,嵌入式处理器的成本逐渐降低,我们采用开源操作系统Android技术[1-5]和嵌入式处理器[6-9],针对大学物理光学实验实现了软硬件的高级定制,设计并开发了光学实验操作评测系统,该系统可以将光学仪器观察到的实验图像实时上传到教师端,实现老师对学生的实时监控和纠正指导,依靠云服务器对学生的实验数据和观察结果进行成绩评定。

1 系统架构设计

本文所设计的光学实验实操评测系统总体设计结构如图1所示,系统由教师监控平台、学生实操平台和服务器构成。教师监控平台由web网页实现,可监控学生的实时操作状态、获取学生的实验结果和测量数据。学生实操平台由嵌入式设备实现,可通过摄像头获取目镜中的实时图像并向服务器提交实验数据和观察结果。服务器作为教师监控平台和学生实操平台链接的桥梁,集成了实验数据结果自动评判算法,用于实验数据的存储和学生成绩评定。

图1 系统总体架构

2 硬件设计

学生实操平台为经过软硬件定制的嵌入式设备,其硬件结构如图2所示,其由触摸显示屏、电源辅助电路、ARM核心板、USB接口和UVC协议摄像头[10-12]组成。

图2 学生实操平台硬件结构

实操平台以ARM处理器为核心,硬件电路主要针对外围拓展模块的接口电路设计。为了完成系统特定功能,在以ARM为核心的嵌入式平台上扩展了存储模块、WiFi模块、常用工业接口通信模块、触摸屏模块等[13-16]。

对于嵌入式ARM处理器[17],我们选用cortex-A53八核S5P6818芯片,它是三星公司生产的一种RISC结构微处理器芯片,具有先进的内核,可提供一套通用的外设接口,无需再额外扩充外围器件,其功耗低,简单,方便,且全静态设计,特别适合于要求稳定性高、功耗低的嵌入式工业控制系统。S5P6818还提供丰富的片上资源,集成LCD专用DMA的LCD 控制器,3路UART,2路SPI,IIC总线接口,4 路拥有外部请求引脚的DMA控制器。依靠核心芯片可以方便地在外围添加人机接口模块,USB通信模块,完全可以满足本系统的需求。

我们采用7寸高清屏作为与学生进行交互的人机界面载体,并通过WiFi模块将数据上传至系统Web服务器的相关数据库中。

目前物理实验常用的光学观察工具主要为光学显微镜和分光计,为了将观察图像上传给教师监控平台,本系统采用基于CMOS传感器的数字摄像头作为图像获取设备,选取USB接口作为传感器和ARM嵌入式系统通讯方式,提高了系统的通用性、扩展性和可维护性。

3 软件设计

3.1 评测系统服务器设计

评测系统云端服务器基于WEB服务器技术开发,其主要功能有响应来自学生端实验数据上传和图像上传请求,存储学生实验数据,评判学生实验结果,响应教师端查询学生实验数据请求等功能。系统采用开源数据库MySQL开发,数据库中主要建立了学生信息,实验数据,实验成绩等信息表,实现对学生实验信息的统一管理,数据库概念设计ER模型如图3所示。

图3 数据库概念设计ER模型

在服务器层,我们采用PHP语言开发程序响应来自教师监控平台和学生实操平台的数据请求,并实现成绩评定等相应功能。

3.2 学生实操平台软件设计

3.2.1 嵌入式操作系统定制

本系统拟基于嵌入式Android系统完成学生实操平台的软件实现。软件开发主要分为操作系统定制和应用软件开发。由于本系统需要使用USB摄像头作为图像获取设备,因此在操作系统层需要集成可支持UVC协议的USB摄像头的驱动程序。原生Android系统中并未集成该驱动程序的调用接口,因而需要使用NDK工具链将linux内核中UVC驱动通过封装,生成JNI层接口以供Android应用层调用。

Android是一个开源的嵌入式平台操作系统,该系统向所有开发者开放原始代码,开发者可以根据谷歌公司提供的软件开发工具包开发各种应用软件。Android系统是基于Linux内核的操作系统,由内核、运行库、用来运行代码的类似虚拟机组成。和标准的Linux嵌入式系统开发流程几乎一样,Android嵌入式软件系统的开发包括Bootloader引导程序设计,Linux操作系统移植,根文件系统创建以及应用程序开发等环节。具体开发流程如下:

1)建立嵌入式Linux系统的交叉开发环境

交叉编译就是在计算机主机上编译源程序,在目标板上运行可执行程序。通常通过串口或者以太网接口传输Linux内核文件到目标板,这样的交叉开发环境可以非常方便地进行嵌入式Linux开发、调试。

2)移植引导程序Bootloader

嵌入式Linux内核通常需要目标板上的固件引导。这些引导程序就是Bootloader,在目标板上电的时候,完成板级初始化和内核引导的任务。本系统通过u-boot来引导。

3)移植Linux内核

移植Linux系统内核是嵌入式Linux移植的关键部分,需根据具体的硬件平台添加或修改系统的选项,对Linux系统进行裁剪以适合特定的应用场合。

4)开发Linux文件系统

把Linux内核文件和文件系统烧写到存储设备中,使开发板上Linux系统能够独立启动并运行,本系统选择nfs格式的文件系统。

5)编译android源码,定制系统

本项目不希望用户删除我们的应用,所以需要将应用程序编译进入系统作为不可删除的系统应用。我们在Ubuntu 14.04系统下进行源码的编译工作,使用OpenJDK 8作为我们的编译工具,编译过程如下:1)初始化编译环境,谷歌已经为编译工作做好了初始化环境变量工具,命令为source build/envsetup.sh。2)选择目标平台,这一步可以将Android编译成适合某具体运行硬件平台,命令为lunch。3)编译,命令为make–j8,参数j8表示用户希望系统设置8个线程进行编译工作,这样可以提高编译速度。

6)Android系统移植和应用程序开发

基于谷歌提供的Android studio开发工具创建项目,设计软件界面,并进行调试和运行程序。

3.2.2 应用软件设计

由于本项目需要使用USB摄像头,而原生Android系统并没有集成对此设备的驱动支持,我们在应用软件的开发过程中需要考虑对摄像头的驱动设计,USB摄像头是遵循UVC协议的图像捕捉设备,我们仅需要在Linux内核中移植UVC设备的驱动程序,并通过谷歌官方提供的Android NDK工具包在HAL层将驱动功能封装成应用层接口,通过Java在应用层调用上述接口,实现对USB摄像头的使用。

学生实操平台的应用软件需要实现以下功能:

1)对摄像头进行光学参数设定。主要设置采集图像的分辨率和摄像头帧频等参数。

2)获取视频流并在学生实操平台的触摸屏上进行显示。

3)对采集到的图像进行格式转换及保存。

4)通过http协议将实验数据和采集到的图像上传至服务器。

5)为用户提供人机交互界面,实现一定的用户操作逻辑。

以上开发过程主要使用的类方法如下:

1)打开摄像头

2)开始预览

3)调节亮度

4)切换分辨率

5)捕捉图像

6)关闭摄像头

应用软件算法流程如图4所示。

图4 应用软件算法流程图

软件运行后,首先对摄像头进行参数设定,用户可自行选择合适的分辨率,调整亮度和对比度。其次从内存中读取视频流信息,并对其进行显示,此时用户便可以在交互界面上预览实时的图像。当用户发出上传图片指令时,软件对此时的图像进行格式转换和保存操作,然后通过http协议发送到服务器。

3.3 教师监控平台设计

教师监控平台主要实现的功能有查询学生实验数据和查询学生采集的实验现象图片。其采用BS架构设计,用户界面基于html+css+JavaScript技术进行实现,采用JavaScript脚本设定一定频率通过http协议向web服务器进行数据请求,以实现用户端数据实时更新的目的。

4 系统测试

我们使用大学物理实验中的必修光学实验-牛顿环的观察对本系统进行功能测试,本系统在开发完成之后经过一系列的精确测试,测试效果图如图5、图6所示。

在测试中,摄像头获取的视频流在640*480的分辨率下,平均帧率达到35帧以上。学生实操平台提交数据后3~5秒内即可在教师监控平台上收到数据信息,学生实操平台亦可在3秒内接收到老师的反馈信息。且整套系统具有良好的稳定性,摄像头无故障工作时间超40小时,可以满足系统的教学要求。测试过程截图如图5,图6所示。

图5 学生实操平台运行截图

图6 教师监控平台运行截图

5 结论

系统基于Android嵌入式技术和互联网技术进行设计并开发,经过实验测试,系统运行流畅,用户可以自定义需要采集的光学图像,学生实操平台可以实现图像观察和数据上传功能,教师监控平台实现监控和成绩评定功能,图像观察清晰,视频预览流畅,数据传输高效,工作性能可靠,系统稳定性好,可靠性高,具有较好的易用性和可移植性。

猜你喜欢
实操内核嵌入式
石材板材研磨与抛光的准备与实操
强化『高新』内核 打造农业『硅谷』
2019年幼儿教师暑期实操培训班优秀作品选登
基于嵌入式Linux内核的自恢复设计
Linux内核mmap保护机制研究
搭建基于Qt的嵌入式开发平台
嵌入式软PLC在电镀生产流程控制系统中的应用
微生物内核 生态型农资
特许经营进入实操阶段
Altera加入嵌入式视觉联盟