日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python gps模块_一步一步使用uPyCraft学习MicroPython之GPS记录器

發(fā)布時(shí)間:2024/9/19 python 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python gps模块_一步一步使用uPyCraft学习MicroPython之GPS记录器 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本帖最后由 滄海笑 于 2017-7-2 16:06 編輯

【本期故事】本期制作一個(gè)gps軌跡記錄儀,使用的uPyCraft IDE以及micropython。為了疊裝在螢火蟲esp32上,我們還專門制作了一塊擴(kuò)展板(含gps模塊以及oled模塊)。下面一起來看看吧。

3.jpg (52.54 KB, 下載次數(shù): 30)

2017-7-2 15:53 上傳

【硬件清單】品名數(shù)量備注

FireBeetle Board-ESP321帶800mah電池一塊

Ublox-6mGPS模塊1

Oled10.96寸,ssd1306驅(qū)動(dòng),IIC接口

FireBeetle Board-空白PCB1便于制作gps&oled擴(kuò)展板

杜邦線6

【軟件準(zhǔn)備】品名版本備注

uPyCraftV0.20DF出品MicroPython IDE

Micropygps庫Mp下的gps解析庫

【gps&oled擴(kuò)展板的制作】

利用一塊FireBeetle Board-空白PCB,增加兩個(gè)模塊。接線如下:

gps:

tx--------D2(FireBeetle Board-ESP32)

vcc-----3V3(FireBeetle Board-ESP32)

GND---GND(FireBeetle Board-ESP32)

OLED

vcc-----3V3(FireBeetle Board-ESP32)

GND---GND(FireBeetle Board-ESP32)

scl-----scl(FireBeetle Board-ESP32)

sda----sda(FireBeetle Board-ESP32)使用飛線,因?yàn)榻泳€不過,所以很容易制作,gps使用三根排針,oled只用四根。

1.jpg (106.91 KB, 下載次數(shù): 27)

2017-7-2 15:53 上傳

天線采用雙面膠固定,你也可以使用其他方式,自由想象吧。gps模塊是直插,天線也可換做SMA接口。

2.jpg (68.21 KB, 下載次數(shù): 33)

2017-7-2 15:53 上傳

【關(guān)于Micropygps庫】

https://github.com/inmcm/micropyGPS

micropyGPS is a full featured GPS NMEA sentenceparser for use withMicroPython and the PyBoard embedded platform. It's alsofully compatible with Python 3.x

本身為pyb設(shè)計(jì),但是是全功能的GPS NMEA解析庫。只要用mp以及uart傳送gps數(shù)據(jù),就可能使用本庫進(jìn)行解析。更多詳情可以查看giuhub的介紹。

文檔還是比較清楚的,例題方面需要大家自己搜,提供了pyb的例題可以參考。

【軟件代碼】

[Python] 純文本查看 復(fù)制代碼from machine import Pin,I2C

import time

import ssd1306

from micropyGPS import MicropyGPS

i2c = I2C(scl=Pin(22), sda=Pin(21), freq=100000)

lcd=ssd1306.SSD1306_I2C(128,64,i2c)

com = machine.UART(2,baudrate=9600,rx=25,tx=26,timeout=10) #定義uart2

my_gps = MicropyGPS(8)#東八區(qū)的修正

my_gps.local_offset

def get_GPS_values():

global gps_values,rtc #定義兩個(gè)全局變量

time.sleep(2)

cc = com.readline()

for x in cc:

my_gps.update(chr(x))

#lat&long

gps_values = str(my_gps.latitude[0] + (my_gps.latitude[1] / 60)) + ',' + str(my_gps.longitude[0] + (my_gps.longitude[1] / 60))

#datetime

date = my_gps.date

timestamp = my_gps.timestamp

hour = timestamp[0]

rtc = str(int(timestamp[0]))+":"+str(int(timestamp[1]))+":"+str(int(timestamp[2]))

return gps_values,rtc

while 1:

time.sleep_ms(20)

get_GPS_values()

lcd.fill(0) #清屏,如果是ssd1306修改的庫,可以用clear()

lcd.show()

lcd.text("GPS:",5,0)

lcd.text(gps_values,0,16)

lcd.text("Sate:",5,36)

