Schaake.nu

Architectuur boordcontroller

Gepost in /Motorboot op 02 April 2017
Deze blog is geschreven door Christiaan Schaake

Boord computer Calm’an deel 2

Een compleet boordcomputer systeem bestaande uit een NMEA multiplexer, Raspberry PI en verschillende Arduino computers. Het systeem verzameld verschillende gegevens uit instrumenten en sensoren. De gegevens worden getoont op een ingebouwd scherm of een tablet of telefoon via Wifi. Deze blog beschrijft de algemene architectuur, de details voor de verschillende compontenten zijn beschreven in aparte blogs.

Overzicht van componenten

Het computer systeem aan boord bestaat uit een aantal verschillende componenten.

Het hart van het systeem is een Raspberry PI met daarop een 7inch touch screen. Aan deze computer is een NMEA multiplexer verbonden voor het uitlezen van de NMEA instrumenten. Daarnaast zijn er een 2-tal Arduino Nano's gekoppeld. Eén voor de motor sensoren en één voor de overige huishoudelijke sensoren. Alles is gekoppeld via een USB of serieel.

Main controller - Raspberry PI

Een Raspberry PI 2B dient als main controller. Dit is een ARM based linux mini pc. Doordat de computer op linux draaid kunnen we er verschillende applicaties op draaien. De Raspberry PI is voorzien van een 7 inch touchscreen van Raspberry. Deze is ingebouwd in het dashboard en hiermee kan de boordcomputer bediend worden.
Via een HTML met Javascript webpagina wordt de boordcomputer uitgelezen en bedient.

Daarnaast is de Raspberry voorzien van 2 wifi adapters. Eén van de wifi adapters is opgezet als accesspoint zodat andere devices, zoals telefoons en tablets, verbinding kunnen maken met de Raspberry. De andere wifi adapter wordt gebruikt om verbinding te maken met wifi accesspoints in de haven. De Raspberry functioneerd dus ook als een soort Internet router.

Wanneer er een internet verbinding is, maakt de Raspberry automatisch verbinding met de server thuis via een VPN verbinding. Direct worden alle opgeslagen gegevens doorgestuurd naar de thuis server.

NMEA multiplexer

De NMEA multiplexer van Shipmodul communiceerd met een diepte/snelheids meter, compass en marifoon met GPS en AIS. Al deze signalen worden doorgegeven aan de Raspberry via USB. Hierdoor zijn alle navigatie gegevens beschikbaar. Via de marifoon komt de AIS informatie binnen van alle schepen in de buurt.

Energie management - Arduino

Een Arduino Nano verzameld verschillende sensor gegevens waaronder het spannings nivo van de licht accu en het verbruik. In principe zou dit ook via de Raspberry PI kunnen maar de Arduino biedt een aantal voordelen. Zo is dit component een stuk goedkoper, dus mocht er iets mis gaan met aansluiten waardoor de Arduino wordt opgeblazen dan is deze eenvoudiger te vervangen. De Raspberry heeft een ARM processor, dit betekend dat hij geen vaste klok puls heeft. Een Arduino daarintegen heeft een vaste klok frequentie van 16Mhz waardoor bepaalde berekeningen zoals toerental eenvoudiger te realiseren is.

De Arduino stuurt de meetgegevens via een eigen ontworpen NMEA achtige commando set naar de Raspberry.

Motor management - Arduino

De voorgaande componenten worden aangesloten via USB. Deze zitten namelijk allemaal op dezelfde accubank. Echter de motor zit op de start accu. Om te voorkomen dat de accu's elkaar gaan opladen via de Arduino, welke hierdoor stuk gaat, moeten deze electrisch gescheiden zijn. Dit kan doormiddel van een draadloze verbinding zoals Wifi of Bluetooth. Draadloze signalen zijn echter niet altijd betrouwbaar. Maar electrisch scheiden kan ook via een zogenaamde galvanische scheiding. Bij een galvanische scheiding wordt een zogenaamde optocoupler gebruikt. In een optocoupler wordt het electrische signaal omgezet naar licht en zo naar de andere kant gestuurd om daar weer omgezet te worden in een electrisch signaal. Een optocoupler voor USB is kostbaar, rondt de € 100,-. Dit komt door de grote snelheid van USB, en daardoor ook de hoge frequenties van de signalen. Echter voor een seriele verbinding is een optocoupler een stuk goedkoper.
Om deze reden is de Arduino voor het motor management via de seriele poort, door de optocoupler, van de Raspberry PI gekoppeld. Een andere optie zou zijn om alle poorten van de Arduino te voorzien van optocouplers. Echter voor de analoge poorten is dit lastig. We kunnen nu zonder problemen de orginele motor instrumenten, oliedruk en tempertuur, afluisteren.

NMEA

De Multiplexer praat natuurlijk NMEA met de Raspberry. Met NMEA worden per regel een specifiek gegeven doorgegeven. Door de Arduino's ook een eigen NMEA uitbereiding te laten 'praten' kunnen de verschillende signalen eenvoudig gecombineerd worden. Per sensor aan de Arduino wordt een eigen regel doorgegeven. Alle NMEA regels worden in de Raspberry via een software multiplexer verzameld. De NMEA stroom die ontstaat wordt gebruikt voor verschillende applicaties. Ook wordt deze NMEA stroom weer uitgestuurd vanaf de Raspberry naar aangesloten tablets en laptop.

Lees meer over NMEA op het NMEA blog.

Deze blog is getagd als Arduino Boordcomputer NMEA Raspberry

Google
facebook