विषयसूची:

जीपीएस सिस्टम: 7 कदम
जीपीएस सिस्टम: 7 कदम

वीडियो: जीपीएस सिस्टम: 7 कदम

वीडियो: जीपीएस सिस्टम: 7 कदम
वीडियो: What Is GPS In Hindi | How GPS Works In Hindi 2024, अक्टूबर
Anonim
जीपीएस सिस्टम
जीपीएस सिस्टम
जीपीएस सिस्टम
जीपीएस सिस्टम
जीपीएस सिस्टम
जीपीएस सिस्टम

परियोजना निर्माता: कार्लोस गोमेज़

दुनिया की यात्रा और अन्वेषण करने की कोशिश करने वाले किसी भी व्यक्ति के लिए एक विश्वसनीय नेविगेशन सिस्टम होना सर्वोपरि है।

नेविगेशन सिस्टम को काम करने की अनुमति देने वाला सबसे महत्वपूर्ण पहलू सिस्टम के अंदर एम्बेडेड जीपीएस क्षमता है। जीपीएस सिस्टम किसी को भी उपयोगकर्ता के बारे में सटीक जानकारी प्रदर्शित करने के लिए अपने स्थान और गति का ट्रैक रखने की अनुमति देता है और उपयोगकर्ता को यह सटीक प्रतिनिधित्व देता है कि वे कहां हैं और वे अपने स्थान से कितनी दूर हैं।

ग्लोबल पोजिशनिंग सिस्टम (जीपीएस) लगभग 20,000 किमी की ऊंचाई पर पृथ्वी की परिक्रमा करने वाले उपग्रहों का एक नेटवर्क है। जीपीएस उपकरण वाला कोई भी व्यक्ति उन रेडियो संकेतों को प्राप्त कर सकता है जो उपग्रहों को प्रसारित करते हैं और जो भी आवश्यक हो उनका उपयोग करने में सक्षम है। ग्रह पर कहीं भी आपका स्थान कम से कम चार जीपीएस किसी भी समय आपके लिए उपलब्ध होना चाहिए। 3-डी ट्रिलेटरेशन नामक विधि का उपयोग करते हुए, एक जीपीएस डिवाइस पृथ्वी पर डिवाइस के स्थान को निर्धारित करने के लिए तीन उपग्रहों का उपयोग करने में सक्षम है। तीन उपग्रहों में से प्रत्येक उपकरण को एक संकेत भेजता है और उपकरण उपग्रह से इसकी दूरी निर्धारित करता है। तीन दूरी गणनाओं में से प्रत्येक का उपयोग करके डिवाइस अब पृथ्वी पर अपने स्थान को इंगित करने में सक्षम है और यह उपयोगकर्ता को वापस कर देता है।

हम जो जीपीएस सिस्टम बनाएंगे, वह पृथ्वी पर उपयोगकर्ता के निर्देशांक प्राप्त करके और उपयोगकर्ता की गति, स्थान और तय की गई दूरी को वापस करने के लिए कुछ गणना करके उपयोगकर्ता के स्थानों को ट्रैक करने में सक्षम होगा।

चरण 1: आरंभ करना

शुरू करना
शुरू करना
शुरू करना
शुरू करना
शुरू करना
शुरू करना
शुरू करना
शुरू करना

इस परियोजना को शुरू करने के लिए, हमें सबसे पहले सभी सही सामग्रियों को इकट्ठा करना होगा

1: रास्पबेरी पाई जीरो डब्ल्यू

2: जीपीएस रिसीवर

3: 1.8 टीएफटी 128 x 160 एलसीडी एसपीआई स्क्रीन

4: ~11 तार

5: 2 बटन

6: पुल डाउन बटन के लिए 2x 1k और 2x 10k रेसिस्टर्स

7: ब्रेड बोर्ड

यह परियोजना रास्पबेरी पाई के जीपीआईओ पिन का उपयोग करेगी और इस तरह हमें अपनी परियोजना को विकसित करने के लिए सब कुछ एक ब्रेड बोर्ड से जोड़ने की आवश्यकता होगी। यह भी माना जाता है कि हमारे सभी हिस्सों को जोड़ने और आगे बढ़ने से पहले सभी पिनों पर सोल्डरिंग की जाती है और समाप्त हो जाती है।

चरण 2: GPS मॉड्यूल को रास्पबेरी पाई से कनेक्ट करें

GPS मॉड्यूल को रास्पबेरी पाई से कनेक्ट करें
GPS मॉड्यूल को रास्पबेरी पाई से कनेक्ट करें
GPS मॉड्यूल को रास्पबेरी पाई से कनेक्ट करें
GPS मॉड्यूल को रास्पबेरी पाई से कनेक्ट करें

हमारे जीपीएस सिस्टम के उपयोग के लिए आपको रास्पबेरी पाई पर जीपीएस मॉड्यूल से टीएक्स और आरएक्स पिन को जीपीआईओ पिन 14 और 15 से कनेक्ट करना होगा। GPS रिसीवर का Tx पिन Pi के Rx पिन में जाता है और GPS रिसीवर का Rx पिन रास्पबेरी पाई के Tx पिन में जाता है।

छवियों में दिखाए गए GPS रिसीवर को उपयोग करने के लिए 3.3V की आवश्यकता होती है और ग्राउंड पिन को ग्राउंड से कनेक्ट करते समय आप 3.3V पिन को सही वोल्टेज से कनेक्ट कर सकते हैं।

चरण 3: GPS रिसीवर मॉड्यूल से डेटा प्राप्त करें

GPS रिसीवर मॉड्यूल से डेटा प्राप्त करें
GPS रिसीवर मॉड्यूल से डेटा प्राप्त करें

GPS रिसीवर से रास्पबेरी पाई तक डेटा प्राप्त करने के लिए हमें UART पोर्ट से सही सॉकेट को पढ़ने की अनुमति देने की आवश्यकता है। कच्चे डेटा को पढ़ने के लिए हमें अपनी खुद की पार्सिंग लाइब्रेरी बनाने की आवश्यकता होगी, लेकिन इस परिदृश्य में हम एक जीपीएस डेमॉन का लाभ उठा सकते हैं जो डेटा को पार्स करने में मदद करने के लिए पृष्ठभूमि में चलता है और इसे रास्पबेरी पाई में प्रेषित करता है।

इसे पूरा करने के लिए हम रास्पबेरी पाई पर एक टर्मिनल खोल सकते हैं और कोड निष्पादित कर सकते हैं:

सुडो एपीटी-अपडेट प्राप्त करें

सुडो एपीटी-जीपीएसडी जीपीएसडी-क्लाइंट स्थापित करें पायथन-जीपीएस

यह हमारे लिए डाउनलोड का ध्यान रखना चाहिए।

एक बार यह पूरा हो जाने के बाद, हमें निम्नलिखित कमांड चलाकर जीपीएसडी सिस्टम सेवा को अक्षम करना होगा:

sudo systemctl stop gpsd.socket

sudo systemctl अक्षम gpsd.socket

यदि आप कभी भी डिफ़ॉल्ट जीपीएसडी सिस्टम सेवा को सक्षम करना चाहते हैं, तो आप इसे पुनर्स्थापित करने के लिए निम्न आदेश चला सकते हैं:

sudo systemctl जीपीएसडी.सॉकेट सक्षम करें

sudo systemctl start gpsd.socket

अब हमें जीपीएसडी डेमॉन शुरू करने की जरूरत है और इसे दर्ज करके यूएआरटी बंदरगाहों पर इंगित करें

सुडो जीपीएसडी /देव/टीटीएएमए0 -एफ /var/run/gpsd.sock

अब हम नीचे कमांड चला सकते हैं और सभी डेटा को तैरते हुए देख सकते हैं!

सीजीपीएस -एस

चरण 4: डिस्प्ले को रास्पबेरी पाई से कनेक्ट करें

डिस्प्ले को रास्पबेरी पाई से कनेक्ट करें
डिस्प्ले को रास्पबेरी पाई से कनेक्ट करें
डिस्प्ले को रास्पबेरी पाई से कनेक्ट करें
डिस्प्ले को रास्पबेरी पाई से कनेक्ट करें

