微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于802.11b与安卓手机操控机器鱼的研究

基于802.11b与安卓手机操控机器鱼的研究

时间:08-24 来源:互联网 点击:

摘要:本文介绍了一种以“安卓智能手机”和“802.11b技术”为基础的新型机器鱼操控系统。该系统以安卓平台下的智能手机为操作平台,通过对手机端编写socket程序与802.11b模块建立无线通讯连接,经Wi—Fi转串口模块转码后将手机发出的控制指令传送给单片机,单片机在接收到控制指令后通过编程产生PWM波实现对舵机的控制,从而实现对机器鱼的操控。
关键词:安卓手机;802.11b;socket;430单片机;机器鱼

随着科技的进步与技术的发展,手机已成为生活中不可或缺的一部分。增强手机功能方便人们的生产生活成为各大手机制造商的共同目标。目前安装有Android (安卓系统)的手机越来越受到消费者的喜爱,调查显示Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为68.4%,安卓平台下的智能手机已经超越塞班成为全球最具影响力的手机操作平台之一。
802.11b(即Wi—Fi技术)是一种可以将个人电脑、手持设备(如PDA、手机)等终端以无线方式互相连接的技术,它具有传输速度快、传输距离远、网络稳定性和可靠性高、方便与以太网整合和组网成本低等特点。基于这些特点Wi—Fi技术发展相当迅速,如今Wi—Fi技术已经相当成熟并且广泛应用于手机电脑等终端设备。
以往机器鱼都是用PC机来控制,但是灵活性差,且控制起来不方便,我们用安卓手机与Wi—Fi技术相结合的方法来控制机器鱼,其灵活性得到了大大增强。随着机器鱼技术的深入发展,多鱼协调操作会慢慢成为研究的热点,而日益成熟的Wi—Fi技术可以实现一点对多点的控制,并且Wi—Fi技术也有功耗低、传输速度快等优点,可以实现多鱼协调操作。

1 系统总体架构
系统的主体分为四大模块,嵌有安卓操作系统的手机模块、Uart-wifi模块、单片机模块和电源及驱动模块。系统的总体构架如图1所示。

Android手机模块主要完成基于安卓平台下的应用程序的编写及控制界面的生成,其作为客户端,能够被用户控制,是人机信息交换平台;Uart-wifi模块主要进行无线通信,接收手机发出来的信号并将MSP430F149单片机返回的信号发送给手机;单片机模块作为主控单元主要完成串口通信,并通过识别Wi—Fi模块传来的信号对执行部件做出相应控制;电源及驱动模块主要完成对各个硬件模块的供电和稳压。这四大模块相互配合构成一个完整的系统,各个模块间的联系都非常紧密,缺一不可,每一模块必须正常运行,才能保证整个系统准确高效运转。

2 安卓手机模块
首先介绍一下安卓平台和socket通信原理。
Android是以Linux为核心的开放式手机操作平台,系统架构和其它操作系统一样,采用了分层的架构。从架构图看,Android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux核心层。目前Android已经允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局而,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统,被大多数的开发者视为最有潜力的手机操作系统。
Socket简称套接字,用于实现网络上客户和服务器之间的连接,也就是说网络上两个或两个以上双工方式通信的进程之间总有一个连接,这个连接的端点称为套接字(见图2)。套接字相当于由其名字连接起来的通信线路的端点,这种连接不仅适用于本地进程之间的通信,而且也适用于异地进程之间的通信。用套接字连接的两个进程可双向通信,且两通信端点的工作方式是不同的,一端工作于服务方,另一端工作于客户方。

手机模块作为客户端,主要完成人机信息的交换、控制命令的发出以及返回信息的接收。首先在安卓平台的应用层编写上位机程序,创建操作界面,以实现人机信息的交换并把控制指令转化为数据帧,然后Socket再把数据帧以数据流的形式传送给传输层继而传送给网络层和数据链路层,最后数据流传送至物理层由手机Wi—Fi模块发送出去,实现信息的发送。以下是socket通信的部分程序:


3 Wi—Fi模块
Wi—Fi无线网络包括两种类型的拓扑形式,基础网(Infra)和自组网(Adhoc)。要说明无线网络的拓扑形式,需要首先了解两个基本概念:
AP:也就是无线接入点,是一个无线网络的创建者,是网络的中心节点。我们一般家庭或办公室使用的无线路由器就一个AP。
STA:即站点,每一个连接到无线网络中的终端(如笔记本电脑、PDA及其它可以联网的用户设备)都可称之为一个站点。
Infra也称为基础网,是由AP创建,众多STA加入所组成的无线网络。这种类型的网络的特点是AP是整个网络的中心,网络中所有的通信都通过AP来转发完成:Adhoc也称为自组网,是仅由两个及两个以上STA自己组成,网络中不存在AP,这种类型的网络是一种松散的结构,网络中所有的STA都可以直接通信。
基于自组网中所有的STA都可以直接通信的特点,本文采用了自组网的形式建立手机与Uart-wifi模块之间的通信。手机和所有装有Uart—wifi模块的机器鱼都各自是一个STA,当手机发出控制命令后,每一条机器鱼(即每一个STA)都会接收到这个控制命令,从而做出相应的动作实现对多鱼的控制。
由于数据在网络上是以数据帧的形式传输的,而在串口中是以字节流的形式传输的,我们要想把手机传送的网络数据通过串口传送给单片机就要先进行数据类型的转换。所以我们采用了嵌入式Uart-Wifi模块。Uart-wifi模块是基与Uart接口的符合Wi—Fi无线网络标准的嵌入式模块,内置无线网络协议IEEE802.11协议栈以及TCP/IP协议栈,能够实现用户串口数据到无线网络之间的转换。通过Uart-Wifi模块,传统的串口设备也能轻松接入无线网络。当Uart-Wifi模块接收到网络上传输过来的数据帧时它会将这些数据从帧格式转换成流格式,这是比较容易的,也是大多数普通Wi—Fi模块都能够实现的,但当模块从串口接收单片机返回的数据即接收到流格式数据要将其转换成帧格式发送出去时就比较困难了,它需要一定的规则进行约束。而Uart-Wifi模块使用“自动组帧长度”和“自动组帧周期”来进行约束,能够轻易的将数据从流的形式转换成帧的形式。因此应用Uart-wifi模块作为中间模块进行手机和单片机间的通信能够轻易地解决数据类型转换难的问题(见图3)。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top