Dan-Levi Skrevet 12. august 2015 Del Skrevet 12. august 2015 (endret) Jeg har lenge tenkt på å lage mitt eget komplette GPS system til bil laget med billige kjente komponenter og web teknologi. Nå er GPS eventyret i gang da jeg straks skal kjøpe ny bil. Her er de (uferdige) tekniske detaljene for prosjektet: Raspberry PI 2 Model B V1.01, 900MHz quad-core ARM Cortex-A7 (ARMv7) CPU, 1GB LPDDR2 SDRAM (2x minnebrikker). Input og display: SainSmart 9" touchskjerm TFT 90pin digital (TTL) TCON (1024×3(RGB)×600 oppløsning) Minnefordeling: 384MB er fordelt til GPU for å optimalt benytte webGL GPS modul ( U-Blox AG ) //Byttes ut etterhvert til fordel for en Adafruit Ultimate GPS med ekstern gps antenne som er på vei i posten. Operativsystem: Debian Wheezy Klientens nettleser: Chromium OpenLayers (et rent Javascript-bibliotek for visning av kartdata) Node.JS : en plattform bygget på Chrome Javascript runtime sanntidsanalyse av GPS data ved hjelp av modulene serialport og nmea Socket.IO for sanntidskommunikasjon mellom den klientens nettleser og Node.JS Bootstrap og jQuery HTML5 Canvas (for OpenLayers 3 kartet) GPS systemet er i utgangspunktet ment for kjøretøy av type bil, men kan selvfølgelig bygges inn i hva som helst.Systemet:Raspberry Pi kjører en node.js server med socket.io, serialport og nmea for å lese GPS modulens data og oppdatere klientens grafiske grensesnitt (Chromium klient låst til localhost) i sanntid. Her er et utdrag av data lest i sanntid: { sentence: 'RMC', type: 'nav-info', timestamp: '175722.00', status: 'valid', lat: '5947.30773', latPole: 'N', lon: '01054.24968', lonPole: 'E', speedKnots: 0.119, trackTrue: 0, date: '100815', variation: 0, variationPole: '', talker_id: 'GP' } Latitude og longitude er ikke de samme som for eksempel Google benytter i sine kart: lat: '5947.30773', latPole: 'N'lon: '01054.24968', lonPole: 'E' Her må koordinatene kalkuleres på nytt, og formatet er som følger: dd + mm.mmmm/60 (lat)ddd + mm.mmmm/60 (lon)Dette blir da altså slik: 59 + (16.45/60) = 59.2741666667010 + (54.24/60) = 10.904utregningen gjøres i en Javascript funksjon slik: function getCoords(type, val) { var res = null; if (type == "lat") { var firstPass = parseInt(val.substring(0,2)); var secondPass = parseFloat(val.substring(2,7)); res = firstPass + (secondPass / 60); } else if (type == "lon") { var firstPass = parseInt(val.substring(0,3)); var secondPass = parseFloat(val.substring(3,8)); res = firstPass + (secondPass / 60); } if (res != null) { return res; }; } En skjermdump viser dette i praksis: Det er til nå laget et meget enkelt grafisk grensesnitt for å visualisere kjøretøyet på kart. Her er noen skjermdump: Her er en liten videosnutt hvor jeg demonstrerer systemet kjapt: https://vimeo.com/136001122 Jeg vil med det samme gå litt i dybden på prosjektet. Systemet skal ha sin primæroppgave å fungere like bra om ikke bedre som de moderne GPS systemene som er på markedet. Vi snakker trafikkinformasjon: (OFFLINE: fotobokser, fatsgrenser, speedometersjekk), (ONLINE: varsler om kø på angitt kjørerute, trafikkmeldinger om ulykker vist på skjerm i sanntid på angitt kjørerute) geometrisk og demografisk informasjon (OFFLINE: Elevasjon, forskjellige karttyper som ROADMAP, SATTELITE, HYBRID, BINGALIKE ( ser ut som bing kartet ) og egne kart!, lagre rute, sette opp punkt i ruten, i sanntid dra rutepunktene til nye steder og lagre dem. //Jeg kommer tilbake til dette i senere innlegg. Det stopper ikke der, jeg har allerede prototypet det som skal jobbes videre med når GPS systemet er på plass. Raspberry PI har bevist at den er kraftig nok til å være mediasenter, dab radio og spillkonsoll. Til dette systemets formål skal det bygges inn en media avspiller som skal støtte nesten alle type video og lydformater. Støtter den det ikke kan den konvertere med et tillegg som FFMPEG (En komplett, cross-platform løsning for å ta opp, konvertere og spille av lyd og video.). Raspberry PI er utstyrt med HDMI og 3.5mm jack, dette kobles enkelt opp med kjente bilkomponenter for media avspilling. Prosessovervåkning viser at det hele til nå bruker så lite som 11 prosent under load, webGL er ikke benyttet enda så det virker som god plass til å boltre seg på. Neste implementering: Grafisk element som viser hastighets i km/t Datakilder basert på GPX data Varsler basert på kjøretøyets avstand i forhold til GPX data (bomstasjoner i første omgang) ... Endret 30. august 2015 av [email protected] Lenke til kommentar
Dan-Levi Skrevet 30. august 2015 Forfatter Del Skrevet 30. august 2015 I går kom touch skjermen i posten, den fungerte utmerket! Nå gjenstår det bare å få GPS modulen og eksternantennen i hus + tid. 1 Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå