哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

電子發(fā)燒友App

硬聲App

掃碼添加小助手

加入工程師交流群

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>LPC845 GPS尋路器開(kāi)源分享

LPC845 GPS尋路器開(kāi)源分享

2023-01-03 | zip | 0.21 MB | 次下載 | 2積分

資料介紹

描述

該項(xiàng)目使用開(kāi)源minmea NMEA 解析器和低成本LPC845-BRK 開(kāi)發(fā)板作為簡(jiǎn)單的位置查??找器。

MCU 將等待來(lái)自通過(guò) UART1 連接的板外 GPS(產(chǎn)品鏈接*)的初始鎖定。一旦建立鎖定(通過(guò)FIX引腳檢測(cè)),當(dāng)前位置將不斷更新。然后您可以定期檢查當(dāng)前位置和定義的目標(biāo)位置之間的距離。

可以在 UART0 上看到調(diào)試輸出,它可通過(guò) LPC845-BRK 上的 USB CDC 獲得,從而在對(duì)源代碼進(jìn)行任何修改時(shí)輕松獲得狀態(tài)更新。

* 任何通過(guò) UART 提供標(biāo)準(zhǔn) NMEA 語(yǔ)句的 GPS 都應(yīng)該在這個(gè)項(xiàng)目中工作。

?
pYYBAGOzheCAHQZUAAY-ZJOjUO4843.png
?

引出線

以下引腳用于連接外部 GPS(3 引腳)和 PWM 壓電蜂鳴器(1 引腳):

  • 壓電蜂鳴器的 SCT_OUT2(PWM 輸出):P0.29
  • USART1_RXD(GPS):P0.26
  • USART1_TXD(GPS):P0.27
  • GPS 定位:P0.28

?

?
pYYBAGOzheOAArxLAAHDQG9Qpqo091.png
?

操作(調(diào)試模式)

當(dāng)您將固件閃存到 LPC845(使用免費(fèi)的跨平臺(tái) MCUXpresso IDE 和 LPC845-BRK 上的調(diào)試器)時(shí),您可以使用任何終端仿真器包以9600bps連接到 USART1 。

退出重置后,您將看到以下消息:

LPC845 GPS Wayfinder
Waiting for a fix on the GPS module.
The GREEN LED indicates that we are waiting for a fix.
The BLUE LED indicates that we are parsing GPS data.

此時(shí),等待鎖定 3 顆或更多衛(wèi)星時(shí),LED 上的綠色 LED 將以 1Hz 的頻率閃爍,這是位置鎖定所需的。

一旦獲得鎖定,藍(lán)色 LED 將開(kāi)始閃爍,表明 MCU 當(dāng)前正在處理來(lái)自 GPS 單元的 NMEA 數(shù)據(jù),調(diào)試輸出將更新為以下(示例)輸出:

Current degree coordinates and speed: xx.xxxxxx, xx.xxxxxx (0.002333)
Distance to target: 14.30 km.

源代碼

雖然大部分源代碼相對(duì)容易理解,但下面描述了一些關(guān)鍵概念。

半正弦距離估計(jì)器

我們可以使用Haversine 公式的實(shí)現(xiàn)來(lái)確定兩點(diǎn)之間的距離,如下所示:

float
calc_distance(struct gps_coord_fp_deg *a, struct gps_coord_fp_deg *b)
{
  float hav_r_meters = 6371e3; /* Mean radius of the earth in meters. */
  //float hav_r_miles = 3961;  /* Mean radius of the earth in miles. */
  /* Convert degrees to radians and calculate the deltas. */
  float lat1 = deg_to_rad(a->latitude);
  float lat2 = deg_to_rad(b->latitude);
  float lon1 = deg_to_rad(a->longitude);
  float lon2 = deg_to_rad(b->longitude);
  float delta_lat = lat2 - lat1;
  float delta_long = lon2 - lon1;
  /* Haversine */
  float hav_a = pow(sin(delta_lat/2.0f),2.0f) + cos(lat1) * cos(lat2) * pow(sin(delta_long/2.0f),2.0f);
  float hav_c = 2.0f * atan2(sqrt(hav_a), sqrt(1.0f-hav_a));
  /* Calculate the great circle distance in meters. */
  return hav_c * hav_r_meters;
}

Haversine 公式將近似計(jì)算兩個(gè)位置之間球體表面的距離,輸出以米為單位。您可以選擇更新代碼以通過(guò)調(diào)整函數(shù)頂部的系數(shù)來(lái)輸出英里或任何其他單位。

