1. 引言
当前,在城市中公交交通工具是人们出行的最主要方式之一,也是政府提倡“低碳交通,绿色出行”的城市主要交通工具,每天乘坐公交交通工具的乘客不计其数,而且随着城市交通的拥堵,乘客在公交交通工具上花费的时间不断增加,如何提高乘客的乘坐体验;提高人们乘坐公交交通工具的主动性,是当前城市工具亟待解决的问题。
目前,国内部分学者也对车载交互系统进行了研究,例如,肖轶翔 [1] 等设计了一款智能车载导航系统和富信息交互平台,实现了双屏幕独立显示、双触摸屏、个性化的人机交互方式、手势及语音命令识别、GPS汽车导航、卫星地图导航、富信息、多媒体等功能;吴剑斌 [2] 等通过卡片分类、任务优先级排序等方法,得到行程管理、安全保障、信息传达、情绪舒缓和沟通分享这五大类任务,建立了基于情境感知的车载信息娱乐系统设计模型,并最终确定了“途易”车载信息娱乐系统的设计方案;谭浩等 [3] 通过搭建基于云服务的信息服务系统,定义了智能车载系统中音乐服务的服务模型以及其人机交互界面,并通过应用实例初步验证了研究的有效性及可行性;骆晨等 [4] 设计一款智能客车服务系统,为车内乘客、乘务员、驾驶员提供视频点播、GPS导航、车内环境监测等一系列车载服务;吴刚 [5] 等提出将裸眼3D技术应用于车载导航娱乐信息系统的界面设计中,提高车载系统应用的真实性和安全性;张吉宇 [6] 提出在建立对环境、产品和人三者之间的关系基础上,对车载信息和娱乐系统界面设计的理念;宗威等 [7] 通过对人机交互信息的评分和统计,得出各项交互信息的驾驶相关度、使用频率和操作复杂度之间关系,进而设计给出车载环境下的人机交互信息输入设备选择和输出显示优先级,为车载交互系统界面的设计提供依据;余岚等 [8] 从用户、人机环境、信息构架、界面设计四个方面考量,对车载电子产品设计进行具体分析,建立用户和产品之间的良好关系,为产品的推广提供理论依据;张海涛 [9] 等对3D技术在车载导航娱乐系统的界面设计原则进行了简述及展望;李明峻 [10] 等针对车载信息娱乐系统的可靠性设计了系统强化试验方案,为系统的稳定可靠提供保障;郑博伟 [11] 等对现有车载HMI交互界面设计进行了分析,并对新能源汽车的HMI车载交互界面未来发展前景进行了探讨;袁玉霞 [12] 等设计了一款以ARM为核心的语音识别系统,实现通过语音对车载娱乐系统的功能控制;彭玉元 [13] 等将车联网概念应用到车载娱乐交互系统中,使系统摆脱了传统人机交互的束缚,将其他车辆的信息交互纳入到系统设计中。从上述研究可以看出,更多的学者对车载娱乐交互系统界面的设计更为注重,针对公交娱乐交互系统整体设计实现研究较少,当然,目前乘客在公共交通系统上获得信息及娱乐手段主要通过智能手机来解决,但智能手机也存在电量消耗过快、手机网络流量消耗过多,持续获得信息的代价过高等不足。基于此,本文设计了一款智能公共交通工具娱乐交互系统,为乘客提供一个手机移动电源、多媒体娱乐信息、多媒体交互、到站提醒、操作累积积分、乘客距离监测、系统更新、程序刷新的多功能智能平台,当乘客手机电量或网络流量不足时,为乘客提供充电的同时,提供多源信息的获取渠道。
2. 系统的结构和功能设计
2.1. 系统的结构设计
智能公交娱乐交互系统主要有服务器、交互平台、外接电路模块、数据通信四个主要构成部分。服务器端主要为交互平台提供系统更新、数据存储及数据共享功能;交互平台是系统与用户交互的主要窗口,系统的界面操作搭载在ARM Cotex-A53的开发板上面,包括用户登录、到站站点设置、明星宣传、电影音乐专题及留下足迹等功能;外加电路模块包括:USB接口、摄像头、耳机、RFID、超声波等模块;系统数据通信采用TCP (Transmission Control Protoco)及NFS (Network File System)两种技术,为服务器端及交互平台提供数据上传和浏览的通信服务。系统结构图如图1所示。
系统更新采用TCP通信方式,交互平台分别与服务器相连,在服务器端输入需要更新的文件名,服务器轮流向客户端发送系统文件。文具全部更新完毕后,服务器TCP通信程序关闭,交互平台自动退出TCP通信。系统更新模块设计图如图2所示。

