Segnalazione Superamento Velocità in Auto - Consiglio Ricevitore GPS

Buonasera a tutti,

inizio la mia esperienza qui sul forum di Arduino con questo nuovo topic.
Non so se anche su questo forum è tradizione presentarsi, comunque io mi chiamo Andrea, ho 28 anni e sono un radioamatore appassionato di elettronica e radio appunto.
Da qualche tempo sento parlare di questo progetto e questa scheda, e finalmente la scorsa settimana mi sono deciso ad acquistarla, ho acquistato un Arduino Uno e una Ethernet Shield.

...ma ora vengo al dunque...
Uno dei progetti che mi è subito balenato in testa di sviluppare è un segnalatore di superamento della velocità con l'automobile.
(due parole sulla particolare esigenza) In sostanza la mia ragazza si lamenta del fatto che sulla sua nuova auto (una swift) manca il segnalatore acustico di superamento della soglia di velocità che ormai su molte auto è impostabile dal cosiddetto computer di bordo.

Ebbene mi sono detto, te lo faccio io il cicalino che suona quando superi i 70 Km/h XD

...così eccomi qui a ragionare su cosa è meglio utilizzare e come è meglio imbastire il tutto.
Ho cercato di documentarmi con il materiale esistente in rete e mi sono fatto l'idea che piazzare un sensore di qualsiasi tipo accanto alla ruota o cerchione di un automobile non mi da per niente fiducia e sicurezza, così ho pensato che l'unico modo per rilevare il movimento di un'auto in questo contesto è utilizzare un ricevitore GPS, abbinato poi ad Arduino, si può dire che gli faccio fare poi di tutto, o quasi :slight_smile:

Tutto questo per chiedervi alcuni consigli, in primo luogo se secondo voi quello che ho in mente è fattibile con Arduino e un GPS e in secondo luogo sarei lieto di ricevere dei consigli su quale ricevitore GPS è meglio che utilizzi, in base a quelle che sono le esperienze di chi tra voi ha già sperimentato qualcosa di simile.
Dalla documentazione che ho trovato, ho visto che teoricamente, per poter essere compatibile con Arduino, un GPS receiver deve avere una uscita con protocollo seriale RS232 e fornire i dati almeno nello standard NMEA_0183 (in modo che ci si possa fare qualcosa) - correggetemi se sbaglio o se ci sono altri requisiti che mi sfuggono.
Premesso che gradirei utilizzare un ricevitore GPS già "cablato" e quindi non direttamente un modulo, avrei addocchiato in internet dei modelli tipo il GlobalSat BR-355... ma giusto così in una ricerca generica, non so' se funzona bene, male, c'è di meglio o di peggio... se fosse un GPS al quale si può collegare un'antenna esterna, tanto di meglio, magari una magnetica da mettere sul tetto dell'auto (ma questo sarebbe un di più, probabilmente è sufficiente avere il GPS sul cruscotto).

per ora mi fermo qui, perchè l'ho già fatta parecchio lunga.
ringrazio già in anticipo per i consigli che mi darete.
buona serata !

mi limito alle opzioni, non ho ancora mai usato un gps su arduino

  • Shield GPS (niente cavi in giro e con una libreria gia' fatta)
  • GPS con connessione seriale, si dovrebbero trovare, quelli vecchio tipo prima dei BT
  • classico gps bluetooth, magari lo hai gia', pero' avresti dovuto comprare Arduino BT

Testato, per cosa serve il bluetooth?
Tanto moduli GPS hanno come uscita un interfacciamento seriale con livelli TTL.
Lo svantaggio del GPS é che ci mette ca 1 minuto per partire dopo l'accensione e con pioggia, nel bosco o in cittá non funziona perché non sono abbastanza sateliti visibili oppure il segnale é troppo debole.
Ciao Uwe

come detto nel mio intervento mi limitavo a citare le varie opzioni, io ad esempio ho un gps bluetooth che non uso piu', proveniente dall'epoca delle antennine BT quando sui cellulari non era integrato, ebbene nel mio caso potrei prendere in considerazione di connetterlo via BT.
ecco tutto, non voleva essere una risposta al topic ma un ampliamento di vedute :slight_smile:

p.s. mi sono accorto che avevo scrotto BT seriale, credo che ti riferisci a questo, ho infatti corretto in GPS seriale :slight_smile:

Credo che l'avviso di velocita' di serie nelle auto derivi direttamente dal tachimetro, ma diventa difficile/impossibile interfacciarsi con esso. Quindi l'idea del GPS e' valida secondo me. Cosi' come e' valido come navigatore, allo stesso modo e' valido, con i suoi limiti, come avviso tachimetrico

Grazie uwefed e Testato per aver risposto,

La questione del BT può essere una comodità, non avere cavi in giro, o al limite se si ha una versione tipo antenna esterna, ma personalmente per quello che ci devo fare va benissimo anche un GPS via cavo.

Nel mio caso posso trascurare tranquillamente anche 1 minuto di avvio dell’apparato (spero non di più però…) e per quanto riguarda la scarsa ricezione in valli strette o nei boschi e in mezzo a palazzi alti sono consapevole delle limitazioni… se pur in poche occasioni ho potuto provare però tempo fa un navigatore della Garmin… ed effettivamente queste “pecche” con il GPS ci sono, sono da mettere in conto.

Come dici tu Testato, può essere valido come avvisatore di velocità ma con i suoi limiti… penso infatti sempre a quando ho provato il Garmin e ricordo anche che lui era sempre “in ritardo” rispetto a dove mi trovavo effettivamente, c’è sempre un effetto “differita” se pur di poco tempo e di pochi metri, ma c’è.
Nel contesto di quello che vorrei fare, significa forse non tanto scarsa precisione quanto considerare che ci sarà un certo ritardo, se pur minimo, nella segnalazione…

in questo momento sono sulla baya alla ricerca del modellino che fa per me… vedendo le specifiche tecniche e i prezzi il GlobalSat che ho citato in precedenza mi sembra un buon compromesso.

Grazie ancora per gli interventi ragazzi :wink:

Ovviamente per un ricevitore GPS devi vedere il n° di canali di cui dispone e la sensibilità di questo. Quindi attento a questi due parametri che riducono di molto il tempo di rilevamento della posizione iniziale. Considera che io con un ricevitore con 54 canali ricevevo anche in casa lontano da finestre.

ypkdani:
Ovviamente per un ricevitore GPS devi vedere il n° di canali di cui dispone e la sensibilità di questo. Quindi attento a questi due parametri che riducono di molto il tempo di rilevamento della posizione iniziale. Considera che io con un ricevitore con 54 canali ricevevo anche in casa lontano da finestre.

Caspita ! addirittura dentro casa !

....quello che sto guardando io invece ha solo 20 canali, forse è anche per questo che è più economico degli altri... :frowning:

Non vorrei dire una czzt ma mi pare che il tom tom ne usi 12, infatti perfino nei cortili degli edifici fa una sacco di storie ad agganciare il segnale, però le velocità ed i rilevatori li segnala eccome :wink:

Ovviamente dipende dal modello comunque quello che ho è un ricevitore "cinese" ma va che è una meraviglia.

PS: il segnale lo ricevo in mansarda quindi attraverso il tetto

FermI tutti
I canali sono specchietti commerciali.
Esistono 24 satelliti, per il gps attuale, 12 per emisfero. Ed in genere al massimo se ne vedono 9.

Il nuovo sistema galileo migliorera le cose

Testato:
FermI tutti
I canali sono specchietti commerciali.
Esistono 24 satelliti, per il gps attuale, 12 per emisfero. Ed in genere al massimo se ne vedono 9.

Il nuovo sistema galileo migliorera le cose

Ah, mi pareva :slight_smile: infatti è impossibile vederli tutti contemporaneamente, certo bisogna capire a questo punto quali sono gli altri 42 canali che entrano nel sottotetto di ypkdani: avrai mica acchiappato le trasmissioni libere dei parenti di E.T. :fearful:?

Sulla macchina, generalmente imboscata dal lato conducente in una zona compresa tra volante e pedali, c'è la porta OBD2 che è quella che usa il meccanico per fare la diagnostica.
Esiste uno shield e del codice per arduino per interfacciarsi con questa porta. Sono sicuro che tra i vari dati disponiili ci siano i giri del motore ma non sono sicuro che ci sia la velocità.

EDIT:
ho trovato una tabella coi possibili comandi e la velocità è compresa

menniti:

Testato:
FermI tutti
I canali sono specchietti commerciali.
Esistono 24 satelliti, per il gps attuale, 12 per emisfero. Ed in genere al massimo se ne vedono 9.

Il nuovo sistema galileo migliorera le cose

Ah, mi pareva :slight_smile: infatti è impossibile vederli tutti contemporaneamente, certo bisogna capire a questo punto quali sono gli altri 42 canali che entrano nel sottotetto di ypkdani: avrai mica acchiappato le trasmissioni libere dei parenti di E.T. :fearful:?

No semplicemente mi sono creato il mio sistema GPS ovviamente senza farlo sapere a nessuno :grin: Comunque mai detto che ricevo il segnale da 52 satelliti solo che il numero di canali è importante assieme alla sensibilità del chip ( Con il ricevitore che avevo prima comunque non prendevo sotto il tetto mentre con questo si pur essendo un ricevitore cinese )

non ribadire errori, altrimenti qualcuno ci crede.
Il numero di canali non e' importante (vedi sopra)

Testato:
non ribadire errori, altrimenti qualcuno ci crede.
Il numero di canali non e' importante (vedi sopra)

per ora (vedi galileo... ma deve essere compatibile, credo)

infatti piu' su' ho gia' menzionato il sistema galileo :slight_smile:

Buonasera ragazzi,

riprendo il topic che avevo aperto dopo che finalmente mi è arrivato il GPS che avevo ordinato, è un Globalsat BR-355…
Ho fatto una rapida prova attaccandolo con HyperTerminal e alimentandolo da un pacchetto batterie esterne (richiede 5 V) ed è davvero un ottimo gingillo… addirittura qui in casa dalla scrivania dove sto scrivendo si collega ai satelliti e mi restituisce i dati… non pensavo fosse così efficiente…

…Il grosso problema che ora ho è quello di far leggere le stringhe all’Arduino… ci ho smanettato tutto il pomeriggio ed ho letto diversa documentazione in rete, e sono riuscito almeno a capire (spero di non sbagliarmi) che i digital pin 0 e 1 sono collegati praticamente con una sorta di parallelo alla USB-RS232emulata con cui carico gli sketch dal PC… ragione per cui devo usare altri pin per la comunicazione seriale.

Ho visto che in alcuni casi si utilizza la libreria “SoftwareSerial” e ci ho provato pure io, ma con scarsi risultati… dal GPS ricevo infatti una serie di caratteri incomprensibili.

Dalla docum. tecnica del GPS si specifica una comunicazione di tipo RS232, ma essendo alimentato a +5 V deduco che comunque i livelli logici siano compatibili con arduino e non mi servano quindi convertitori tipo MAX232 o simili…

Sono anche certo della velocità di comunicazione, ovvero 4800 bps, infatti con HyperTerminal settando questa velocità leggo correttamente.

Vi posto il codice che ho provato ad implementare:

#include <SoftwareSerial.h>

#define rxPin   3
#define txPin   2

SoftwareSerial gpsSerial = SoftwareSerial(rxPin, txPin);

void setup() {
  Serial.begin(9600);
  gpsSerial.begin(4800);

  pinMode(rxPin, INPUT);
  pinMode(txPin, OUTPUT);
}

void loop() {
  char someChar = gpsSerial.read();
  Serial.println(someChar);
}

Tra l’altro per l’obiettivo che devo raggiungere, mi basta “solo” leggere la seriale, non devo trasmettere nulla…

Grazie in anticipo per l’aiuto !

perche' usare altri pin ?
il conflitto ci sarebbe nel caso vorresti sia tenerlo attaccato al gps sia programmarlo, ma tu una volta programmato lo colleghi al gps.
quindi usi la seriale per entrambe le cose (pin0 e 1) ma non contemporaneamente.

ti faccio un esempio quando usi il Terminal seriale dell'IDE stesso stai facendo la stessa cosa, cioe' prima usi i pin 0-1 per mandare lo sketch ad arduino, poi quando premi il serial monitor stai usando sempre 0-1 per leggere su monitor

usare altri pin come seriale ti serve appunto quando devi usarli in contempranea, cioe' se tu vorresti leggere in realtime i dati del gps sul monitor seriale di arduino

tu invece credo voglia solo implementare un bip che ti avvisa, quidi andrai ad usare un pin come uscita, non ti serve un'uscita seriale giusto ?

Posto un estratto della documentazione tecnica del GPS:

"
Main power input: 4.5V ~ 6.5V DC input
Power consumption: 80mA
Output voltage level: 5V
Baud rate: 4,800 bps
Output message: NMEA 0183 GGA, GSA, GSV, RMC, VTG, GLL
"

In rete sto anche leggendo qualcosa inerente all'inversione dei livelli logici, ma sinceramente fatico a capire (...tutto in inglese...), sembra che alcuni adottino delle porte NOT (tipo 74HC04) sulla linea di trasmissione del GPS. :fearful:

semplicemete con una not inverti il livello di segnale.
se mi dai il link ci do' unno sguardo io.

hai letto il mio topic di sopra ? sei daccordo che non ti serve implementare una seconda seriale ?