Haversine 有點(diǎn)不完美,因?yàn)榈厍虿皇且粋€(gè)完美的球體,它以直線計(jì)算距離,但它是一個(gè)很好的整體距離近似值,計(jì)算量最少。

GPS 位置數(shù)據(jù)

應(yīng)用程序中的另一個(gè)關(guān)鍵功能是解析RMC 句子的 NMEA 解析器(基于minmea ) (其他句子可以根據(jù)需要輕松添加?。?/font>

int
parse_nmea_sentence_release(char *line)
{
  switch (minmea_sentence_id(line, false))
  {
    case MINMEA_SENTENCE_RMC: {
      struct minmea_sentence_rmc frame;
      if (minmea_parse_rmc(&frame, line)) {
        g_gps_coord_fp_deg_last.latitude = minmea_tocoord(&frame.latitude);
        g_gps_coord_fp_deg_last.longitude = minmea_tocoord(&frame.longitude);
        g_gps_coord_fp_deg_last.speed = minmea_tocoord(&frame.speed);
        g_gps_coord_fp_deg_last.is_valid = true;
        PRINTF("Current degree coordinates and speed: %f, %f (%f)\r\n",
        g_gps_coord_fp_deg_last.latitude,
        g_gps_coord_fp_deg_last.longitude,
        g_gps_coord_fp_deg_last.speed);
        float dist_m = calc_distance(&g_gps_coord_fp_deg_last, &g_gps_coord_fp_deg_trgt);
        if (dist_m > 1000.0F) {
          /* Show distance in kilometers. */
          PRINTF("Distance to target: %.2f km.\r\n", dist_m / 1000.0F);
        } else {
          /* Show distance in meters */
          PRINTF("Distance to target: %.1f meters.\r\n", dist_m);
        }
      } else {
        PRINTF("$xxRMC sentence is not parsed\r\n");
      }
    } break;
    case MINMEA_INVALID: {
      /* $xxxxx sentence is not valid */
      error_blink();
    } break;
    default: {
      /* $xxxxx sentence is valid but wasn't handled above. */
    } break;
  }
  return 0;
}

在這個(gè)基本示例中,我們只解析RMC語(yǔ)句,它代表最小推薦數(shù)據(jù),具有以下 NMEA 語(yǔ)句格式(來(lái)源):

$GPRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4,230394,003.1,W*6A

在哪里:

  • RMC - 推薦的最低刑期 C
  • 123519 - 修復(fù)時(shí)間為 12:35:19 UTC
  • A - 狀態(tài) A=active 或 V=Void。
  • 4807.038, N - 北緯 48 度 07.038'
  • 01131.000, E - 東經(jīng) 11 度 31.000'
  • 022.4 - 對(duì)地速度(節(jié))
  • 084.4 - 以度為單位的軌道角度 True
  • 230394 - 日期 - 1994 年 3 月 23 日
  • 003.1, W - 磁差
  • *6A - 校驗(yàn)和數(shù)據(jù),始終以 * 開(kāi)頭

距離事件

這個(gè)應(yīng)用程序的關(guān)鍵部分是上面 GPS 解析函數(shù)中的以下幾行代碼,每當(dāng)解析引擎解析到新的位置定位時(shí),它就會(huì)不斷地將當(dāng)前位置與目的地進(jìn)行比較:

if (dist_m > 1000.0F) {
  /* Show distance in kilometers. */
  PRINTF("Distance to target: %.2f km.\r\n", dist_m / 1000.0F);
} else {
  /* Show distance in meters */
  PRINTF("Distance to target: %.1f meters.\r\n", dist_m);
}

根據(jù)你想做什么,你應(yīng)該擴(kuò)展上面的代碼,比如當(dāng)你接近目的地時(shí),壓電蜂鳴器發(fā)出越來(lái)越響亮或頻率越來(lái)越高的聲音。

壓電蜂鳴器

根據(jù)您的應(yīng)用要求,您可以選擇使用以下宏啟用或禁用壓電蜂鳴器:

PIEZO_ON();
/* ... do something ... */
PIEZO_OFF();

可以使用main.c中的以下宏定義來(lái)調(diào)整壓電蜂鳴器(使用 SCT 外圍設(shè)備)發(fā)出的確切頻率

#define SCTIMER_CLK_FREQ    (CLOCK_GetFreq(kCLOCK_Fro))
#define SCTIMER_OUT         (kSCTIMER_Out_2)
#define SCTIMER_PIEZO_FREQ  (4000U)
#define SCTIMER_PIEZO_DUTY  (25U)
#define PIEZO_ON()          SCTIMER_StartTimer(SCT0, kSCTIMER_Counter_L);
#define PIEZO_OFF()         SCTIMER_StopTimer(SCT0, kSCTIMER_Counter_L);

進(jìn)一步發(fā)展

雖然當(dāng)前的概念證明具有簡(jiǎn)單、便攜式尋路器的關(guān)鍵要素,但我目前正在研究一種外殼,使整個(gè)設(shè)備便攜,并由 3.7V LIPO 電池供電。當(dāng)我完成一些原型時(shí),硬件文件將在此處可用。


usb gps uart
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1矽力杰 Silergy SY7215A 同步升壓調(diào)節(jié)器 規(guī)格書(shū) Datasheet 佰祥電子
  2. 1.12 MB  |  5次下載  |  免費(fèi)
  3. 2HT81696H 內(nèi)置升壓的30W立體聲D類音頻功放數(shù)據(jù)手冊(cè)
  4. 1.21 MB   |  1次下載  |  免費(fèi)
  5. 3HTA6863 3W超低噪聲超低功耗單聲道D類音頻功率放大器數(shù)據(jù)手冊(cè)
  6. 0.87 MB   |  次下載  |  免費(fèi)
  7. 4南芯 Southchip SC8802C 充電控制器 規(guī)格書(shū) Datasheet 佰祥電子
  8. 88.16 KB  |  次下載  |  免費(fèi)
  9. 5矽力杰 Silergy SY7065 同步升壓轉(zhuǎn)換器 規(guī)格書(shū) Datasheet 佰祥電子
  10. 910.67 KB  |  次下載  |  免費(fèi)
  11. 6矽力杰 Silergy SY7066 同步升壓轉(zhuǎn)換器 規(guī)格書(shū) Datasheet 佰祥電子
  12. 989.14 KB  |  次下載  |  免費(fèi)
  13. 7WD6208A產(chǎn)品規(guī)格書(shū)
  14. 631.24 KB  |  次下載  |  免費(fèi)
  15. 8NB685 26 V,12 A,低靜態(tài)電流,大電流 同步降壓變換器數(shù)據(jù)手冊(cè)
  16. 1.64 MB   |  次下載  |  2 積分

本月

  1. 1EMC PCB設(shè)計(jì)總結(jié)
  2. 0.33 MB   |  12次下載  |  免費(fèi)
  3. 2PD取電芯片 ECP5702規(guī)格書(shū)
  4. 0.88 MB   |  5次下載  |  免費(fèi)
  5. 3矽力杰 Silergy SY7215A 同步升壓調(diào)節(jié)器 規(guī)格書(shū) Datasheet 佰祥電子
  6. 1.12 MB  |  5次下載  |  免費(fèi)
  7. 4氮化鎵GaN FET/GaN HEMT 功率驅(qū)動(dòng)電路選型表
  8. 0.10 MB   |  3次下載  |  免費(fèi)
  9. 5PD取電芯片,可取5/9/12/15/20V電壓ECP5702數(shù)據(jù)手冊(cè)
  10. 0.88 MB   |  3次下載  |  免費(fèi)
  11. 6SY50655 用于高輸入電壓應(yīng)用的偽固定頻率SSR反激式穩(wěn)壓器英文資料
  12. 1.01 MB   |  3次下載  |  免費(fèi)
  13. 7怎么為半導(dǎo)體測(cè)試儀選擇精密放大器
  14. 0.65 MB   |  2次下載  |  免費(fèi)
  15. 8SY52341 次級(jí)側(cè)同步整流英文手冊(cè)
  16. 0.94 MB   |  2次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935137次下載  |  10 積分
  3. 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233095次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191469次下載  |  10 積分
  9. 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  10. 158M  |  183360次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81606次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73832次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65991次下載  |  10 積分
黄冈市| 商水县| 陇川县| 马关县| 南江县| 资中县| 齐河县| 公主岭市| 阜阳市| 集贤县| 灵寿县| 改则县| 崇阳县| 富裕县| 合作市| 兴山县| 财经| 县级市| 德安县| 曲麻莱县| 台前县| 湟源县| 恩施市| 宜兰县| 宜黄县| 大关县| 化德县| 长寿区| 嘉祥县| 健康| 蓝田县| 翼城县| 嘉义县| 阿合奇县| 巴中市| 浏阳市| 玉门市| 东乌珠穆沁旗| 宁波市| 神农架林区| 汽车|