色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

基于AB32VG1的GPS位置記錄器

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

yu1988123 yu1988123

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

yu1988123 yu1988123

團隊成員

Algo 嵌入式軟件工程師

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

一. 整體硬件由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)


軟件框架:

無標題.png


1、軟件配置

1.1  RT-Thread Setting

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

RT-Thread_Settings.jpg


2、 軟件介紹

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


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

核心數(shù)據(jù)結構和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ù)回調 */
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) - 按鍵消息處理

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

/** 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)顯示、當前經(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: 謝謝分享

    回復

主站蜘蛛池模板: 中国老妇xxxhd| 蜜桃狠狠色伊人亚洲综合网站| 久久精品黄色| 亚洲AV无码乱码在线观看浪潮| china中国gay偷拍| 开心片色99xxxx| 亚洲男人97色综合久久久| 吃奶啃奶玩乳漫画| 三级中国免费的| 芭乐草莓樱桃丝瓜18岁大全| 欧美 亚洲 有码中文字幕| 野花韩国高清完整版在线| 国产午夜视频| 亚洲国产成人精品无码区5566| 成年性生交大片免费看| 四房播播开心色播| 超碰在线视频97| 亚洲欧美中文字幕网站大全| 97超碰97资源在线观看视频| 胖老太与人牲交BBWBBW高潮| 囯产少妇BBBBBB高潮喷水一| 清冷受被CAO的合不拢| 亚洲视频免费在线观看| 精品无码久久久久久久动漫| 在教室轮流被澡高H林萌| 久久久精品免费视频| 国产一区二区在线免费观看| 美女快播第一网| 狠狠人妻久久久久久综合九色| 92精品国产成人观看免费 | 成人在线免费视频| 办公室沙发口爆12P| 大胆国模一区二区三区伊人 | 亚洲精品欧美精品中文字幕| 亚洲天堂视频网站| 69丰满少妇AV无码区| qvod电影网| 国产免费啪嗒啪嗒视频看看 | 国产精品久久久久久日本| 黑人娇小BBW| 免费成人小视频|