以智慧健康为主旨的安卓应用及相关新技术课程开发实录

2016-06-30 19:32范鲁宁张世波蒋雯音
电脑知识与技术 2016年14期
关键词:智慧健康云计算

范鲁宁+张世波+蒋雯音

摘要:目的:以智慧健康为主旨的课程开发供学生上课学习和参加竞赛。方法:主要采用安卓应用开发、云计算技术、下一代Web开发技术——响应式网页、嵌入式开发平台——树莓派开发板等技术和设备。结果:相继开发了天气预报、健康运动软件、远程监控机器人等项目。结论:通过上课和比赛,加强了学生的动手能力,最终达到增强就业竞争力的效果,为加强本专业的建设添一份力。

关键词:Android应用程序;云计算;智慧健康;计算机竞赛;下一代WEB开发技术;树莓派开发板

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)14-0084-03

The Development Records of Intelligence Health Courses with Android Application and Other New Technical

FAN Lu-ning, ZHANG Shi-bo, JIANG Wen-yin

(Health Career Technical College, Ningbo 315100, China)

Abstract: Purpose: To develop the courses of intelligence health for students to learn new techniques and to take part of different competitions. Method: Mainly use android application, cloud computation, the next generation of web development technique—response web site, and embedded development platform—Raspberry Pi as the tools. Results: We have already developed a weather forecast application, a health sports application and a remote monitor robot. Conclusion: All these projects are useful for students to learn the new techniques and more Beneficial in their career way, and are also meaningful for the development of health information specialty.

Key words: Android application; cloud computation; intelligence health; computer competition; next generation web development technique; Raspberry Pi

1 市场需求和研发方向

随着医院信息系统的进一步建设和市场对信息化要求的整体提高,普通高职高专院校毕业学生所掌握的知识和技能已经不足以解决能适应医院日益繁杂的信息化系统产生的系列问题。比如制作手机APP软件平台,管理和维修先进智能的医疗设备[1],构建跨平台网站等都需要新的教学理念和技术课程来支持。

2 研究思路

本课题的研发目的是开发以健康、运动、心理为主题的手机应用系列软件以及物联网的相关新技术的应用,借此开辟一系列新课程,参加一批全国全省级别的新技术比赛,达到锻炼学生技能,锤炼教师水平的目的。

2.1 以安卓应用开发为起点

首先,我们选择从安卓应用开发入手,使用App Inventor2开发平台,它是由麻省理工和谷歌共同开发的一款网页版安卓开发工具[2],不需要安装,并且有国内服务器支持(app.gzjkw.net),登陆速度很快,代码主要以拼接的方式完成,简单易学,非常适合高职高专的学生拿来练手,培养编程思想。

2.2 以Web技术为中转站

有了普通的单机版安卓应用还不够,我们要让手机上网连接其他数据和设备,Web服务器是一个很好的中转站。同时也可以作为展示平台,做到跨设备、跨浏览器。手机可以简单地通过网页来远程访问和控制其他设备上的资源。

2.3 树莓派

要开发智慧健康类的产品,就少不了要使用嵌入式的设备。很流行的树莓派开发板是由英国大学开发的一跨专门用于教育的卡片式电脑[3]。我们使用这款开发版制作远程监控、智能机器人等项目,并通过手机实现远程控制。

3 具体设计

本专业原先设置有程序设计、数据库课程、网络以及多媒体制作等相关课程,具备了基本的知识储备。在此基础上可以开发一些综合性项目,提高学生的动手能力,增强竞技水平。

3.1 以比赛为导向的Android应用程序开发

3.1.1 天气预报

2015年,我们以天气情况的预报和云计算的应用作为切入点,制作了对应中国大学生计算机设计大赛的一些作品,天气数据来自百度车联网,只要申请一个百度开发者密钥就可以免费使用JSON格式的API数据。我们对教科书中的功能做了改进,专门提取出PM2.5的值,让界面的背景色随着污染程度的改变而改变,天气表情也使用自己准备的,更加可爱的一系列图片。

3.1.2 绿色生活

今年,我们在预报天气指数的基础上进一步结合计步器,地图定位等功能开发一款我们自己的运动类应用。计步器是以手机的加速度传感器震动4次为一步计算的,计时采用每个计时器循环加一秒的方式计算,3600秒为一小时,在这两个基础上还可以算出步频。

另外,还可以利用手机的方向传感器,制作一个小指南针放置在计步器页面,方便在野外随时指明方向。实现在户外计算运动量、查看运动时间、地理定位和查看天气这些功能的组合。

简单实现指南效果

3.2 跨平台的下一代Web技术

手机除了使用本身的传感器实现一些功能外,网络的功能也是必须要被利用起来的一大资源。老一代的网页一般只提供PC机上的使用体验,如果在移动设备上打开,字符就会变得很小,画面也会重叠,变得难以阅读。

新一代的响应式网页技术可以让网页中的各个组件适应屏幕宽度的变化,当宽度小于某一值的时候,导航条、图片、文字的排列都会随着设备宽度变化做出调整。

