تعد وحدة GPS NEO-6M خيارًا شائعًا لإضافة وظائف GPS إلى مشاريع Raspberry PI. إنه يوفر بيانات دقيقة ، والارتفاع ، وبيانات التوقيت ، مما يجعلها مثالية للتنقل ، تحديد الموقع الجغرافي ، وتطبيقات التزامن الوقت. سوف يسير هذا الدليل من خلال إعداد واستخدام وحدة GPS Neo-6M مع Raspberry Pi.
ماذا ستحتاج
- التوت بي (أي نموذج يحمل دعم GPIO ، على سبيل المثال ، PI 3 ، PI 4)
- NEO-6M GPS وحدة
- الأسلاك الأسلاك والبلوز
- جهاز كمبيوتر به وصول SSH إلى Raspberry Pi أو لوحة مفاتيح متصلة وشاشة
- Python مثبت على Raspberry Pi
الخطوة 1: توصيل Neo-6M إلى Raspberry Pi
يتواصل Neo-6M مع Raspberry Pi باستخدام واجهة UART (التسلسلية).
الاتصالات
NEO-6M PIN | التوت بي دبوس |
---|---|
VCC | 3.3V (دبوس 1) |
GND | الأرض (دبوس 6) |
TXD | RXD (PIN 10 ، GPIO15) |
RXD | TXD (PIN 8 ، GPIO14) |
ملحوظة: تأكد من تشغيل NEO-6M بـ 3.3V أو 5V كما هو محدد في الوحدة النمطية. تحقق من ورقة بيانات الوحدة النمطية.
الخطوة 2: تمكين UART على Raspberry Pi
- افتح أداة تكوين Raspberry Pi:
sudo raspi-config
- انتقل إلى خيارات الواجهة> المنفذ التسلسلي:
- حدد "لا" عندما سئل عما إذا كنت تريد قشرة تسجيل الدخول عبر الواجهة التسلسلية.
- حدد "نعم" لتمكين أجهزة المنفذ التسلسلي.
- أعد تشغيل 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.
مثال رمز بيثون
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 للمركبات أو الطائرات بدون طيار.
- Geotagging: سجل بيانات الموقع للصور أو الأحداث الأخرى.
- تزامن الوقت: استخدم بيانات GPS لحفظ الوقت الدقيق للغاية.
- أجهزة إنترنت الأشياء: تمكين الأتمتة القائمة على الموقع.
استكشاف الأخطاء وإصلاحها
-
لا توجد بيانات GPS في minicom:
- تحقق من الأسلاك (اتصالات TXD و RXD).
- تأكد من تشغيل وحدة GPS بشكل صحيح.
- ضع الوحدة في منطقة مفتوحة للحصول على استقبال عبر الأقمار الصناعية.
-
نص Python لا يعمل:
- تحقق من أن
serial0
يتم تمكين الواجهة ويمكن الوصول إليها. - ضمان مكتبات بيثون (
pyserial
,pynmea2
) مثبتة.
- تحقق من أن
-
اكتساب بطيء للأقمار الصناعية:
- السماح بوقت وحدة GPS للحصول على إشارات ، خاصة عند الاستخدام الأول.
- استخدم هوائيًا خارجيًا إذا لزم الأمر.
خاتمة
وحدة GPS NEO-6M هي أداة متعددة الاستخدامات ودقيقة لإضافة وظائف تحديد الموقع الجغرافي إلى مشاريع Raspberry PI الخاصة بك. باتباع هذا الدليل ، يمكنك إعداد وحدة GPS والبدء في التقاط بيانات الموقع لمجموعة متنوعة من التطبيقات. تجربة مع دمج وحدة GPS في المشاريع التنقل أو التتبع أو إنترنت الأشياء للمشاريع لاستخدام قدراتها بالكامل!