Remote bil övervakning och spårning med Intel Edison (3 / 5 steg)
Steg 3: GPS
Här använder jag en intel som för mig som en del av tävlingen. Det är ett SIM28 chip med en antenn på breakout styrelse att Grove säljer (http://www.seeedstudio.com/depot/grove-gps-p-959.html?cPath=144_145). Vad är trevligt är att det finns en upm pjäs skriven för detta chip. Vad är inte så skönt (vid tiden för skriver detta) är att denna kod inte fungerar (här är den relevanta kodexemplen: https://github.com/intel-iot-devkit/upm/blob/2f1b... och relevant stöd forumtråd: https://github.com/intel-iot-devkit/upm/blob/2f1b... (med min tillfälliga ineffektiva fix)).
Tillbaka på den lyckliga sidan av saken denna lilla chip gör alla hårda GPS lyft din och utgångar NMEA meningar i klartext över en UART seriell anslutning. Allt du behöver göra är att tolka dem.
Som ni ser på bilderna ovan är maskinvarukonfigurationen för detta ganska enkelt. Power till makten, mark till mark, rx tx och tx till rx (Ja du läste att rätt, du korsa dem så att oavsett vad gps-enheten sänder tas emot på ta emot pinnen av edison och vice en versa).
Jag visar även här hur jag koppla in den grove sensorer med hookup wire (eftersom tävlingen satsen inte hade grove sköld och jag inte beställa en eftersom det inte skulle ha kommit i tid). Här är koden jag har parsning ut:
#gps sensor
#for användning med seeed grove gps-sensorn (SIM28 baserat)
#uses UART (seriell) 9600 8-N-1
importera mraa
def getLocation():
u = mraa. UART(0)
u.setBaudRate(9600)
GPSData = [0,0,0]
While(true):
IF(u.dataAvailable()):
buff = u.readStr(256)
om buff.find("GPGGA")! = -1: #this är det enklaste att tolka
smallerbuff = buff[buff.find("GPGGA"): buff.find("\n")]
splitbuff = smallerbuff.strip().split(",")
#print(splitbuff)
latnmea = splitbuff [2]
latdir = splitbuff [3]
lonnmea = splitbuff [4]
londir = splitbuff [5]
lat = float(latnmea[0:2]) + float(latnmea[2:])/60
Lon = float(lonnmea[0:3]) + float(lonnmea[3:])/60
om londir == "W":
Lon = lon * -1
Alt = float(splitbuff[9])
GPSData = [lat, lon, alt]
returnera GPSData
Vissa todos jag har i denna avdelning är
- Ändra från standard överföringshastigheten av 9600 till något högre. Att få förmodligen mer svar snabbare, särskilt med det ineffektiva sättet jag får data.
- Övergå till att använda upm när det är uppdatering (det finns flera trådar om detta i intel forum och de verkar ganska lyhörd om problemet).
- Konfigurera SIM28 till enda utgång några av NMEA meningar som bör också påskynda saker. Först och sist på denna lista kan åstadkommas genom att dyka i dokumentationen här: http://www.seeedstudio.com/wiki/images/d/d7/SIMCo... .