- Komponen yang diperlukan:
- Modul GPS dan Kerjanya:
- Menyiapkan Pi Raspberry untuk berkomunikasi dengan GPS:
- Sambungan untuk Antara muka modul Raspberry Pi GPS:
- Ujian sebelum Skrip Python:
Salah satu platform tertanam yang paling keren seperti Arduino telah memberi kemampuan kepada pembuat dan DIY untuk mendapatkan data lokasi dengan mudah menggunakan modul GPS dan dengan itu dapat membina sesuatu yang bergantung pada lokasi. Dengan jumlah tenaga yang dibungkus oleh Raspberry Pi, pastinya akan menjadi sangat hebat untuk membina projek berasaskan GPS dengan modul GPS murah yang sama dan itulah fokus siaran ini. Hari ini dalam projek ini kita akan menginterface modul GPS dengan Raspberry Pi 3.
Matlamat projek ini adalah untuk mengumpulkan data lokasi (garis bujur dan garis lintang) melalui UART dari modul GPS dan memaparkannya pada LCD 16x2, jadi jika anda tidak mengetahui cara kerja LCD 16x2 dengan Raspberry Pi, ini adalah satu lagi peluang besar untuk belajar.
Komponen yang diperlukan:
- Raspberry Pi 3
- Modul GPS Neo 6m v2
- LCD 16 x 2
- Sumber kuasa untuk Raspberry Pi
- Kabel LAN untuk menyambungkan pi ke PC anda dalam mod tanpa kepala
- Kabel papan roti dan Jumper
- Perintang / potensiometer ke LCD
- Kad memori 8 atau 16Gb yang menjalankan Raspbian Jessie
Selain itu kita perlu memasang perpustakaan GPS Daemon (GPSD), perpustakaan Adafruit LCD 16x2, yang akan kita pasang kemudian dalam tutorial ini.
Di sini kita menggunakan Raspberry Pi 3 dengan OS Raspbian Jessie. Semua keperluan asas Perkakasan dan Perisian dibincangkan sebelumnya, anda boleh mencarinya dalam Pengenalan Raspberry Pi.
Modul GPS dan Kerjanya:
GPS bermaksud Sistem Penentududukan Global dan digunakan untuk mengesan Lintang dan Bujur dari mana-mana lokasi di Bumi, dengan masa UTC yang tepat (Universal Time Coordinated). Modul GPS adalah komponen utama dalam projek sistem penjejakan kenderaan kami. Peranti ini menerima koordinat dari satelit untuk setiap detik, dengan masa dan tarikh.
Modul GPS menghantar data yang berkaitan dengan kedudukan penjejakan dalam masa nyata, dan mengirimkan begitu banyak data dalam format NMEA (lihat tangkapan skrin di bawah). Format NMEA terdiri daripada beberapa ayat, di mana kita hanya memerlukan satu ayat. Kalimat ini bermula dari $ GPGGA dan mengandungi koordinat, masa dan maklumat berguna lain. Ini GPGGA disebut Sistem Kedudukan Global Fix Data. Ketahui lebih lanjut mengenai Membaca data GPS dan rentetan di sini.
Kita boleh mengekstrak koordinat dari rentetan $ GPGGA dengan mengira koma dalam rentetan. Katakan anda menjumpai rentetan $ GPGGA dan menyimpannya dalam array, maka Latitud dapat dijumpai setelah dua koma dan Bujur dapat dijumpai setelah empat koma. Sekarang garis lintang dan garis bujur ini boleh dimasukkan ke dalam tatasusunan yang lain.
Berikut adalah rentetan $ GPGGA, beserta keterangannya:
$ GPGGA, 104534.000,7791.0381, N, 06727.4434, E, 1,08,0.9,510.4, M, 43.9, M,, * 47
$ GPGGA, HHMMSS.SSS, garis lintang, N, garis bujur, E, FQ, NOS, HDP, ketinggian, M, tinggi, M,, data checksum
Pengenal |
Penerangan |
$ GPGGA |
Memperbaiki data sistem Penentududukan Global |
HHMMSS.SSS |
Masa dalam jam beberapa saat dan format milisaat. |
Latitud |
Lintang (Koordinat) |
N |
Arah N = Utara, S = Selatan |
Bujur |
Bujur (Koordinat) |
E |
Arah E = Timur, W = Barat |
FQ |
Betulkan Data Berkualiti |
NOS |
Bilangan Satelit yang Digunakan |
HPD |
Pencairan Ketepatan Mendatar |
Ketinggian |
Ketinggian dari permukaan laut |
M |
Meter |
Ketinggian |
Ketinggian |
Checksum |
Data Checksum |
Anda boleh menyemak projek GPS kami yang lain:
- Vehicle Tracker berasaskan Arduino menggunakan GPS dan GSM
- Sistem Amaran Kemalangan Kenderaan Berasaskan Arduino menggunakan GPS, GSM dan Accelerometer
- Cara Menggunakan GPS dengan Arduino
- Jejaki Kenderaan di Peta Google menggunakan Arduino, ESP8266 & GPS
Menyiapkan Pi Raspberry untuk berkomunikasi dengan GPS:
Baiklah untuk melompat masuk, jadi ini tidak membosankan, saya akan menganggap anda sudah tahu banyak tentang Raspberry Pi, cukup untuk memasang OS anda, mendapatkan alamat IP, menyambung ke perisian terminal seperti dempul dan perkara lain mengenai PI. Sekiranya anda mempunyai masalah melakukan perkara yang disebutkan di atas, tekan saya di bawah bahagian komen dan saya dengan senang hati akan membantu.
Perkara pertama yang perlu kita lakukan untuk menyiapkan projek ini ialah menyiapkan Raspberry Pi 3 kita untuk dapat berkomunikasi dengan modul GPS melalui UART, percayalah, ini agak sukar dan cukup berusaha untuk memperbaikinya tetapi jika anda mengikutinya panduan saya dengan berhati-hati anda akan mendapatkannya sekaligus, ini adalah bahagian yang paling sukar bagi projek ini. Di sini kami telah menggunakan Modul GPS Neo 6m v2.
Untuk menyelami, berikut adalah sedikit penjelasan mengenai Cara Raspberry Pi 3 UART Berfungsi.
Raspberry Pi mempunyai dua UART terbina dalam, PL011 dan UART mini. Mereka dilaksanakan menggunakan blok perkakasan yang berbeza sehingga mempunyai ciri-ciri yang sedikit berbeza. Namun pada raspberry pi 3, modul wayarles / bluetooth disambungkan ke PLO11 UART, sementara UART mini digunakan untuk ouptut konsol linux. Bergantung pada bagaimana anda melihatnya, saya akan menentukan PLO11 sebagai yang terbaik dari kedua UART kerana tahap pelaksanaannya. Oleh itu, untuk projek ini, kami akan menyahaktifkan modul Bluetooth dari PLO11 UART menggunakan overlay yang terdapat dalam versi terkini Raspbian Jessie.
Langkah 1: Mengemas kini Pi Raspberry:
Perkara pertama yang saya suka lakukan sebelum memulakan setiap projek adalah mengemas kini raspberry pi. Oleh itu, mari lakukan yang biasa dan jalankan arahan di bawah;
sudo apt-get update sudo apt-get upgrade
kemudian reboot sistem dengan;
rebo sudo
Langkah 2: Menyiapkan UART di Raspberry Pi:
Perkara pertama yang akan kita lakukan di bawah ini adalah mengedit fail /boot/config.txt . Untuk melakukan ini, jalankan arahan di bawah:
sudo nano /boot/config.txt
di bahagian bawah fail config.txt, tambahkan baris berikut
dtparam = spi = pada dtoverlay = pi3-disable-bt core_freq = 250 allow_uart = 1 force_turbo = 1
ctrl + x untuk keluar dan tekan y dan masukkan untuk menyimpan.
Pastikan tidak ada kesalahan ketik atau kesalahan dengan memeriksa dua kali kerana kesalahan dengan ini dapat mengelakkan pi anda boot.
Sebab apa perintah ini, force_turbo membolehkan UART menggunakan frekuensi teras maksimum yang kita tetapkan dalam kes ini menjadi 250. Sebabnya adalah untuk memastikan ketekalan dan integriti data bersiri telah diterima. Penting untuk diperhatikan pada ketika ini bahawa menggunakan force_turbo = 1 akan membatalkan jaminan pi raspberry anda, tetapi selain itu, ia cukup selamat.
The dtoverlay = pi3-disable-bt memutuskan bluetooth dari ttyAMA0 , ini adalah untuk membolehkan kita mengakses menggunakan kuasa UART penuh boleh didapati melalui ttyAMAO bukannya mini UART ttyS0.
Langkah kedua di bawah bahagian persediaan UART ini adalah mengedit boot / cmdline.txt
Saya akan mencadangkan anda membuat salinan cmdline.txt dan simpan terlebih dahulu sebelum mengedit supaya anda dapat mengembalikannya kemudian jika diperlukan. Ini boleh dilakukan dengan menggunakan;
sudo cp boot / cmdline.txt boot / cmdline_backup.txt sudo nano /boot.cmdline.txt
Gantikan kandungan dengan;
dwc_otg.lpm_enable = 0 console = tty1 root = / dev / mmcblk0p2 rootfstype = ext4 elevator = deadline fsck.repair = yes rootwait silent splash plymouth.ignore-serial-konsol
Simpan dan keluar.
Dengan ini, kita perlu menghidupkan semula sistem untuk melakukan perubahan ( rebo sudo )
Langkah 3: Menyahdayakan Perkhidmatan Raspberry Pi Serial Getty
Langkah seterusnya adalah untuk mematikan servis Pi yang mendapat perkhidmatan getty , perintah akan menghalangnya daripada dimulakan semula semasa reboot:
sudo systemctl stop [email protected] sudo systemctl lumpuhkan [email protected]
Perintah berikut dapat digunakan untuk mengaktifkannya lagi jika diperlukan
sudo systemctl mengaktifkan [email protected] sudo systemctl memulakan [email protected]
Reboot sistem.
Langkah 4: Mengaktifkan ttyAMAO:
Kami telah melumpuhkan ttyS0, yang seterusnya ialah kami mengaktifkan ttyAMAO .
sudo systemctl aktifkan [email protected]
Langkah 5: Pasang Minicom dan pynmea2:
Kami akan menjadi minicom untuk menyambung ke modul GPS dan memahami data. Ini juga salah satu alat yang akan kita gunakan untuk menguji modul GPS kita berfungsi dengan baik. Alternatif untuk minicom adalah GPSD perisian daemon.
sudo apt-get install minicom
Untuk menghuraikan data yang diterima dengan mudah, kami akan menggunakan perpustakaan pynmea2 . Ia boleh dipasang dengan menggunakan;
sudo pip pasang pynmea2
Dokumentasi perpustakaan boleh didapati di sini
Langkah 6: Memasang Perpustakaan LCD:
Untuk tutorial ini kita akan menggunakan perpustakaan AdaFruit. Perpustakaan ini dibuat untuk skrin AdaFruit tetapi juga berfungsi untuk papan paparan menggunakan HD44780. Sekiranya paparan anda berdasarkan ini, ia seharusnya berfungsi tanpa masalah.
Saya merasa lebih baik mengklon perpustakaan dan hanya memasang secara langsung. Untuk menjalankan klon;
klon git
ubah ke direktori yang diklon dan pasang
cd./Adafruit_Python_CharLCD sudo python setup.py pasang
Pada peringkat ini, saya akan mencadangkan reboot yang lain supaya kami bersedia meneruskan penyambungan komponen.
Sambungan untuk Antara muka modul Raspberry Pi GPS:
Sambungkan Modul GPS dan LCD ke Raspberry Pi seperti yang ditunjukkan dalam Rajah Litar di bawah.
Ujian sebelum Skrip Python:
Saya rasa penting untuk menguji sambungan modul GPS sebelum meneruskan skrip python, Kami akan menggunakan minicom untuk ini. Jalankan arahan:
sudo minicom -D / dev / ttyAMA0 -b9600
di mana 9600 mewakili kadar baud di mana modul GPS berkomunikasi. Ini mungkin digunakan setelah kita yakin komunikasi data antara GPS dan RPI, sudah waktunya untuk menulis skrip python kita.
Ujian juga boleh dilakukan dengan menggunakan kucing
sudo cat / dev / ttyAMA0
Di Window, anda dapat melihat ayat NMEA yang telah kita bincangkan sebelumnya.
Skrip Python untuk tutorial GPS Raspberry Pi ini diberikan di bawah di bahagian Kod.
Dengan semua yang dikatakan dan dilakukan, sudah waktunya untuk menguji keseluruhan sistem. Yang penting anda memastikan GPS anda mendapat perbaikan yang baik, dengan mengeluarkannya, kebanyakan GPS memerlukan antara tiga hingga 4 satelit untuk mendapatkan perbaikan, walaupun saya bekerja di dalam bangunan.
Berfungsi Betul? Ya…
Ada soalan atau komen? Letakkan mereka di bahagian komen.
Video Demonstrasi diberikan di bawah, di mana kami telah menunjukkan Lokasi dalam garis lintang dan garis bujur di LCD menggunakan GPS dan Raspberry Pi.