एक बार जब हमारे पास अपना जीपीएस रिसीवर हो जाता है और रास्पबेरी पाई के साथ काम करता है, तो हम डिस्प्ले को रास्पबेरी पाई से जोड़ सकते हैं। हम अपने एलसीडी डिस्प्ले को रास्पबेरी पाई से जोड़ने के लिए 5 तारों का उपयोग करेंगे और मुख्य पावर और एलईडी को जोड़ने के लिए अन्य 4 पिन का उपयोग करेंगे। स्क्रीन पर।

मैंने उपयोग की जा रही टीएफटी स्क्रीन की एक तस्वीर शामिल की है, लेकिन यह समान आकार और निर्माण की स्क्रीन के साथ काम करना चाहिए।

LED- और GND को जमीन से कनेक्ट करें और LED+ और VCC को 3.3V से कनेक्ट करें।

पाई बोर्ड पर 25 पिन करने के लिए स्क्रीन पर RESET पिन कनेक्ट करें।

पाई बोर्ड पर A0 को 24 पिन करने के लिए कनेक्ट करें।

एसडीए पिन को पीआई बोर्ड पर एमओएसआई पिन से कनेक्ट करें।

LCD स्क्रीन पर SCK पिन को Pi बोर्ड से कनेक्ट करें।

सीएस पिन को पाई बोर्ड पर 8 पिन करने के लिए कनेक्ट करें।

चरण 5: रास्पबेरी पाई के साथ काम करने के लिए सेटअप प्रदर्शन

रास्पबेरी पाई के साथ काम करने के लिए सेटअप प्रदर्शन
रास्पबेरी पाई के साथ काम करने के लिए सेटअप प्रदर्शन

डिस्प्ले को सेटअप करने के लिए हमें इस रेपो में मिली ST7735 लाइब्रेरी का उपयोग करना होगा:

पायथन ST7735 स्क्रीन लाइब्रेरी

एक बार जब हमारे पास यह डिस्प्ले लाइब्रेरी हमारे रास्पबेरी पाई सिस्टम पर स्थापित हो जाती है, तो अब हम यह पुष्टि करने के लिए एक उदाहरण फ़ाइल स्थापित करने के लिए आगे बढ़ सकते हैं कि हमारी पिछली वायरिंग सही तरीके से काम कर रही है।

example.py शीर्षक से एक फ़ाइल बनाएँ और उसी फ़ोल्डर में अपनी पसंद की एक नमूना छवि के साथ निम्नलिखित पाठ डालें

आयात ST7735 को TFT के रूप में आयात करें Adafruit_GPIO को GPIO के रूप में आयात करें Adafruit_GPIO. SPI को SPI के रूप में आयात करें

चौड़ाई = 128

ऊंचाई = 160 स्पीड_एचजेड = 4000000

# रास्पबेरी पाई विन्यास।

# ये LCD को रास्पबेरी पाई से जोड़ने के लिए आवश्यक पिन हैं

डीसी = 24 आरएसटी = 25 एसपीआई_पोर्ट = 0 एसपीआई_DEVICE = 0

# TFT LCD डिस्प्ले क्लास बनाएं।

disp = TFT. ST7735(DC, rst=RST, spi=SPI. SpiDev(SPI_PORT, SPI_DEVICE, max_speed_hz=SPEED_HZ))

# डिस्प्ले को इनिशियलाइज़ करें।

disp.begin () disp.reset ()

# एक छवि लोड करें।

newData = 0x42 disp.command(newData) प्रिंट ('छवि लोड हो रहा है…') छवि = Image.open('cat.jpg')

# छवि का आकार बदलें और इसे घुमाएं ताकि प्रदर्शन से मेल खाता हो।

छवि = छवि। घुमाएँ (२७०)। आकार बदलें ((चौड़ाई, ऊँचाई))

# टर्मिनल पर प्रिंट करेगा कि हमारा प्रोग्राम स्क्रीन पर हमारी छवि बना रहा है

प्रिंट ('चित्र बनाना')

# यह फ़ंक्शन हमारी छवि को स्क्रीन पर प्रदर्शित करेगा

डिस्पले डिस्प्ले (छवि)

यह फ़ाइल एलसीडी स्क्रीन के लिए रास्पबेरी पाई कॉन्फ़िगरेशन को सेटअप करेगी और लाइब्रेरी हमारी छवि को फ़ोल्डर में बदल देगी और इसे स्क्रीन पर प्रदर्शित करेगी।

चरण 6: प्रदर्शन पर जीपीएस जानकारी प्रदर्शित करने के लिए राज्य मशीनें सेटअप करें

प्रदर्शन पर जीपीएस जानकारी प्रदर्शित करने के लिए सेटअप राज्य मशीनें
प्रदर्शन पर जीपीएस जानकारी प्रदर्शित करने के लिए सेटअप राज्य मशीनें
प्रदर्शन पर जीपीएस जानकारी प्रदर्शित करने के लिए सेटअप राज्य मशीनें
प्रदर्शन पर जीपीएस जानकारी प्रदर्शित करने के लिए सेटअप राज्य मशीनें
प्रदर्शन पर जीपीएस जानकारी प्रदर्शित करने के लिए सेटअप राज्य मशीनें
प्रदर्शन पर जीपीएस जानकारी प्रदर्शित करने के लिए सेटअप राज्य मशीनें

हम अपने जीपीएस सिस्टम को सेटअप करने के लिए अपने कार्य आरेख को लागू करते समय 5 अलग-अलग राज्य मशीनों का उपयोग करेंगे।

प्रदर्शन बदलें राज्य मशीन:

यह राज्य मशीन नियंत्रित करेगी कि हमारे बटन इनपुट के आधार पर किसे प्रदर्शित किया जाए। यह एक वेरिएबल को बदलकर ऐसा करता है जो पाइथन को बतख टाइपिंग का लाभ उठाने की अनुमति देता है और कॉल किए गए फ़ंक्शन के आधार पर सही फ़ंक्शन को प्रदर्शित करने के लिए कॉल करता है

गति राज्य मशीन:

यह राज्य मशीन व्यक्तियों के स्थान के आधार पर वर्तमान गति को निष्पादित करेगी। यह जीपीएस सिस्टम के लिए हर घड़ी चक्र को निष्पादित करेगा

आउटपुट राज्य मशीन:

यह स्टेट मशीन उस वेरिएबल के आधार पर आउटपुट का निर्धारण करेगी जिसे डिस्प्ले चेंज स्टेट मशीन वर्तमान डिस्प्ले के रूप में निर्धारित करती है।

दूरी राज्य मशीन

यह स्टेट मशीन प्रत्येक घड़ी चक्र को निष्पादित करती है और उपयोगकर्ता द्वारा तय की गई कुल दूरी को निर्धारित करती है और एक बार रीसेट बटन को पुश करने के बाद, यात्रा की गई वर्तमान दूरी को रीसेट कर देगा।

स्थान राज्य मशीन:

यह राज्य मशीन उपयोगकर्ता के बारे में जीपीएस मॉड्यूल लौटाने वाले निर्देशांक का उपयोग करके उपयोगकर्ता के वर्तमान स्थान को लौटाती है। यह स्टेट मशीन यूजर्स के इंटरनेट कनेक्शन पर निर्भर है।

चरण 7: आइए हमारे जीपीएस सिस्टम को लागू करें

एक बार जब हमारे पास हमारा जीपीएस मॉड्यूल हमारे रास्पबेरी पाई को सूचना भेज रहा है और हमारी एलसीडी स्क्रीन उस पर जानकारी प्रदर्शित कर रही है तो हम अपने जीपीएस सिस्टम को प्रोग्राम करना शुरू कर सकते हैं। मैं अपने जीपीएस सिस्टम को कोड करने के लिए पिछले चरण की परिमित राज्य मशीनों का उपयोग करूंगा

## नेविगेशन सिस्टम के लिए मुख्य फाइल # # # #

