gps raspberry pi

استخدام الراسبيري باي لبناء جهاز لتحديد الموقع بالاعتماد على نظام تحديد المواقع العالمي (GPS)

يحتوي كلُّ هاتف ذكيّ نظامَ تحديد المواقع العالميّ GPS، كما يمكننا تحويل لوح الراسبيري باي إلى مُستقبِل GPS باستخدام وحدة تحديد موقع (GPS Module) رخيصة الثّمن، ففي العديد من التّطبيقات وخاصّة المتحرّكة منها (السّيّارات – المناطيد …إلخ) يكون تحديد الموقع والمكان ذا أهميّةٍ كبيرة، وتُؤمَّن تلك الحركيّة لوحدةِ تحديد الموقع من خلال البطاريّات أو مزوِّد طاقة (Power bank) عبر سلك USB.سنتعلّم في هذا المقال كيف نقوم بعمليّة التّعقّب باستخدام وحدة تحديد الموقع ومتطلبّات القيام بذلك؟.

وحدة تحديد الموقع (GPS Module)
وحدة تحديد الموقع (GPS Module)

القطع المطلوبة

  • وحدة تحديد المواقع Minicon NEO-6M GPS.
  • مصدر طاقة (Power bank مثلاً) استطاعته 10000 mA.
  • أسلاك توصيل.
  • لوحة اختبار.

توصيل الدّارة

التّوصيل بسيط للغاية ويتمّ كما يلي:

يوصَل قطب التّغذية VCC على وحدة تحديد الموقع إلى قطب 3.3 V (القطب الأوّل) على لوح الرّاسبيري باي.

يوصَل القطب RX على الوحدة بالقطب TXD/GPIO 14 (القطب الثّامن) على الرّاسبيري باي.

يوصَل القطب TX على الوحدة بالقطب RXD/GPIO 15 (القطب العاشر) على الرّاسبيري باي.

وأخيراً يوصَل القطب الأرضيّ GND على الوحدة بالقطب الأرضيّ (القطب السادس) على الراسبيري باي.

أرقام وترتيب أقطاب الرّاسبيري باي موضّحة كما في الشّكل التّالي:

 

ترتيب أقطاب الراسبيري باي
ترتيب أقطاب الراسبيري باي

تحرير موارد الواجهة التّسلسليّة (Serial interface)

أوّلاً:

يجب أن نقومَ بجعلِ الواجهة التّسلسليّة متاحةً لوحدة تحديد الموقع، فإذا لم تكن قد تعاملْتَ مسبقاً مع الواجهة التّسلسليّة (Serial interface) فعليك تحرير الملف التّالي بكتابة الأمر:

sudo nano /etc/inittab

يجب تحويل السّطر التّالي (من المفترض أن يكون السّطر الأخير) إلى تعليق (أي تحويله إلى نصٍّ غير فعّال كأمر برمجيّ) عبر وضع الرمز # في بداية هذا السّطر (أو يمكن حذف السّطر بدلاً عن ذلك)، ثمّ نقوم بحفظ التّغيّرات على الملفّ بالضّغط على CTRL + O، ثمّ نغلق الملفّ باستخدام CRTL + X، والسّطر هو:

T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

كما يجب تعديل الملفّ (file/boot/cmdline.txt) بكتابة الأمر التّالي:

sudo nano /boot/cmdline.txt

ثمّ نحذف القيم التّالية:

console=ttyAMA0,115200 kgdboc=ttyAMA0,115200

يبدو أنّ القيمة الأخيرة غير موجودة بشكل افتراضيّ في جميع إصدارات أنظمة التّشغيل، في النّهاية يجب أن يبدو الملف بهذا الشّكل:

dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

يجب إعادة تشغيل الراسبيري باي حتّى تأخذ هذه التّغيّرات مفعولها، كما يمكننا القيام بذلك أيضاً بعد تثبيت البرامج الأخرى.

برمجيات الراسبيري باي لتشغيل وحدة تحديد المواقع GPS

نحتاج القليل من البرامج حتّى نستطيع استخدام وحدة تحديد الموقع، لكن قبل ذلك علينا تحديث الحزم المثبّتة فعليّا،ً وذلك بكتابة التّالي:

sudo apt-get update
sudo apt-get install minicom gpsd gpsd-clients

في حال عدم القيام بإعادة التّشغيل من قبل فعلينا القيام بذلك الآن:

sudo reboot now

أصبح الآن كلُّ شيء جاهزاً، ووحدة تحديد الموقع جاهزة للاختبار، بالإضافة إلى ذلك يجب تحديد سرعة نقل البيانات إلى 9600 Baud بكتابة الأمر التّالي:

stty -F /dev/ttyAMA0 9600

في هذه الحالة لا يجب أن تظهر أيّة رسائلَ خطأ، ويمكننا بعد ذلك الحصول على خَرْج هذا الضّبط بكتابة:

stty -F /dev/ttyAMA0

ستبدأ مع أوّل اختبار:

minicom -b 9600 -o -D /dev/ttyAMA0

يحدّد هنا معدّل الباود والجهاز أيضاً (ثمّ نضغط CTRL + A او QCRTL + للانتهاء)، ونلاحظ أنّ قائمةَ الخَرْج محيّرةٌ بعضَ الشّيء، لكنّها تعمل بشكل جيّد إذا كنْتَ تريد البيانات الخام فقط، وللحصول على معلومات مرتّبة بشكل أفضل نشغّل برنامج gpsd، ويتعيّن علينا تحديد معدّل الباود ثانيةً قبل أن نبدأ من جديد:

sudo gpsd /dev/ttyAMA0 -F /var/run/gpsd.sock -n
cgps -s

 

خرج برنامج تحديد الموقع
خرج برنامج تحديد الموقع

تأكّد من كون إشارة الأقمار الصناعية جيّدة الاستقبال، وذلك من خلال التّحرّك إلى خارج المنزل أو بالقرب من النافذة على الأقل، حيث تكون إشارة الاستقبال جيّدة ضمن المنزل، ويمكن مقارنة النّتائج مع معلومات تحديد الموقع على الهاتف.


المصدر:هنا
ترجمة: سارة خضر, مراجعة: لؤي أزدشير ديب, تدقيق لغوي: سلام أحمد, تصميم: علي العلي, تحرير: قحطان غانم

Leave a Reply

Your email address will not be published. Required fields are marked *