Installazione di OpenPlotter
su Raspberry

OpenPlotter Raspberry In questa paginetta descriviamo l'installazione di OpenPlotter, un potente e completo programma di navigazione per barche a vela, su Raspberry, che e' un computer completo fornito su una singola scheda, piccola ma assai ricca di connettori e funzionalita'.

OpenPlotter e' disponibile come immagine per Raspberry e contiene al suo interno OpenCPN, un ottimo plotter Open Source per la navigazione e Signal K, un collettore di dati di navigazione (eg. NMEA 0183, NMEA 2000), integrati insieme ad un'ampia collezione di tool e di plugin.
A questi aggiungeremo altri programmi come qtVlm, che e' un software free per il routing ovvero per il calcolo delle rotte a vela ottimizzato a seconda delle previsioni meteo.

OpenPlotter, rispetto ad utilizzare un'immagine di Raspberry Pi OS, risulta piu' semplice da installare perche' e' possibile completare la configurazione utilizzando solo l'interfaccia grafica senza comandi da terminale. Inoltre sono gia' installati diversi programmi utili per la navigazione... continuate a leggere!

Introduzione

OpenPlotter e' disponibile come immagine per Raspberry che, per le piccole dimensioni, le molte di connessioni disponibili ed i bassi consumi e' molto adatto per essere utilizzato su un'imbarcazione.
Raspberry Pi4 Le scelte possibili per l'hardware sono molte... nel seguito utilizzeremo i seguenti componenti che sono economici e facilmente reperibili in rete:

Il perche' di alcune di queste scelte ed ulteriori possibilita' sono descritti in questa paginetta.

OpenCPN OpenPlotter e' una distribuzione Linux Open Software basata su Debian. OpenPlotter contiene una serie di programmi integrati tra loro per fornire un sistema completo per la navigazione. Tra i programmi contenuti in OpenPlotter fondamentale e' OpenCPN, un ottimo plotter per la navigazione Open Source che supporta un ampio insieme di formati di carte nautiche e dispone di decine di plugin aggiuntivi (eg. allarmi, costruzioni polari, radar, ...).
Signal K Signal K e' invece il componente che raccoglie i dati di navigazione dagli strumenti (eg. GPS, AIS), e li presenta con un servizio web. Dal punto di vista tecnico e' un servizio realizzato su Node.js che raccoglie i dati dalle linee seriali dei vari dispositivi dell'imbarcazione, qualunque sia il protocollo (eg. NMEA 0183, NMEA 2000), e li presenta in formato JSON.

qtVlm qtVlm, e' un software free per il routing. qtVlm effettua il calcolo delle rotta ottimale utilizzando piu' GRIB (dati meteo) e le polari (dati prestazioni di una barca a vela) in modalita' diverse permettendo il confronto tra le diverse rotte ed opzioni. E' uno dei programmi piu' completi ed adatti per preparare la strategia di regata d'altura o per pianificare una crociera in barca a vela. Non e' compreso nei programmi installati con OpenPlotter ma lo aggiungeremo facilmente al nostro Raspberry.

Ora che abbiamo tutti i pezzi e visto cosa installare possiamo procedere a creare l'immagine.
Vi sono alcuni semplici passi necessari per effettuare l'installazione e la configurazione... li vedremo nei prossimi capitoli:

Copia immagine

OpenPlotter fornisce un'immagine completa del sistema operativo Raspberry Pi con tutti i programmi gia' installati. Basta scaricarla dal sito ufficiale avendo cura di scegliere la versione OpenPlotter Headless a 64bit.

Choose OpenPlotter image Per caricare l'immagine sulla scheda microSD si utilizza il programma Raspeberry Pi Imager disponibile sul sito ufficiale per Windows, Mac OS e Linux.

Lanciato il programma bisogna scegliere Raspberry Pi 4 e l'immagine di OpenPlotter appena scaricata selezionando Use Custom nella scelta del sistema operativo: Raspberry Imager - OpenPlotter

Un poco di pazienza: la fase di scrittura e verifica dell'SSD puo' richiedere qualche minuto! Raspberry Imager - OpenPlotter Done!

Ora possiamo inserire la microSD nella scheda Rapsberry ed accenderla collegandola all'alimentatore!

Configurazione base - Sistema

Il primo boot richiede qualche momento in piu', generalmente un paio di minuti sono sufficienti e possiamo collegarci dal nostro PC.

Le impostazioni iniziali sono riassunte nella seguente tabella

Parametro Valore
Hostname openplotter
User pi
Password raspberry
Language en_GB.UTF-8
Keymap gb
Layout English (UK)
TimeZone Europe/London
Wifi AP SSID: openplotter, Password: 12345678, IP: 10.10.10.1
SSH Enabled
Remote desktop Enabled

Questo ci consente subito di collegarci dal nostro PC utilizzando la rete Wifi del Raspberry con SSID openplotter e password 12345678. Abbiamo bisogno di un programma come RealVNC ma va bene qualsiasi viewer VNC.

VNC connessione

Effettuato il collegamento, inserita l'utenza pi e la password raspberry automaticamente vengono attivati i servizi.

OpenPlotter - Avvio servizi

La segnazione in rosso indica che non e' ancora stata modificata la password di default del Wifi: va subito cambiata entrando nella configurazione di rete:

OpenPlotter - Menu rete

Ne approfittiamo anche per configurare il Raspberry sia come Access Point che come client Wifi [NdA e' la configurazione piu' semplice anche se non sempre la piu' efficiente]. Le possibilita' di configurazione di rete per OpenPlotter sono molteplici e ben descritte nella documentazione ufficiale. Per effettuare le modifiche bisogna fare click sulla matita e quindi salvare facendo click sulla SD:

OpenPlotter - Configurazione Network

La riconfigurazione della parte di rete richiede il riavvio... attenzione alla password dell'AP (Access Point) Wifi, se non viene inserita correttamente non si riuscira' piu' ad entrare!

OpenPlotter - Conferma rete

Al riavvio sara' possibile collegare il Raspberry ad un Wifi e quindi ad Internet.

Per finire la configurazione di sistema, ma e' per deformazione professionale e non per reale necessita', entro in una finestra di terminale e lancio i comandi:
 sudo apt-get update
 sudo apt-get upgrade

Configurazione base - Applicazioni

Possiamo passare ora alla configurazione applicativa.
OpenCPN puo' essere personalizzato abilitando tra le decine di plugin disponibili quelli che ci sono utili. Ad esempio aggiungiamo il plugin per il calcolo delle polari:

OpenCPN - Abilitazione Plugin

Ma la parte piu' importante e' quella della cartografia: all'avvio OpenCPN non ha nessuna carta nautica inserita. Le possibilita' sono molteplici ed e' attivo un plugin per l'accesso alle carte eventualmente acquistate. Come descritto nella documentazione OpenCPN le sorgenti sono molte. OpenCPN supporta sia le mappe vettoriali nei formati S57 (ENC), oeSENC, S-63, CM93 e iENC (inland water) che raster (immagini) nei formati BSB 3 (eg. .CAP, .KAP), BSB 4 e NV-Verlag (.EAP). Le carte nautiche aggiornate possono essere scaricate gratuitamente (eg. NOAA .ENC ma non per l'Italia), acquistate (eg. o-charts.org), autoprodotte (eg. SAT2Chart). Un altra possibilita' e' importare le carte nautiche, come faremo nel passo successivo, caricando un set di carte vettoriali non aggiornato ma completo:

OpenCPN - Cartografia

Ora la visualizzazione utilizza le carte appena caricate e risulta molto piu' dettagliata: OpenCPN - Rapallo

Architettura Signal K Signal K e' gia' attivo come servizio ma prima di configurarlo dobbiamo fa arrivare al Raspberry i segnali dei nostri dispositivi di bordo.

Ogni singolo dispositivo Talker NMEA 0183 deve essere collegato singolarmente, a meno che non si abbia a bordo un multiplexer; per farlo basta un cavo adattatore USB a RS-232/RS-422. Il CAN-bus NMEA 2000 invece richiede un unico collegamento. E' impossibile descrivere tutti i casi anche perche' esistono versioni differenti di standard, di cavi, di prese, ... e' fondamentale controllare la documentazione tecnica di ogni dispositivo.

Il caso piu' frequente e' l'utilizzo di NMEA 0183, standard molto vecchio ma ancora usatissimo, effettuati i collegamenti l'ultima variabile che occorre configurare e' la velocita'; generalmente per le connessioni ad un GPS sara' 4800 mentre verso un AIS o un multiplexer sara' 38400 [NdA gli altri parametri tipici di una connessione seriale sono fissi: 8 Data bits, Parity None, 1 Stop bits, Handshake None].
Per controllare l'arrivo dei dati su Raspberry si puo' usare il comando:

picocom -b 4800 /dev/ttyUSB0

Se i collegamenti sono corretti arriveranno le sentences NMEA 0183 che sono quasi comprensibili anche per noi umani:

$GPGLL,4434.4426,N,0923.0108,E,101030.000,A,A*69

Non richiede invece alcuna connessione fisica il caso, sempre piu' comune su apparati recenti, di multiplexer che pubblicano dati direttamente su Wifi.

Puo' sembrare complicato... a volte lo e'! Ma in mezzo al mare, soli con i vostri sensori e strumenti ci sarete voi, ed e' importante imparare come funziona ogni singolo componente della vostra barca per risolvere ogni problema che possa presentarsi.

Con un po' di fortuna basta qualche prova e si possono integrare velocemente tutte le sorgenti dati.

Effettuate le connessioni fisiche la configurazione su OpenPlotter e' semplice: prima si definisce la linea con applicazione Serial quindi su Signal K si registra la sorgente nella sezione Server. Configurazione Data Source Signal K

Non serve fare altro perche' Signal K pubblica i dati per OpenCPN e per tutte le eventuali applicazioni esterne. Signal K e' raggiungibile via URL alla porta 3000.
Oltre all'accesso diretto ai dati sono utilizzabili anche dashboard aggiuntive implementate come plug-in. Tra queste: Instrument Panel SailGauge, e sopratutto KIP [NdA le dashboard fornite in OpenPlotter sono riportate nella documentazione ufficiale].

KIP dashboard

Installazione qtVlm

Per l'installazione di qtVlm basta scaricare il software dal sito ufficiale e copiarlo sul Raspberry.

Per copiare il file bisogna utilizzare dal nostro PC un programma di copia come sftp pi@10.10.10.1 quindi va scompattato il file con:

tar zxvf qtVlm-5.12.1-rpi32Bullseye.tar.gz

Il programma e' installato. Per lanciarlo bisogna essere connessi in VNC e da terminale lanciare i comandi:

cd qtVlm ./qtVlm

E' sicuramente comodo lanciare qtVlm da menu anziche' da linea di comando sul terminale. Si imposta facilmente nelle Preferences / Main Menu Editor inserendo il lancio di qtVlm:

PIXEL Menu Add qtVlm to the Menu

Con passi analoghi si aggiunge qtVlm alla barra delle applicazioni:

Application Menu Add qtVlm to the Application Bar

E' anche possibile creare un collegamento sul desktop: basta copiare l'icona del menu.
Gli stessi passi eseguiti per qtVlm possono essere eseguiti per qualsiasi altra applicazione grafica si volesse aggiungere all'installazione preconfigurata di OpenPlotter.

Al primo lancio di qtVlm vengono caricate le mappe. Finalmente possiamo dedicarci alle nostre rotte!

qtVlm - Rapallo qtVlm - Routage Transat Jacques Vabre 2023

Una cosa che dovremo aggiornare ogni volta saranno i dati meteo... ma con qtVlm scelta e la raccolta dei file GRIB con le previsioni e' davvero semplice.

Utilizzo

Una volta effettuata la configurazione l'utilizzo di OpenPlotter risulta semplice.

La configurazione descritta in precedenza e' quella headless, ovvero senza tastiera e senza video. Nella configurazione WiFi il raspberry definisce un sua rete “openplotter” a cui collegarsi e cerca di connettersi ad Internet come client su una seconda rete Wifi esterna. In questo modo ci sono tutte le possibilita’ per operare sia “in altura” (in cui il raspberry fornisce la rete Wifi per tutte le apparecchiature di bordo), che “in porto” dove e' disponibile un Wifi esterno o si puo' utilizzare come Hotspot un cellulare.
La parte piu' complessa, ma anche la piu' interessante e' la raccolta e l'integrazione di tutti i segnali di bordo. Ogni configurazione e' diversa ma il vantaggio di OpenPlotter e' la sua flessibilita' e quindi puo' fare da collettore centrale e quindi fornire i dati agli utilizzatori.

Per accendere il dispositivo basta alimentarlo con un qualsiasi presa USB-C (5V 2A). In pochi secondi sara' attivo.
Per connettersi basta utilizzare la rete Wifi fornita dal Raspberry ed il software grafico di connessione VNC (oppure un SSH per una connessione a terminale). Le dashboard di Signal-K sono accessibili con un qualsiasi browser, basta usare l'URL corrispondente come abbiamo visto in precedenza.

OpenCPN - Rapallo qtVlm - Rapallo KIP dashboard on browser
Per spegnere correttamente il dispositivo va lanciato uno shutdown prima di staccare l'alimentazione. Si puo' costruire un pulsante di spegnimento e programmare la raccolta di questo segnale sul Raspberry ma le alternative sono molte e non c'e' spazio per descriverle qui: quindi ricordate che... l'ultimo chiude la porta!

Varie ed eventuali

Per l'installazione di un'immagine standard di Raspberry Pi [NdA +qtVlm] vedere questa paginetta.

L'elenco delle versioni di Raspberry Pi OS e' riportato in una sezione del documento Your Server Stinks.

Buon vento!


Titolo: Installazione di OpenPlotter su Raspberry (+qtVlm)
Livello: Avanzato (3/5)
Data: 31 Ottobre 2023 🎃 Halloween
Versione: 1.0.2 - 31 Dicembre 2023
Autore: mail [AT] meo.bogliolo.name