# चित्र बनाने के लिए पुस्तकालय

जनहित याचिका से आयात छवि जनहित याचिका से आयात ImageDraw से जनहित याचिका आयात ImageFont

# ST7737 नियंत्रक के लिए पुस्तकालय

ST7735 को TFT के रूप में आयात करें

# रास्पबेरी पाई के लिए GPIO के लिए पुस्तकालय

Adafruit_GPIO को GPIO के रूप में आयात करें Adafruit_GPIO. SPI को SPI के रूप में आयात करें

# जीपीएस के लिए पुस्तकालय

#gps3 से आयात करें gps3 आयात करें

# समय के लिए पुस्तकालय

आयात समय

# दो बिंदुओं के बीच की दूरी खोजने के लिए पुस्तकालय

गणित से पाप, cos, sqrt, atan2, radians आयात करें

# मेनू स्विच करने और रीसेट करने के लिए बटन का उपयोग करने के लिए आरपीआई पुस्तकालय आयात करें

# RPi. GPIO को bGPIO के रूप में आयात करें

# बटन के लिए पिन सेट करें

bGPIO.setmode (bGPIO. BCM)

bGPIO.setup(18, bGPIO. IN, pull_up_down=bGPIO. PUD_DOWN)

bGPIO.setup(23, bGPIO. IN, pull_up_down=bGPIO. PUD_DOWN)

# जियोकोडिंग के लिए जियोपी लाइब्रेरी आयात करें

## इसके काम करने के लिए इंटरनेट का उपयोग आवश्यक है

geopy.geocoders से Nominatim आयात करें

जियोलोकेटर = नोमिनाटिम ()

# सिस्टम के लिए स्थिरांक

#################################

चौड़ाई = 128

ऊंचाई = 160 स्पीड_एचजेड = 4000000

# रास्पबेरी पाई कॉन्फ़िगरेशन पिन

DC = 24 # A0 TFT स्क्रीन पर RST = 25 # TFT स्क्रीन पर पिन रीसेट करें SPI_PORT = 0 # रास्पबेरी पाई पर SPI पोर्ट, SPI0 SPI_DEVICE = 0 # रास्पबेरी पाई पर स्लेव का चयन करें, CE0

# TFT LCD डिस्प्ले ऑब्जेक्ट बनाएं

disp = TFT. ST7735(DC, rst=RST, spi=SPI. SpiDev(SPI_PORT, SPI_DEVICE, max_speed_hz=SPEED_HZ))

# इनिशियलाइज़ डिस्प्ले

वितरण शुरू ()

# बैकग्राउंड को हरे रंग में सेट किया जाएगा

#disp.clear((0, 255, 0))

# सफेद और प्रदर्शित करने के लिए स्क्रीन साफ़ करें

#disp.clear((255, 255, 255)) draw = disp.draw() #draw.rectangle((0, 10, 127, 150), Outline=(255, 0, 0), fill=(0, 0, 255)) #disp.display()

# गति, अक्षांश, देशांतर प्लेसमेंट चर

#currentS = "वर्तमान गति:" # गति स्ट्रिंग #totalDis = "कुल दूरी:" # दूरी स्ट्रिंग #currentLoc = "वर्तमान स्थान:" # स्थान स्ट्रिंग

# दूरी x और y निर्देशांक

डिस्टएक्स = 10 डिस्टवाई = 20

अंकसूची =

# स्पीड x और y निर्देशांक

स्पीडएक्स = 10 स्पीडवाई = 20

# स्थान x और y समन्वयक

locX = 10 लोकी = 20

# m/s से mph. में बदलता है

रूपांतरणवैल = 2.24

# स्पीड अपडेट फंक्शन, रिटर्न स्ट्रिंग

स्पीडवार = 0

def speedFunc (): ग्लोबल स्पीडवर स्पीडटेक्स्ट = डेटा_स्ट्रीम। टीपीवी ['स्पीड'] अगर (स्पीडटेक्स्ट! = "एन / ए"): स्पीडटेक्स्ट = फ्लोट (स्पीडटेक्स्ट) * कन्वर्जनवैल स्पीडवार = राउंड (स्पीडटेक्स्ट, 1) # रिटर्न (स्पीडटेक्स्ट)

