基于Android的农业车辆智能终端控制系统设计

2020-10-17 01:02:10田雪莲
农机化研究 2020年5期
关键词:农用应用程序终端

田雪莲

(成都工业职业技术学院 信息工程学院,成都 610218)

0 引言

近年来,复杂的信息控制技术使汽车工业在移动终端领域取得了很大的进步,汽车的移动终端设备涉及4G通信、物联网、电子信息技术的自动融合。到目前为止,不少的农业车辆制造商和第三方服务提供商开始研发如车辆故障诊断、车辆状态显示、远程监控及驾驶辅助等智能终端应用程序。本文结合Android和嵌入式控制技术,设计了一套农业车辆智能终端控制系统,能够实现对农业车辆状态的智能显示和实时控制。

1 系统整体结构设计

农业车辆智能终端控制系统工作原理是运用嵌入式、传感技术、GPS、GPRS及移动设备等多种技术,采集农用车辆的行车状态和GPS信息,在Android实时显示这些信息,让驾驶员实时了解车辆信息,并通过GPRS信号将工作状态传回至后台集中检测中心。农业车辆智能终端控制系统整体结构如图1所示。

农业车辆智能终端控制系统包括车辆信息采集模块、GPS模块、GPRS通信模块、屏幕显示、语音设备、APP模块、MPU6050、SDRAM、时钟、电源及复位等。其中,车辆信息采集模块可以自动获取实时的车辆故障码和动力系统、电气系统等车内系统的数据流,主要功能是实现现场总线数据通信及自身电源的调理;GPRS通信模块,使用GC65无线通信模块或者第三代移动通信技术,支持基站定位、TCP/IP数据传输,可实现远程数据传输及云端数据共享功能;GPS定位模块可提供车辆实时的经纬度位置信息,并利用卫星实时传输更新系统时间,保证时间准确性;倾角与振动检测模块使用了MPU6050(3轴加速度传感器+3轴角速度传感器)模块,对系统提供实时的加速度信息,以此为依据,记录车辆行驶行为(加速、减速、变道)。

图1 农业车辆智能终端控制系统整体结构图

2 系统硬件设计

1)STM32处理器。STM32 F103系列是意法半导体(ST)公司设计的高性能、低功耗和低成本的芯片,采用超低功耗的ARM Cortex-M3设计。ARM Cortex-M3是基于ARMv7-M架构的处理器,采用了哈佛结构,拥有相互独立的指令总线和数据总线,可以实现取指令和数据访问并行执行。本系统选用STM32F103RCT6芯片,CPU工作频率高达72MHz,拥有256kB的FLASH闪存和48kB的SRAM,芯片共有64个管脚,可用于外围传感器或其他存储设备通信。

2)车辆信息采集模块设计。车辆信息采集模块采用人工智能技术,对数据流进行分析分类,得到故障特征信息,根据车辆传感器数据量比较小的特点,系统选取了支持向量机(SVM,Support Vector Machine)作为分类算法。支持向量机理论是基于统计学习理论与结构风险最小化原则,具有完整的理论体系结构的机器学习理论。采用的流形正则化学习框架表达式为

流形正则化支持向量机算法计算关键步骤如下:

2)输出。估计分类边界函数为f:R25→R,决策函数为y=sign(f(x))。

步骤1:用l+u个数据建立数据邻接图,若i在j的k近邻中或j在i的k近邻中,则使用RBF计算连接i、j的边的权值Wij,否则Wij=0。

步骤4:选择正则化权重系数γA和γI。

步骤 5:求解凸二次规划和线性系统,解得α*,并输出函数。

本文SVM分类由模型训练和结果预测2个部分组成:模型训练是使用标准知识库对SVM模型进行训练,得到分类效果最好的分类模型参数,然后使用训练好的模型对带有少量标签的实时数据进行预测,得到分类结果。支持向量机故障诊断流程如图2所示。

图2 支持向量机故障诊断流程图

3)MPU6050模块。MPU6050内部集成了3轴陀螺仪和3轴加速度传感器及数字运动处理器,除了用来与MCU通信的主IIC接口外,还预留了一个可用于接第三方数字传感器的IIC接口,通过此接口外接1个磁力传感器,即可实现输出完整的9轴姿态信号。MPU6050姿态采集模块实物如图3所示。

3 Android软件开发与设计

3.1 Android系统框架

Android操作系统是谷歌于2007年正式公布推出的一款智能手机系统平台,是在Linux内核上进行开发设计的,并采用Android framework层与Linux kernel进行隔开。Android系统框架如图4所示。

图3 MPU6050姿态采集模块实物图

图4 Android系统框架图

3.2 Android系统软件设计

1) Eclipse开发软件安装。移动客户端的开发环境选择Eclipse,为了实现其完整的开发作用,需要对环境进行一系列的搭建,ADT安装界面如图5所示。

图5 ADT环境安装图

(1)安装JDK,配置环境变量,提供java代码编译和运行的环境;

(2)安装ADT插件(android developer tools)为Android开发提供开发工具;

(3)下载安装SDK(Software Development Kit),提供应用程序所需要的框架,库类函数等;

(4)打开模拟器,模拟器可以选择系统模拟器或者夜神模拟器,点击工具栏图标Android Virtual Device Manager,选择Create创建,设置相关属性后,点击OK,选择该模拟器start、launch启动运行;

(5)打开DDMS(Dalvik Debug Monitor Service),即Dalvik虚拟机调试监控服务,方便进行功能调试。

