Kazalo:
- 1. korak: Povezava
- 2. korak: Programska oprema v računalniku
- 3. korak: Vdelana programska oprema o ESP32
- 4. korak: Obdelava informacij
- 5. korak: Poskusimo
Video: DIY GPS sledilnik --- aplikacija Python: 5 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:02
Pred dvema tednoma sem se udeležil kolesarskega dogodka. Ko sem končal, sem želel preveriti pot in hitrost, ki sem jo takrat vozil. Na žalost ni bilo doseženo. Zdaj uporabljam ESP32 za izdelavo GPS sledilnika in ga naslednjič posnamem za snemanje kolesarske poti. Sledilnik GPS lahko shrani podatke o lokaciji in času na kartico SD, te podatke pa lahko obdela in nariše grafikon razdalje in hitrosti s programsko opremo za osebni računalnik.
Zaloge:
Strojna oprema:
- MakePython ESP32 (z Wroverjem)
- MakePython A9G
Plošča MakePython A9G je razširitvena plošča GPS/GPRS za MakePython.
- Baterija
- Kabel mikro USB
Programska oprema:
- Python 3
- uPyCraft_v1.1
1. korak: Povezava
Povežite dve plošči glede na nožice. Modul se lahko napaja iz baterije ali kabla Micro USB.
2. korak: Programska oprema v računalniku
Python3:
- Prenesete ga lahko od tukaj: Python3. Izberite različico 3.8.5, jo prenesite in namestite.
- Med namestitvijo je treba preveriti izbiro »Dodaj Python 3.8 v PATH«, kot je prikazano na sliki 1.
- Če knjižnica, ki jo uporablja program, ni nameščena, bo program pozval, ko se izvaja. Za namestitev knjižnic lahko v cmd.exe zaženete naslednji ukaz, kot je prikazano na sliki 2.
pip install xxx // xxx je ime knjižnice
pip uninstall xxx // xxx je ime knjižnice pip list // natisni nameščene knjižnice
Koda:
- Datoteko python lahko dobite tukaj: Koda. Datoteka python je »/Project_Gps-Trace-Analysis-master/Google_trace.py«.
- Na zemljevidu narišite pot.
def create_html_map ():
gmap = gmplot. GoogleMapPlotter (lat_list [0], lon_list [0], 16) gmap.plot (lat_list, lon_list) gmap.marker (lat_list [0], lon_list [0], color = 'blue') gmap.marker (lat_list [width - 1], lon_list [width - 1], color = 'red') gmap.draw ("./ map -trace.html")
Narišite grafe hitrosti v primerjavi s časom, razdalje v primerjavi s časom
plt.subplot (2, 1, 1)
plt.plot (time_list [0: -1], speed) plt.title ("Povprečna hitrost:" + str (avg_speed)) # plt.xlabel ("Čas") plt.ylabel ("Hitrost (m/s)") plt.subplot (2, 1, 2) plt.plot (time_list [0: -1], total_distance) plt.title ("Total Distance:" + str (round (total_distance [- 1], 2))) plt.xlabel ("Time") plt.ylabel ("Distance (m)") plt.draw () plt.pause (0) pass
3. korak: Vdelana programska oprema o ESP32
uPyCraft_v1.1
- Prenesete ga lahko od tukaj: uPyCraft.
- Ploščo povežite z računalnikom prek kabla USB. Odprite uPyCraft_v1.1, izberite orodja: »Orodje> plošča> esp32« in »Orodja> vrata> com*«, kliknite gumb za povezavo na desni.
- Če povezava ni uspešna, bo poziv prikazan kot »odprite serijsko napako, poskusite znova«. Če želite uspešno obljubiti povezave, morate posodobiti vdelano programsko opremo. Povezava za prenos vdelane programske opreme je LINK. Odprite »Orodja> BurnFirmware«, nastavite parameter, kot je prikazano na sliki 3, in kliknite V redu.
- Odprite datoteko Python in kliknite gumb »DownloadAndRun« na desni. Program je bil naložen na ploščo, vidite ga v meniju »naprava« na levi, kot je prikazano na sliki 4.
Vdelana programska oprema in prenos
Vdelano programsko opremo lahko dobite od tukaj: Vdelana programska oprema.
V datoteki nastavite povezavo z modulom kartice SD: “/Project_Gps-Trace-Analysis-master/workspace/test.py”
# SD init
spi = SPI (1, hitrost prenosa = 400000, polarnost = 1, faza = 0, sck = Pin (14), mosi = Pin (13), miso = Pin (12)) spi.init () # Zagotovite desni baudrate lcd. besedilo ('SPI OK', 0, 8) sd = sdcard. SDCard (spi, Pin (32)) # Združljivo s tiskanim vezjem vfs = os. VfsFat (sd) os.mount (vfs, "/SD") random.seed (len (os.listdir ("/SD"))) print ("SD OK") lcd.text ('SPI OK', 0, 16)
V datoteki nastavite povezavo z modulom A9G: »/Project_Gps-Trace-Analysis-master/workspace/test.py«
# A9G odprt
A9G_RESET_PIN = Pin (33, Pin. OUT) A9G_RESET_PIN.value (0) # nastavite pin na nizek čas.sleep (1) A9G_PWR_KEY = Pin (27, Pin. OUT) A9G_PWR_KEY.value (0) time.sleep (1) A9GYPW.value (1) time.sleep (1) lcd.fill (0) lcd.text ('A9G open', 0, 0)
Ukaz AT za modul A9G
AT+GPS = 1 # 1: Vklopite GPS, 0: Izklopite GPS
AT+LOCATION = 2 #Pridobite podatke o naslovu GPS, dokler lahko GPS vidi satelit, preden se vrne, sicer se vrne
Ploščo povežite z računalnikom s kablom USB in z uPyCraftom prenesite vse datoteke v mapo »/Project_Gps-Trace-Analysis-master/workspace«
4. korak: Obdelava informacij
- Kopirajte datoteko TXT, ki se začne s "sledenjem" na kartici SD, v mapo "/Project_Gps-Trace-Analysis-master".
- Odprite datoteko Python z beležnico in spremenite kodo.
#Datoteka, ki jo želite analizirati
trace_file_name = "./trace4.txt"