Figure 2. Design diagram of system update module
图2. 系统更新模块设计图
系统服务器通过NFS挂载网络文件系统到本地,交互平台可以随时访问服务器的所有多媒体数据,也可以上传数据到对应的文件夹下面,每个用户拥有一个以自己公交卡号命名的文件夹保存在服务器中,所有用户的文件夹就保存在user文件夹中,用户的积分累计以txt文件的方式保存在网络中的score文件夹下。系统服务器模块设计如图3所示。

Figure 3. Design diagram of system update module
图3. 系统更新模块设计图
2.2. 系统主要功能设计
系统功能主要包括:服务器端及交互平台端功能,系统功能结构图如图4所示。

Figure 4. Structure diagram of system functional
图4. 系统功能结构图
服务器端主要包括以下几个功能:
1) 系统更新:使用系统开发的TCP通信小工具,在交互平台重启或者开机时自动从服务器端下载系统文件,完成对配置文件安装。
2) 数据存储:用户第一次刷公交卡时,系统在服务器端用户目录下创建一个以卡号命名的文件夹,并在该文件夹下创建一个userjpg、userwmv文件夹分别用来保存用户上传的照片和语音。
3) 数据共享:交互平台可以浏览服务器的用户目录下的所有文件夹,该目录下对应的一个文件夹里面所有数据在交互平台上浏览,以影集的方式在交互平台上播放。
交互平台主要功能如下:
1) 触摸点获取:通过封装函数,实时获取用户的触摸屏幕的点坐标,识别用户点击的按钮事件。
2) 多媒体播放:移植aplay、madplay及mplayer函数来播放音视频文件,通过killall命令来控制音视频进程的暂停、继续、结束。系统主要用于wmv、MP3、MP4文件的操作。
3) 录音:移植了arecord函数来播放wmv、wav文件,通过killall命令来控制arecord进程。
4) 显示图片:通过系统封装的bmp解码显示文件来显示bmp图片,通过libjpeg库来显示。
3. 系统实现
3.1. 系统技术方案
系统的交互端采用三星S5P6818开发板,服务器端采用Ubuntu32位系统。通信方式采用路由器网络通信、Secure CRT串口通信及TCP通信三种方式。利用路由器网络通信和TCP通信方式实现服务器与客户端系统更新同步,利用TCP通信协议的一对多连接模式,实现系统更新,与传统的TFTP通信相比,该通信方式可以一次性传输文件夹下所有文件、看得到文件的传输百分比、字符界面提示。通过NFS挂载网络文件系统实现服务器与客户端数据共享,通过Secure CRT串口通讯方式实现开发板与主机通信,将开发板的根文件系统挂载在该平台上面,实现对开发板的文件操作。
3.2. 文件结构实现
1) 服务器端
将root@ubuntu:/mnt/hgfs/share#目录作为Windows与Ubuntu共享的文件夹目录,在windows下创建编辑文件后保存在该目录下,在该文件夹下的movie里面是系统电影专题所需的MP4文件和海报文件;music里面是系统明星专题、关于明星界面、音乐界面所需的MP3文件、封面文件、字库文件(保存音乐文件信息);pic里面是系统明星专题、关于明星界面、图片界面所需的BMP图片文件;topmusic里面是系统音乐专题所需的MP3文件、海报文件和字库文件;user里面是以用户卡号命名的文件夹,每个文件夹包含jpeg、wmv文件夹,分别存放用户上传的照片和录音。
2) 交互平台
在系统根目录下的project文件夹中建立userjpg、userwmv文件夹,保存用户临时保存的图片和录音,退出登录后自动删除文件;drv下包含所需驱动文件,系统更新后自动安装驱动。
3.3. 系统多线程实现
主线程:初始化链表,将所需多媒体文件列表从服务器中获取,列入链表,链表结构使用Linux提供的内核链表头文件;开启线程四个子线程;循环获取屏幕点坐标;退出时回收所有线程,结束程序。
线程一:主要用于初始界面(RFID循环寻卡、初始化用户数据)、判断触摸点与运行界面进而实现界面跳转、还有辅助其他子线程对多任务的需求。
线程二:用于站点监测,实时获取站点;循环获取按键的状态,并执行按键触发的事件,例如到站事件。
线程三:实现界面的多数任务,每个界面的具体事务都会在此线程中执行。
线程四:实时获取超声波测距模块获取的距离;辅助其他线程对多任务的需求。
3.4. 平台通信实现
1) TCP通信
TCP通信的实现过程中,在服务端创建套接字、绑定和监听,利用IO多路复用,一方面监听是否有客户端加进来,另一方面监听已加进的客户端是否有数据传入及所有标准输入描述符,如果服务端有字符输入,则接收所有字符串,找到字符串对应的文件或文件夹,然后逐一向连接的客户端发送该文件或文件夹,实现多路复用;在客户端创建套接字、绑定和连接,利用IO多路复用,一方面监听客户端是否有输入字符,如果有字符输入则接收所有字符,并找到字符串对应的文件或文件夹,发送至服务器端,另一方面监听服务端是否有数据传入,如果有数据传入则接收文件或文件夹,最终实现交互平台的系统更新。
2) NFS挂载网络文件系统
服务器端在/etc/exports目录下配置/home/arm/nfs_share192.168.1.*(rw,sync,no_root_squash)为挂载路径。其中:
/home/arm/nfs_share与客户端共享的目录;
192.168.1.*:允许192.168.1子网网段访问;
rw:挂接此目录的客户端对该共享目录具有读写权限;
sync:资料同步写入内存和硬盘;
no_root_squash:root用户具有对根目录的完全管理访问权限;
重启服务器:sudo service nfs-kernel-server restart。
交互平台端通过mount-onolock192.168.1.*:/home/gec/nfs./mt方法进行挂载,在卸载挂载时需退出mt目录,其中192.168.1.*为服务器端IP地址。
3.5. 平台界面实现
系统初始界面如图5所示,当系统检测到公交卡时,系统保存卡号,并判断以该卡号命名的文件夹是否存在服务器中,如果不存在,则在服务器中创建以该卡号命名的文件夹。然后系统跳转至选择到达站界面,如图6所示。

