8.8 KiB
وائیو ٹرمینل - جی پی ایس ڈیٹا پڑھیں
اس سبق کے اس حصے میں، آپ اپنے وائیو ٹرمینل میں جی پی ایس سینسر شامل کریں گے اور اس سے ڈیٹا پڑھیں گے۔
ہارڈویئر
وائیو ٹرمینل کو ایک جی پی ایس سینسر کی ضرورت ہے۔
آپ جو سینسر استعمال کریں گے وہ Grove GPS Air530 sensor ہے۔ یہ سینسر کئی جی پی ایس سسٹمز سے جڑ سکتا ہے تاکہ تیز اور درست ڈیٹا حاصل کیا جا سکے۔ سینسر دو حصوں پر مشتمل ہے - سینسر کے بنیادی الیکٹرانکس اور ایک بیرونی اینٹینا جو پتلی تار کے ذریعے سیٹلائٹس سے ریڈیو لہریں وصول کرتا ہے۔
یہ ایک UART سینسر ہے، جو جی پی ایس ڈیٹا UART کے ذریعے بھیجتا ہے۔
جی پی ایس سینسر کو جوڑیں
Grove GPS سینسر کو وائیو ٹرمینل سے جوڑا جا سکتا ہے۔
کام - جی پی ایس سینسر کو جوڑیں
جی پی ایس سینسر کو جوڑیں۔
-
Grove کیبل کے ایک سرے کو جی پی ایس سینسر کے ساکٹ میں ڈالیں۔ یہ صرف ایک ہی سمت میں جائے گا۔
-
وائیو ٹرمینل کو اپنے کمپیوٹر یا کسی اور پاور سپلائی سے منقطع کریں، اور Grove کیبل کے دوسرے سرے کو وائیو ٹرمینل کے بائیں جانب Grove ساکٹ میں جوڑیں جب آپ اسکرین کو دیکھ رہے ہوں۔ یہ ساکٹ پاور بٹن کے قریب ترین ہے۔
-
جی پی ایس سینسر کو ایسی جگہ رکھیں جہاں اس کا منسلک اینٹینا آسمان کو دیکھ سکے - مثالی طور پر کھڑکی کے قریب یا باہر۔ اینٹینا کے راستے میں کوئی رکاوٹ نہ ہونے پر سگنل زیادہ واضح طور پر حاصل کرنا آسان ہوتا ہے۔
-
اب آپ وائیو ٹرمینل کو اپنے کمپیوٹر سے جوڑ سکتے ہیں۔
-
جی پی ایس سینسر میں 2 ایل ای ڈی ہیں - ایک نیلی ایل ای ڈی جو ڈیٹا منتقل ہونے پر چمکتی ہے، اور ایک سبز ایل ای ڈی جو سیٹلائٹس سے ڈیٹا وصول کرنے پر ہر سیکنڈ چمکتی ہے۔ یقینی بنائیں کہ وائیو ٹرمینل کو پاور اپ کرنے پر نیلی ایل ای ڈی چمک رہی ہو۔ چند منٹ کے بعد سبز ایل ای ڈی چمکے گی - اگر ایسا نہ ہو تو آپ کو اینٹینا کی پوزیشن تبدیل کرنے کی ضرورت ہو سکتی ہے۔
جی پی ایس سینسر کو پروگرام کریں
اب وائیو ٹرمینل کو منسلک جی پی ایس سینسر استعمال کرنے کے لیے پروگرام کیا جا سکتا ہے۔
کام - جی پی ایس سینسر کو پروگرام کریں
ڈیوائس کو پروگرام کریں۔
-
PlatformIO کا استعمال کرتے ہوئے ایک نیا وائیو ٹرمینل پروجیکٹ بنائیں۔ اس پروجیکٹ کا نام
gps-sensor
رکھیں۔setup
فنکشن میں سیریل پورٹ کو ترتیب دینے کے لیے کوڈ شامل کریں۔ -
main.cpp
فائل کے اوپر درج ذیل include directive شامل کریں۔ یہ ایک ہیڈر فائل کو شامل کرتا ہے جس میں UART کے لیے بائیں جانب Grove پورٹ کو ترتیب دینے کے فنکشنز ہیں۔#include <wiring_private.h>
-
اس کے نیچے، درج ذیل کوڈ لائن شامل کریں تاکہ UART پورٹ کے ساتھ سیریل پورٹ کنکشن کا اعلان کیا جا سکے:
static Uart Serial3(&sercom3, PIN_WIRE_SCL, PIN_WIRE_SDA, SERCOM_RX_PAD_1, UART_TX_PAD_0);
-
آپ کو کچھ کوڈ شامل کرنے کی ضرورت ہے تاکہ کچھ اندرونی سگنل ہینڈلرز کو اس سیریل پورٹ پر ری ڈائریکٹ کیا جا سکے۔
Serial3
اعلان کے نیچے درج ذیل کوڈ شامل کریں:void SERCOM3_0_Handler() { Serial3.IrqHandler(); } void SERCOM3_1_Handler() { Serial3.IrqHandler(); } void SERCOM3_2_Handler() { Serial3.IrqHandler(); } void SERCOM3_3_Handler() { Serial3.IrqHandler(); }
-
setup
فنکشن میں جہاںSerial
پورٹ ترتیب دی گئی ہے، وہاں درج ذیل کوڈ کے ساتھ UART سیریل پورٹ کو ترتیب دیں:Serial3.begin(9600); while (!Serial3) ; // Wait for Serial3 to be ready delay(1000);
-
setup
فنکشن میں اس کوڈ کے نیچے، درج ذیل کوڈ شامل کریں تاکہ Grove پن کو سیریل پورٹ سے جوڑا جا سکے:pinPeripheral(PIN_WIRE_SCL, PIO_SERCOM_ALT);
-
loop
فنکشن سے پہلے درج ذیل فنکشن شامل کریں تاکہ جی پی ایس ڈیٹا کو سیریل مانیٹر پر بھیجا جا سکے:void printGPSData() { Serial.println(Serial3.readStringUntil('\n')); }
-
loop
فنکشن میں، درج ذیل کوڈ شامل کریں تاکہ UART سیریل پورٹ سے ڈیٹا پڑھا جا سکے اور سیریل مانیٹر پر آؤٹ پٹ پرنٹ کیا جا سکے:while (Serial3.available() > 0) { printGPSData(); } delay(1000);
یہ کوڈ UART سیریل پورٹ سے ڈیٹا پڑھتا ہے۔
readStringUntil
فنکشن ایک ٹرمینیٹر کریکٹر تک پڑھتا ہے، اس صورت میں ایک نئی لائن۔ یہ ایک مکمل NMEA جملہ پڑھے گا (NMEA جملے نئی لائن کریکٹر کے ساتھ ختم ہوتے ہیں)۔ جب تک UART سیریل پورٹ سے ڈیٹا پڑھا جا سکتا ہے، اسے پڑھا جاتا ہے اورprintGPSData
فنکشن کے ذریعے سیریل مانیٹر پر بھیجا جاتا ہے۔ جب مزید ڈیٹا پڑھا نہیں جا سکتا،loop
1 سیکنڈ (1,000ms) کے لیے تاخیر کرتا ہے۔ -
کوڈ کو وائیو ٹرمینل پر بنائیں اور اپلوڈ کریں۔
-
اپلوڈ ہونے کے بعد، آپ سیریل مانیٹر کے ذریعے جی پی ایس ڈیٹا مانیٹر کر سکتے ہیں۔
> Executing task: platformio device monitor < --- Available filters and text transformations: colorize, debug, default, direct, hexlify, log2file, nocontrol, printable, send_on_enter, time --- More details at http://bit.ly/pio-monitor-filters --- Miniterm on /dev/cu.usbmodem1201 9600,8,N,1 --- --- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H --- $GNGGA,020604.001,4738.538654,N,12208.341758,W,1,3,,164.7,M,-17.1,M,,*67 $GPGSA,A,1,,,,,,,,,,,,,,,*1E $BDGSA,A,1,,,,,,,,,,,,,,,*0F $GPGSV,1,1,00*79 $BDGSV,1,1,00*68
💁 آپ اس کوڈ کو code-gps/wio-terminal فولڈر میں تلاش کر سکتے ہیں۔
😀 آپ کا جی پی ایس سینسر پروگرام کامیاب رہا!
ڈسکلیمر:
یہ دستاویز AI ترجمہ سروس Co-op Translator کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا غیر درستیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ ہم اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے ذمہ دار نہیں ہیں۔