راه اندازی ماژول GPS Neo 6m با رزبری پای
سلام. راه اندازی ماژول GPS Neo 6m با رزبری پای را آماده کردیم.
محتویات
- پروژه مکان یاب جی پی اس با رزبری پای
- مدار پروژه GPS با رزبری پای
- قطعات مورد نیاز
- توضیحات ماژول مکان یاب GPS Neo-6M
- فرمت NMEA چیست ؟
- آماده سازی Raspberry Pi برای برقراری ارتباط با GPS
- مرحله 1: به روزرسانی Raspberry Pi
- مرحله 2: تنظیم UART در Raspberry Pi
- مرحله 4: فعال کردن ttyAMAO
- مرحله 5: نصب Minicom و pynmea2
- مرحله 6: نصب کتابخانه LCD
- تست قبل از اسکریپت پایتون
پروژه مکان یاب جی پی اس با رزبری پای
در این پروژه رزبری پای با استفاده از ماژول GPS Neo 6m یک مکان یاب مبتنی بر Raspberry pi میسازیم. در این پروژه داده های طول و عرض جغرافیایی را از طریق UART از یک ماژول جی پی اس به رزبری پای منتصل میکنیم و سپس آنها را در یک ال سی دی کاراکتری نمایش میدهیم.
مدار پروژه GPS با رزبری پای
همانطور که در شماتیک مدار زیر نشان داده شده ، ماژول GPS و LCD را به Raspberry Pi متصل کنید.
قطعات مورد نیاز
- برد رزبری پای
- ماژول GPS Neo 6m v2
- ال سی دی کاراکتری 16*2
- مقاومت یا پتانسیومتر برای ال سی دی
در اینجا ما از Raspberry Pi 3 با Raspbian Jessie OS استفاده می کنیم.
توضیحات ماژول مکان یاب GPS Neo-6M
Neo 6M یک ماژول GPS سریال است که جزئیات مکان را از طریق ارتباط سریال ارائه می دهد. این ماژول جی پی اس دارای چهار پین است. توضیحات پین های این ماژول را در جدول زیر مشاهده میکنید.
پین | توضیح |
Vcc | منبع تغذیه 2.7 تا 5 ولت |
Gnd | GND |
TXD | ارسال اطلاعات |
RXD | دریافت اطلاعات |
ماژول GPS داده ها را در چند رشته با نرخ 9600 Baud Rate منتقل می کند. اگر از ترمینال UART با نرخ 9600 Baud استفاده کنیم ، می توانیم داده های دریافت شده توسط GPS را ببینیم.
ماژول GPS داده های موقعیت ردیابی را با فرمت NMEA ارسال می کند. فرمت NMEA شامل چند جمله است که در زیر چهار جمله مهم آن آورده شده است.
- $ GPGGA : داده های ثابت سیستم موقعیت یابی جهانی
- $ GPGSV : ماهواره های GPS در نمای
- $ GPGSA : ماهواره های فعال و GPS DOP
- $ GPRMC : حداقل داده های خاص GPS / Transit ویژه توصیه شده
ماژول GPS داده های مربوط به موقعیت را در به صورت لحظه ای می فرستد، و داده های زیادی را با فرمت NMEA می فرستد (تصویر زیر). فرمت NMEA شامل چند جمله است که ما در آن فقط به یک جمله نیاز داریم. این جمله از $ GPGGA شروع می شود و حاوی مختصات ، زمان و سایر اطلاعات مفید است.
می توانیم با شمارش کاما (,) در رشته ، مختصات را از رشته $ GPGGA استخراج کنیم.
فرمت NMEA چیست ؟
در زیر یک رشته GPGGA $ به همراه توضیحات آن آورده شده است :
$GPGGA,104534.000,7791.0381,N,06727.4434,E,1,08,0.9,510.4,M,43.9,M,,*47 $GPGGA,HHMMSS.SSS,latitude,N,longitude,E,FQ,NOS,HDP,altitude,M,height,M,,checksum data
واحد | توضیح |
$GPGGA | فرمت اطلاعات موقعیت جهانی |
HHMMSS.SSS | زمان بر حسب ساعت ، دقیقه ، ثانیه و میلی ثانیه |
Latitude | عرض جغرافیایی |
N | جهت N= شمال و S= جنوب |
Longitude | عرض جغرافیایی |
E | جهت E= شرق و W= غرب |
FQ | کیفیت اطلاعات |
NOS | شماره ماهواره های استفاده شده |
HDP | دقت افقی |
Altitude | ارتفاع بر حسب متر از سطح دریا |
M | متر |
Height | ارتفاع |
Checksum | چک کردن اطلاعات |
آماده سازی Raspberry Pi برای برقراری ارتباط با GPS
اولین کاری که ما برای انجام این پروژه باید انجام دهیم این است که Raspberry Pi 3 خود را آماده کنیم تا بتوانیم از طریق UART با ماژول GPS ارتباط برقرار کنیم.
رزبری پای 3 دارای دو UART داخلی ، PL011 و یک mini UART است. آنها با استفاده از بلوک های سخت افزاری مختلف پیاده سازی می شوند تا ویژگی متفاوتی داشته باشند. اما در Raspberry pi 3 ، ماژول بی سیم / بلوتوث به PLO11 UART وصل می شود ، در حالی که mini UART برای خروجی linux استفاده می شود. برای این پروژه ما با استفاده از یک لایه موجود در نسخه به روز شده Raspbian Jessie، ماژول بلوتوث را در PLO11 UART غیرفعال می کنیم.
مرحله 1: به روزرسانی Raspberry Pi
اولین کاری که من دوست دارم قبل از شروع هر پروژه انجام دهم ، بروزرسانی pi raspberry است. بنابراین می گذاریم دستورات معمول را انجام دهیم و دستورات زیر را اجرا کنیم.
sudo apt-get update sudo apt-get upgrade
سپس باید سیستم را راه اندازی مجدد کنیم.
sudo reboot
مرحله 2: تنظیم UART در Raspberry Pi
اولین کاری که ما در این زمینه انجام خواهیم داد ، ویرایش فایل /boot/config.txt است. برای این کار ، دستورات زیر را اجرا کنید:
sudo nano /boot/config.txt
در پایین فایل config.txt خطوط زیر را اضافه کنید
dtparam=spi=on dtoverlay=pi3-disable-bt core_freq=250 enable_uart=1 force_turbo=1
برای خروج ctrl + x و y را فشار داده تا اطلاعات ذخیره شوند.
force_turbo UART باعث میشود به حداکثر فرکانس هسته که در اینجا 250 است دست یابیم. دلیل این کار اطمینان از ثبات و یکپارچگی داده های سریال است
dtoverlay = pi3-disable-bt بلوتوث را از ttyAMA0 جدا می کند ، این امر به ما این امکان را می دهد تا از قدرت کامل UART موجود از طریق ttyAMAO استفاده کنیم.
مرحله دوم در بخش راه اندازی UART ویرایش boot / cmdline.txt است
من به شما پیشنهاد می کنم از cmdline.txt یک کپی تهیه کنید و ابتدا قبل از ویرایش آن را ذخیره کنید تا در صورت لزوم بتوانید آن را برگردانید. خطوط زیر را با
sudo cp boot/cmdline.txt boot/cmdline_backup.txt sudo nano /boot.cmdline.txt
خطوط زیر جایگزین کنید.
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles
ذخیره کنید و خارج شوید.
سپس سیستم را راه اندازی مجدد میکنیم.
مرحله سوم: غیرفعال کردن سرویس Getty سریال Raspberry Pi
مرحله بعدی غیرفعال کردن سریال سرویس گیرنده Pi است ، این دستور از شروع دوباره در راه اندازی مجدد جلوگیری می کند:
sudo systemctl stop serial-getty@ttyS0.service sudo systemctl disable serial-getty@ttyS0.service
دستورات زیر می توانند در صورت لزوم برای فعال کردن مجدد آن استفاده شوند
sudo systemctl enable serial-getty@ttyS0.service sudo systemctl start serial-getty@ttyS0.service
سپس سیستم را راه اندازی مجدد کنید.
مرحله 4: فعال کردن ttyAMAO
ما ttyS0 را غیرفعال کرده ایم ،باید با دستور زیر ttyAMAO را فعال کنیم.
sudo systemctl enable serial-getty@ttyAMA0.service
مرحله 5: نصب Minicom و pynmea2
از minicom برای دریافت صحیح دادده های GPS استفاده میکنیم.
sudo apt-get install minicom
برای تجزیه و تحلیل آسان داده های دریافتی، از کتابخانه pynmea2 استفاده خواهیم کرد.
sudo pip install pynmea2
مرحله 6: نصب کتابخانه LCD
برای این پروژه از کتابخانه AdaFruit استفاده خواهیم کرد. این کتابخانه برای صفحه های AdaFruit ساخته شده است و برای صفحه های با استفاده از HD44780 نیز کار می کند. اگر نمایشگر شما بر این اساس است ، باید بدون مشکل کار کند.
git clone https://github.com/adafruit/Adafruit_Python_CharLCD.git
آن را نصب کنید.
cd ./Adafruit_Python_CharLCD sudo python setup.py install
سپس باید بار دیگر برد رزبری پای را راه اندازی مجدد کنید.
تست قبل از اسکریپت پایتون
قبل از اجرای اسکریپت پایتون، بهتر است یکبار مدار را تست کنید. با اجرای دستور زیر :
sudo minicom -D/dev/ttyAMA0 -b9600
که در آن 9600 بیانگر میزان سرعت baud است که در آن سرعت با ماژول GPS ارتباط برقرار می شود.
آزمایش همچنین با استفاده از دستور زیر قابل انجام است :
sudo cat /dev/ttyAMA0
در تصویر بالا، می توانید جملات NMEA را که قبلاً در مورد آنها بحث کردیم ، مشاهده کنید.
موارد موجود در فایل : شماتیک کامل مدار ، سورس کامل
سلام آقای مهندس
ممنون از بابت مطالب پربارتون ، موضوع پایان نامه من در مورد هوشمند سازی سایت های ساختمانی هست که ماژول مورد استفاده م GPS می باشد .
یه سری راهنمایی در این خصوص میخواستم از تون بگیرم . اگه براتوم مقدور ایمیل یا واتس اپ بفرمایین تا در این رابطه سوالام مطرح کنم و از راهنماییهاتون استفاده کنم .
ممنون از لطفتون
سلام جناب، ما کلا فعالیت چه انجام پروژه و چه آموزش به صورت سفارشی نداریم میتونید از مطالب سایت که در زمینه GPS هست استفاده کنید. در قسمت جستجو GPS رو سرچ کنید.