网页内容会变长,一个屏幕宽度的内容会被分割成3个或4个条状的内容,以拖拽的方式完成查看;按钮会变得颜色鲜艳,形状宽大,容易让用户的手指点击;导航菜单会缩成一个下拉框,只有点击后才会展开,这些都符合了人们使用移动设备的阅读习惯。

最新出现的Bootstrap前端开发框架提供了用户友好的跨浏览器解决方案,下图是使用Bootstrap框架开发的课程平台[5]。

3.3 智能机器人

我们还在另一门有关物联网的专业课程中使用树莓派(raspberry pi)开发板制作了可以移动、摄像、取物的智能小车。

3.3.1 通过树莓派驱动电机

驱动电机用的是相对简单的Python语言来控制开发板上的GPIO引脚,通过设置高低电平来控制电机的转动[6]。下面这段代码是一个小车前进的函数,通过调用这个函数,小车就会前进一段距离。

def forward(sleep_time):

GPIO.output(IN1,GPIO.HIGH)

GPIO.output(IN2,GPIO.LOW)

GPIO.output(IN3,GPIO.HIGH)

GPIO.output(IN4,GPIO.LOW)

time.sleep(sleep_time)

GPIO.cleanup()

3.3.2 手机通过网页远程遥控小车

使用python的tornado异步IO框架,在树莓派上架设一个Web服务器。使用类IndexHandle来监控鼠标或键盘事件class IndexHandler (tornado.web.RequestHandler)。手机等移动设备通过访问这个网页,就能作为遥控器远程遥控小车了[7]。

//按下鼠标事件

$('.forward').mousedown(function(){

#按下鼠标这个事件驱动实现对前进这个函数的调用

i = setInterval(function(){

go('w');

},100);});#前进0.1秒,键盘上按W也能控制

//监听键盘事件

window.document.onkeydown = kpress;//通过document类来管理键盘事件onkeydown

function kpress(e){

e = (e) ? e : window.event;

if(e.keyCode=='87'){

go('w');//w键的ASCII码为87

}

3.3.3 远程监控

远程监控比较简单,我们使用普通的USB摄像头连接树莓派,下载一个现成的应用程序motion用来监控并捕捉移动的画面,通过调整帧数、画面质量、输出格式和远程开关,可以在手机或电脑安装的VLC播放器上通过网络流数据模式打开树莓派的IP地址,就可以远程观看摄像头拍到的画面了。以下这串命令就是使用树莓派的vid工具把分辨率是1280x720帧数是50帧的录像通过8081端口发送出去。

raspivid -o - -t 0 -w 1280 -h 720 -fps 50|cvlc -vvv stream:///dev/stdin--sout'#standard{access=http,mux=ts,dst=:8081}' :demux=h264 &> /dev/null

3.3.4 机械臂的加入

机械臂是智能机器人的一个标志,主要通过多个舵机实现多维度的运动,配上一个金属夹子,可以像人手一样抓取物体。同样也使用Python语言获取对引脚的控制,非常容易被软件开发人员理解。舵机类似于步进电机,每隔几十毫秒对信号作出反应,我们可以控制时间来让其转过固定的角度。

4 结束语

我们紧跟市场需求,开发了这些的教学内容,以项目化的教学模式激发学生的学习兴趣,提高动手开发在课堂任务中的比例。通过2到3门课程的布局,引导学生逐步深入对一系列新技术发展方向的认知,并在2年间多次获得国家级、省级比赛的优异成绩,学生和老师都获得了名誉和物质的双重奖励,更加激励了我们在这个道路上的继续前行。

后续开发方面,我们会继续在智能机器人的研制上投入资源,达到对更多电子元件和传感器的远程控制[8];发展服务器端的开发,让内容以网站形式展现给用户,设计新型的NoSQL数据库,存储更多形式和种类的数据资源,解决智慧健康产品设计中遇到的新问题。

参考文献:

[1] 俞磊. 物联网技术在医疗领域的研究进展[J].计算机应用研究, 2012(3): 46-48.

[2] 黄仁祥. 人人都能开发安卓App–App Inventor 2 应用开发实战[M]. 北京: 机械工业出版社, 2014:91-97.

[3] Brendan Horan. Raspberry Pi树莓派实作应用[M]. 北京: 人民邮电出版社, 2014: 1-23.

[4] Kris Hadlock. jQuery移动开发[M]. 北京: 人民邮电出版社, 2013: 14-21.

[5] David Cochran. Bootstrap实战[M]. 北京: 人民邮电出版社, 2015: 23-63.

[6] Sunny. 树莓派小车系列之按键控制[EB/OL]. http://www.sunnyos.com/.

[7] Alex Bradbury. 树莓派Python编程指南[M]. 北京: 机械工业出版社, 2015: 117-134.

[8] 王田苗. 基于PLC的神经外科机器人控制系统研究[J].机器人, 2006(5) : 495-498.

猜你喜欢
智慧健康云计算
实验云:理论教学与实验教学深度融合的助推器