Gå till innehåll
torsdag 19 december 2024
coderbob

Rasberry PI eller arduino projekt?

Rekommendera Poster

Nybliven båtägare tillika programmerare här. Jag lockas av att datorisera all elektronik, monitorering, navigation, etc. Gärna gör-det- själv med open source och standardkomponenter.

Ni som har gjort något liknande, stort eller litet, berätta gärna om era projekt!

 

En snabb googling visar att det finns en hel del att utgå ifrån:

https://www.google.com/search?q=boating+it+electronics+raspberry+pi

 

 

 

 

 

  • Gilla 1

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
2021-09-07 vid 13:18 skrev coderbob:

Ni som har gjort något liknande, stort eller litet, berätta gärna om era projekt!

Jag har börjat fila så smått på ett litet, utbyggbart, system. Till att börja med testar jag att få ihop något med Raspberry pi och modbus rtu.

Det är nästan inte ens på gång men en paj 4, en USB till rs485 adapter, några reläkort och en tempsensor är införskaffade.

Till att börja med vill jag kunna tända och släcka div elprylar "från skärmen". Mycket grundläggande men, som sagt, en början så får det byggas vidare efter det.

 

Tanken från början var att det skulle vara en "snål" applikation som skulle köras på en Raspberry pi zero med tanke på att de är oerhört strömsnåla.
Den tanken har jag gett upp nu. Det är mycket roligare att inte snåla.

 

Nåväl, efter en del läsning kom jag fram till följande:

* Databas - SQLite (hänger kvar från pi zero tanken men är inga större problem att byta om det skulle behövas)
* GUI - wxWidgets
* Utvecklingsmiljö VS Code och c++.

 

Eftersom Linux är en, näst intill, helt ny värld för mig har det verkligen inte bara varit att "köra på". Visserligen har jag använt Unix att utveckla på men måloperativet var ett helt annat. Dessutom var det i runda slängar 1000 år sedan.
Med tanke på det kan mina val ovan med DB, gui osv vara käpprätt åt pipsvängen.

 

Det har inte hänt speciellt mycket i det här "projektet". Ett enkelt gui och några basklasser (blev badkläder i rättstavningen) är gjorda. Men det här är ett tidsfördriv och ett långtidsprojekt. Det är inte ens säkert att det blir något heller. Vi får se.
Än så länge har jag inte ens testat på pajen utan håller bara till i en dator med Debian.


NMEA hatten som kom upp i din sökningslänk ser mycket intressant ut. Det öppnar ännu mer möjligheter.

 

Nåväl, om inte annat, är det kul att greja lite.

 

Bra initiativ! Det här skulle kunna bli en intressant tråd.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Kul, kanske kan vi peppa varandra. Jag har alldeles för många påbörjade min inte avslutade projekt :) Jag tänker kanske titta på någon färdig platform istället för att starta från 0, då kan man kanske sno ihop något användbart på några kvällar. Om platformen är öppen kan man utöka med egna moduler.

 

15 minutes ago, McLasse said:

Nåväl, efter en del läsning kom jag fram till följande:

* Databas - SQLite (hänger kvar från pi zero tanken men är inga större problem att byta om det skulle behövas)
* GUI - wxWidgets
* Utvecklingsmiljö VS Code och c++.

 

Ett alternativ är att köra en webserver på pajen, så behöver man inte ha igång fönstersystemet. Och istället för en hdmi-ansluten skärm så kör man med webläsare från platta, laptop eller mobil. 

 

Väljer man denna vägen finns det kanske lämpligare språk:

python, javascript/node, c# eller java

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
1 timme sedan skrev coderbob:

Om platformen är öppen kan man utöka med egna moduler.

En smidig väg att gå och kan vara minst lika skoj (skoj är viktigt i sammanhanget). 😀

 

1 timme sedan skrev coderbob:

Ett alternativ är att köra en webserver på pajen, så behöver man inte ha igång fönstersystemet. Och istället för en hdmi-ansluten skärm så kör man med webläsare från platta, laptop eller mobil. 

Jag har grunnat på det också men kommit fram till att jag vill ha en ansluten pekskärm som sitter på en fast plats. Dock utesluter inte det ett webbgränssnitt då styrning på distans är en del i det hela.

 

1 timme sedan skrev coderbob:

Väljer man denna vägen finns det kanske lämpligare språk:

python, javascript/node, c# eller java

Förvisso. Python har jag ingen egentlig erfarenhet av och kan inte uttala mig om men för det jag tänker mig är c++ ok. Dessutom är det ett fantastiskt språk som jag trivs bra med och, som sagt, kulhetsfaktorn är viktig.

 

För mig är det här ett låååångsamt projekt som tillåts och kommer ta tid. Vi får se om det tar bättre fart till vintern när båtfixet inte konkurrerar.

  • Gilla 1

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Jag håller på att uppgradera den hembyggda "multidisplayen" i nya båten, som bl.a. är batterimonitor, vindmätare och lite annat. Idag är det en alfanumerisk svartvit LCD.

Har även tröttnat på att behöva ha Raymarinelådan på för att se toatanks- och bränslemängd m.m. som bara går att se via NMEA 2000 (har inga vanliga instrument alls).

 

Så nu blir det en bättre display (typ smartphone) och en processor med CAN-interface så jag kan sniffa NMEA 2000 också (en PIC18F26K80, och inga färdiga bibliotek används.... 😦).

 

Bilden är några veckor gammal (och blek, färgerna är mycket mustigare i verkligheten). Nu är lite "leading zero's" borta och även tempen på avgaskröken kommer visas. Observera att alla mätdata är fejk på bilden:

image.png.b9dc6f453e7d0b6a7ad30b031892a34f.png

 

Återstår att koda upp rätt NMEA 2000-meddelanden och lägga upp datat från dem. Men det blir senare i höst.

Har också en DB9-kontakt där allt den hör på NMEA 2000 kommer kunna dumpas via RS232 för monitorering på t ex en PC-dator. Lite för att jag vill se vilken info som finns tillgänglig.

  • Gilla 3

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Det där var ju stiligt @IngemarE!
 

Läsa av Nmea2000 är kanske möjligt, men hur är det att ”sända” från egna sensorer? Bökigt va? 

 

Jag byggde en dieselflödesmätare på Arduino som jag utvärderat denna säsong, sida 2-3 i denna tråd: 

 

 

Mätningen funkar ganska bra, men oled-displayen går inte att läsa av i direkt solljus. Funderar därför på att bygga om den till analog visare istället. Har en vdo-mätare liggandes som jag tänkte sätta en stegmotor i för att styra nålen från arduinion. Men n2k och få in datat i plottern hade kanske varit ännu bättre förstås… Har en Garmin-plotter, vet inte om den sväljer n2k rakt av heller eller om det är en egen standard..? Blir nått att fundera på i vinter.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
13 minuter sedan skrev nossnahoj:

Det där var ju stiligt @IngemarE!
 

Läsa av Nmea2000 är kanske möjligt, men hur är det att ”sända” från egna sensorer? Bökigt va? 

 

Har en vdo-mätare liggandes som jag tänkte sätta en stegmotor i för att styra nålen från arduinion. Men n2k och få in datat i plottern hade kanske varit ännu bättre förstås… Har en Garmin-plotter, vet inte om den sväljer n2k rakt av heller eller om det är en egen standard..? Blir nått att fundera på i vinter.

Nej, inte mycket bökigare än att ta emot. Har du en Arduino får du ju med en hel del färdigskrivet om du på den lägger ett CAN-shield. N2k följer standard-CAN, och även i en processor som den jag kör med och utan drivrutinspaket är mycket redan serverat i HW.

Men man måste naturligtvis lägga in rätt PGN och packetera alltihop enligt N2k. Men om man redan löst uppackning är nerpackning och utsändning inte så svårt.

 

Dock måste man se till att man inte orsakar konflikt med t ex motorn - om den redan ligger på N2k. Motordata som förbrukning ligger ju i en "motor-PGN", och om du skall skicka denna så måste du se till att denna PGN med samma nummer går att identifiera att komma från en annan enhet. Men nu har du nog inte det problemet eftersom du måste sätta flödesmätare på motorn ;).

 

Måste i sammanhanget utfärda en varning för givare som har N2k-interface men är "förkonfigurerade", dvs utan inställningsmöljligheter. Skaffade en sådan (WEMA), men ena exemplaret störde bränsletanksinfon (trots att den var en toatankmätare) som jag redan fick via motor-ECU. Det andra skickade som något inget instrument kände igen.

Fick efter mycket diskussion tillbaks pengarna och lade dem på en analog>N2k-omvandlare för 4 kanaler istället (KUS, inte WEMA). På denna finns display och knappar och alla fyra kanalerna kan konfigureras, både till funktion och ID m.m. Fungerade klockrent.

N2k är inte "Plug and play" och en förkonfigurerad enhet (som t ex WEMA) fungerar inte alltid i alla båtar - om den inte är själv på nätet förstås.

 

---------------

 

Instrument med stegmotor ?!?!?   Nej, simulera i så fall istället 10-190 Ohm (eller vad det nu har för värden) genom att PWM:a en MOSFET till jord i serie med ett 10-ohmsmotstånd. Med PWM=100% får du ett snitt på 10 Ohm, med PWM=5,2% får du 190 Ohm. Lämplig PWM-frekvens kanske 250Hz-5kHz.

 

Gjorde en "översättare" med denna princip från Biltemas oljetrycksgivare till Fiat X1/9:s oljetrycksmätare. Alfa/Fiat har haft otur när de tänkte och konstruerade sin givare, då inte ens nya eller NOS håller efter att ha utsatts för varm olja första gången (allmänt känt bland ägare av dessa bilar). Jo, en av fem kanske. Men då de kostar 500-1000:- så var lösningen med "signalöversättaren" snabbt betald. Och Biltemagivaren har nu hållit i båda bilarna i över 5 år.

Här finns en beskrivning samt lite schemaidéer (zip-fil i inlägget): http://www.x19.nu/phpbb3/viewtopic.php?f=1&t=578

  • Gilla 3

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Kul idéer å tankar!

Kommenterar bara för att klargöra skillnaden mellan pajen, jag har vers2, å Ardunio.

Pajen ansluter man med HDMI kontakten till vicken skärm som helst å så laddar Op systemet på minneskortet å vips har man en helt färdig dator med WiFi å internet å ALLT!!

Sedan har man 26 programmerbara pinnar för att ansluta vad som helst med max 3,2V=

Obs absolut inte högre spänningar.

Men... den kan inte skicka-ta emot annat än digitalt dvs hög/låg nivå.

Ardunion har analog ingång å utgång men för att använda den så måste man skriva å lägga till ALLT. Alllt det som pajen redan har. Åså bruksproggrammen förstås. Men å andra sidan så finns det en uppsjö av färdiga moduler att bara skruva på. En stor fördel. Nackdelen för mig var C+ språket. Pajen kör med Python. En annan nackdel är att det går inte att "ändra" i programmet som är compilerat "ombord". Man måste rensa å trycka in ett nytt. Pajen är mer som en hårddisk, progget interpreterande. Vill man kan man sedan compilera den mä.

Ang Linux, vid det här laget tror jag jag kan en del, vuxit ur barnskorna. Äre nått jag kan hjälpa dig med med Pajen eller Python el Linux så tjoa till.

Hälsar en gammal Riskprick.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Intressant läsning, kan bidra med mitt system för sommaren. Grunden är ett NEMA2000 nät med gps, kompass, bränsle-, vatten-, toa tankgivare och plotter. Till det har jag en raspbarry pi kopplad med NMEA2000 HATen nämnd tidigare. Via USB är solscellsladdaren(Victron MPPT) och VHF(Standard Horizon HX870) kopplad till pi:en,

För internet koppling använder jag en Teltonica RUT240.

 

Mjukvaran är signalk och OpenVPN (för sammankoppling med hemma nätet). Hemma kör jag en Prometheus/Grafan för att logga all data. Skickar med en bild på sommarens laddning från mina 2*50w solceller:

 

Till routern är även båtklubbens kameraövervakning kopplad.

 

För navigering har jag en stor fin plotter som var monterad när jag köpte båten, men använder den aldrig, istället köra jag med en vanlig surfplatta, och använder lite olika program opencpn, openseamap, eniro, eller navigerings appen som finns i signalk server på pi:en. Men oftast blir det opencpn (med o-chart kort, eller BSB/kap kort)

 

 

 

Screenshot from 2021-09-17 22-41-52.png

Redigerad av jimsson
  • Gilla 2

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Följer era projekt med spänning! Önskar jag hade mer tid att sitta och pilla med sånt här. Just nu hanterar min RPi bara IoT/hemautomation med Grafana och InfluxDB, har inte vågat mig på ett båtprojekt pga strömförbrukningen i en RPi. Annars hade jag gärna gjort ett larmsystem, till exempel. De mer sofistikerade som finns är både dyra och kräver abonnemang.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
On 9/10/2021 at 9:34 AM, McLasse said:

Nåväl, efter en del läsning kom jag fram till följande:

* Databas - SQLite (hänger kvar från pi zero tanken men är inga större problem att byta om det skulle behövas)
* GUI - wxWidgets
* Utvecklingsmiljö VS Code och c++.

Har du tittat något på Qt (GUI) också? Anledningen att jag undrar, är att jag tittade på wxWidgets på den tiden Qt kostade pengar, dessutom väldigt mycket pengar, men blev lite avskräckt av att det var lite som en retrotripp till 90-talets versioner av MFC, rent programmeringsmässigt. Deras egna showcase av program ser också väldigt gammalmodiga ut. Sedan dess har Qt släppts fritt och det vore intressant att höra en jämförelse, om du har gjort någon sådan.

 

On 9/17/2021 at 10:02 PM, Ruskpricken said:

Pajen kör med Python.

Pajen är en mångsidig sak, som kör man kan programmera med alla stora programspråk och lite till. Själv kör jag F#-kod på den men Python verkar vara det mest populära bland Pi-folk. Det är stort inom Google också, vilket är ett gott betyg.

Redigerad av Blandkrabban

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Är QT fritt? Det kan förändra en del! Jag valde wxWidgets för att det inte skall vara så resurskrävande men jag trodde inte att det skulle vara så snävt (som jag upplever det hittills).

Tyvärr har jag ingen erfarenhet av QT så en jämförelse vore att gissa från min sida.

 

Din jämförelse med MFC från 90-talet gällande wxWidgets stämmer säkert ganska väl då jag själv, i tanken, dragit paralleller med guit i tidigare versioner av OS/2.

 

Min reflektion av wxWidgets så här långt är att det funkar. Men det kräver en del "kreativt" tänkande för att få till något annat än det normala. Precis som du upplever jag det normala i wxWidgets som ganska tråkigt.

Till saken hör att jag är ny i programmering i Linuxvärlden och wxWidgets så mina reflektioner hittills kan mycket väl vara långt ifrån rättvisa. Men tyvärr tror jag ändå att de stämmer någorlunda...

 

En tankegång som poppare upp är att "kreativitet" i ett resurssnålt verktyg innebär ju ofta att man behöver tillsätta resurser utifrån om verktyget saknar det man vill göra. Då kan man fundera på hur resurssnål slutprodukten blir. I de fallen kan det vara bättre att använda något annat verktyg som redan har de funktioner man är ute efter.

Jag skall titta lite mer på QT för att se om jag skall byta.

 

Tack för att du väckte frågan!

 

 

Hur går dina tankar och funderingar? Håller du på att bygga något, kanske till och med har något rullande eller går du i funderartagen än så länge?

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Kolla upp projektet "openplotter" som startades av några spanjorer (https://openmarine.net/openplotter).

Citat från deras hemsida:

"What is OpenPlotter?

There are people who buy boats but there are also people who build them, why not build your own electronics too? OpenPlotter is a combination of software and hardware to be used as navigational aid on small and medium boats. It is also a complete on-board home automation system. It is open-source, low-cost, low-consumption and it works on ARM computers like the Raspberry Pi or any computer running a Linux Debian derivative. Its design is modular, so you just have to implement what your boat needs. Do it yourself."

 

Jag har deras dotterkort (Moitessier HAT) som man sätter på en Raspberry Pi. Det innehåller massor av praktiska sensorer och var inte så dyrt.

Till detta system har jag kopplat en hemgjord AIS antenn vilket ger mig info

som varnar i god tid för de stora färjornas passage (Furusundsleden). Som seglare är det guld värt att kunna planera lite i förväg.

För min del kör jag detta som ett litet "reservsystem" och loggar in mig via VNC på min smart phone.

Jag har en B&G Vulvan 7 plotter och ett sensor/display-system från Silva/Nexus också.

Redigerad av Carl_XII
la till mer info
  • Gilla 2

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
2 timmar sedan skrev Carl_XII:

Jag har deras dotterkort (Moitessier HAT) som man sätter på en Raspberry Pi.

Tyvärr har Rooco, som gör hatten, lagt ner produktionen. Men det verkar finnas intresse från andra företag att ta över produktionen.

 

Annars ser open plotter väldigt intressant ut. Det känns genomtänkt och innehåller mycket "godis". Det skall i alla fall jag kika vidare på.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Ju mer jag läser om OpenPlotter desto mer gillar jag konceptet. Det går att få mycket funktioner för små pengar.

 

Så, nu har jag beställt en gps-puck och en radiogrunka (SDR). Jag behöver testa! 🌞

 

Min förhoppning är att jag med dessa saker tillsammans med en Raspberry pi 4 skall få fart på OpenCPN (plotter) och en mottagande AIS.

 

Att komma igång med OpenPlotter är nästan som en dans på rosor. Man hämtar en image (fil) från OpenPlotters hemsida som man skriver (sparar) på ett minneskort. Minneskortet trycker man in i en Raspberry pi så är man igång. Visserligen behöver man greja lite med programmen för att få saker och ting att "lira", men det är smidigt att komma igång eftersom programmen finns på plats på minneskortet från början.

Det går att använda en "vanlig" dator också (Windows/Mac/Linux) om man vill.

 

Det skall tydligen funka att koppla in Victron-prylar och få till en presentation av det data de producerar. Även tankgivarna skall gå att få in i systemet. Ja, egentligen en massa olika typer av givare.

Jag hyser även en liten, svag, förhoppning att med radiogrunkan få till att kunna ta emot väderfax. Funktionen verkar i alla fall finnas i OpenPlotter.

Det finns en mängd funktioner man kan haka på allt eftersom, motordata,  autopilot, koppla upp sig på distans osv.

Alla uppgifter som matas in i systemet kan sparas i en databas, om jag fattat det rätt. Det kan vara intressant att få historiska data från tex NMEA-nätverket eller hur solcellerna och vindgenerator presterat.

 

Som jag förstått kan all data som matas in i systemet även skickas ut på NMEA 2000 (även 0183) nätet. Iofs finns inget sådant nät i min båt ännu. Men Rom byggdes inte på en dag.. 

 

Jag tror att i mitt fall kommer nog pajen till en början gå skärmlös och i stället koppla upp via tex remote desktop från en surfplatta i sittbrunnen.

Om min befintliga Hedenhös-plotter klarar av att visa ais-datat återstår att se. Den har iofs NMEA 0183 in men det är ju ingen garanti. AIS-uppgifterna kommer i alla fall att visas i OpenCPN på plattan.

  • Gilla 3

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Jag byggde en egen AIS antenn inspirerad av dessa sidor:

https://vk2zoi.com/articles/half-wave-flower-pot/

http://muck-solutions.com/?p=1324

Den fungerar riktigt bra med OpenPlotter systemet och är lätt att göra samt billig. (Kontakten var dyrast)

Jag har hissat upp antennen i ena spridaren. Det är dock inte en helt idealisk position, speciellt med kolfiberarmerade segel som då skärmar av ett stort område. Jag kommer nog att flytta antennen till akterstaget till nästa säsong.

Redigerad av Carl_XII
  • Gilla 1

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
On 10/3/2021 at 10:35 AM, McLasse said:

En tankegång som poppare upp är att "kreativitet" i ett resurssnålt verktyg innebär ju ofta att man behöver tillsätta resurser utifrån om verktyget saknar det man vill göra. Då kan man fundera på hur resurssnål slutprodukten blir. I de fallen kan det vara bättre att använda något annat verktyg som redan har de funktioner man är ute efter.

Jag skall titta lite mer på QT för att se om jag skall byta.

 

Tack för att du väckte frågan!

 

 

Hur går dina tankar och funderingar? Håller du på att bygga något, kanske till och med har något rullande eller går du i funderartagen än så länge?

Jag funderar på lite RPi- och Arduino-prylar för hemmet till att börja med, för att sedan ta med de erfarenheterna och ge mig på båten. Även om jag har fler timmar med C++ än med något annat språk, så är jag flera gånger mer produktiv i F# (något annat statiskt typat funktionellt språk hade säkert gått lika) än i C++ och framför allt går det nästan ingen tid alls åt till debugging med F#, så det får det bli i pajen även om det kostar minne och prestanda. Pi:n kommer att vara headless och köra webserver åt en tålig Android-platta i sittbrunnen som display samt en lågprisplatta i ruffen som display nr 2. 

 

Förhoppningsvis finns det vattentåliga knappar att köpa, som kan kopplas in till Pi, för touchdisplay i en blöt miljö där allting rör på sig känns inte lockande. 

 

Men vägen dit är lång, för båten har stått på land ett par säsonger...

  • Gilla 1

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett konto på maringuiden.se. Det är lätt!

Registrera ett nytt konto

Logga in

Medlem på maringuiden.se? Logga in här.

Logga in nu

×
×
  • Skapa nytt...