2) Android应用程序组件。Android移动客户端的开发离不开组件的支持,开发设计时,根据各个组件的功能及应用方向可将其分为4大类别组件:Activity、Service、Broadcast、Receiver(广播接收者),以及Content Provider(内容提供者)。

(1)Activity。每个移动客户端由多个Activity组成,显示界面将在各个Activity间进行跳转。作为程序设计开发的重点,在Activity中运行着大部分的程序流程,对应着与用户交互的窗口。在Activity中可对Button、TextView等控件进行添加,对控件进行监听实现跳转的相关逻辑,同时每一个Activity都是与用户进行交互的接口。

(2)Service。Service作为Android的组件之一,与Activity不同的是只能在后台运行且没有用户界面。因为在后台运行的Service服务不存在时间限制,所以它常用来执行需要持续运行的任务,且Service服务在应用程序中的主线程内运行,对于耗时任务将派生新的线程来进行。

(3)Broadcast Receiver。广播是在应用程序之间传输信息的机制,而Broadcast Receiver则是对发送出来的广播进行过滤接受并响应的一类组件。其注册方式有两种,既可选择在配置文件AndroidManifest.xml中注册也可通过代码Context.registerReceive()进行注册,且Broadcast Receiver和Service一样,不存在界面。

(4)Content Provider。在Android中,对数据的保护十分严密,应用程序所具有的数据库、文件等内容,不允许其他直接访问,而主要用于Android应用程序的数据存储管理的Content Provider组件则提供了一种访问的方式。应用程序通过创建ContentResolver对象,调用它的方法对数据进行访问。

3) 车载终端控制APP部分程序。MediaManager是车载终端控制APP主要的变量和方法类,其主要程序如下:

public class MediaManager {

private static final String TAG = "GH.MediaManager";private static final String PREFS_FILE_NAME =

"MediaClientManager.Preferences";private static final String PREFS_KEY_PACKAGE =

"media_package";private static final String PREFS_KEY_CLASS =

"media_class";

private static final String THEME_META_DATA_NAME =

"com.google.android.gms.car.application.theme";public static final String KEY_MEDIA_COMPONENT =

"media_component";public static final String KEY_MEDIA_PACKAGE =

"media_package";public static final String KEY_MEDIA_CLASS =

"media_class";

private static final String KEY_IGNORE_ORIGINAL_PKG =

"com.google.android.projection.gearhead.ignore_original_pkg";public static final String

KEY_MEDIA_PACKAGE_FROM_GSA =

"android.car.intent.extra.MEDIA_PACKAGE";

private static final String GOOGLE_PLAY_MUSIC_PACKAGE

= "com.google.android.music;private static final String[] INTERNAL_EXTRAS =

{"KEY_LAUNCH_HANDOVER_UNDERNEATH",

"com.google.android.projection.gearhead.ignore_original_pkg"};

private static final Intent MEDIA_BROWSER_INTENT =

new

Intent(MediaBrowserService.SERVICE_INTERFACE);private static MediaManager sInstance;private final MediaController.Callback

mMediaControllerCallback =

new MediaManagerCallback(this);private final MediaBrowser.ConnectionCallback

mMediaBrowserConnectionCallback =

new MediaManagerConnectionCallback(this);public interface Listener {

void onMediaAppChanged(ComponentName

componentName);void onStatusMessageChanged(String msg);}

}

4 试验

农业车辆智能终端控制系统包括农用车辆定位服务、行驶状态实时显示及防盗等应用程序,为了验证基于Android的农业车辆智能终端控制系统是否满足设计要求,以农用车辆定位服务应用程序为例,对该系统进行验证。农用车辆定位服务主要包括配置、GNSS数据显示、软件日志和地图显示灯等4个模块,在使用定位程序之前,需要在定位服务应用程序界面进行信息配置。设置卫星导航定位算法和接收机定位参数输出等参数格式,如图6左侧所示,农用车辆定位服务定位显示如图6右侧所示。

图6 APP参数设定界面(左)和定位显示界面(右)

interface (right)

由图6可以看出:在对定位服务应用程序设置查分服务器IP、参考基站数据输出、卫星导航定位算法、接收机定位参数输出等参数格式后,系统能够对农用车辆进行精准的定位服务,证明了系统具有一定的可行性和实用性。

5 结论

采用物联网、Android和智能控制系统,设计了农业车辆智能终端控制系统,可以实现车辆定位服务、行驶状态实时显示、防盗等多种功能。在农用车辆定位服务应用程序是否可行的验证试验中,对定位服务应用程序导航定位的参数后,系统能够对农用车辆进行精准的定位服务,证明了系统具有一定的可行性和实用性。

猜你喜欢
农用应用程序终端
X美术馆首届三年展:“终端〉_How Do We Begin?”
现代装饰(2020年8期)2020-08-24 08:22:58
农用机械发展
湖北农机化(2020年4期)2020-07-24 09:07:00
通信控制服务器(CCS)维护终端的设计与实现
删除Win10中自带的应用程序
电脑报(2019年12期)2019-09-10 05:08:20
多功能北斗船载终端的开发应用
电子制作(2016年15期)2017-01-15 13:39:14
农用履带式底盘技术及衍生产品概述
新农业(2016年21期)2016-08-16 11:52:07
农用机井管理
ABB Elastimold 10kV电缆终端及中间接头
自动化博览(2014年4期)2014-02-28 22:31:14
关闭应用程序更新提醒
电脑迷(2012年15期)2012-04-29 17:09:47
三星电子将开设应用程序下载商店