- Szükséges alkatrészek:
- GPS modul és működése:
- A Raspberry Pi előkészítése a GPS-szel való kommunikációra:
- Csatlakozások a Raspberry Pi GPS modul interfészéhez:
- Tesztelés Python szkript előtt:
Az egyik legmenőbb beágyazott platform, mint például az Arduino, lehetővé tette a gyártóknak és a barkácsolóknak, hogy a GPS-modul segítségével könnyedén megszerezzék a helyadatokat, és így a helyre támaszkodó dolgokat építsenek. A Raspberry Pi által feltöltött energiamennyiség mellett minden bizonnyal nagyon fantasztikus lesz GPS alapú projekteket építeni ugyanazokkal az olcsó GPS modulokkal, és ez a bejegyzés középpontjában áll. Ma ebben a projektben a Raspberry Pi 3 GPS interfészét fogjuk összekapcsolni.
A projekt célja a helyadatok (hosszúság és szélesség) összegyűjtése az UART-on keresztül egy GPS-modulból és 16x2-es LCD-n való megjelenítés, tehát ha még nem ismeri a 16x2-es LCD működését a Raspberry Pi-vel, akkor ez egy másik nagyszerű lehetőség a tanulásra.
Szükséges alkatrészek:
- Málna Pi 3
- Neo 6m v2 GPS modul
- 16 x 2 LCD
- Áramforrás a Raspberry Pi-hez
- LAN-kábel a pi csatlakoztatásához fej nélküli módban a számítógéphez
- Kenyérlemez és jumper kábelek
- Ellenállás / potenciométer az LCD-re
- 8 vagy 16 Gb-os memóriakártya, amelyen Raspbian Jessie fut
Ezen kívül telepítenünk kell a GPS Daemon (GPSD) könyvtárat, a 16x2 LCD Adafruit könyvtárat, amelyet később ebben az oktatóanyagban telepítünk.
Itt a Raspberry Pi 3-at használjuk a Raspbian Jessie operációs rendszerrel. Az összes alapvető hardver- és szoftverkövetelményt korábban tárgyaltuk, ezt a Raspberry Pi bevezetőjében találhatja meg.
GPS modul és működése:
A GPS a globális helymeghatározó rendszert jelenti, és a Föld bármely pontjának szélességi és hosszúsági fokának érzékelésére szolgál, pontos UTC idővel (Universal Time Coordinated). A GPS modul a járműkövető rendszer projektünk fő eleme. Ez az eszköz másodpercenként megkapja a műhold koordinátáit, az idővel és a dátummal együtt.
A GPS modul valós időben küldi a követési pozícióval kapcsolatos adatokat, és ennyi adatot küld NMEA formátumban (lásd az alábbi képernyőképet). Az NMEA formátum több mondatból áll, amelyekben csak egy mondatra van szükségünk. Ez a mondat a $ GPGGA- tól kezdődik, és tartalmazza a koordinátákat, az időt és egyéb hasznos információkat. Ez a GPGGA a Globális Helymeghatározó Rendszer Javítási Adataira utal. Tudjon meg többet a GPS-adatok és azok húrjainak olvasásáról itt.
A $ GPGGA karakterláncból kivonhatjuk a koordinátát, ha megszámoljuk a vesszőket a karakterláncban. Tegyük fel, hogy megtalálta a $ GPGGA karakterláncot, és egy tömbben tárolja, majd a Latitude két vessző után, a Longitude pedig négy vessző után található. Ezeket a szélességi és hosszúsági értékeket más tömbökbe is beilleszthetjük.
Az alábbiakban látható a $ GPGGA karakterlánc a leírásával együtt:
GPGGA, 104534.000.7791.0381, N, 06727.4434, E, 1.08,0.9.510.4, M, 43.9, M,, * 47
$ GPGGA, HHMMSS.SSS, szélesség, N, hosszúság, K, FQ, NOS, HDP, magasság, M, magasság, M,, ellenőrző összeg adatok
Azonosító |
Leírás |
$ GPGGA |
Globális helymeghatározó rendszer rögzíti az adatokat |
HHMMSS.SSS |
Idő óra perc másodpercben és ezredmásodperc formátumban. |
Szélességi kör |
Földrajzi szélesség (koordináták) |
N |
Irány N = észak, S = dél |
Hosszúság |
Hosszúság (koordináta) |
E |
E = kelet, W = nyugat irány |
FQ |
Javítsa a minőségi adatokat |
NOS |
A használt műholdak száma |
HPD |
A pontosság vízszintes hígítása |
Magasság |
Tengerszint feletti magasság |
M |
Méter |
Magasság |
Magasság |
Ellenőrző összeg |
Ellenőrző összeg adatok |
Ellenőrizheti a többi GPS-projektünket:
- Arduino alapú járműkövető GPS és GSM használatával
- Arduino alapú jármű baleseti riasztórendszer GPS, GSM és gyorsulásmérő segítségével
- Hogyan kell használni a GPS-t az Arduinóval
- Kövesse nyomon a járművet a Google Térképen az Arduino, az ESP8266 és a GPS segítségével
A Raspberry Pi előkészítése a GPS-szel való kommunikációra:
Rendben, így ugorj be, így ez nem unatkozik. Feltételezem, hogy már nagyon sokat tudsz a Raspberry Pi-ről, elég ahhoz, hogy telepítsd az operációs rendszert, megszerezhesd az IP-címet, csatlakozhass a terminálszoftverhez, például a gitthez és egyéb dolgokhoz. PI. Ha bármilyen kérdése merülne fel a fent említett dolgok végrehajtásával, akkor írjon a megjegyzés rovatba, és örömmel segítek.
Az első dolog, amit meg kell tennünk a projekt elindítása érdekében, hogy felkészítsük a Raspberry Pi 3-at arra, hogy az UART-on keresztül kommunikálni tudjunk a GPS-modullal, hidd el, hogy ez elég bonyolult és eléggé megpróbáltuk helyrehozni, de ha követed útmutatóm figyelmesen, egyszerre megkapja, ez a projekt legnehezebb része. Itt a Neo 6m v2 GPS modult használtuk.
Bemerüléshez íme egy kis magyarázat a Raspberry Pi 3 UART működésére.
A Raspberry Pi két beépített UART-mal rendelkezik, egy PL011 és egy mini UART-mal. Különböző hardverblokkok segítségével valósulnak meg, így kissé eltérő tulajdonságokkal rendelkeznek. A málna pi 3-on azonban a vezeték nélküli / bluetooth modul a PLO11 UART-hoz csatlakozik, míg a mini UART a linux konzol ouptut-jához. Attól függően, hogy hogyan látja, a PLO11-et a két UART közül a legjobbnak fogom meghatározni, annak megvalósítási szintje miatt. Tehát ennél a projektnél deaktiváljuk a Bluetooth modult a PLO11 UART-ból a Raspbian Jessie frissített jelenlegi verziójában elérhető overlay segítségével.
1. lépés: A Raspberry Pi frissítése:
Az első dolog, amit szeretek csinálni minden projekt megkezdése előtt, a málna pi frissítése. Tehát tegyük a szokásosakat, és futtassuk az alábbi parancsokat;
sudo apt-get update sudo apt-get upgrade
majd indítsa újra a rendszert a;
sudo újraindítás
2. lépés: Az UART beállítása a Raspberry Pi-ben:
Az első dolog, amit ennek keretében meg fogunk tenni, az a /boot/config.txt fájl szerkesztése. Ehhez futtassa az alábbi parancsokat:
sudo nano /boot/config.txt
a config.txt fájl alján adja hozzá a következő sorokat
dtparam = spi = on dtoverlay = pi3-disable-bt core_freq = 250 enable_uart = 1 force_turbo = 1
a kilépéshez nyomja meg a ctrl + x billentyűt, majd a mentéshez nyomja meg az y billentyűt és az Enter billentyűt.
Ellenőrizze, hogy nincsenek-e elírások vagy hibák, kétszeres ellenőrzéssel, mivel ennek hibája megakadályozhatja a pi indítását.
Mi az oka ezeknek a parancsoknak, a force_turbo lehetővé teszi az UART számára, hogy a maximális magfrekvenciát használja, amelyet ebben az esetben 250-re állítunk. Ennek az az oka, hogy biztosítsa a fogadott soros adatok következetességét és integritását. Fontos megjegyezni ezen a ponton, hogy az force_turbo = 1 használata érvényteleníti a málna pi garanciáját, de ettől eltekintve elég biztonságos.
A dtoverlay = pi3-disable-bt leválasztja a Bluetooth-t a ttyAMA0-ról , ez lehetővé teszi számunkra, hogy a mini UART ttyS0 helyett a ttyAMAO- n keresztül elérhető teljes UART-energiát használhassuk.
Az UART telepítési szakaszának második lépése a boot / cmdline.txt szerkesztése
Azt javaslom, készítsen egy másolatot a cmdline.txt fájlról, és mentse el először a szerkesztés előtt, hogy később később visszatérhessen, ha szükséges. Ez megtehető a következővel:
sudo cp boot / cmdline.txt boot / cmdline_backup.txt sudo nano /boot.cmdline.txt
Cserélje le a tartalmat a következőre:;
dwc_otg.lpm_enable = 0 konzol = tty1 root = / dev / mmcblk0p2 rootfstype = ext4 lift = határidő fsck.repair = igen rootwait csendes splash plymouth.ignore-soros-konzolok
Mentés és kilépés.
Ha ez megtörtént, akkor újra kell indítanunk a rendszert a változtatások végrehajtásához ( sudo reboot ).
3. lépés: A Raspberry Pi soros Getty szolgáltatás letiltása
A következő lépés a Pi soros getty szolgáltatásának letiltása, a parancs megakadályozza, hogy újrainduljon újraindításkor:
sudo systemctl stop [email protected] sudo systemctl letiltja a [email protected]
A következő parancsok segítségével újra engedélyezhető, ha szükséges
sudo systemctl engedélyezi a [email protected] sudo systemctl start [email protected]
Indítsa újra a rendszert.
4. lépés: A ttyAMAO aktiválása:
Letiltottuk a ttyS0-t, a következő dolog az, hogy engedélyezzük a ttyAMAO-t .
sudo systemctl engedélyezze a [email protected] szolgáltatást
5. lépés: A Minicom és a pynmea2 telepítése:
Minicom leszünk, hogy csatlakozzunk a GPS modulhoz, és értelmezzük az adatokat. Ez az egyik eszköz, amelyet tesztelni fogunk, a GPS-modulunk jól működik. A minicom alternatívája a démon szoftver GPSD.
sudo apt-get install minicom
A kapott adatok egyszerű elemzéséhez felhasználjuk a pynmea2 könyvtárat . Segítségével telepíthető;
sudo pip telepítse a pynmea2 fájlt
A könyvtár dokumentációja itt található:
6. lépés: Az LCD könyvtár telepítése:
Ehhez az oktatóanyaghoz az AdaFruit könyvtárat fogjuk használni. A könyvtár AdaFruit képernyőkhöz készült, de a HD44780-at használó kijelzőtáblákra is alkalmas. Ha a kijelzője ezen alapul, akkor problémamentesen kell működnie.
Jobbnak érzem a könyvtár klónozását és csak a közvetlen telepítést. Klónfuttatni;
git klón
váltson át a klónozott könyvtárra és telepítse
cd./Adafruit_Python_CharLCD sudo python setup.py telepítés
Ebben a szakaszban javaslom még egy újraindítást, így készen állunk az alkatrészek összekapcsolására.
Csatlakozások a Raspberry Pi GPS modul interfészéhez:
Csatlakoztassa a GPS-modult és az LCD-t a Raspberry Pi-hez az alábbi áramköri ábra szerint.
Tesztelés Python szkript előtt:
Fontosnak érzem a GPS modul kapcsolatának tesztelését, mielőtt továbblépnénk a python szkriptre. Ehhez minicomot fogunk használni. Futtassa a parancsot:
sudo minicom -D / dev / ttyAMA0 -b9600
ahol 9600 azt az adatátviteli sebességet jelenti, amellyel a GPS modul kommunikál. Ezt fel lehet használni, ha biztosak vagyunk az adatkommunikációban a GPS és az RPI között, itt az ideje megírni a python szkriptünket.
A teszt macskával is elvégezhető
sudo cat / dev / ttyAMA0
Az Ablakban láthatja az NMEA mondatokat, amelyeket korábban tárgyaltunk.
A Raspberry Pi GPS-oktatóprogram Python-szkriptje a Kód részben található.
Mindent elmondva, hogy itt az ideje, hogy tesztelje az egész rendszert. Fontos, hogy gondoskodjon arról, hogy a GPS jó helyrehozást kapjon, kivéve azt, hogy a legtöbb GPS-hez 3-4 műholdra van szükség a javításhoz, bár az enyém beltérben működött.
Működik? Igen…
Van kérdése vagy észrevétele? Dobd el őket a megjegyzés részben.
Az alábbiakban bemutatjuk a bemutató videót, ahol GPS és Raspberry Pi segítségével mutattuk meg a helyet szélességi és hosszúsági fokon az LCD-n.