在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

聚豐項目 > 基于AB32VG1的GPS位置記錄器

基于AB32VG1的GPS位置記錄器

基于AB32VG1豐富的板載資源,并結(jié)合GPS模塊及顯示等其他模塊,在方便記錄軌跡的同時,提供校為便利的用戶交互體驗(如聲音提示和用戶按鍵交互,及屏幕顯示)。項目可用于運動軌跡記錄,及實時顯示速度等展示,及其他應(yīng)用領(lǐng)域,解決部分場景下位置記錄實時查看不便或需要借助其他功耗相對較高的記錄設(shè)備的問題,同時增加生活的趣味性。

yu1988123 yu1988123

分享
0 喜歡這個項目
團隊介紹

yu1988123 yu1988123

團隊成員

Algo 嵌入式軟件工程師

分享
項目簡介
基于AB32VG1豐富的板載資源,并結(jié)合GPS模塊及顯示等其他模塊,在方便記錄軌跡的同時,提供校為便利的用戶交互體驗(如聲音提示和用戶按鍵交互,及屏幕顯示)。項目可用于運動軌跡記錄,及實時顯示速度等展示,及其他應(yīng)用領(lǐng)域,解決部分場景下位置記錄實時查看不便或需要借助其他功耗相對較高的記錄設(shè)備的問題,同時增加生活的趣味性。
硬件說明

一. 整體硬件由4部分組成:

AB32VG1開發(fā)板、SSD1306 OLED顯示屏、GPS模塊(支持北斗和GSP雙模定位)和SD卡

 

注:其中開發(fā)板還用到了GREEN和RED燈,和S2及S3按鍵

硬件示意圖:

AB32VG1_HW_01.jpg


硬件整體外觀如下圖所示:



二、硬件模塊的連接

1、SSD1306 OLED顯示屏(II2C)引腳連接:

PE3 - OLED SCL、PE2 - OLED SDA、電源引腳


AB32VG1_II2C.jpg


2、GPS模塊引腳連接(串口):

PA4 - GPS RX、PA3 - GPS TX、電源引腳

AB32VG1_UART.jpg


3、OLED和GPS模塊電源引腳連接:

模塊供電,均采用開發(fā)板提供的3.3V電源引腳

AB32VG1_POWER.jpg


軟件說明

