- Reikalingi komponentai:
- GPS modulis ir jo veikimas:
- Raspberry Pi paruošimas bendrauti su GPS:
- „Raspberry Pi“ GPS modulio sąsajos:
- Testavimas prieš „Python“ scenarijų:
Viena iš šauniausių įterptųjų platformų, tokių kaip „Arduino“, suteikė gamintojams ir savadarbiams galimybę lengvai gauti vietos duomenis naudojant GPS modulį ir taip kurti daiktus, kurie priklauso nuo vietos. Atsižvelgiant į „Raspberry Pi“ supakuotą energijos kiekį, tikrai bus labai nuostabu kurti GPS pagrįstus projektus su tais pačiais pigiais GPS moduliais ir tai yra šio įrašo dėmesys. Šiandien šiame projekte mes sąsajos GPS modulį su Raspberry Pi 3.
Šio projekto tikslas yra surinkti vietos duomenis (ilgumą ir platumą) per UART iš GPS modulio ir parodyti juos 16x2 skystųjų kristalų skystųjų kristalų ekrane, taigi, jei jums nėra žinoma, kaip 16x2 skystųjų kristalų ekranas veikia su „Raspberry Pi“, tai dar vienas puiki proga mokytis.
Reikalingi komponentai:
- Aviečių Pi 3
- „Neo 6m v2“ GPS modulis
- 16 x 2 LCD ekranas
- „Raspberry Pi“ maitinimo šaltinis
- LAN kabelis pi prijungimui prie kompiuterio bevielio ryšio režimu
- Breadboard ir Jumper laidai
- Rezistorius / potenciometras prie LCD
- 8 arba 16 Gb atminties kortelė, kurioje veikia „Raspbian Jessie“
Išskyrus tai, mes turime įdiegti GPS „Daemon“ (GPSD) biblioteką, 16x2 LCD „Adafruit“ biblioteką, kurią įdiegsime vėliau šioje pamokoje.
Čia mes naudojame „ Raspberry Pi 3“ su „Raspbian Jessie OS“. Visi pagrindiniai techninės ir programinės įrangos reikalavimai yra aptarti anksčiau, jų galite ieškoti „Raspberry Pi“ įvade.
GPS modulis ir jo veikimas:
GPS reiškia pasaulinę padėties nustatymo sistemą ir naudojamas nustatyti bet kurios žemės vietos platumą ir ilgumą, nurodant tikslų UTC laiką (universalusis laikas koordinuojamas). GPS modulis yra pagrindinis mūsų transporto priemonių stebėjimo sistemos projekto komponentas. Šis prietaisas gauna koordinates iš palydovo kiekvienai sekundei, nurodydamas laiką ir datą.
GPS modulis realiuoju laiku siunčia duomenis, susijusius su stebėjimo padėtimi, ir tiek daug duomenų siunčia NMEA formatu (žr. Toliau pateiktą ekrano kopiją). NMEA formatas susideda iš kelių sakinių, kuriuose mums reikia tik vieno sakinio. Šis sakinys prasideda nuo $ GPGGA ir jame yra koordinatės, laikas ir kita naudinga informacija. Ši GPGGA vadinama visuotinės padėties nustatymo sistemos taisymo duomenimis. Sužinokite daugiau apie GPS duomenų ir jų eilučių skaitymą čia.
Mes galime išgauti koordinates iš $ GPGGA eilutės skaičiuodami kablelius eilutėje. Tarkime, kad rasite $ GPGGA eilutę ir ją saugote masyve, tada Platumą galima rasti po dviejų kablelių, o Ilgumą - po keturių kablelių. Dabar šią platumą ir ilgumą galima įdėti į kitus masyvus.
Žemiau yra $ GPGGA eilutė kartu su jos aprašymu:
GPGGA, 104534.000, 7791.0381, N, 06727.4434, E, 1,08,0.9,510,4, M, 43,9, M,, * 47
$ GPGGA, HHMMSS.SSS, platuma, N, ilguma, E, FQ, NOS, HDP, aukštis, M, aukštis, M, kontrolinės sumos duomenys
Identifikatorius |
apibūdinimas |
$ GPGGA |
Visuotinės padėties nustatymo sistemos pataisų duomenys |
HHMMSS.SSS |
Laikas valandomis minutėmis sekundėmis ir milisekundžių formatu. |
Platuma |
Platuma (koordinatė) |
N |
Kryptis N = šiaurė, S = pietūs |
Ilguma |
Ilguma (koordinatė) |
E |
Kryptis E = rytai, W = vakarai |
FQ |
Pataisykite kokybės duomenis |
NOS |
Naudojamų palydovų skaičius |
HPD |
Horizontalus tikslumo skiedimas |
Aukštis |
Aukštis nuo jūros lygio |
M |
Skaitiklis |
Aukštis |
Aukštis |
Kontrolinė suma |
Kontrolinės sumos duomenys |
Galite patikrinti kitus mūsų GPS projektus:
- „Arduino“ pagrįstas transporto priemonių sekimo įrenginys, naudojant GPS ir GSM
- „Arduino“ pagrįsta transporto priemonių avarinių perspėjimų sistema naudojant GPS, GSM ir akselerometrą
- Kaip naudotis GPS su „Arduino“
- Stebėkite transporto priemonę „Google“ žemėlapiuose naudodami „Arduino“, ESP8266 ir GPS
Raspberry Pi paruošimas bendrauti su GPS:
Gerai, kad įšokti, todėl tai nebus nuobodu. Aš manysiu, kad jūs jau daug žinote apie „Raspberry Pi“, kad pakaktumėte įdiegti savo OS, gauti IP adresą, prisijungti prie terminalo programinės įrangos, pvz., Glaisto ir kitų dalykų. PI. Jei turite kokių nors klausimų, susijusių su aukščiau paminėtais dalykais, paspauskite mane komentarų skiltyje ir aš mielai jums padėsiu.
Pirmas dalykas, kurį turime padaryti, kad šis projektas būtų įgyvendintas, yra paruošti „Raspberry Pi 3“, kad galėtume bendrauti su GPS moduliu per UART, patikėkite, tai gana keblu ir gana stengėsi, kad tai būtų teisinga, bet jei sekate mano vadovas atidžiai, jūs gausite jį vienu ypu, tai yra gana sunkiausia projekto dalis. Čia mes panaudojome „ Neo 6m v2“ GPS modulį.
Norint pasinerti, pateikiame nedidelį paaiškinimą, kaip veikia „Raspberry Pi 3 UART“.
„Raspberry Pi“ turi du įmontuotus UART, PL011 ir mini UART. Jie įgyvendinami naudojant skirtingus aparatūros blokus, todėl turi šiek tiek skirtingas savybes. Tačiau aviečių pi 3 belaidis / „Bluetooth“ modulis yra prijungtas prie PLO11 UART, o „mini UART“ naudojamas „Linux“ konsolės ouptut. Priklausomai nuo to, kaip matote, aš apibrėžsiu PLO11 kaip geriausią iš dviejų UART dėl jo įgyvendinimo lygio. Taigi šiam projektui išjungsime „Bluetooth“ modulį iš PLO11 UART naudodami perdangą, esančią atnaujintoje dabartinėje „Raspbian Jessie“ versijoje.
1 veiksmas: atnaujinkite „Raspberry Pi“:
Pirmas dalykas, kurį man patinka daryti prieš pradedant kiekvieną projektą, yra aviečių pi atnaujinimas. Taigi atlikite įprastas ir paleiskite toliau pateiktas komandas;
sudo apt-get update sudo apt-get atnaujinimas
tada perkraukite sistemą naudodami;
sudo perkraukite
2 žingsnis: UART nustatymas „Raspberry Pi“:
Pirmas dalykas, kurį atliksime, yra redaguoti failą /boot/config.txt . Norėdami tai padaryti, vykdykite toliau nurodytas komandas:
sudo nano /boot/config.txt
failo config.txt apačioje pridėkite šias eilutes
dtparam = spi = on dtoverlay = pi3-išjungti-bt core_freq = 250 enable_uart = 1 force_turbo = 1
„ctrl“ + x, jei norite išeiti, paspauskite y ir įveskite, kad išsaugotumėte.
Patikrinkite, ar nėra klaidų ar klaidų, dar kartą patikrindami, nes dėl šios klaidos jūsų „pi“ nebus galima paleisti.
Kokios yra šių komandų priežastys, „ force_turbo“ leidžia UART naudoti maksimalų pagrindinį dažnį, kurį mes šiuo atveju nustatome kaip 250. To priežastis yra užtikrinti gautų nuoseklių duomenų nuoseklumą ir vientisumą. Šiuo metu svarbu pažymėti, kad naudojant force_turbo = 1 bus panaikinta jūsų aviečių pi garantija, tačiau, be to, tai gana saugu.
„ Dtoverlay = pi3-disable-bt“ atjungia „Bluetooth“ nuo „ ttyAMA0“ , tai leidžia mums naudotis visa „UART“ galia, pasiekiama per „ ttyAMAO“, o ne „mini UART ttyS0“.
Antras žingsnis šiame UART sąrankos skyriuje yra redaguoti boot / cmdline.txt
Aš pasiūlysiu jums padaryti cmdline.txt kopiją ir pirmiausia išsaugoti prieš redaguodami, kad prireikus galėtumėte vėl prie jos grįžti. Tai galima padaryti naudojant;
sudo cp boot / cmdline.txt boot / cmdline_backup.txt sudo nano /boot.cmdline.txt
Pakeiskite turinį į;
dwc_otg.lpm_enable = 0 konsolė = tty1 root = / dev / mmcblk0p2 rootfstype = ext4 liftas = terminas fsck.repair = taip rootwait tylus purslų plymouth.ignore-serial-consoles
Išsaugoti ir išeiti.
Tai padarę, mes turėsime iš naujo paleisti sistemą, kad galėtume atlikti pakeitimus („ sudo“ paleisti iš naujo ).
3 žingsnis: „Raspberry Pi Serial Getty“ paslaugos išjungimas
Kitas žingsnis yra išjungti „Pi“ serijos „ getty“ paslaugą , komanda neleis jai vėl pradėti paleisti iš naujo:
sudo systemctl stop [email protected] sudo systemctl išjungti [email protected]
Jei reikia, vėl įgalinsite šias komandas
sudo systemctl įjungti [email protected] sudo systemctl pradėti [email protected]
Perkraukite sistemą.
4 žingsnis: „ttyAMAO“ aktyvinimas:
Mes išjungėme ttyS0, kitas dalykas yra tai, kad mes įgalintume ttyAMAO .
sudo systemctl įgalinti [email protected]
5 žingsnis: įdiekite „Minicom“ ir „pynmea2“:
Mes būsime mažiausiai prisijungę prie GPS modulio ir suprasime duomenis. Tai taip pat yra viena iš įrankių, kurią naudosime išbandydami, kad mūsų GPS modulis veikia gerai. „Minicom“ alternatyva yra „daemon“ programinė įranga GPSD.
sudo apt-get install minicom
Norėdami lengvai išanalizuoti gautus duomenis, pasinaudosime „ pynmea2“ biblioteka . Jį galima įdiegti naudojant;
sudo pip įdiekite pynmea2
Bibliotekos dokumentaciją galite rasti čia:
6 veiksmas: LCD bibliotekos diegimas:
Šioje pamokoje naudosime „AdaFruit“ biblioteką. Biblioteka buvo sukurta „AdaFruit“ ekranams, tačiau ji taip pat tinka ekranams, naudojantiems HD44780. Jei jūsų ekranas yra pagrįstas tuo, jis turėtų veikti be problemų.
Manau, kad geriau klonuoti biblioteką ir tiesiog įdiegti tiesiogiai. Klonuoti bėgimą;
„git“ klonas
pakeiskite į klonuotą katalogą ir įdiekite jį
cd./Adafruit_Python_CharLCD sudo python setup.py įdiegti
Šiame etape pasiūlysiu dar kartą paleisti iš naujo, kad galėtume tęsti komponentų sujungimą.
„Raspberry Pi“ GPS modulio sąsajos:
Prijunkite GPS modulį ir skystųjų kristalų ekraną prie „Raspberry Pi“, kaip parodyta žemiau esančioje grandinės schemoje.
Testavimas prieš „Python“ scenarijų:
Manau, kad prieš pereinant prie pitono scenarijaus svarbu išbandyti GPS modulio ryšį. Tam naudosime „Minicom“. Paleiskite komandą:
sudo minicom -D / dev / ttyAMA0 -b9600
kur 9600 reiškia duomenų perdavimo greitį, kuriuo bendrauja GPS modulis. Tai gali būti naudojama, kai būsime tikri, kad duomenų ryšys tarp GPS ir RPI atėjo laikas parašyti mūsų python scenarijų.
Testą taip pat galima atlikti naudojant katę
sudo katė / dev / ttyAMA0
Lange galite pamatyti anksčiau aptartus NMEA sakinius.
Šios „Raspberry Pi“ GPS pamokos „Python“ scenarijus pateiktas toliau skyriuje Kodas.
Viskas, kas pasakyta ir padaryta, pats laikas išbandyti visą sistemą. Svarbu, kad užtikrintumėte, jog jūsų GPS yra gerai ištaisomas, jį išimant, daugumai GPS reikia 3–4 palydovų, kad jie būtų pataisyti, nors mano darbas buvo uždaras.
Veikia gerai? Taip…
Turite klausimų ar komentarų? Nuveskite juos į komentarų skiltį.
Parodomasis vaizdo įrašas pateikiamas žemiau, kur mes parodėme vietą platumoje ir ilgumoje LCD, naudodami GPS ir „Raspberry Pi“.