डीईएफ़ स्थानफ़ंक ():

latLoc = str (latFunc ()) lonLoc = str (lonFunc ())

रिवर्सस्ट्रिंग = latLoc + "," + lonLoc

स्थान = जियोलोकेटर। रिवर्स (रिवर्सस्ट्रिंग)

वापसी (स्थान। पता)

# अक्षांश अद्यतन फ़ंक्शन, फ्लोट मान लौटाता है

def latFunc(): Latitude = data_stream. TPV['lat'] if(Latitude == "n/a"): return 0 else: return float(round(Latitude, 4))

# देशांतर अद्यतन फ़ंक्शन, स्ट्रिंग लौटाता है

def lonFunc (): देशांतर = data_stream. TPV ['लोन'] अगर (देशांतर == "n/a"): वापसी 0 और: वापसी फ्लोट (गोल (देशांतर, 4))

# दूरी फ़ंक्शन कुल यात्रा की गई दूरी लौटाता है

कुल दूरी = 0

def distFunc ():

ग्लोबल टोटलडिस्टेंस न्यूलाट = लैटफंक () न्यूलॉन = लोनफंक () अगर (न्यूलैट == 0 या न्यूलॉन == 0): टोटलडिस्टेंस = टोटलडिस्टेंस # रिटर्न (टोटलडिस्टेंस) और: पॉइंट्सलिस्ट.एपेंड ((न्यूलैट, न्यूलॉन)) लास्ट = लेन (पॉइंट्सलिस्ट)) -1 अगर (अंतिम == 0): अन्य लौटाएं: कुल दूरी + = समन्वय दूरी (अंक सूची [अंतिम -1], अंक सूची [अंतिम]) # कुल दूरी लौटाएं

# कुल दूरी रीसेट करता है

डीईएफ़ रेसडिस्टेंस ():

वैश्विक कुल दूरी कुल दूरी = 0

# दो निर्देशांकों के बीच की दूरी ज्ञात करने के लिए प्रयुक्त फंक्शन

# खोजने के लिए हैवरसाइन के सूत्र का उपयोग करता है। # इनपुट पॉइंट एक टपल हैं

डीईएफ़ समन्वय दूरी (बिंदु 1, बिंदु 2):

# पृथ्वी की अनुमानित त्रिज्या किलोमीटर में पृथ्वीत्रिज्या = 6373.0

अक्षांश १ = बिंदु १ [०]

लोन1 = पॉइंट1[1]

अक्षांश २ = बिंदु २ [०]

लोन २ = पॉइंट २ [1]

दूरी लोन = लोन2 - लोन1

दूरीलैट = lat2 - lat1

#हावरसाइन ए

a = sin(distanceLat/2)**2 + cos(lat1) * cos(lat2) * sin(distanceLon/2)**2

#हावरसाइन सी

सी = 2 * atan2 (वर्ग (ए), वर्ग (1-ए))

# किमी को मील में बदलें

दूरी = (पृथ्वीत्रिज्या * ग) * 0.62137

अगर (दूरी <= 0.01): वापसी 0.00 और: वापसी दौर (दूरी, 3)

# स्क्रीन पर गति प्रदर्शित करने का कार्य

डीईएफ़ डिस्पस्पीड ():

ग्लोबल स्पीडवार # स्क्रीन ड्रॉ.टेक्स्ट ((स्पीडएक्स, स्पीडवाई), स्ट्र (स्पीडवर), फॉन्ट = इमेजफॉन्ट। ट्रूटाइप ("लैटो-मीडियम। टीटीएफ", 72) पर वैरिएबल पर दूरी रखें।

# स्क्रीन पर दूरी प्रदर्शित करने का कार्य

def dispDistance ():

draw.text((distX, distY), str(totalDistance), font=ImageFont.truetype("Lato-Medium.ttf", 60))

