תוכן עניינים:
וִידֵאוֹ: גשש GPS DIY --- יישום פייתון: 5 שלבים (עם תמונות)
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:11
השתתפתי באירוע רכיבה על אופניים לפני שבועיים. לאחר סיום, רציתי לבדוק את המסלול ואת המהירות שבה רכבתי באותו זמן. לרוע המזל, זה לא הושג. עכשיו אני משתמש ב- ESP32 כדי ליצור גשש GPS, ואקח אותו להקליט את מסלול הרכיבה שלי בפעם הבאה. גשש ה- GPS יכול לשמור את פרטי המיקום והזמן בכרטיס ה- SD, וניתן לעבד מידע זה ולצייר תרשים של מרחק ומהירות בעזרת תוכנת המחשב האישי.
אספקה:
חוּמרָה:
- MakePython ESP32 (עם Wrover)
- MakePython A9G
לוח MakePython A9G הוא לוח הרחבה של GPS/GPRS עבור MakePython.
- סוֹלְלָה
- כבל מיקרו USB
תוֹכנָה:
- פייתון 3
- uPyCraft_v1.1
שלב 1: חיבור
חבר שני לוחות לפי הסיכות. המודול יכול להיות מופעל באמצעות סוללה או כבל מיקרו USB.
שלב 2: תוכנה במחשב
Python3:
- אתה יכול להוריד אותו מכאן: Python3. בחר את גרסת 3.8.5, הורד והתקן אותה.
- בחירת "הוסף Python 3.8 ל- PATH" חייבת להיבדק במהלך תהליך ההתקנה, כמו איור 1.
- אם הספרייה המשמשת את התוכנית אינה מותקנת, התוכנית תבקש כאשר היא פועלת. אתה יכול להריץ את הפקודה הבאה ב- cmd.exe כדי להתקין ספריות, כמו איור 2.
pip install xxx // xxx הוא שם הספרייה
pip להסיר xxx // xxx היא רשימת pip של שם הספרייה // להדפיס ספריות מותקנות
קוד:
- אתה יכול לקבל את קובץ הפייתון מכאן: Code. קובץ ה- Python הוא "/Project_Gps-Trace-Analysis-master/Google_trace.py".
- צייר מסלול על המפה.
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")
צייר גרפים של מהירות מול זמן, מרחק מול זמן
חלקת משנה (2, 1, 1)
plt.plot (time_list [0: -1], מהירות) plt.title ("מהירות ממוצעת:" + str (avg_speed)) # plt.xlabel ("זמן") plt.ylabel ("מהירות (m/s)") plt.splplot (2, 1, 2) plt.plot (time_list [0: -1], total_distance) plt.title ("מרחק כולל:" + str (עגול (total_distance [- 1], 2))) plt.xlabel ("זמן") plt.ylabel ("מרחק (m)") plt.draw () plt.pause (0) לעבור
שלב 3: קושחה אודות ESP32
uPyCraft_v1.1
- אתה יכול להוריד אותו מכאן: uPyCraft.
- חבר את הלוח למחשב באמצעות כבל USB. פתח את uPyCraft_v1.1, בחר את הכלים: "כלי> לוח> esp32" ו- "כלים> יציאה> com*", לחץ על הלחצן המחובר מימין.
- אם החיבור אינו מוצלח, ההנחיה תוצג כ"פתח את השגיאה הטורית, אנא נסה שוב ". עליך לעדכן את הקושחה כדי להבטיח חיבורים בהצלחה. הקישור להורדת הקושחה הוא LINK. פתח את "כלים> BurnFirmware", הגדר את הפרמטר כאיור 3 ולחץ על אישור.
- פתח את קובץ ה- Python ולחץ על הלחצן "DownloadAndRun" בצד ימין. התוכנית הורדה ללוח, אתה יכול לראות אותה בתפריט "מכשיר" בצד שמאל, כמו איור 4.
קושחה והורדה
אתה יכול לקבל את הקושחה מכאן: קושחה.
הגדר את החיבור עם מודול כרטיס SD בקובץ: "/Project_Gps-Trace-Analysis-master/workspace/test.py"
# SD init
spi = SPI (1, baudrate = 400000, קוטביות = 1, פאזה = 0, sck = Pin (14), mosi = Pin (13), miso = Pin (12)) spi.init () # ודא baudrate ימין lcd. text ('SPI OK', 0, 8) sd = sdcard. SDCard (spi, Pin (32)) # תואם ל- PCB vfs = os. VfsFat (sd) os.mount (vfs, "/SD") random.seed (len (os.listdir ("/SD"))) הדפס ("SD אישור") lcd.text ('SPI OK', 0, 16)
הגדר את החיבור עם מודול A9G בקובץ: "/Project_Gps-Trace-Analysis-master/workspace/test.py"
# A9G פתוח
A9G_RESET_PIN = Pin (33, Pin. OUT) A9G_RESET_PIN.value (0) # set pin to low time.sleep (1) A9G_PWR_KEY = Pin (27, Pin. OUT) A9G_PWR_KEY.value (0) time.sleep (1) A9G_PW.value (1) time.sleep (1) lcd.fill (0) lcd.text ('A9G פתוח', 0, 0)
פקודת AT עבור מודול A9G
AT+GPS = 1 # 1: הפעל את ה- GPS, 0: כבה את ה- GPS
AT+LOCATION = 2 #קבל את פרטי הכתובת של ה- GPS, כל עוד ה- GPS יכול לראות את הלוויין לפני החזרה, אחרת הוא יחזיר את ה- GPS NOT FIX NOW AT+GPSRD = 0 #עצור דיווח
חבר את הלוח למחשב באמצעות כבל USB והשתמש ב- uPyCraft כדי להוריד את כל הקבצים בתיקייה "/Project_Gps-Trace-Analysis-master/workspace"
שלב 4: עיבוד מידע
- העתק את קובץ ה- TXT המתחיל ב- "trace" בכרטיס ה- SD לתיקייה "/Project_Gps-Trace-Analysis-master".
- פתח את קובץ ה- Python עם פנקס הרשימות ושנה את הקוד.
#קובץ שאתה רוצה ניתוח
trace_file_name = "./trace4.txt"