版主: wanchong , wangyu , eepwwp , firedom

分享到:
共10条 1/1 1   

基于蜂窝网络的智能化运动保卫智能设备,运动定位系统

    [您是本帖的第2239位阅读者]
eepwwp
我是GG
版主

最后登陆时间:2014-06-27 17:29:11

直达楼层
1# 发表于 2014-10-29 10:45:15


运动定位系统 Beta1.0
10 月 10 号左右就可以完成这个人项目。
一:首先写一下大概的流程




NEMG信号位分析

           并且使用显示屏显示定位信息



                                         使用相关规则来传输短信




全球定位系统使用了


收发信息模块使用了



还需要使用


显示当前位置


使用伽利略与手机进行通信

连接,还有。。。

当然还有最重要的,就是我们的开发板







关键词:伽利略    
此帖由eepwwp于2014-10-29 10:45:53最后编辑

RE: 基于蜂窝网络的智能化运动保卫智能设备,运动定位系统

eepwwp
我是GG
版主

最后登陆时间:2014-06-27 17:29:11

2# 发表于 2014-10-29 10:48:44


需要的资料




RE: 基于蜂窝网络的智能化运动保卫智能设备,运动定位系统

二叔
我是GG
高级会员

最后登陆时间:2014-10-23 10:40:53

3# 发表于 2014-10-29 10:55:46
插队~

RE: 基于蜂窝网络的智能化运动保卫智能设备,运动定位系统

Qubot
我是GG
高级会员

最后登陆时间:2014-07-16 11:28:04

4# 发表于 2014-10-29 11:06:28
插队

RE: 基于蜂窝网络的智能化运动保卫智能设备,运动定位系统

eepwwp
我是GG
版主

最后登陆时间:2014-06-27 17:29:11

5# 发表于 2014-10-29 11:10:06

二、全球定位系统芯片板,其中芯片datasheet可以在ublox官网下载

对比一下大小

现在只需要关注相应的协议来确定如何对其进行解析:

之前在论坛里发了有关协议解析的内容

打开GPS,由于没有相关的库,我改写了一个

if(Uart_Buffer == '$')
{
RX_Count = 0;
//Flag_GPS_OK = 0;
}