Figure 5. System initialization interface
图5. 系统初始化界面
到达站点选择之后,系统保存到达站点并计算当前站距到达站还有几站,然后系统自动跳进入主界面(如图7所示),该界面循环以右切渐入的方式展示海报,点击左侧/右侧可浏览上不同专题,点击专题界面则进行对应专题子界面。
4. 结论
本文设计了一款智能公交交通工具娱乐交互系统,为乘客提供一个手机移动电源、多媒体娱乐信息、多媒体交互、到站提醒、操作累积积分、乘客距离监测、系统更新、程序刷新的多功能智能平台。人们出行过程中当智能手机电量或网络流量不足时,为乘客提供充电的同时,提供多源信息的获取渠道。系统不仅可以提高娱乐信息宣传渠道,而且为不同乘客提供信息交互、数据共享平台。
基金项目
本项目得到国家自然科学基金(61471133;61871475),广东省科技计划(2017A020208072;2017B010126001;2015A040405014;2016A070712020),广东省普通高校省级重大科研(2016KZDXM001),广东省教育厅特色创新(2017KTSCX094;2017KQNCX098;2017KTSCX095;2016KQNCX075),广东普通高校工程技术研究中心(2017GCZX001),广东省农业厅重点(2018LM2168)资助项目,广州市科创委一般项目子项目(201707010221)。
参考文献