【Android论文栏目提醒】:网学会员--在 Android论文编辑为广大网友搜集整理了:基于Android平台的无线WiFi控制方法 - 期刊论文绩等信息,祝愿广大网友取得需要的信息,参考学习。
Microcomputer Applications Vol. 28 No.7 2012 技术交流 微型电脑应用 2012 年第 28 卷第 7 期文章编号:1007-757X20127-0058-04 基于
Android 平台的无线 WiFi 控制方法 王 雷,蓝 箭,陈雪娟,陈 峰摘 要:提出了一种基于
Android 手机的无线 WiFi 控制系统。
首先采用嵌入式 ARM9 为硬件控制模块,手机终端以
Android为应用程序的开发,编写了一个手机客户端软件,完成了手机端与控制器端之间的数据传输,实现了手机远程对 PWM 调速等的控制。
系统中
Android 手机可利用周围无线网络资源与其他设备进行交互并实施控制,不仅为现有智能控制系统提供了新的控制方法,也为实现机器与人的信息交换提供了新的交互手段。
关键词:
Android;嵌入式系统;WiFi;PWM 控制中图分类号:TP399 文献标志码:B Control Method Based on WiFi in
Android Wang Lei Lan Jian Chen XueJuan Chen Feng (School of Mechatronics Engineering and Automation Shanghai University Shanghai 200072 China)Abstract:The paper presents a wireless WiFi control system based on phones with
Android system The system was builded withembedded technology based on ARM9 hardware control module to develop the
Android application for mobile terminal and a cellphone client application which is used to complete data transfer between the mobile terminal and the controller that enables the cellphone to control the speed of device with PWM method.
Android phone use the wireless network resources around to interact withand control other devices. This not only provides a new control method for existing intelligent control system but also a new interac-tive approach of information exchange for HMI.Key Words:
Android;Embeded System WiFi PWM Control 停车入库、入位,手机远程检查并控制家居灯光和电器等1。
0 引言 这实际上是一个C/S结构的系统,以嵌入式微处理器为核心 随着网络时代的到来以及第三代通信技术的发展, 各种 的控制器作为服务器,
Android手机作为客户端。
系统的总智能移动终端相继问世,
Android 平台为代表的智能手机 以 体结构,如图1所示:正伴随着 3G 技术开始获得人们的广泛接受。
在这场移动设备的革命中, 移动终端设备己经跨越了仅仅将通信作为唯一目标的模式,而变成具有广泛应用价值的计算、 控制与管理的服务平台。
将智能手机与控制系统相结合,使传统的 PC机工作平台具备便携能力, 为实现真正的移动的通信方式提供了可能。
本文实现了一种基于
Android 手机的无线控制系统,系统中
Android 手机可利用周围无线网络资源与其他设备进行交互并实施控制, 不仅为现有智能控制系统提供了新的控制方法, 也为实现机器与人的信息交换提供了新的交互手段1。
特别是在我国酝酿的物联网开发与应用的大潮中,这样一种新型的控制方法,将对我们的工作方式及生活方 图 1 系统结构图式,甚至对周围世界都产生着巨大的影响。
用户携带
Android智能手机进入控制区,手机客户端接1 系统的总体设计 入无线网络,搜索网络中的可用设备服务, 发现目标设备后 与之进行信息交互。
Android手机与控制模块通过Socket进行 系统的总体设计思路,是以一个嵌入式微处理器为核 通信,通过手机客户端软件对设备进行控制和管理1。
心的控制模块负责提供服务并与用户的
Android手机通信。
手机作为控制其他设备的管理器,提供交互界面,例如遥控 2 嵌入式控制模块的设计——————————————作者简介:王 雷(1986-),男,山东威海,上海大学,硕士研究生,硕士,研究方向:嵌入式系统软硬件开发,上海,200072 蓝 箭(1963-) ,男,上海,上海大学,副教授,硕士,研究方向:嵌入式系统应用与开发,上海,200072 陈雪娟(1989-),女,四川内江,上海大学,本科,学士,研究方向:嵌入式系统应用,上海,200072 陈 峰(1988-) ,男,浙江,上海大学,硕士研究生,硕士,研究方向:电工理论与新技术,上海,200072 ·58·Microcomputer Applications Vol. 28 No.7 2012 技术交流 微型电脑应用 2012 年第 28 卷第 7 期 系统硬件平台是基于 ARM920T 架构的处理器三星 频率有关, 比较寄存器的预存值与PWM输出地占空比有关,S3C2440, 并采用 802.11 标准的 D-LINK DWL-G122 无线网 两者相协调即可得到所需的PWM波形。
卡实现 WiFi 网络通信。
根据硬件资源和接口特性以及软件 在系统中,由定时器1直接作为舵机的控制信号,控制开发复杂度的需要,系统搭建了嵌入式 Linux 开发平台,基 多级的方向。
电机控制则采用两片大功率BTS7960构成的全于 2.6.31 内核开发 ARM9 平台上的硬件设备驱动以及应用 桥电机驱动电路,需使两路PWM控制信号存在占空比差,程序, 从而可以利用开源项目来实现 PWM 电机驱动等控制 差越大电机转速越高。
两路PWM输出频率均为25kHz,以功能模块。
系统硬件结构,如图 2 所示: PWM1为基准,通过控制PWM2输出不同占空比,实现电机 的正反转控制。
控制器应用层PWM控制程序部分代码如下: void pwmunsigned int temp //向PWM驱动传递占空比参数。
int fs;fs openquot/dev/TX2440-pwmquot, O_RDWR; if fslt0 perrorquotopen device TX2440-pwmquot;exit1; ioctlfs,temp;//打开底层I/O驱动。
服务器端通信软件是通过套接字编程的方法实现的, 服务器要先于客户机启动, 首先使用 Socket 方法建立一个 图 2 无线控制系统硬件结构图 Socket 连接对象并设置一个访问的端口号, 以便服务器能侦 听客户的连接请求,本系统设置为 7070。
然后调用 bind 方2.1 嵌入式 Linux 及无线网卡驱动的移植 法将 Socket 与本地网络地址绑定。
之后就可以通过 listen 函 为了满足系统实时性的要求,针对 ARM9 开发平台, 数来侦听是否有客户端进行连接。
如果侦听到客户的请求,需对 Linux 做必要的裁剪和配置后再安装到目标机中。
具体 就调用 accept 方法建立连接1。
与客户端连接建立成功后,过程:在安装好 Linux 操作系统和针对目标板的交叉编译器 按照控制流程的要求,使用收发函数,进行数据传输。
服务的 PC 机上, Linux 源码进行必要的配置, 对 包括添加 PWM 器应用程序流程图,如图 3 所示:驱动文件、修改 makefile 和 kconfig 文件、选择处理器类型及板级支持;选择对设备驱动和文件系统的支持2。
完成配置之后进行内核编译,生成定制的内核镜像。
为了支持系统所使用的 D-Link DWL-G122 无线网卡,需将 RT73 wifi 通信芯片组的驱动程序编译进内核。
加载驱动模块后,下载 wireless-tools 源码并移植 iwconfig,iwlist等无线扩充命令以配置无线网卡 2 。
为使无线网卡自行启动,在 ARM 板上电运行时,操作系统将初始化配置无线网络的属性,包括模式 MODE、ESSID、IP 地址等,需编写无线网卡配置脚本文件 init_wireless 如下: /bin/sh,ifconfig wlan0 down,iwconfig wlan0 ap autoiwconfig wlan0 essid quotraybotestquot,ifconfig wlan0 192.168.0.12ifconfig wlan0 up。
然后将其拷贝到根文件系统的/bin 目录中 , 在 根 文 件 系 统 中 的 /etc/init.d/rcs 最 后 一 行 添 加/bin/init_wirelessamp , 最 后 增 加 其 可 执 行 属 性 : chmodxinit_wireless3。
这样,就完成了 RT73 芯片组的驱动移植。
2.2 PWM 控制模块软硬件实现 PWM 控制模块是采用三星公司的 S3C2440ARM 芯片作为核心处理器, 其内部有5个16位的定时器。
其中定时器 图 3 服务器通讯程序流程图0、1、2、3有脉宽调制功能。
每个定时器模块从时钟分频器接收其自己的时钟信号,其分频器从相应的8位预分频器接 3
Android 手机平台控制终端的设计收时钟。
8位的预分频器是可编程的且根据装载的值来分频 3.1
Android 操作系统的软件架构PCLK,其值存储在TCFG0和TCFG1寄存器中2。
Android 是 2007 年 11 月由以 Google 公司牵头组建的 S3C2440芯片的PWM模块,具有递减计数器TCNTBn 开放手机联盟(Open Handset Alliance)发布的智能移动设和比较计数器TCMPBn双缓存触发的特点, 当递减计数寄存 备软件平台。
其前所未有的标准化和开放性使
Android 操作器的值递减到与比较计数寄存器的值相同时, 定时器控制逻 系统成为一套真正意义上的开放性移动设备综合平台1。
辑就改变输出电平,即递减计数器的预存值与PWM输出地
Android 采用了层叠式的软件架构,它包括 Linux 内核 层、函数库和组件库以及虚拟机组成的中间层、 应用程序框 ·59·Microcomputer Applications Vol. 28 No.7 2012 技术交流 微型电脑应用 2012 年第 28 卷第 7 期架和应用程序组成的上层,如图 4 所示: 行开发的,下面是几种主要的 API 组件: 当前活动程序 Activity 是最常用的应用程序组件,可 以把 Activity 简单的理解成一个用户所看到的屏幕,称之为 1 “活动” 。
它主要用于处理程序的整体性工作,通过调用 onCreate 、onStart 、onRestart 、onResume 、onStop 、onDestory 等方法来实现运行、暂停、停止等状态。
例如监听按键、触摸屏等事件,指定图像显示 View,启动 其他 Activity。
Android 用 Intent 类实现启动其他 Activity, 图 4
Android 平台结构 它调用 startActivity myIntent 方法触发解析 myIntent 动作,3.2
Android应用程序开发平台的搭建 新的 Activity 接收到 myIntent 通知后,开始运行,例如通过
Android 以 Java 作为开发语言,以开源 IDE Eclipse 作 Activity 的切换实现显示布局的切换。
ContentProvider 类是为开发环境,使用
Android SDK、Java 开发包 JDK、开发插件 ADT 进行软件开发与调试。
如此强大的开发平台完全能 一个特殊的存储数据的类型,它实现了数据的存储与共享。
够满足手机终端的 Java 应用开发。
下面介绍在 Windows XP Service 是运行在后台的应用程序组件,不直接与用户交互。
下开发应用程序的环境搭建方法1。
当前活动程序可以使用 Context.StartService 开启一项后台 1 JDK 的安装和 Java 开发环境的配置 服务还可以通过 Context.bindService 与后台服务通信1。
安 装 Eclipse 的 开 发环 境需要 JRE 的支持 , 下 载 系统以 PWM 控制器的
Android 控制界面为例,介绍了Windows XP 下的最新 JDK 并设置 JDK 的环境变量1。
2 Eclipse 和
Android SDK 的安装和配置
Android应用界面的创建过程4: 完整安装好 JDK 和 Eclipse 后,下载所要使用的 Andriod 1 、通过 File -gt New -gt Project 菜单,建立新项目SDK,这里使用了 2.3 版本并把 tools 目录添加到 Windows quotAndroid Projectquot。
XP 的 PATH 环境变量中。
2、填写新项目的所在文件夹名称、包名、主类名和应 3 安装和配置 ADT 用程序标题。
启动 Eclipse,依次点击quotHelp-gtSoftware Update...-gt Available Software-gtAdd Site...quot,输入 dl-ssl.Google.com/
android 3、编辑自动生成的代码模板。
/eclipse/,点击 OK 完成。
依次选择quotPreferences-gt Androidquot, 打开一个
Android 项目的 main.xml 文件,即可以切换点击quotBrowse...quot选择
Android SDK 的安装路径, 设置
Android 到 UI 设计界面,通过 Layouts 中的线性布局完成界面的布 局排版,如图 6 所示:SDK 主目录从而把 Eclipse 与 SDK 绑定在一起1。
至此,经过上述安装配置过程
Android 应用程序的开发环境已经搭建完成。
可以在 Eclipse 中创建
Android 项目了。
从
Android1.5 开始就引入了 AVD (
Android VirtualDevice)的概念1。
AVD 是一个经过配置的模拟器,在运行程序时, Eclipse 可以自动运行虚拟机,因此运行和调试
Android 应用程序可以脱离实体手机,极大地方便了应用程序的开发。
PC 机上运行
Android 虚拟机的界面,如图 5 所示: 图 6
Android 界面布局编辑器 在界面编辑器(图 6)中完成布局之后,添加按钮的触 控事件,编辑应用程序代码。
在
Android 的 Java 程序中, 实现人机交互的控件是通过事件处理的, 需要指定控件所用 的事件监听器4 5。
事件响应部分代码如下: public class CarController extends Activity 图 5 模拟器运行界面 ...//变量声明3.3 手机控制终端应用程序的设计 public void onCreateBundle saved InstanceState btnLeftButtonthis.findViewByIdR.id.btnLeft;
Android 应用程序是以许多
Android API 组件为基础进 //获取控件对象 ·60·Microcomputer Applications Vol. 28 No.7 2012 技术交流 微型电脑应用 2012 年第 28 卷第 7 期 btnLeft.setOnClickListenernewButton.OnClickListener 间为ms级,基本上完成了手机无线PWM控制功能。
//设置监听器 无线网卡工作在2.4GHz频段,其信号频率高,波长短, public void onClickView v 使其具有较弱的障碍物的穿透能力。
再加上发射功率不大 Left ;//事件处理函数 (一般小于100mw) 如果遇电磁干扰比较大或者较为封闭的 环境下,会影响数据的传输效果。
根据无线信号在自由空间 程序的通信部分采用了C/S 的结构来实现,服务器与 传播时的通信距离的计算方法: 通信距离与发射功率、接收客户端通过Socket进行网络通信。
手机客户端Socket编程实 灵敏度和工作频率有关。
有传播损耗公式:现与服务器端有所不同,在使用socket 方法创建完套接字 LbsdB32.4420lgdkm20lgfMHz (1)接口后,直接通过connect 方法与服务器端建立链接并可使 其中Lbs为传输损耗d为传输距离f为工作频率。
用收发函数进行控制命令的数据传输1。
使用close 方法可 对于工作在2.4GHZ的无线网卡,f2400MHZ则有无线以断开链接。
客户端应用程序流程图,如图7所示: 网卡自由空间损耗距离公式: Lbs20lgdkm100 (2) 传播损耗与传播距离的关系,如表1所示: 表1 WLAN信号在自由空间传播的损耗与距离关系 距离m 1 5 10 20 40 60 80 100 损耗db 40 54 60 66 72 76 78 80 实际中,信号还会受到障碍物阻挡、物体吸收、反射等 影响。
一般穿透一层木板,信号衰减5dB;穿透一堵砖墙, .