簡體   English   中英

將GPS連接到Raspberry Pi

[英]Connection GPS to Raspberry Pi

我正在嘗試使用Atmega1284p UART讀取GPS模塊的NMEA輸出。 這是傳入的ascii流的樣子:

$GPGLL,3720.11677,N,12158.43719,W,031059.00,A,D*77<CR><LF>

我想獲取字符串的“ 3720.11”部分,即緯度。 這不是唯一輸入的字符串,而是唯一包含“ GPGLL”的字符串,因此我編寫了一些代碼,在uart上捕獲字符,直到看到L,然后在字符串開頭查找逗號。號碼。 然后,它將在此之后捕獲字符,而忽略小數點。

我不知道如何用Python編寫該程序。 請幫我!

char ignore;
char latitude[6];

while(ignore!=0x4C)
{
    ignore=getchar();        // Look for L (4C) at start of string
}           

while(ignore!=0x2C)
{
    ignore=getchar();        // Look for comma (2C) before latitude data
}                         

latitude[0]=getchar();       // Store latitude characters
latitude[1]=getchar();
latitude[2]=getchar();
latitude[3]=getchar();
ignore=getchar();            // Ignore decimal
latitude[4]=getchar();
latitude[5]=getchar();

在Python中,您可以使用split函數將字符串分割為給定分隔符的列表。 在您的字符串中,逗號是定界符。 因此,拆分字符串,獲取列表中的第二個元素,您便擁有了緯度:

def get_latitude_from_nmea(telegram):
    split_telegram = telegram.split(',')
    latitude = split_telegram[1]

    return latitude

# example:

telegram = "$GPGLL,3720.11677,N,12158.43719,W,031059.00,A,D*77"
latitude = get_latitude_from_nmea(telegram)

print(latitude)     # 3720.11677

latitude是一個字符串。 如果您希望將其作為float,則可以使用float()進行float()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM