Jump to content

DIY: Raspberry Pi 'kredittkort PC' og OpenCpn kartsystem


Octant

Recommended Posts

OpenCpn er nå kommet så langt i utviklingen og blitt så stabil at det er et meget bra alternativ til mange kommersielle navigasjons applikasjoner.
Det eneste som kan trekke ned, er at det er nødvendig å ha en stasjonær- eller bærbar PC ombord som i mange tilfeller kan være vanskelig å plassere på en god og sikker måte.

Det finnes mange måter for å krympe og tilpasse en permanent PC løsning ombord en fritidsbåt. Det er mange hensyn som skal tas. Plass tilgjengelig, risting og strømforbruk er noen av faktorene som må tas med i beregningene når elektronikk skal brukes i et fritidsbåt konsept.

I julen har jeg benyttet fredelige og rolige dager til å kikke litt på et relativt nytt pc kort som har vært på markedet en stund – Raspberry Pi.

Raspberry Pi er en datamaskin bygget på et enkelt kretskort på størrelse med et bankkort. Den er utviklet av det britiske selskapet Raspberry Pi Foundation med tanke på å oppmuntre til å lære grunnleggende databehandling i skolen.
Kortet har en Broadcom BCM2835 SoC som består av en ARM1176JZF-S mikroprosessor med ARM arkitektur, en VideoCore IV GPU, en DSP og SDRAM. På lik linje med mange Smarttelefoner, er prosessoren er klokket til 700 MHz (kan overklokkes til 1 GHz uten å miste garanti) og har minne på 512 MB. Den er tilgjengelig i to versjoner, Modell-A og Modell-B, hvor forskjellen er at Modell-B har et nettverkskort og en ekstra USB-port og prisen er ca. 220 kr, mens Modell-A trenger en USB-adapter for nettverkstilkobling til Internett og prisen er noe høyere.
Kortet drives på 5V og trekker omlag 700mA, noe som er ganske imponerende tatt i betraktning den kapasiteten og mulighetene som dette kortet gir.

 

Bildet under viser layouten på kortet med tilkoblinger.

raspberrypi_tilkoblinger.jpg

Fremgangsmåten for å få OpenCpn til å kjøre på dette kortet er i korte trekk som følger;

 

  1. Kjøp inn kortet med et SD kort > 8G
  2. Koble til USB mus, tastatur, en passende HDMI monitor og strømforsyning på 5V
  3. Last ned et Raspberry Pi image og installer dette på kortet
  4. Last ned kildekoden til OpenCpn og kompiler denne for ARM arkitekturen
  5. Koble til en USB GPS
  6. Start OpenCpn


Resultatet blir som vist her;

 

raspberrypi_i_drift.jpg

 

Selv om jeg har overklokket kortet fra 700Mhz til 1Ghz er ikke prestasjonen i topp klasse, men fullt ut brukbar.


Når en tar en titt på belastningen på kortet med OpenCpn kjørende ser en at kortet går på omlag 50% av kapasiteten. Dette gir muligheter til å også bruke kortet til andre nyttige ting ombord, som foreksempel motor overvåkning og presentasjon av motordata.

 

Neste steg blir å anskaffe en mindre 10" HDMI skjerm som drives på 12V, samt et tastatur som er mer egnet for bruk ombord.

 

Link to post
Share on other sites

Hei, dette har jeg tenkt litt på men ikke helt fått "ræven i gir" Blir spennende å se hvordan det går fremover. Tror jeg legger inn en bestilling jeg også. Ang strømforsyning til den, hvordan løser du det? Jeg så på noen dingser man kunne koble på 12V som konverterte til 5V på ebay...

Bruk vest!

Link to post
Share on other sites

Mens jeg venter på en mer hendig monitor har jeg laget et enkelt motor-panel for å teste hvordan kortet takler en applikasjon kjørende i java. Applikasjonen leser av med noen sekunders mellomrom verdier fra en xml fil og presenterer disse som vist på bildet under.

 

motor_panel.jpg

 

Kortet belastes med omlag 75% med OpenCPN og java applikasjonen kjørende samtidig. Dette ser lovende ut. Det betyr at det skulle være nok prosessor kraft til å kjøre en i2c bus med motor sensorer uten at kortet kneler helt.

Link to post
Share on other sites

Jeg så ikke noe svar vedr. zoom funksjon på dette. Det har jo vært et springende punkt tidligere med PI og OpenCpn konfigurasjon.

Håper det kanskje har bedret seg.

 

Selv vil jeg vente til touch skjermer blir "massevare" for å kunne ha en "pad" følelse og intuitivt godt grensesnitt.

Kan ikke fordra å fikle med mus, tastekombinasjoner og andre forstyrrende elementer når jeg manøvrerer i trang skjærgård.

 

Foreløbig blir det bærbar PC hvor jeg kun trenger å tenke på +/- for zoom inn og ut.

 

Spennende tråd som jeg er sikker på andre også gleder seg til å se utviklingen av i tiden fremover.

Stå på og godt nytt år :smiley:

Link to post
Share on other sites

Absolutt interessant, da venter vi på at testerne får dette til å fungere med Pi og gjerne lage en video slik at vi kan få et inntrykk her på forumet.

Til syvende og sist vil jeg ha det så enkelt som overhode mulig i båten. Det er jo slik at når du virkelig trenger hjelpemidlene har du sjelden tid til å "fikle" med "duppeditter".

Link to post
Share on other sites

Spennende prosjekt dette her! :thumbsup: Har du link til i2c motor sensor opplegget du nevnte?

Jeg har lenge tenkt på å montere en Raspberry Pi i båten men jeg har ikke bestilt enda. Jeg har heller ikke en egnet skjerm til det enda.

 

Hvis jeg skal kjøpe en slik så har jeg planer om å kjøre Processing sammen med en Arduino for å lese av motorens verdier osv.

 

Hvordan er det med hastigheten til din Raspberry Pi? Går det i sneglefart alt du åpner/lukker og kjører? Hvilket OS kjører du?

Sollux 24 uten AC Sabb Diesel, Mitsubishi M4.140 33 spreke hester

Eberspächer D3LCC

Link to post
Share on other sites

Guest Avmønstret#

En kan nå kjøpe en hdmi stick for noen hundrelapper med androide for tilsvarende prosjekt med androide i bunn. Men kan dette kartsystemet kjøre på androide?

 

Blir jo også ekstremt lavkost og enkelt system. Trenger kun en skjerm med hdmi inngang. Androide variantene har vel også blåtann og wifi, husker ikke om de har usb muligheter, men tror det.

 

Slike lavkost løsninger kan jo bli reelle løsninger om man gjør ting riktig.

Link to post
Share on other sites

Mens jeg venter på en mer hendig monitor har jeg laget et enkelt motor-panel for å teste hvordan kortet takler en applikasjon kjørende i java. Applikasjonen leser av med noen sekunders mellomrom verdier fra en xml fil og presenterer disse som vist på bildet under.

 

Kortet belastes med omlag 75% med OpenCPN og java applikasjonen kjørende samtidig. Dette ser lovende ut. Det betyr at det skulle være nok prosessor kraft til å kjøre en i2c bus med motor sensorer uten at kortet kneler helt.

Jeg blir ufattelig imponert av sånt. Bare å lage et motorpanel! Vel, vi kan sikkert alle hvert vårt :-)

BTW: Hvis Zoom osv blir et problem mhp CPU, koster disse maskinen såpass lite at å kjøpe 2 ikke er noe problem. Boote fra hvert sitt SD kort og vise hver "sin ting". I tillegg kopiering imellom de 2 SD kortene via nettverk=failover løsning hvis den ene dauer

mvh

Bavaria32sport

Alt jeg skriver er synsing og vage spekulasjoner basert på hva jeg har lært oppigjennom.

 

Link to post
Share on other sites

For å svare på spørsmålene over, har jeg laget en grov oversikt over hvordan dette konseptet er tenkt å bli. Se bildet under.

octant_prosjekt_oversikt.jpg

GPS [1] – jeg bruker en usb gps modell BU-353. En standard SIRF gps som fungerer greit. OpenCPN prosjektet har en oversikt over gps'er som støttes og hvordan disse integreres i applikasjonen.

 

 

Display [2] – Nå i starten bruker jeg en LG HDMI skjerm. En 10'' touch HDMI skjerm er bestilt, men ikke ankommet. En brukbar skjerm med riktig størrelse vil være en suksess faktor her. Det er denne skjermen som skal være grensesnittet mellom bruker og programvaren, og mye avhenger at skjermen fungerer godt.

 

 

Raspberry Pi [3] – RPi fås fra 250 kr og oppover, avhengig av leverandør. RPi har følgende spesifikasjoner sakset fra en av leverandørene;

  • System-on-a-chip (SoC): Broadcom BCM2835 (CPU + GPU + SDRAM)

  • CPU: 700 MHz ARM11 ARM1176JZF-S core

  • GPU: Broadcom VideoCore IV,OpenGL ES 2.0,OpenVG 1080p30 H.264 high-profile encode/decode

  • Memory (SDRAM): 512 MiB

  • USB 2.0 ports: 1 (provided by the BCM2835) 2 (via integrated USB hub)

  • Video outputs: Composite video | Composite RCA, HDMI (not at the same time)

  • Audio outputs: TRS connector | 3.5 mm jack, HDMI

  • Audio inputs: none, but a USB mic or sound-card could be added

  • Onboard Storage: Secure Digital|SD / MMC / SDIO card slot

  • Onboard Network: 10/100 wired Ethernet RJ45

  • Low-level peripherals: General Purpose Input/Output (GPIO) pins, Serial Peripheral Interface Bus (SPI), I²C, I²S[2], Universal asynchronous receiver/transmitter (UART)

  • Real-time clock: None

  • Power ratings (provisional, from alpha board): 700 mA, (3.5 W)

  • Power source: 5 V (DC) via Micro USB type B or GPIO header

  • Size: 85.0 x 56.0 mm (two different boards, measured with calipers)

Det som er verdt å merke seg er at CPU'en kan overklokkes til 1GHz uten problemer. Kortet har ikke real-time klokke, men benytter NTP protokollen til å hente rett tidspunkt fra enten Internet eller GPS. Å ha rett klokke vil være viktig når data skal produseres til instrument panelet og for å generere statistikk.

 

 

OpenCPN [4] – Trenger ikke å si så mye mer. Applikasjonen er veldig bra og er diskutert i detalj andre steder på dette forumet.

OpenCPN i dette konseptet har nødvendigvis sine begrensinger. For de av dere som sitter med raske Pc'er/laptoper, vil ytelsen oppleves som noe tregere. Trikset her er å la RPi jobbe i sitt eget tempo, og etterhvert vil programvaren cache de kartutsnitt som brukes slik at overgangen fra et kartutsnitt til et annet blir akseptabel. Det samme gjelder for zooming inn og ut.

 

 

Jeg vil lage en liten video snutt som skal gjøres tilgjengelig når den nye skjermen er innstalert.

 

 

Java Instrument Panel [5] – Opprinnelig ville jeg bruke HTML5 og javascript for å generere instrument panelet. Eksemplet under, som er et skjermdump fra en værstasjon som jeg har, viser hvordan HTML5 og canvas kan lage fine og oversiktlige instrument paneler.

 

 

skjermdump_fra_2012-12-30.jpg

 

 

Imidlertid klarer ikke RPi å håndtere javascript så godt (egentlig ikke i det hele tatt), slik at det blir Java med JDK som blir valget.

Java har sine fordeler. En kan generere kode på en plattform og overføre resultatet til en helt annen plattform så lenge begge har installert samme versjon av Java JDK. I Dette tilfellet blir instrument panelet generert på enten en Windows- eller en Linux maskin og koden kopieres rett over til RPI uten modifikasjoner.

Jeg benytter Java NetBeans med et bibliotek som fremdeles er under utvikling for å lage instrument panelet. Java biblioteket er basert på samme koden som javascriptet og benytter flere tilleggs bibliotek for blant annet å få glatte overganger fra en verdi til en annen.

 

Men bruk av Java er ikke uten kostnader heller, det legger beslag både på minne og prosessor kraft. Det skal bli interessant og se hvordan RPi klarer et komplett instrument panel.

 

 

USB Hub [6] – RPi har to usb porter. Dette blir for få innganger slik at en standard 5V USB Hub må installeres mellom RPi og inn/ut-enheter.

 

Tastatur [7] – Standard tastatur. I mitt tilfelle bruker jeg et trådløst Logitech tastatur og mus.

 

Mus/Peke enhet [8] – Standard mus. Se over. Som jeg nevnte ovenfor, skal den nye skjermen være touch, slik at musen under vanlig drift vil være overflødig.

 

XML [9] – Valget av XML for utveksling av data mellom instrument panelet og sensorene er enkelt. XML er standardisert og godt dokumentert, slik at det er forholdsvis lett å skrive program som leser og skriver til XML. I tillegg gjør dette valget at grensesnittet blir generisk slik instrument panelet og sensorene ikke blir innbyrdes avhengig av hverandre for å fungere.

 

Statistikk/Database [10] – De fleste moderne motorer i dag genererer statistikk over drift og belastning. Denne statistikken kan hentes frem ved behov feks under service.

Jeg ønsker å ha samme funksjonalitet i mitt konsept også. Se bildet under hvordan slik statistikk kan se ut. Statistikken i dette eksemplet viser vindhastighet siste døgn og er fra samme vær stasjon som instrument panelet over.

 

 

 

graph_windspeed_24hrs.png

 

 

 

Samme data men nå over ett år.

 

 

 

graph_windspeed_year.png

 

 

Dette gjør det mulig å holde en grei oversikt over alle motordata og den belastningen som motoren er blitt utsatt for over tid. Nær sagt alle data kan presenteres slik som, drivstoff forbruk, turtall, fart, tid for neste oljeskift, drivstoff filter, oljefilter osv.

 

OWFS [11] – One Wire File System (OWFS) er et konsept som gjør i2c sensorer kan monteres som filer i et Linux filsystem. Se http://en.wikipedia.org/wiki/1-Wire for detaljer. Dette gir at alle i2c sensorer kan avleses som en hvilken som helst fil på RPi kortet.

 

BUS Master/Sensorer [12] – Sensorene vil være av i2c typen. Se http://en.wikipedia.org/wiki/I2c for detaljer. Jeg har benyttet i2c sensorer over tid med god erfaring. Det skal imidlertid sies at kun et fåtall av disse er beregnet for maritimt bruk slik at en viss tilpassing må gjøres i form av korrosjonsbeskyttelse av kontaktpunker ol.

 

Enhet som skal overvåkes [13] – I mitt konsept er det motoren som primært skal overvåkes og produseres data fra. Det er imidlertid ingen ting i veien for at hele fartøyet kan tilknyttes et slikt system. RPi kortet kan være en del av et komplett system der feks en GSM modul tilkobles og sender SMS dersom gitte verdier overskrides eller at innbrudd-alarmen aktiveres.

 

Som dere ser er det mange komponenter som skal fungere i lag for å få et godt system, og mye kan skape feil. Prosjektet mitt har ikke prioritet og vil bli jobbet med når det er anledning. Neste steg vil være å få en ny skjerm installert og få OWFS opp å kjøre slik at jeg finner ut hvor komplisert instrument panelet kan bli uten at RPi kortet kneler. Foreløpige tester sier det kan være en god ide å splitte konseptet på to RPi kort, med OpenCPN og instrument panelet på ett og OWFS med sensorer på et annet. Siden RPI kortet har Ethernet tilkoblinger vil en slik løsning være enkelt å implementere.

 

Følg med...

Link to post
Share on other sites

En ting som har stoppet mitt forsøk på PC i båt er skjerm som er lyssterk nok. Det neste er kart materialet til OpenCpn. Inntil det løsner med vektor kart ser jeg OpenCpn som en dårlig løsning i forhold til å betale noen tusenlapper for f.eks. Tiki Navigator, men da er man på x86 og Windows igjen.

 

En ting å ta høyde for er SD kort som slites fort i et slikt oppsett. Jeg har et godt lager med SD kort på arbeidsbenken som er slitt ut av normal testing av RPi og andre ARM kort.

 

Spennende... Kommer til å følge med hva som skjer her.

Link to post
Share on other sites

Dette var interessant. Og jeg fant fort et aktuelt tastatur Gå til: http://www.kontrollelektro.no/produkt/kassesystemer/tastatur/mini-tastatur-tb-197n-fleksibel

 

Dessuten kunne jeg godt tenkt meg å teste dette på et VIA microkort eller et med en Intel Atom prosessor. En har till mer å rutte med da og det skulle gå litt raskere. Det ville ta litt større plass, men ikke så veldig mye.

HUSK TTT (TIDLIG, TYDELIG, TILSTREKKELIG), OG IKKE LITT OG LITT, SLIK AT ANDRE FORSTÅR HVA DU GJØR.

Vis sjøvett og ha en god tur.

KB

Link to post
Share on other sites

Da er man ikke på 250 spenn for datamaskinen, mer oppimot 1000 - 1100 :-) Effektbehovcer for Raspberry PI er vel en 2-4 watt, men s den kjipeste MikroATX jeg fant på komplett.no var rundt 95W

Og det var vel noe av cluet her + at det finnes masse forum osv med direkte kunnskap om Raspberry PI.

 

mvh

Bavaria32sport

Alt jeg skriver er synsing og vage spekulasjoner basert på hva jeg har lært oppigjennom.

 

Link to post
Share on other sites

Da er man ikke på 250 spenn for datamaskinen, mer oppimot 1000 - 1100 :-) Effektbehovcer for Raspberry PI er vel en 2-4 watt, men s den kjipeste MikroATX jeg fant på komplett.no var rundt 95W

Og det var vel noe av cluet her + at det finnes masse forum osv med direkte kunnskap om Raspberry PI.

 

mvh

Bavaria32sport

Jeg snakker ikke om at MikroATX, men et Mini-ITX. MicroATX er alt for store kort. og er jeg har ikke klart å komme over dem med Via eller Atom prosessorer. Jeg har stående en Mini-ITX (Via) server med 2 x 1 TB disker i software RAID, og den bruker ikke mer en 60 W totalt. Men jeg er enig med deg at den blir en del dyrere, og bruker mer strøm, enn en Raspberry PI. Du kan faktisk få et mini-ITX for omtrent den doble prisen, dvs. ca 500kr, så kommer ram, disk og kabinett i tillegg.

 

En annen ting er at du skriver at OpenCPN bruker opp ca 60% av kapasiteten til Paspberry PI kortet. Hvor lange levetid vil det da ha med en slik belastning over er tid? Har du testet dette ut en sommersesong eller to eller tre. Vil det funger over tid. Når det gjelder et Mini-ITX kort så fungere det uten problemer over flere år.

HUSK TTT (TIDLIG, TYDELIG, TILSTREKKELIG), OG IKKE LITT OG LITT, SLIK AT ANDRE FORSTÅR HVA DU GJØR.

Vis sjøvett og ha en god tur.

KB

Link to post
Share on other sites

En annen ting er at du skriver at OpenCPN bruker opp ca 60% av kapasiteten til Paspberry PI kortet. Hvor lange levetid vil det da ha med en slik belastning over er tid?

 

Alle CPUer tåler utmerket godt å utnyttes inntil 100% så lenge temperaturen internt på chipen ikke blir urimelig høy. Hvis det er riktig at denne CPUen kan overklokkes med 50% innenfor garantien, så tyder det på at den er designet med så vide toeranser at levetiden neppe blir noe problem i normale omgivelsestekperaturer.

Et fyselig, humsk, hyrlig, smakelig, forskamma og behøvla tyske

med fattelig mange bønhørlige lemper. Bruker kun kvemsord på BP!

Link to post
Share on other sites

Sjøtunga, CPU tåler selvsagt 100% belastning kontinuerlig. Det er derimot ikke sikkert at det er termisk tilrettelagt slik at den får frigjort seg tilstrekkelig fra varmen den genererer. I en prosessor er tilnærmet all effekt omgjort til varme, og hvis det ikke er gjort nok for at den mengden varme skal overføres bort fra chippen så vil den bli skadet. Siden SoC som RPi er bygget på er under NDA så vil det være svært vanskelig å beregne om kjøling står i henhold til de termiske parameterene som chippen tåler. Alt man kan gjøre er å stole på designerene og kriteriene de har oppgitt.

 

RPi er hovedsaklig rettet/designet mot videoavspilling. Det finnes mange andre ARM kort som er mer allsidige, dog er RPi desidert billigst av de store kortene. Det finnes også ekte åpne prosjekter, for eksempel BeagleBoard/BeagleBone og mange flere. Går man f.eks ned til ARM7 CPU så er det normalt innenfor rekkevidde for selv amatører å produsere kort, og fortsatt kjøre Linux som OS.

Link to post
Share on other sites

Delta i diskusjonen

Du kan skrive innlegget nå, det vil bli postet etter at du har registrert deg. Logg inn hvis du allerede er registrert.

Guest
Svar på dette emnet

×   Du har postet formatert tekst..   Fjern formattering

  Only 75 emoji are allowed.

×   Innholdet du linket til er satt inn i innlegget..   Klikk her for å vise kun linken.

×   Det du skrev har blitt lagret.   Slett lagret

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...