- Nepieciešamās sastāvdaļas:
- GPS modulis un tā darbība:
- Raspberry Pi sagatavošana saziņai ar GPS:
- Savienojumi Raspberry Pi GPS moduļa saskarnei:
- Testēšana pirms Python skripta:
Viena no stilīgākajām iegultajām platformām, piemēram, Arduino, ir devusi veidotājiem un pašdarinātājiem iespēju viegli iegūt atrašanās vietas datus, izmantojot GPS moduli, un tādējādi veidot lietas, kas balstās uz atrašanās vietu. Ņemot vērā Raspberry Pi iesaiņoto enerģijas daudzumu, noteikti būs diezgan lieliski veidot GPS balstītus projektus ar vieniem un tiem pašiem lētajiem GPS moduļiem, un tas ir šī ziņa uzmanības centrā. Šodien šajā projektā mēs nodrošināsim GPS saskarnes saskarni ar Raspberry Pi 3.
Šī projekta mērķis ir apkopot atrašanās vietas datus (garumu un platumu), izmantojot UART, no GPS moduļa un attēlot tos uz 16x2 LCD, tāpēc, ja jums nav zināms, kā 16x2 LCD darbojas ar Raspberry Pi, tas ir vēl viens lieliska iespēja mācīties.
Nepieciešamās sastāvdaļas:
- Aveņu Pi 3
- Neo 6m v2 GPS modulis
- 16 x 2 LCD
- Barošanas avots Raspberry Pi
- LAN kabelis, lai pi savienotu ar datoru bezroku režīmā
- Maizes dēļa un jumpera kabeļi
- LCD rezistors / potenciometrs
- Atmiņas karte 8 vai 16Gb, kurā darbojas Raspbian Jessie
Izņemot to, mums jāinstalē GPS Daemon (GPSD) bibliotēka, 16x2 LCD Adafruit bibliotēka, kuru mēs instalējam vēlāk šajā apmācībā.
Šeit mēs izmantojam Raspberry Pi 3 ar Raspbian Jessie OS. Visas aparatūras un programmatūras pamatprasības ir iepriekš apspriestas, tās varat meklēt Raspberry Pi ievadā.
GPS modulis un tā darbība:
GPS apzīmē globālo pozicionēšanas sistēmu un tiek izmantots, lai noteiktu jebkuras vietas uz Zemes platumu un garumu ar precīzu UTC laiku (universālā laika koordinēts). GPS modulis ir galvenā sastāvdaļa mūsu transportlīdzekļu izsekošanas sistēmas projektā. Šī ierīce saņem satelīta koordinātas par katru sekundi, norādot laiku un datumu.
GPS modulis reāllaikā nosūta datus, kas saistīti ar izsekošanas pozīciju, un tik daudz datu NMEA formātā (skat. Ekrānuzņēmumu zemāk). NMEA formāts sastāv no vairākiem teikumiem, kuros mums vajadzīgs tikai viens teikums. Šis teikums sākas ar $ GPGGA un satur koordinātas, laiku un citu noderīgu informāciju. Šis GPGGA attiecas uz globālās pozicionēšanas sistēmas labošanas datiem. Uzziniet vairāk par GPS datu un to virkņu lasīšanu šeit.
Saskaitot virknes komatus, mēs varam iegūt koordinātas no $ GPGGA virknes. Pieņemsim, ka atrodat virkni $ GPGGA un glabājat to masīvā, tad Latitude var atrast pēc diviem komatiem un Longitude - pēc četriem komatiem. Tagad šo platumu un garumu var ievietot citos masīvos.
Zemāk ir $ GPGGA virkne kopā ar aprakstu:
GPGGA, 104534.000,7791.0381, N, 06727.4434, E, 1,08,0,9,510,4, M, 43,9, M,, * 47
$ GPGGA, HHMMSS.SSS, platums, N, garums, E, FQ, NOS, HDP, augstums, M, augstums, M,, kontrolsummas dati
Identifikators |
Apraksts |
$ GPGGA |
Globālās pozicionēšanas sistēmas fiksēšanas dati |
HHMMSS.SSS |
Laiks stundas minūtēs sekundēs un milisekundes formātā. |
Platums |
Platums (koordinātas) |
N |
Virziens N = ziemeļi, S = dienvidi |
Garums |
Garums (koordinātas) |
E |
Virziens E = Austrumi, W = Rietumi |
FQ |
Labot kvalitātes datus |
NOS |
Izmantoto satelītu skaits |
HPD |
Horizontāls precizitātes atšķaidījums |
Augstums |
Augstums no jūras līmeņa |
M |
Skaitītājs |
Augstums |
Augstums |
Kontrolsumma |
Kontrolsummas dati |
Jūs varat pārbaudīt citus mūsu GPS projektus:
- Arduino bāzēts transportlīdzekļu izsekotājs, izmantojot GPS un GSM
- Arduino bāzes transportlīdzekļu trauksmes trauksmes sistēma, izmantojot GPS, GSM un akselerometru
- Kā lietot GPS ar Arduino
- Izsekojiet transportlīdzekli pakalpojumā Google Maps, izmantojot Arduino, ESP8266 un GPS
Raspberry Pi sagatavošana saziņai ar GPS:
Labi, lai ielēktu, tāpēc tas nav garlaicīgi. Es pieņemu, ka jūs jau daudz zināt par Raspberry Pi, pietiekami, lai instalētu OS, iegūtu IP adresi, izveidotu savienojumu ar termināļa programmatūru, piemēram, špakteles un citām lietām par PI. Ja jums rodas kādas problēmas, veicot kādu no iepriekšminētajām lietām, nospiediet mani komentāru sadaļā, un es ar prieku palīdzēsim.
Pirmais, kas mums jādara, lai sāktu šo projektu, ir sagatavot mūsu Raspberry Pi 3, lai varētu sazināties ar GPS moduli, izmantojot UART, ticiet man, tas ir diezgan grūts un mēģināja to pareizi izdarīt, bet, ja jūs sekojat mans ceļvedis uzmanīgi, jūs to saņemsit vienā piegājienā, tā ir diezgan sarežģītākā projekta daļa. Šeit mēs izmantojām Neo 6m v2 GPS moduli.
Lai ienirtu, šeit ir neliels paskaidrojums par to, kā darbojas Raspberry Pi 3 UART.
Raspberry Pi ir divi iebūvēti UART, PL011 un mini UART. Tie tiek ieviesti, izmantojot dažādus aparatūras blokus, tāpēc tiem ir nedaudz atšķirīgas īpašības. Uz aveņu pi 3 bezvadu / bluetooth modulis ir savienots ar PLO11 UART, savukārt mini UART tiek izmantots linux konsoles ouptut. Atkarībā no tā, kā jūs to redzat, es PLO11 definēšu kā labāko no diviem UART tā ieviešanas līmeņa dēļ. Tāpēc šim projektam mēs deaktivizēsim Bluetooth moduli no PLO11 UART, izmantojot pārklājumu, kas pieejams atjauninātajā pašreizējā Raspbian Jessie versijā.
1. darbība: Raspberry Pi atjaunināšana:
Pirmā lieta, kas man patīk darīt, pirms sāku katru projektu, ir aveņu pi atjaunināšana. Tātad ļauj veikt parasto un palaist zemāk esošās komandas;
sudo apt-get update sudo apt-get jauninājums
pēc tam restartējiet sistēmu ar;
sudo atsāknēšana
2. solis: UART iestatīšana Raspberry Pi:
Pirmā lieta, ko mēs darīsim saskaņā ar šo, ir rediģēt failu /boot/config.txt . Lai to izdarītu, palaidiet tālāk norādītās komandas:
sudo nano /boot/config.txt
faila config.txt apakšdaļā pievienojiet šādas rindas
dtparam = spi = on dtoverlay = pi3-atspējojiet-bt core_freq = 250 enable_uart = 1 force_turbo = 1
ctrl + x, lai izietu, nospiediet y un ievadiet, lai saglabātu.
Pārliecinieties, ka nav kļūdu vai kļūdu, veicot dubultu pārbaudi, jo kļūda var novērst jūsu pi sākšanu.
Kādi ir šo komandu iemesli, force_turbo ļauj UART izmantot maksimālo pamata frekvenci, kuru mēs šajā gadījumā iestatām kā 250. Iemesls tam ir nodrošināt saņemto sērijveida datu konsekvenci un integritāti. Šajā brīdī ir svarīgi atzīmēt, ka force_turbo = 1 izmantošana anulēs jūsu aveņu pi garantiju, taču tā ir diezgan droša.
Dtoverlay = PI3-atspējot-bt atvieno bluetooth no ttyAMA0 , tas ir, lai ļautu mums iespēju izmantot pilnu UART jaudu, kas pieejama ar ttyAMAO nevis mini UART ttyS0.
Otrais solis šajā UART iestatīšanas sadaļā ir boot / cmdline.txt rediģēšana
Es iesaku jums pirms rediģēšanas izveidot cmdline.txt kopiju un vispirms saglabāt, lai vēlāk varētu atgriezties pie tā, ja nepieciešams. To var izdarīt, izmantojot;
sudo cp sāknēšana / cmdline.txt sāknēšana / cmdline_backup.txt sudo nano / sāknēšana.cmdline.txt
Aizstāt saturu ar;
dwc_otg.lpm_enable = 0 konsole = tty1 sakne = / dev / mmcblk0p2 rootfstype = ext4 lifts = termiņš fsck.repair = jā rootwait klusā splash plymouth.ignore-serial-consoles
Saglabāt un iziet.
Kad tas būs izdarīts, mums būs vēlreiz jāpārstartē sistēma, lai veiktu izmaiņas ( sudo reboot ).
3. solis: Raspberry Pi sērijas Getty pakalpojuma atspējošana
Nākamais solis ir atspējot Pi sērijas getty pakalpojumu , komanda neļaus tai atsākt, restartējot:
sudo systemctl stop [email protected] sudo systemctl atspējot [email protected]
Ja nepieciešams, varat to atkārtoti iespējot, izmantojot šādas komandas
sudo systemctl iespējot [email protected] sudo systemctl sākt [email protected]
Pārstartējiet sistēmu.
4. solis: ttyAMAO aktivizēšana:
Mēs esam atspējojuši ttyS0, nākamā lieta ir mums iespējot ttyAMAO .
sudo systemctl iespējot [email protected]
5. darbība: instalējiet Minicom un pynmea2:
Mēs būsim minimāli, lai izveidotu savienojumu ar GPS moduli un saprastu datus. Tas ir arī viens no instrumentiem, ko izmantosim, lai pārbaudītu, vai mūsu GPS modulis darbojas labi. Alternatīva minicom ir dēmona programmatūra GPSD.
sudo apt-get install minicom
Lai ērti parsētu saņemtos datus, mēs izmantosim bibliotēku pynmea2 . To var uzstādīt, izmantojot;
sudo pip instalējiet pynmea2
Bibliotēkas dokumentāciju var atrast šeit:
6. darbība: LCD bibliotēkas instalēšana:
Šajā apmācībā mēs izmantosim AdaFruit bibliotēku. Bibliotēka tika izveidota AdaFruit ekrāniem, taču tā darbojas arī displeju dēļiem, izmantojot HD44780. Ja jūsu displejs ir balstīts uz to, tam vajadzētu darboties bez problēmām.
Es uzskatu, ka labāk ir klonēt bibliotēku un vienkārši instalēt tieši. Klonēt palaist;
git klons
nomainiet klonēto direktoriju un instalējiet to
cd./Adafruit_Python_CharLCD sudo python setup.py instalēt
Šajā posmā es iesaku vēlreiz pārstartēt, tāpēc mēs esam gatavi turpināt komponentu savienošanu.
Savienojumi Raspberry Pi GPS moduļa saskarnei:
Savienojiet GPS moduli un LCD ar Raspberry Pi, kā parādīts zemāk esošajā shēmas diagrammā.
Testēšana pirms Python skripta:
Es uzskatu, ka ir svarīgi pārbaudīt GPS moduļa savienojumu, pirms pāriet uz pitona skriptu. Mēs tam izmantosim minicom. Palaidiet komandu:
sudo minicom -D / dev / ttyAMA0 -b9600
kur 9600 apzīmē datu pārraides ātrumu, ar kuru sazinās GPS modulis. To var izmantot, tiklīdz esam pārliecināti par datu saziņu starp GPS un RPI, ir pienācis laiks uzrakstīt mūsu pitona skriptu.
Pārbaudi var veikt arī, izmantojot kaķi
sudo cat / dev / ttyAMA0
Lodziņā jūs varat redzēt NMEA teikumus, par kuriem mēs jau iepriekš runājām.
Šīs Raspberry Pi GPS apmācības Python skripts ir norādīts zemāk sadaļā Kods.
Ar visu teikto un izdarīto ir pienācis laiks pārbaudīt visu sistēmu. Ir svarīgi, lai jūs nodrošinātu, ka jūsu GPS tiek labots, to izņemot, lielākajai daļai GPS ir nepieciešami no 3 līdz 4 satelītiem, lai to labotu, lai gan mans darbojās telpās.
Strādā labi? Jā…
Vai jums ir jautājumi vai komentāri? Nometiet tos komentāru sadaļā.
Demonstrācijas video ir dots zemāk, kur mēs esam parādījuši atrašanās vietu platumā un garumā LCD, izmantojot GPS un Raspberry Pi.