Rispondi 
Raspberry Pi come ripetitore dati NMEA
Autore Messaggio
sanrab Offline
Nuovo Amico del forum

Messaggi: 22
Registrato: Nov 2009 Online
Messaggio: #12
RE: Raspberry Pi come ripetitore dati NMEA
A gentile richiesta vi propongo il ripetitore dati NMEA che ho realizzato sulla mia barca con un Raspberry Pi Mod. B e un display LCD 4 righe x 20 caratteri.

Non è una realizzazione raffinata ma funziona.

Strumentazione Raymarine (plotter C80 Classic, autopilota ST6000, fish-finder DSM300, ST60+ Wind, ST60+ Tridata, GPS 125).
Plotter, autopilota e strumento del vento in pozzetto. Il tridata è al carteggio.
Tutti gli strumenti sono collegati in standard Seatalk.

Volevo un ripetitore di tutti i dati di navigazione al carteggio (e successivamente un server wi-fi per i dati di navigazione).

Questo è lo schema dei collegamenti:

Raymarine Tridata ST60+ ----> Interfaccia Seatalk-USB ----> Raspberry ----> display LCD 4x20

Il flusso di dati generato da tutta la strumentazione passa sulla rete Seatalk.

Ho acquistato una interfaccia Tiny USB Seatalk-NMEA Bridge (Seatalk link) da http://www.gadgetpool.de
Ho collegato il Seatalk link al Tridata al connettore Seatalk (ma va bene qualsiasi strumento della catena Seatalk).
Sul connettore USB di uscita del Seatalk link è presente adesso tutto il flusso di dati in formato NMEA, quindi leggibile con qualsiasi notebook/pc.

Io uso sia un ASUS EEEpc 1215P che un MacBook Air con linux e opencpn e tutti i dati vengono letti dal software di navigazione dalla porta USB senza problemi.

Per costruire il ripetitore dei dati con un RaspberryPi e un display LCD seriale Netmedia 4 righe x 20 caratteri :

- installare sul RaspberryPi Raspbian linux nella versione più recente

- installare il modulo python serial

- nel cmdline.txt del Raspberry eliminare la console su seriale GPIO, quindi diventa
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait

- collegare uscita USB del Seatalk Link ad una presa USB del RaspberryPi

- collegare connettore GPIO del RaspberryPi con LCD seriale

Raspberry Pi GPIO Netmedia LCD display
pin 2 (5V) --> pin 5V
pin 6 (GND) --> pin GND
pin 8 (TXD) --> pin RXD

Sorgente del programma di acquisizione e display in Python (seatalk2lcd.py)

=========================================================================
#! /usr/bin/env python

import serial

LCD = serial.Serial('/dev/ttyAMA0', 9600) # LCD Netmedia seriale 4x20 su GPIO
ser = serial.Serial('/dev/ttyUSB0', 4800) # SeaTalk data flow from USB

LCD.write(chr(20)) # LCD backlight
LCD.write(chr(200)) # LCD backlight value
LCD.write(chr(12)) # LCD clear screen

LCD.write("S/Y Polaris")
LCD.write(chr(10)) # new line
LCD.write("DVV,Venezia")
LCD.write(chr(10)) # new line
LCD.write(chr(10)) # new line
LCD.write("SR, febbraio 2014")
time.sleep(5)
LCD.write(chr(12)) # clear screen

while 1:
data = ser.readline()
# console check
# print data[:-1]
words = data.split(',')
if words[0] == '$IIDBT':
dep = words[3]
if words[0] == '$IIRMC':
timestamp = words[1]
validity = words[2]
lat = words[3]
NS = words[4]
lon = words[5]
EW = words[6]
sog = words[7]
cog = words[8]
datestamp = words[9]
variat = words[10]
#EW_var = words[11]
checksum = words[11]

LCD.write(chr(17)) # cursor position
LCD.write(chr(0)) # riga
LCD.write(chr(0)) # colonna
LCD.write("Lat: ")
LCD.write(lat[0:2])
LCD.write(" ")
LCD.write(lat[2:9])
LCD.write(" ")
LCD.write(NS)

LCD.write(chr(17)) # cursor position
LCD.write(chr(1)) # riga
LCD.write(chr(0)) # colonna
LCD.write("Lon: ")
LCD.write(lon[0:3])
LCD.write(" ")
LCD.write(lon[3:10])
LCD.write(" ")
LCD.write(EW)

LCD.write(chr(17)) # cursor position
LCD.write(chr(2)) # riga
LCD.write(chr(0)) # colonna
LCD.write("SoG: ")
LCD.write(sog[0:4])

LCD.write(chr(17)) # cursor position
LCD.write(chr(2)) # riga
LCD.write(chr(10)) # colonna
LCD.write("DEP: ")
LCD.write(dep)

LCD.write(chr(17)) # cursor position
LCD.write(chr(3)) # riga
LCD.write(chr(0)) # colonna
LCD.write("CoG: ")
LCD.write(cog[0:4])

LCD.write(chr(17)) # cursor position
LCD.write(chr(3)) # riga
LCD.write(chr(10)) # colonna
LCD.write("UTC:")
LCD.write(timestamp[0:6])

=========================================================================

NOTE:
1 - il firmware dell'interfaccia Seatalk-NMEA fa il check della consistenza dei dati ricevuti e scarta quelli eventualmente non buoni.
2 - per il programma in Python è necessario installare il modulo serial

Ciao a tutti.
sanrab
22-09-2014 18:31
Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Rispondi 


Messaggi in questa discussione
RE: Raspberry Pi - lfabio - 04-06-2014, 14:47
RE: Raspberry Pi - sanrab - 04-06-2014, 18:31
RE: Raspberry Pi - Giada0959 - 04-06-2014, 19:41
RE: Raspberry Pi - Giada0959 - 06-06-2014, 09:46
RE: Raspberry Pi - YPB - 04-07-2014, 14:32
RE: Raspberry Pi - Edolo - 04-07-2014, 15:27
RE: Raspberry Pi - sanrab - 19-09-2014, 08:17
RE: Raspberry Pi - Edolo - 19-09-2014, 08:25
RE: Raspberry Pi come ripetitore dati NMEA - sanrab - 22-09-2014 18:31

Discussioni simili
Discussione: Autore Risposte: Letto: Ultimo messaggio
  NMEA su Raymarine C70 BornFree 5 259 13-05-2025 11:37
Ultimo messaggio: BornFree
  Connessioni NMEA multiple bludiprua 12 805 11-03-2025 09:54
Ultimo messaggio: singleton
  Pilota SPX30 + GPS : possibile aggiungere antenna con uscita NMEA ? acquafredda 10 720 31-01-2025 21:37
Ultimo messaggio: acquafredda
  multiplexer per Nmea0183 - Raspberry PI4 e OpenPlotter orsopapus 3 428 30-01-2025 15:43
Ultimo messaggio: DrakeRnC
  Rete Nmea 2000 con GPS Garmin e motore Steyr chiattillo.doc 0 234 27-01-2025 16:55
Ultimo messaggio: chiattillo.doc
  collegare un Victron Cerbo GX agli strumenti NMEA 2000 pepe1395 4 720 27-11-2024 19:06
Ultimo messaggio: marcot
  Raymarine ST290 - NMEA 0183 - WiFi elan 333 0 194 30-10-2024 10:54
Ultimo messaggio: elan 333
  raymarine ST6000+ Dati Velocità e Motore gpcgpc 5 549 12-09-2024 20:21
Ultimo messaggio: gpcgpc
  Axiom importazione dati Canadese 7 1.363 16-06-2024 08:12
Ultimo messaggio: mami
  nmea 0183 - quale connettore per GPSMAP4012 Little Sail 6 866 07-05-2024 22:13
Ultimo messaggio: Little Sail

Vai al forum:


Utente(i) che stanno guardando questa discussione: 1 Ospite(i)