lcd.text(str(my_gps.satellites_in_use),64,36)

lcd.text("Time:",5,50)

lcd.text(rtc,64,50 )

lcd.show()

my_gps.start_logging('log.txt') #制定存儲(chǔ)的文件,是以“追加”的方式打開,請(qǐng)參考庫

my_gps.write_log(gps_values+" "+rtc+" state:" +str(my_gps.satellites_in_use)+"\n") #記得加入換行符

time.sleep_ms(100)

my_gps.stop_logging() #停止記錄

print(gps_values) #本地調(diào)試,可刪除

print(rtc)#可刪除[/font][/align][align=left][font=宋體]

【測試】

(一)gps模塊首先要進(jìn)行配置和檢測,很多玩家直接插單片機(jī),這是我很不推薦的。玩gps模塊,首先用usb-ttl轉(zhuǎn)換模塊連接到pc上,使用u-center等上位機(jī)軟件,配置波特率(默認(rèn)9600),觀察其搜星、定位功能是否正常。如果正常了,再開展下一步測試。

(二)上電后,可以看到oled上面顯示出三組信息:一組是經(jīng)緯度,以及轉(zhuǎn)換成小數(shù)點(diǎn)形式的以度為單位的數(shù)據(jù),第二組是顯示gps模塊可用的衛(wèi)星數(shù)量。第三組是rtc時(shí)間。因?yàn)槲覀円呀?jīng)用了東八區(qū)補(bǔ)償,所以顯示的時(shí)間就是本地北京時(shí)間了。

2秒鐘刷新一次數(shù)據(jù)。

(三)路徑的存儲(chǔ),可以將經(jīng)緯度和rtc數(shù)據(jù)保存在log.txt上。由于本地flash有限,你也可以加在tf卡上,這樣可以長時(shí)間保存路徑數(shù)據(jù)。

5.png (16.96 KB, 下載次數(shù): 31)

2017-7-2 15:54 上傳

(四)提升空間:

一是可以增加一個(gè)按鈕,驅(qū)動(dòng)數(shù)據(jù)記錄和停止。

二是可以將log.txt的數(shù)據(jù)格式,記錄為google earth的kml格式文件,這樣可以直接在谷歌數(shù)字地球中導(dǎo)入路徑顯示。

三是你可以把重復(fù)的數(shù)據(jù)進(jìn)行過濾,這樣可以節(jié)省log.txt存儲(chǔ)空間。

這三個(gè)玩法就有待玩家進(jìn)一步提升吧,別忘記了和大家分享啊。

(五)存在的問題

一是在運(yùn)行中,出現(xiàn)過數(shù)據(jù)解析錯(cuò)誤的現(xiàn)象,出現(xiàn)的時(shí)間不等,還有待進(jìn)一步分析。

二是在筆記本電腦(win10)以及臺(tái)式機(jī)(win7)上,在upy使用中,發(fā)現(xiàn)過個(gè)別庫在運(yùn)行時(shí)報(bào)錯(cuò),同樣的程序,同樣版本0.20,在兩個(gè)系統(tǒng)上可能出現(xiàn):

4.png (12.59 KB, 下載次數(shù): 30)

2017-7-2 15:54 上傳

這是在win7的upy 0.2上出現(xiàn)的,但是在win10上沒有問題。可以和師兄們繼續(xù)探討。

注意:

(1)對(duì)于8266,可以使用兩個(gè)uart口。其中uart1只能發(fā)送不能接收,uart0能接收,但是,repl操作是在uart0上的,所以您不能同時(shí)一邊uart0與設(shè)備進(jìn)行交互,同時(shí)又使用repl。

也就是說,不能在repl調(diào)試窗嘗試uart0。

(2)漢字注釋是為了便于玩家理解,建議運(yùn)行時(shí)刪除或改為英文

micropygps庫,便于下載。

step5.rar

(12.44 KB, 下載次數(shù): 80)

2017-7-2 16:06 上傳

點(diǎn)擊文件名下載附件

【感謝】

感謝秦皇島島主師兄的例程和指導(dǎo)。感謝群里玩家的支持,滄海抱拳。

總結(jié)

以上是生活随笔為你收集整理的python gps模块_一步一步使用uPyCraft学习MicroPython之GPS记录器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。