項目的軟件采用RT-Thread官方提供的IDE RT-ThreadStudio開發(fā),SDK基于AB32VG1-AB-PROUGEN,同時部分模塊采用官方軟件包,如ssd1306軟件包,也移植了部分軟件,如TinyGPS++和GPX(該部分開源軟件主要由C++編寫,移植采用C實現(xiàn),并修改部分BUG),GPS記錄后的軌跡符合GPX規(guī)范,可以用GPXSee(http://www.gpxsee.org) 軟件查看。


軟件開源地址:AB32VG1_GPS_TRACK: 基于AB32VG1的GPS位置記錄器 (gitee.com)


軟件框架:

無標(biāo)題.png


1、軟件配置

1.1  RT-Thread Setting

軟件主要開啟了與硬件相關(guān)的I2C和串口,同時開啟了RTC相關(guān)功能

RT-Thread_Settings.jpg


2、 軟件介紹

軟件采用模塊化設(shè)計,主要分為以下幾個核心模塊:


2.1、gps.c (gps.h) - GPS數(shù)據(jù)管理

核心數(shù)據(jù)結(jié)構(gòu)和API如下:

/* Clock */
typedef struct{    
    uint16_t year;    
    uint8_t month;    
    uint8_t day;    
    uint8_t week;    
    uint8_t hour;    
    uint8_t minute;    
    uint8_t second;    
    uint16_t millisecond;
} Clock_Info_t;

/* GPS */
typedef struct{    
    bool isVaild;    
    float longitude;    
    float latitude;    
    float altitude;    
    float course;    
    float speed;    
    int16_t satellites;    
    Clock_Info_t clock;
} GPS_Info_t;

/* GPS 數(shù)據(jù)回調(diào) */
typedef rt_int32_t (*gps_callback_t)(GPS_Info_t info);

int gps_init(gps_callback_t callback);
bool gps_get_info(GPS_Info_t* info);
float gps_get_distance(GPS_Info_t* info, float preLong, float preLat);


2.2、gpx.c (gpx.h) - GPX數(shù)據(jù)格式封裝

主要API如下:

char *gpx_getOpen();
char *gpx_getClose();
void gpx_getMetaData(char* data);
char *gpx_getTrakOpen();
char *gpx_getTrakClose();
char *gpx_getTrakSegOpen();
char *gpx_getTrakSegClose();
void gpx_getInfo(char *info);
void gpx_getPt(char *typ, char *lon, char *lat, char *pt);
void gpx_setMetaName(char *name);
void gpx_setMetaDesc(char *desc);
void gpx_setName(char *name);
void gpx_setDesc(char *desc);
void gpx_setEle(char *ele);
void gpx_setSym(char *sym);
void gpx_setSrc(char *src);
void gpx_setTime(char *time);


2.3、key.c (key.h) - 按鍵消息處理

按鍵消息,支持短按、長按等,可以方便移植到其他平臺,核心結(jié)構(gòu)體定義如下:

/** key information */
typedef struct _key_info{    
    key_code_t code;    
    key_state_t state;    
    rt_bool_t short_press_done;    
    rt_bool_t short_press;   
    rt_bool_t long_press_done;    
    rt_bool_t long_press;    
    rt_bool_t double_press_done;    
    rt_bool_t double_press;    
    rt_uint32_t timtick;    
    rt_uint32_t double_timtick;
} key_info_t;


2.4、page.c (page.h) - OLED界面

OLED界面主要實現(xiàn):系統(tǒng)本地日期時間顯示、定位狀態(tài)顯示、當(dāng)前經(jīng)緯度和實時速度及已經(jīng)定位的距離

頭文件定義:

typedef enum _page_type {
    PAGE_STARTUP = 0,
    PAGE_DATE_TIME,    
    PAGE_LOCATION,    
    PAGE_SPEED,    
    PAGE_MAX,
}page_type_t;

typedef enum _page_state {    
    PAGE_STATE_LOCATION = 0x1,
    PAGE_STATE_TRACK = 0x2,
}page_state_t;

void page_init();
void page_switch(rt_int32_t index);
void page_update();


2.5、track.c - GPS軌跡記錄模塊

用于GPS軌跡的記錄,統(tǒng)一由該模塊管理,開始和停止記錄。


一份簡短的實際生成的GPS軌跡如下(附件:TRACK_20211204_131156.zip):

<gpx version="1.1" creator="GPX C Library"

 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

 xmlns="http://www.topografix.com/GPX/1/1"

 xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd"

>

<metadata><name><![CDATA[Ver 1.0.0]]></name>

<desc><![CDATA[GPS Track By AlgoIdeas]]></desc>

</metadata>

<trk><name><![CDATA[TRACK_20211204_131156.gpx]]></name>

<desc><![CDATA[GPS Track based on AB32VG1]]></desc>

<trkseg><trkpt lat="22.992729" lon="114.481583"><ele>25.70</ele>

<time>2021-12-04T05:12:07Z</time>

</trkpt>

<trkpt lat="22.992701" lon="114.481583"><ele>25.40</ele>

<time>2021-12-04T05:12:10Z</time>

</trkpt>

<trkpt lat="22.992649" lon="114.481583"><ele>25.40</ele>

<time>2021-12-04T05:12:14Z</time>

</trkpt>

<trkpt lat="22.992519" lon="114.481590"><ele>17.80</ele>

<time>2021-12-04T05:12:27Z</time>

</trkpt>

<trkpt lat="22.992310" lon="114.481628"><ele>8.90</ele>

<time>2021-12-04T05:12:44Z</time>

</trkpt>

<trkpt lat="22.992029" lon="114.481728"><ele>10.70</ele>

<time>2021-12-04T05:12:59Z</time>

</trkpt>

<trkpt lat="22.991880" lon="114.481758"><ele>13.80</ele>

<time>2021-12-04T05:13:15Z</time>

</trkpt>

...  ...

<trkpt lat="22.992920" lon="114.481140"><ele>21.30</ele>

<time>2021-12-04T05:23:24Z</time>

</trkpt>

</trkseg>

</trk>

</gpx>


注:實際生成的軌跡,如果有部分存在異常的數(shù)據(jù)需要軟件處理或手動刪除

演示效果

一、視頻演示效果

注:手機拍攝,OLED存在屏閃屬于正常現(xiàn)象


二、軟件界面賞析

圖 2.1 定位界面


圖2.2 系統(tǒng)日期和時間界面 (GPS校時后)


圖2.3 經(jīng)緯度界面

1.png


圖2.4 實時速度于定位距離界面

poYBAGGrAo-AfuPTABPRG_GZjz4444.png


圖2.5 系統(tǒng)日期時間界面,GPS軌跡錄制狀態(tài)顯示

pYYBAGGrAo-AYHOlABroi5Q_xLY896.png


三、GPS軌跡查看

2021-12-04_133641.png


評論區(qū)(1 )
  • yu1988123: 謝謝分享

    回復(fù)

主站蜘蛛池模板: 在线看一区二区 | 欧美在线黄 | 最新日本免费一区二区三区中文 | 狠狠色丁香婷婷第六色孕妇 | 日本高清不卡视频 | 奇米影视777欧美在线观看 | 91精品日本久久久久久牛牛 | 色视频线观看在线播放 | 欧洲乱码专区一区二区三区四区 | 一级黄色录像视频 | 国产主播在线看 | 日本黄色网址免费 | 天堂免费视频 | videos另类重口tv | xx性欧美 | 日日爱夜夜爱 | 四虎永久在线精品网址 | 欧洲精品码一区二区三区免费看 | 日本口工禁漫画无遮挡全彩 | 五月天婷婷色 | 国产一二精品 | 免费国产成高清人在线视频 | 免费的男女拍拍拍的视频 | 日韩免费在线视频 | 性视频一区 | 456性欧美欧美在线视频 | 成年人电影黄色 | 亚洲国产一区二区三区在线观看 | 特黄特色 | 天天做天天爱天天综合网 | 国产中日韩一区二区三区 | 濑亚美莉vs黑人欧美视频 | 男人你懂的网站 | 久久久午夜精品 | 五月婷婷影院 | 男男浪荡双性受hplay | 一级视频在线观看 | 一级国产特黄aa大片 | 碰免费人人人视频 | 国产美女久久久久 | 日本口工福利漫画无遮挡 |