الـ وحدة GPS NEO-6M هو خيار شائع لإضافة وظائف GPS إلى مشاريع Raspberry Pi. فهو يوفر بيانات دقيقة عن الموقع والارتفاع والتوقيت، مما يجعله مثاليًا لتطبيقات الملاحة وتحديد الموقع الجغرافي ومزامنة الوقت. سيرشدك هذا الدليل خلال إعداد واستخدام الـ وحدة GPS NEO-6M مع Raspberry Pi.
ما ستحتاجه
- راسبيري باي (أي طراز يدعم GPIO، مثل Pi 3، Pi 4)
- وحدة GPS NEO-6M
- لوحة تجارب وأسلاك توصيل
- كمبيوتر مع إمكانية الوصول عبر SSH إلى Raspberry Pi أو لوحة مفاتيح وشاشة متصلتان
- تم تثبيت Python على Raspberry Pi
الخطوة 1: توصيل الأسلاك NEO-6M إلى Raspberry Pi
الـ NEO-6M يتواصل مع Raspberry Pi باستخدام واجهة UART (التسلسلية).
الاتصالات
| NEO-6M دبوس | دبابيس Raspberry Pi |
|---|---|
| VCC | 3.3V (الدبوس 1) |
| أرضي | الأرضي (الدبوس 6) |
| TXD | RXD (الدبوس 10، GPIO15) |
| RXD | TXD (دبوس 8، GPIO14) |
ملاحظة: تأكد من الـ NEO-6M يعمل بجهد 3.3V أو 5V كما هو محدد بواسطة وحدتك. تحقق من ورقة البيانات الخاصة بالوحدة.
الخطوة 2: تفعيل UART على Raspberry Pi
- افتح أداة تهيئة Raspberry Pi:
sudo raspi-config - انتقل إلى خيارات الواجهة > المنفذ التسلسلي:
- اختر "No" عندما يُسأل إن كنت تريد قشرة تسجيل الدخول عبر الواجهة التسلسلية.
- حدِّد "Yes" لتمكين عتاد المنفذ التسلسلي.
- أعد تشغيل Raspberry Pi:
sudo reboot
الخطوة 3: تثبيت الأدوات والمكتبات المطلوبة
- حدِّث جهاز Raspberry Pi الخاص بك:
sudo apt update && sudo apt upgrade -y - تثبيت
minicomلاختبار وحدة GPS:sudo apt install -y minicom - ثبّت مكتبات Python للتواصل عبر المنفذ التسلسلي ولتحليل بيانات GPS:
pip install pyserial pynmea2
الخطوة 4: اختبار وحدة GPS
- افتح
minicomللتحقق مما إذا كانت وحدة GPS تُرسل بيانات:sudo minicom -b 9600 -o -D /dev/serial0 - ينبغي أن ترى بيانات GPS بتنسيق NMEA (على سبيل المثال،
$GPGGA,$GPRMC). إذا لم يكن كذلك:- تحقق من التوصيلات الكهربائية لديك.
- تأكد من أن الوحدة تتمتع برؤية واضحة للسماء لالتقاط إشارات الأقمار الصناعية.
- خروج
minicomبالضغطCtrl+A، ثمZ، واختيارX.
الخطوة 5: قراءة بيانات GPS باستخدام Python
يقرأ برنامج Python النصي التالي بيانات GPS ويحلّلها من الـ وحدة NEO-6M.
مثال على كود Python
import serial
import pynmea2
def read_gps():
# Open serial connection to GPS module
gps_serial = serial.Serial("/dev/serial0", baudrate=9600, timeout=1)
while True:
try:
line = gps_serial.readline().decode("ascii", errors="replace")
if line.startswith("$GPGGA"):
msg = pynmea2.parse(line)
print(f"Latitude: {msg.latitude}, Longitude: {msg.longitude}")
print(f"Altitude: {msg.altitude} {msg.altitude_units}")
except pynmea2.ParseError as e:
print(f"Parse error: {e}")
except KeyboardInterrupt:
print("Exiting...")
break
if __name__ == "__main__":
read_gps()
الخطوة 6: تطبيقات الـ وحدة GPS NEO-6M
- أنظمة الملاحة: أنشئ أجهزة تتبّع GPS للمركبات أو الطائرات بدون طيار.
- الوسم الجغرافي: سجّل بيانات الموقع للصور أو الأحداث الأخرى.
- مزامنة الوقت: استخدم بيانات GPS للحصول على ضبط وقت عالي الدقة.
- أجهزة إنترنت الأشياء: تمكين الأتمتة المستندة إلى الموقع.
استكشاف الأخطاء وإصلاحها
-
لا توجد بيانات GPS في Minicom:
- تحقّق من التوصيلات (وصلات TXD وRXD).
- تأكد من تزويد وحدة GPS بالطاقة بشكل صحيح.
- ضع الوحدة في منطقة مفتوحة لتحسين استقبال الأقمار الصناعية.
-
برنامج Python النصي لا يعمل:
- تحقّق من أن الـ
serial0الواجهة مفعّلة وقابلة للوصول. - تأكد من أن مكتبات Python (
pyserial,pynmea2) تم تثبيت.
- تحقّق من أن الـ
-
اكتساب بطيء للقمر الصناعي:
- امنح وحدة GPS وقتًا لالتقاط الإشارات، خصوصًا عند استخدامها لأول مرة.
- استخدم هوائيًا خارجيًا إذا لزم الأمر.
الخلاصة
الـ وحدة GPS NEO-6M هو أداة متعددة الاستخدامات ودقيقة لإضافة وظيفة تحديد الموقع الجغرافي إلى مشاريع Raspberry Pi الخاصة بك. باتباع هذا الدليل، يمكنك إعداد وحدة GPS والبدء في التقاط بيانات الموقع لمجموعة متنوعة من التطبيقات. جرّب دمج وحدة GPS في مشاريع الملاحة أو التتبع أو إنترنت الأشياء للاستفادة الكاملة من قدراتها!