if(RX_Count < 6)
{
GPS_COM[RX_Count++] = Uart_Buffer;
}
else if( GPS_COM[0] == '$' && GPS_COM[1] == 'G'&& GPS_COM[2] == 'P'&&
GPS_COM[3] == 'G'&& GPS_COM[4] == 'G'&& GPS_COM[5] == 'A' ) //获取 GPGGA 数据
{
RX_GPGGA_Buffer[RX_Count] = Uart_Buffer;
if(RX_GPGGA_Buffer[RX_Count] == '\n')
{
Flag_GPGGA_OK = 1;


}
else
{
RX_Count++;
}
}
else if( GPS_COM[0] == '$' && GPS_COM[1] == 'G'&& GPS_COM[2] == 'P'&& 

GPS_COM[3] == 'R'&& GPS_COM[4] == 'M'&& GPS_COM[5] == 'C' ) //获取 GPRMC 数据
{
RX_GPRMC_Buffer[RX_Count] = Uart_Buffer;
if(RX_GPRMC_Buffer[RX_Count] == '\n')
{
Flag_GPRMC_OK = 1;


}
else
{
RX_Count++;
}
}
else if( GPS_COM[0] == '$' && GPS_COM[1] == 'G'&& GPS_COM[2] == 'P'&&
GPS_COM[3] == 'G'&& GPS_COM[4] == 'L'&& GPS_COM[5] == 'L' ) //获取 GPGLL 数据
{
if(Uart_Buffer == '\n')
{
Flag_GPS_OK = 1;
//一组数据都是最后一帧是 GPGLL,接收完 GPGLL 说明接收数据完成
}
}



}
if(Flag_GPS_OK == 1)
{
Flag_GPS_OK = 0;
Serial.print("**************************************************\n");
if(Flag_GPGGA_OK == 1)
{
Serial.print("UTC_Time:");
Flag_GPGGA_OK = 0;
 


UTC_Hour = (RX_GPGGA_Buffer[7]-0x30)*10+(RX_GPGGA_Buffer[8]-0x30);
UTC 时间
UTC_Min = (RX_GPGGA_Buffer[9]-0x30)*10+(RX_GPGGA_Buffer[10]-0x30);
UTC_Sec = (RX_GPGGA_Buffer[11]-0x30)*10+(RX_GPGGA_Buffer[12]-0x30);

(将坐标转换为地址),此过程称为反向地址解析(地址查询)。



接下来,是相关信息的处理与收发环节

Google Geocoding API 请求必须采用以下形式:

http://maps.google.com/maps/api/geocode/output?parameters

其中,output 可以是以下值之一:
json(建议)表示以 JavaScript 对象表示法 (JSON) 的形式输出
xml 表示以 XML 的形式输出
有些参数是必需的,有些是可选的。根据网址的标准,所有参数均使
用字符 & (&) 分隔。下面枚举了这些参数及其可能的值。
Google Geocoding API 使用以下网址参数定义地址查询请求:

latlng(必需)- 您希望获取的、距离最近的、可人工读取地址
的纬度/经度文本值。 
bounds(可选)- 要在其中更显著地偏移地址解析结果的可视区
域的边框。
region(可选)- 区域代码,指定为 ccTLD(“顶级域”)双字符
值。
language(可选)- 传回结果时所使用的语言。请注意,我们会
经常更新支持的语言,因此该列表可能并不详尽。如果未提
供 language,地址解析器将尝试尽可能使用发送请求的区域的
本地语言。
sensor(必需)- 指示地址解析请求是否来自装有位置传感器的
设备。该值必须为 true 或 false。
注意:bounds 和 region 参数只会影响地址解析器返回的结果,但不能
对其进行完全限制。
地址查询(反向地址解析)响应
地址解析响应将以网址请求路径中的 output 标记所指示的格式传回。
XML 响应包含一个 <GeocodeResponse>和两个顶级元素:
<status> 包含请求中状态代码。(非常重要)
零或多个 <result> 元素,每个元素都包含单独的一组地址解析
地址信息和几何图形信息。
地址解析响应对象中的 "status" 字段包含请求的状态,并且可能包含
调试信息,以帮助您追溯地址解析未正常工作的原因。
"status" 字段可能包含以下值:
"OK" 表示未发生错误;地址成功进行了解析并且至少传回了一 

个地址解析结果。(判断请求是否成功响应)
"ZERO_RESULTS" 表示地址解析成功,但未返回结果。如果地址
解析过程中传递的偏远位置 address 或 latlng 并不存在,则会出
现这种情况。
"OVER_QUERY_LIMIT" 表示您超出了配额。
"REQUEST_DENIED" 表 示 您 的 请 求 被 拒 绝 , 通 常 是 由 于 缺
少 sensor 参数。
"INVALID_REQUEST" 通常表示缺少查询参数(address 或 latlng)。
接下来,要写一点 Python DEMO
http://pypi.python.org/pypi/googlemaps/



Gmaps.latlng_to_adress(经度,纬度)


其他的类似,不在此一一赘述
接下来,了解一下 KML,为此,我下载了谷歌地图,但由于被墙,使用
还需要翻墙之类的,去 ping 通谷歌 




有 KML,KMZ,ETA,INI获取的经纬度信息,可以保存在 TF 卡创建的 KML 里面,然后使用谷歌 地 图 打 开 , 就 会 记 录 我 们 的 出 行 轨 迹 。 
















RE: 基于蜂窝网络的智能化运动保卫智能设备,运动定位系统

eepwwp
我是GG
版主

最后登陆时间:2014-06-27 17:29:11

6# 发表于 2014-10-29 11:13:01

接下来是显示模块

这个显示模块,是一块TFT模块,有相应的引脚进行连接

相关的原理,找到UTFT库,按照对应的提示编程

RE: 基于蜂窝网络的智能化运动保卫智能设备,运动定位系统

eepwwp
我是GG
版主

最后登陆时间:2014-06-27 17:29:11

7# 发表于 2014-10-29 11:35:06

三、

进入到最为重要的模块,也是一个很大的难题,就是定位的准确性与安全问题,尤其是可靠性,如果没有什么问题,每年有多少机器故障,我就不会花这么大心思,去研究我的这个产品与可靠性有关的问题。

首先,需要进行 SIM 模块的说明,原来是想把它作为一个附加模块,但是,问题就来了,怎么样传输信息,可以使得其在比较偏僻的地方,依旧可以使用。

在 5.12 大地震的时候,四川许多地方与外界的联系完全就没有了,只能依靠最原始的短信,电话来联系。其实,还有卫星可以使用,为  了确定自己的想法,我找了几本书来读。全是有关于卫星通信的书。 


却没有一个取代的方法,可以这样说,使用卫星通信,价格比较高,而且有一点点复杂。



就派上用途了,使用的芯片,是 SIM900A,相关的使用指令,我找到比较常用的: 

接着就是重点了



接着,就研究如何把指令通过串口发送到这个 SIM 板上,然后再通过检测返回卡的信息,判断下一步需要做的事情。
接受模块的关键代码

char datasim[255];                            //first erroy,second correct
int i = 0,mark = 0,n = 0,m = 0;         //in most sucation,first is right,expect, 
void setup() {                                 // it test when it is just on power
Serial.begin(9600);                         //when it count ,it erroy,count again
Serial3.begin(9600);


}

 

 

 

 

void loop() {

 

 

 

 

Serial3.print("AT+CMGR=1\r\n");

 

delay(1000);

 

while (Serial3.available() > 0)

 

{

 

 

 

 

datasim[n] = char(Serial3.read());

 

delay(2);

 

mark = 1;

 

n++;

 

}

 

 

 

 

if(mark == 1)

 

{

 

for(i = 0;i<n;i++)




 

 

 

 

if(mark == 1)

 

{

 

for(i = 0;i<n;i++)

{

 

Serial.print(datasim[i]);

 

delay(200);

 

}

 

}

 

 

 

 

for(m = 0;m<256;m++)

 

{

 

datasim[m] = ' ';

 

delay(2);

 

}

 

delay(1000);

 

mark = 0;

 

n = 0;

请出我们的boss

需要知道的

软件算法:

接着,就是看程序的调试



#include <UTFT.h>

 

extern uint8_t SmallFont[];

 

//UTFT myGLCD(Model,SDA,SCL,CS,RST,RS)

 

UTFT myGLCD(QD220A,A2,A1,A5,A4,A3);

 

void Show_CH_Font16(int x,int y,int FontPos)

 

{

 

char temp,t,t1,k;

 

int y0=y;


 

 

int HZnum;

 

 

 

 

for(t=0;t<32;t++)//每个 16*16 的汉字点阵 有 32 个字节

 

{

 

temp=tfont16[t+32*FontPos];

 

for(t1=0;t1<8;t1++)

 

{

 

if(temp&0x80)

 

{

 

myGLCD.setColor(255, 0, 0);//FontColor

 

myGLCD.drawPixel(x,y);

 

}

 

else

 

{

 

myGLCD.setColor(0, 0, 0);//BackColor

 

myGLCD.drawPixel(x,y);

 

}

 

 

 

 

temp<<=1;

 

y++;

 

if((y-y0)==16)

 

{


 

y=y0;

 

x++;

 

break;

 

}

 

 

 

 

}

 

}

 

 

 

 

 

 

 

}

 

void setup()

 

{

 

randomSeed(analogRead(0));

 

 

 

 

// Setup the LCD

 

myGLCD.InitLCD();

 

myGLCD.setFont(SmallFont);

 

}

 

void loop()

 

{

 

 

 

 

// Clear the screen and draw the frame




myGLCD.clrScr();

 

delay (10000);

 

myGLCD.setColor(255, 255, 255);

 

myGLCD.setBackColor(255, 0, 0);

 

 

 

 

 

 

 

myGLCD.print("当前位置", CENTER, 62);

 

myGLCD.print("解析为 ", CENTER, 88);

 

myGLCD.print("经度", CENTER, 101);

 

 

 

 

myGLCD.setColor(0, 255, 0);

 

myGLCD.setBackColor(0, 0, 255);

 

myGLCD.print("纬度", CENTER, 146);

 

myGLCD.printNumI(location, CENTER, 161);

 

 

 

 

delay (10000);

 

}


 











RE: 基于蜂窝网络的智能化运动保卫智能设备,运动定位系统

eepwwp
我是GG
版主

最后登陆时间:2014-06-27 17:29:11

8# 发表于 2014-10-29 11:41:24
四.总结与分析:

项目存在的不足:

程序有的基本上没有什么问题了,但有时还会出现乱码,现在依旧没有解决成功。


其次,有的时候,系统的一个部件不可以正常工作了,会导致其他的部件也相互影响,最后,如果一些模块自己做,就比较放心这些部件,但如

果在淘宝上面买,就要小心相关的问题,之前花了 40 买了一个 GPS芯片,就有了不出 2 星期时间就给搞坏了,虽然东西非常全,但是会遇到不


可预知的麻烦,这时,你需要多备一些零件。

还有,就是一个团队的问题,我们三个人,你做我的,我做你的,因为一些问题,我做的东西,就没有别人做了。我反而跑去做另外一个人该完


成的 GPS 编码问题,而且另外两个人,也是断断续续,你催他们,他们抱怨你,就没有效率了。

由于爱护板子,没有焊上一些部件,导致一些优化没有继续。

还有,每一次要收起来,又要拿出来装上,会非常麻烦,基本这样就会花掉 20 几分钟。

这次,在做这个项目的时候,也学到了许多东西,首先,就是我太责备求全,我只是想得太多,什么东西都要面面俱到,所以,有许多功能,都被


我认为,想当然的加了进去,却不知道,这实在是非常难完成的,之前一些功能,我使用了汇编,结果老是出问题,于是也停止了。

还有,就是便携性问题,这个是仍旧有待优化的。

因此,我们认为这个产品,现在这个阶段,只能说是 BETA1.0之后,我们会继续优化,升级为 V1.0,BETA1.1…… 



RE: 基于蜂窝网络的智能化运动保卫智能设备,运动定位系统

二叔
我是GG
高级会员

最后登陆时间:2014-10-23 10:40:53

9# 发表于 2014-10-29 16:24:51
eepwwp的原帖
四.总结与分析:

项目存在的不足:

程序有的基本上没有什么问题了,但有时还会出现乱码,现在依旧没有解决成功。


其次,有的时候,系统的一个部件不可以正常工作了,会导致其他的部件也相互影响,最后,如果一些模块自己做,就比较放心这些部件,但如

果在淘宝上面买,就要小心相关的问题,之前花了 40 买了一个 GPS芯片,就有了不出 2 星期时间就给搞坏了,虽然东西非常全,但是会遇到不


可预知的麻烦,这时,你需要多备一些零件。

还有,就是一个团队的问题,我们三个人,你做我的,我做你的,因为一些问题,我做的东西,就没有别人做了。我反而跑去做另外一个人该完


成的 GPS 编码问题,而且另外两个人,也是断断续续,你催他们,他们抱怨你,就没有效率了。

由于爱护板子,没有焊上一些部件,导致一些优化没有继续。

还有,每一次要收起来,又要拿出来装上,会非常麻烦,基本这样就会花掉 20 几分钟。

这次,在做这个项目的时候,也学到了许多东西,首先,就是我太责备求全,我只是想得太多,什么东西都要面面俱到,所以,有许多功能,都被


我认为,想当然的加了进去,却不知道,这实在是非常难完成的,之前一些功能,我使用了汇编,结果老是出问题,于是也停止了。

还有,就是便携性问题,这个是仍旧有待优化的。

因此,我们认为这个产品,现在这个阶段,只能说是 BETA1.0之后,我们会继续优化,升级为 V1.0,BETA1.1…… 




成品图呢?虎头蛇尾

RE: 基于蜂窝网络的智能化运动保卫智能设备,运动定位系统

中科院
我是GG
高级会员

最后登陆时间:2014-08-02 23:02:45

10# 发表于 2014-10-31 15:56:54
产品图过后放上去
共10条 1/1 1   
快速回复主题
  • 匿名不能发帖!请先 [ 登陆 注册 ]