# स्क्रीन पर फंक्शन टी डिस्प्ले लोकेशन, काम करने के लिए इंटरनेट की आवश्यकता होती है

डीईएफ़ विस्थापन ():

draw.text((locX, locY), locationFunc(), font=ImageFont.truetype("Lato-Medium.ttf", 8))

# स्विच स्टेटमेंट की नकल करने के लिए शब्दकोश का उपयोग करना

डिस्पऑप्शन = {

0: डिस्पस्पीड, १: डिस्प डिस्टेंस, २: डिस्पलोकेशन }

# स्क्रीन आउटपुट फ़ंक्शन

डीईएफ़ आउटपुट ():

# डिस्प्लेइंडेक्स ग्लोबल डिस्प्लेइंडेक्स के लिए ग्लोबल वेरिएबल का उपयोग करना # स्क्रीन को साफ़ करना और बैकग्राउंड डिस्प। क्लियर ((२५५, २५५, २५५)) ड्रॉ। रेक्टेंगल ((०, १०, १२७, १५०), आउटलाइन = (२५५, ०, ०) लागू करना। भरण = (255, 0, 0))

# डिस्प्ले इंडेक्स वैल्यू के आधार पर कॉल फंक्शन

डिस्पऑप्शन [डिस्प्लेइंडेक्स] ()

# मिट जाएगा अगर दूसरा तरीका काम करता है

# स्क्रीन पर दूरी चर रखें

# Draw.text((distX, distY), str(distFunc()), font=ImageFont.load_default ()) # स्क्रीन पर स्पीड वैरिएबल #draw.text((speedX, speedY), speedFunc(), font=ImageFont.load_default ()) # स्क्रीन डिस्पले के अपडेट प्रदर्शित करें। डिस्प्ले ()

डिस्प्लेबटन = 18 # रास्पबेरी पाई पर बीसीएम पिन

रीसेटबटन = 23 # रास्पबेरी पाई पर बीसीएम पिन

बटन दबाएं = गलत

डीईएफ़ चेकडिस्प्ले ():

ग्लोबल बटनप्रेस ग्लोबल डिस्प्लेइंडेक्स अगर (बीजीपीआईओ.इनपुट (डिस्प्लेबटन) और बटनप्रेस नहीं): डिस्प्लेइंडेक्स + = 1 बटनप्रेस = ट्रू अगर (डिस्प्लेइंडेक्स == 2): डिस्प्लेइंडेक्स = 0 एलिफ (बीजीपीआईओ.इनपुट (डिस्प्लेबटन) और बटनप्रेस): प्रिंट (" अभी भी दबाया गया") और: बटन दबाएं = गलत

# सेटअप जीपीएस

gps_socket=gps3. GPSDSocket() data_stream=gps3. DataStream() gps_socket.connect() gps_socket.watch()

टाइमर अवधि =.5

# डिस्प्ले डिस्प्ले के लिए इंडेक्स वैल्यू इंडेक्स = 0 कोशिश करें: जीपीएस_सॉकेट में नए_डेटा के लिए: अगर नया_डेटा: डेटा_स्ट्रीम। अनपैक (न्यू_डेटा) अगर डेटा_स्ट्रीम। टीपीवी ['लाट']! = 'एन / ए': प्रिंट (डेटा_स्ट्रीम। टीपीवी ['स्पीड')], data_stream. TPV['lat'], data_stream. TPV['lon']) distFunc() speedFunc() आउटपुट() checkDisplay() if(bGPIO.input(resetButton)): resDistance() और: output() checkDisplay() if(bGPIO.input(resetButton)): resDistance() प्रिंट ('GPS अभी तक कनेक्ट नहीं है') time.sleep(.1) time.sleep(.8) KeyboardInterrupt को छोड़कर: gps_socket.close() print(' \nउपयोगकर्ता ctrl+c' द्वारा समाप्त)

ऊपर दिया गया कोड हमारे सिस्टम को कोड करने का सिर्फ एक उदाहरण है और मैंने एक वीडियो एम्बेड किया है कि यह सिस्टम कैसे काम करता है।

सिफारिश की: