- Gerekli Bileşenler:
- GPS Modülü ve Çalışması:
- Raspberry Pi'yi GPS ile iletişim kurmaya hazırlama:
- Raspberry Pi GPS modülü için bağlantılar Arayüz:
- Python Komut Dosyasından önce test etme:
Arduino gibi en havalı gömülü platformlardan biri, yapımcılara ve DIY kullanıcılarına GPS modülünü kullanarak konum verilerini kolayca alma ve böylece konuma dayalı şeyler inşa etme yeteneği verdi. Raspberry Pi'nin paketlediği güç miktarı ile, aynı ucuz GPS modülleri ile GPS tabanlı projeler oluşturmak kesinlikle harika olacak ve bu yazının odak noktası budur. Bugün bu projede GPS modülünü Raspberry Pi 3 ile Arayüz yapacağız .
Bu projenin amacı, bir GPS modülünden UART aracılığıyla konum verilerini (enlem ve boylam) toplamak ve bunları 16x2 LCD'de görüntülemek, yani 16x2 LCD'nin Raspberry Pi ile çalışma şekline aşina değilseniz, bu başka bir öğrenmek için harika bir fırsat.
Gerekli Bileşenler:
- Ahududu Pi 3
- Neo 6m v2 GPS Modülü
- 16 x 2 LCD
- Raspberry Pi için güç kaynağı
- Başsız modda pi'yi PC'nize bağlamak için LAN kablosu
- Breadboard ve Jumper kabloları
- LCD'ye direnç / potansiyometre
- Raspbian Jessie çalıştıran 8 veya 16 Gb hafıza kartı
Bunun dışında GPS Daemon (GPSD) kitaplığı, 16x2 LCD Adafruit kitaplığı kurmamız gerekiyor, bu kitaplığı bu öğreticide daha sonra kuracağız.
Burada Raspbian Jessie OS ile Raspberry Pi 3 kullanıyoruz. Tüm temel Donanım ve Yazılım gereksinimleri daha önce tartışılmıştır, bunlara Raspberry Pi Giriş bölümünde bakabilirsiniz.
GPS Modülü ve Çalışması:
GPS, Küresel Konumlandırma Sistemi anlamına gelir ve Dünya üzerindeki herhangi bir konumun Enlem ve Boylamını tam UTC saatiyle (Evrensel Zaman Koordineli) tespit etmek için kullanılır. GPS modülü, araç takip sistemi projemizin ana bileşenidir. Bu cihaz, saat ve tarihle birlikte her saniye uydudan koordinatları alır.
GPS modülü, izleme konumu ile ilgili verileri gerçek zamanlı olarak gönderir ve NMEA formatında çok fazla veri gönderir (aşağıdaki ekran görüntüsüne bakın). NMEA formatı, yalnızca bir cümleye ihtiyacımız olan birkaç cümleden oluşur. Bu cümle $ GPGGA'dan başlar ve koordinatları, zamanı ve diğer yararlı bilgileri içerir. Bu GPGGA, Küresel Konumlandırma Sistemi Düzeltme Verileri olarak adlandırılır. GPS verilerini ve dizelerini buradan okuma hakkında daha fazla bilgi edinin.
Dizedeki virgülleri sayarak $ GPGGA dizesinden koordinatı çıkarabiliriz. $ GPGGA dizesini bulduğunuzu ve bir dizide depoladığınızı varsayalım, ardından Enlem iki virgülden sonra ve Boylam dört virgülden sonra bulunabilir. Şimdi bu enlem ve boylam diğer dizilere yerleştirilebilir.
Aşağıda, açıklamasıyla birlikte $ GPGGA Dizesi bulunmaktadır:
$ GPGGA, 104534.000,7791.0381, K, 06727.4434, E, 1,08,0,9,510,4, M, 43,9, M,, * 47
$ GPGGA, HHMMSS.SSS, enlem, K, boylam, E, FQ, NOS, HDP, rakım, M, yükseklik, M,, sağlama toplamı verileri
Tanımlayıcı |
Açıklama |
$ GPGGA |
Küresel Konumlandırma sistemi düzeltme verileri |
HHMMSS.SSS |
Saat, dakika saniye ve milisaniye biçiminde zaman. |
Enlem |
Enlem (Koordinat) |
N |
Yön N = Kuzey, S = Güney |
Boylam |
Boylam (Koordinat) |
E |
Yön E = Doğu, W = Batı |
FQ |
Kalite Verilerini Düzeltin |
NOS |
Kullanılan Uyduların Sayısı |
HPD |
Yatay Hassasiyet Kaybı |
Rakım |
Deniz seviyesinden yükseklik |
M |
Metre |
Yükseklik |
Yükseklik |
Sağlama toplamı |
Sağlama Verileri |
Diğer GPS projelerimizi inceleyebilirsiniz:
- GPS ve GSM kullanan Arduino tabanlı Araç İzleyici
- GPS, GSM ve İvme Ölçer kullanan Arduino Tabanlı Araç Kaza Uyarı Sistemi
- Arduino ile GPS Nasıl Kullanılır
- Arduino, ESP8266 ve GPS kullanarak Google Haritalar'da Bir Aracı Takip Edin
Raspberry Pi'yi GPS ile iletişim kurmaya hazırlama:
Tamam, atlamak için, bu sıkıcı olmaz, Raspberry Pi hakkında zaten çok şey bildiğinizi varsayacağım, işletim sisteminizi kurmak, IP adresini almak, macun gibi terminal yazılımlarına bağlanmak ve diğer şeyler hakkında PI. Yukarıda belirtilen şeylerden herhangi birini yaparken herhangi bir sorununuz olursa, yorum bölümünün altında bana gelin ve yardımcı olmaktan memnuniyet duyarım.
Bu projeyi hayata geçirmek için yapmamız gereken ilk şey Raspberry Pi 3'ümüzü GPS modülü ile UART üzerinden iletişim kurabilecek şekilde hazırlamak, inanın oldukça zor ve doğru yapmak için epeyce çaba sarf etti ama takip ederseniz Rehberim dikkatlice tek seferde alacaksınız, bu projenin oldukça zor kısmı. Burada Neo 6m v2 GPS Modülünü kullandık.
Başlamak için , Raspberry Pi 3 UART'ın Nasıl Çalıştığına dair küçük bir açıklama.
Raspberry Pi'de iki yerleşik UART, bir PL011 ve bir mini UART bulunur. Farklı donanım blokları kullanılarak uygulanırlar, böylece biraz farklı özelliklere sahiptirler. Bununla birlikte, ahududu pi 3'te, kablosuz / bluetooth modülü PLO11 UART'a bağlanırken, mini UART, linux konsol çıkışı için kullanılır. Nasıl gördüğünüze bağlı olarak, PLO11'i uygulama seviyesi nedeniyle iki UART'ın en iyisi olarak tanımlayacağım. Dolayısıyla bu proje için, Raspbian Jessie'nin güncellenmiş güncel sürümünde bulunan bir kaplama kullanarak PLO11 UART'tan Bluetooth modülünü devre dışı bırakacağız.
Adım 1: Raspberry Pi'yi Güncelleme:
Her projeye başlamadan önce yapmaktan hoşlandığım ilk şey ahududu pi'yi güncellemektir. Şimdi olağan olanı yapalım ve aşağıdaki komutları çalıştıralım;
sudo apt-get update sudo apt-get yükseltme
ardından sistemi ile yeniden başlatın;
sudo yeniden başlatma
Adım 2: Raspberry Pi'de UART'ı kurma:
Bunun altında yapacağımız ilk şey /boot/config.txt dosyasını düzenlemektir. Bunu yapmak için aşağıdaki komutları çalıştırın:
sudo nano /boot/config.txt
config.txt dosyasının altına aşağıdaki satırları ekleyin
dtparam = spi = dtoverlay = pi3-disable-bt core_freq = 250 enable_uart = 1 force_turbo = 1
Çıkmak için ctrl + x ve kaydetmek için y ve enter tuşuna basın.
Çift kontrol ederek herhangi bir yazım hatası veya hata olmadığından emin olun, çünkü bu, pi'nizin önyüklenmesini engelleyebilir.
Bu komutların nedenleri nelerdir, force_turbo , UART'ın bu durumda 250 olarak ayarladığımız maksimum çekirdek frekansı kullanmasını sağlar. Bunun nedeni, alınan seri verilerin tutarlılığını ve bütünlüğünü sağlamaktır. Bu noktada, force_turbo = 1 kullanmanın ahududu pi'nizin garantisini geçersiz kılacağına dikkat etmek önemlidir, ancak bunun yanı sıra oldukça güvenlidir.
Dtoverlay = PI3-disable-bt den bluetooth bağlantısı kesilir ttyAMA0 , bu bizi yoluyla ulaşılabilir tam UART gücünü kullanmak erişmesine izin vermektir ttyAMAO yerine mini UART ttyS0.
Bu UART kurulum bölümü altındaki ikinci adım, boot / cmdline.txt dosyasını düzenlemektir.
Cmdline.txt dosyasının bir kopyasını almanızı ve düzenlemeden önce kaydetmenizi öneririm, böylece gerekirse daha sonra geri dönebilirsiniz. Bu, kullanılarak yapılabilir;
sudo cp boot / cmdline.txt önyükleme / cmdline_backup.txt sudo nano /boot.cmdline.txt
İçeriği şununla değiştirin;
dwc_otg.lpm_enable = 0 console = tty1 root = / dev / mmcblk0p2 rootfstype = ext4 asansör = son tarih fsck.repair = yes rootwait sessiz sıçrama plymouth.ignore-serial-consoles
Kaydet ve çık.
Bunu yaptıktan sonra, değişiklikleri etkilemek için sistemi yeniden başlatmamız gerekecek ( sudo reboot ).
Adım 3: Raspberry Pi Seri Getty Hizmetini Devre Dışı Bırak
Bir sonraki adım, Pi'nin getty servisinin serisini devre dışı bırakmaktır, komut yeniden başlatmada tekrar başlamasını önleyecektir:
sudo systemctl stop [email protected] sudo systemctl [email protected]'i devre dışı bırak
Aşağıdaki komutlar gerekirse tekrar etkinleştirmek için kullanılabilir
sudo systemctl enable [email protected] sudo systemctl start [email protected]
Sistemi yeniden başlatın.
Adım 4: ttyAMAO'nun etkinleştirilmesi:
TtyS0'ı devre dışı bıraktık, sonraki şey bizim için ttyAMAO'yu etkinleştirmemiz.
sudo systemctl [email protected]'i etkinleştir
Adım5: Minicom ve pynmea2'yi kurun:
GPS modülüne bağlanmak ve verileri anlamlandırmak için minicom olacağız. Ayrıca test etmek için kullanacağımız araçlardan biri de GPS modülümüzün iyi çalışıyor olması. Minicom'a bir alternatif GPSD arka plan programı yazılımıdır.
sudo apt-get install minicom
Alınan verileri kolayca ayrıştırmak için pynmea2 kütüphanesini kullanacağız. Kullanılarak kurulabilir;
sudo pip kurulum pynmea2
Kütüphane belgeleri burada https://github.com/Knio/pynmea2 bulunabilir
Adım 6: LCD Kitaplığının Kurulması:
Bu eğitim için AdaFruit kütüphanesini kullanacağız. Kitaplık AdaFruit ekranları için yapıldı, ancak aynı zamanda HD44780 kullanan ekran panoları için de çalışıyor. Ekranınız buna dayanıyorsa, sorunsuz çalışması gerekir.
Kütüphaneyi klonlamanın ve doğrudan yüklemenin daha iyi olduğunu hissediyorum. Çalıştırmayı klonlamak için;
git klon
klonlanmış dizine değiştirin ve kurun
cd./Adafruit_Python_CharLCD sudo python setup.py install
Bu aşamada, başka bir yeniden başlatma önereceğim, böylece bileşenleri bağlamaya devam etmeye hazırız.
Raspberry Pi GPS modülü için bağlantılar Arayüz:
GPS Modülünü ve LCD'yi Raspberry Pi'ye aşağıdaki Devre Şemasında gösterildiği gibi bağlayın.
Python Komut Dosyasından önce test etme:
Python betiğine geçmeden önce GPS modülü bağlantısını test etmenin önemli olduğunu düşünüyorum, bunun için minicom kullanacağız. Komutu çalıştırın:
sudo minicom -D / dev / ttyAMA0 -b9600
9600, GPS modülünün iletişim kurduğu baud hızını temsil eder. Bu, GPS ile RPI arasındaki veri iletişiminden emin olduğumuzda, python betiğimizi yazma zamanı için kullanılabilir.
Test, kedi kullanılarak da yapılabilir
sudo kedi / dev / ttyAMA0
Window'da, daha önce tartıştığımız NMEA cümlelerini görebilirsiniz.
Bu Raspberry Pi GPS eğitimi için Python Script aşağıda Kod bölümünde verilmiştir.
Tüm söylenen ve yapılanlarla birlikte, tüm sistemi test etme zamanı. GPS'inizin iyi bir şekilde sabitlendiğinden emin olmanız önemlidir, onu çıkararak, çoğu GPS'in bir düzeltme alabilmesi için üç ila 4 uydu arasında olması gerekir, ancak benimki kapalı alanda çalışıyor.
Çalışıyor Değil mi? Evet…
Sorularınız veya yorumlarınız mı var? Bunları yorum bölümüne bırakın.
GPS ve Raspberry Pi kullanarak LCD'de Konumu enlem ve boylam olarak gösterdiğimiz Gösteri Videosu aşağıda verilmiştir.