12 KiB
جی پی ایس ڈیٹا پڑھیں - راسپبیری پائی
اس سبق کے اس حصے میں، آپ اپنے راسپبیری پائی میں ایک جی پی ایس سینسر شامل کریں گے اور اس سے ڈیٹا پڑھیں گے۔
ہارڈویئر
راسپبیری پائی کو ایک جی پی ایس سینسر کی ضرورت ہے۔
آپ جو سینسر استعمال کریں گے وہ Grove GPS Air530 سینسر ہے۔ یہ سینسر تیزی اور درستگی کے ساتھ مختلف جی پی ایس سسٹمز سے جڑ سکتا ہے۔ یہ سینسر دو حصوں پر مشتمل ہے - سینسر کی بنیادی الیکٹرانکس اور ایک بیرونی اینٹینا جو ایک پتلی تار کے ذریعے جڑا ہوتا ہے تاکہ سیٹلائٹس سے ریڈیو ویوز کو پکڑ سکے۔
یہ ایک UART سینسر ہے، اس لیے یہ جی پی ایس ڈیٹا UART کے ذریعے بھیجتا ہے۔
جی پی ایس سینسر کو جوڑیں
Grove GPS سینسر کو راسپبیری پائی کے ساتھ جوڑا جا سکتا ہے۔
کام - جی پی ایس سینسر کو جوڑیں
جی پی ایس سینسر کو جوڑیں۔
-
Grove کیبل کے ایک سرے کو جی پی ایس سینسر کے ساکٹ میں ڈالیں۔ یہ صرف ایک ہی سمت میں داخل ہوگا۔
-
راسپبیری پائی کو بند کر کے، Grove کیبل کے دوسرے سرے کو Grove Base Hat پر موجود UART کے نشان والے ساکٹ میں جوڑیں۔ یہ ساکٹ درمیانی قطار میں ہے، ایس ڈی کارڈ سلاٹ کے قریب، یو ایس بی پورٹس اور ایتھرنیٹ ساکٹ کے مخالف سمت۔
-
جی پی ایس سینسر کو اس طرح رکھیں کہ جڑا ہوا اینٹینا آسمان کو دیکھ سکے - مثالی طور پر کھڑکی کے قریب یا باہر۔ اینٹینا کے راستے میں کسی چیز کے نہ ہونے سے سگنل زیادہ واضح طور پر ملتا ہے۔
جی پی ایس سینسر کو پروگرام کریں
اب راسپبیری پائی کو جڑے ہوئے جی پی ایس سینسر کے استعمال کے لیے پروگرام کیا جا سکتا ہے۔
کام - جی پی ایس سینسر کو پروگرام کریں
ڈیوائس کو پروگرام کریں۔
-
پائی کو آن کریں اور اس کے بوٹ ہونے کا انتظار کریں۔
-
جی پی ایس سینسر میں 2 ایل ای ڈیز ہیں - ایک نیلی ایل ای ڈی جو ڈیٹا کے ٹرانسمٹ ہونے پر چمکتی ہے، اور ایک سبز ایل ای ڈی جو سیٹلائٹس سے ڈیٹا موصول ہونے پر ہر سیکنڈ چمکتی ہے۔ یقینی بنائیں کہ جب آپ پائی کو آن کریں تو نیلی ایل ای ڈی چمک رہی ہو۔ چند منٹ بعد سبز ایل ای ڈی چمکے گی - اگر ایسا نہ ہو تو آپ کو اینٹینا کی پوزیشن تبدیل کرنی پڑ سکتی ہے۔
-
وی ایس کوڈ لانچ کریں، یا تو براہ راست پائی پر، یا ریموٹ ایس ایس ایچ ایکسٹینشن کے ذریعے جڑ کر۔
⚠️ آپ سبق 1 میں وی ایس کوڈ سیٹ اپ اور لانچ کرنے کی ہدایات کا حوالہ دے سکتے ہیں۔
-
نئے راسپبیری پائی ورژنز جو بلوٹوتھ کو سپورٹ کرتے ہیں، ان میں بلوٹوتھ کے لیے استعمال ہونے والے سیریل پورٹ اور Grove UART پورٹ کے لیے استعمال ہونے والے سیریل پورٹ کے درمیان تنازعہ ہوتا ہے۔ اسے ٹھیک کرنے کے لیے، درج ذیل کریں:
-
وی ایس کوڈ ٹرمینل سے،
nano
کے ذریعے/boot/config.txt
فائل کو درج ذیل کمانڈ کے ساتھ ایڈٹ کریں:sudo nano /boot/config.txt
یہ فائل وی ایس کوڈ کے ذریعے ایڈٹ نہیں کی جا سکتی کیونکہ اسے
sudo
پرمیشنز کے ساتھ ایڈٹ کرنے کی ضرورت ہے، جو ایک بلند پرمیشن ہے۔ وی ایس کوڈ اس پرمیشن کے ساتھ نہیں چلتا۔ -
کرسر کیز کا استعمال کرتے ہوئے فائل کے آخر تک جائیں، پھر نیچے دیا گیا کوڈ کاپی کریں اور فائل کے آخر میں پیسٹ کریں:
dtoverlay=pi3-miniuart-bt dtoverlay=pi3-disable-bt enable_uart=1
آپ اپنے ڈیوائس کے نارمل کی بورڈ شارٹ کٹس کا استعمال کرتے ہوئے پیسٹ کر سکتے ہیں (
Ctrl+v
ونڈوز، لینکس یا راسپبیری پائی او ایس پر،Cmd+v
میک او ایس پر)۔ -
اس فائل کو محفوظ کریں اور
nano
سے باہر نکلنے کے لیےCtrl+x
دبائیں۔ جب آپ سے پوچھا جائے کہ کیا آپ تبدیل شدہ بفر کو محفوظ کرنا چاہتے ہیں توy
دبائیں، پھر تصدیق کے لیےenter
دبائیں۔اگر آپ سے کوئی غلطی ہو جائے تو آپ بغیر محفوظ کیے باہر نکل سکتے ہیں، پھر ان مراحل کو دوبارہ دہرائیں۔
-
nano
کے ذریعے/boot/cmdline.txt
فائل کو درج ذیل کمانڈ کے ساتھ ایڈٹ کریں:sudo nano /boot/cmdline.txt
-
اس فائل میں کئی کلید/ویلیو جوڑے ہیں جو اسپیس سے الگ ہیں۔ کلید
console
کے لیے کسی بھی کلید/ویلیو جوڑوں کو ہٹا دیں۔ یہ ممکنہ طور پر اس طرح نظر آئیں گے:console=serial0,115200 console=tty1
آپ کرسر کیز کا استعمال کرتے ہوئے ان اندراجات پر جا سکتے ہیں، پھر نارمل
del
یاbackspace
کیز کا استعمال کرتے ہوئے حذف کر سکتے ہیں۔مثال کے طور پر، اگر آپ کی اصل فائل اس طرح نظر آتی ہے:
console=serial0,115200 console=tty1 root=PARTUUID=058e2867-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
نئی ورژن اس طرح ہوگی:
root=PARTUUID=058e2867-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
-
اوپر دیے گئے مراحل کو فائل محفوظ کرنے اور
nano
سے باہر نکلنے کے لیے دہرائیں۔ -
اپنے پائی کو ریبوٹ کریں، پھر پائی کے ریبوٹ ہونے کے بعد وی ایس کوڈ میں دوبارہ جڑیں۔
-
-
ٹرمینل سے،
pi
یوزر کے ہوم ڈائریکٹری میں ایک نیا فولڈر بنائیں جس کا نامgps-sensor
ہو۔ اس فولڈر میںapp.py
نام کی ایک فائل بنائیں۔ -
اس فولڈر کو وی ایس کوڈ میں کھولیں۔
-
جی پی ایس ماڈیول سیریل پورٹ کے ذریعے UART ڈیٹا بھیجتا ہے۔ سیریل پورٹ کے ساتھ اپنے پائتھون کوڈ سے بات چیت کرنے کے لیے
pyserial
پِپ پیکج انسٹال کریں:pip3 install pyserial
-
اپنے
app.py
فائل میں درج ذیل کوڈ شامل کریں:import time import serial serial = serial.Serial('/dev/ttyAMA0', 9600, timeout=1) serial.reset_input_buffer() serial.flush() def print_gps_data(line): print(line.rstrip()) while True: line = serial.readline().decode('utf-8') while len(line) > 0: print_gps_data(line) line = serial.readline().decode('utf-8') time.sleep(1)
یہ کوڈ
pyserial
پِپ پیکج سےserial
ماڈیول کو امپورٹ کرتا ہے۔ پھر یہ/dev/ttyAMA0
سیریل پورٹ سے جڑتا ہے - یہ وہ ایڈریس ہے جو Grove Pi Base Hat اپنے UART پورٹ کے لیے استعمال کرتا ہے۔ اس کے بعد یہ اس سیریل کنکشن سے کسی بھی موجودہ ڈیٹا کو صاف کرتا ہے۔اس کے بعد ایک فنکشن
print_gps_data
ڈیفائن کیا گیا ہے جو کنسول پر دی گئی لائن کو پرنٹ کرتا ہے۔اس کے بعد کوڈ ہمیشہ کے لیے لوپ کرتا ہے، ہر لوپ میں سیریل پورٹ سے جتنی لائنز پڑھ سکتا ہے پڑھتا ہے۔ یہ ہر لائن کے لیے
print_gps_data
فنکشن کو کال کرتا ہے۔تمام ڈیٹا پڑھنے کے بعد، لوپ 1 سیکنڈ کے لیے سوتا ہے، پھر دوبارہ کوشش کرتا ہے۔
-
اس کوڈ کو چلائیں۔ آپ جی پی ایس سینسر سے خام آؤٹ پٹ دیکھیں گے، جو کچھ اس طرح ہوگا:
$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
اگر آپ کو کوڈ کو روکنے اور دوبارہ شروع کرنے پر درج ذیل میں سے کوئی ایرر ملے، تو اپنے
while
لوپ میںtry - except
بلاک شامل کریں۔UnicodeDecodeError: 'utf-8' codec can't decode byte 0x93 in position 0: invalid start byte UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf1 in position 0: invalid continuation byte
while True: try: line = serial.readline().decode('utf-8') while len(line) > 0: print_gps_data() line = serial.readline().decode('utf-8') # There's a random chance the first byte being read is part way through a character. # Read another full line and continue. except UnicodeDecodeError: line = serial.readline().decode('utf-8') time.sleep(1)
💁 آپ اس کوڈ کو code-gps/pi فولڈر میں تلاش کر سکتے ہیں۔
😀 آپ کا جی پی ایس سینسر پروگرام کامیاب رہا!
ڈسکلیمر:
یہ دستاویز AI ترجمہ سروس Co-op Translator کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا غیر درستیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ ہم اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے ذمہ دار نہیں ہیں۔