
Arduino e trasmettitore DCF77 uniti per creare un radio clock receiver. Progetto originale che sfrutta le capacità di Arduino e relativo codice per ricevere il segnale orario. Istruzioni e schemi per realizzare il progetto. Breve introduzione ad Arduino.
Il progetto tratta di un ricevitore radio del segnale orario realizzato utilizzando un DCF77 e una scheda Arduino con l'apposito codice. Quello che vado a descrivere è tuttavia un prototipo ancora in fase di sviluppo e che subirà quindi numerose modifiche prima di raggiungere una stabilità tale da poterlo definire completo. Come primo passo va sviluppata una libreria DCF77 per Arduino.
Il DCF77 non è altro che un trasmettitore in grado di inviare il segnale orario esatto in Germania.
Esso utilizza un formato binario che deve quindi essere decodificato, questo è esattamente il lavoro che viene svolto dalla libreria sviluppata appositamente per Arduino.
Sono comunque numerosi i codici per DCF77 decoder in circolazione, potete trovarli anche con una semplice ricerca sul motore di Google e tra i vari forum che trattano dell'argomento. Tutto quello di cui abbiamo bisogno per realizzare questo progetto è un Arduino e un ricevitore DCF77.
Potete fare riferimento allo schizzo che trovate nel link a fondo pagina per il quale è stato utilizzato il "BN DCF-Empfänger 641.138" di Conrad. Sempre in riferimento al progetto originale avremo bisogno di una resistenza di pull up.
Quando avrete collegato il tutto l'ora esatta verrà inviata e quindi stampata sulla linea seriale.
È bene ricordare che quella descritta nell'articolo originale è una versione molto precoce del software, ci sono un sacco di funzionalità mancanti che verranno poi implementate nelle successive release.
Il progetto sfrutta 6.400 byte dei 7.168 byte possibili con Arduino. Attualmente si sta valutando la possibilità di aggiornare la scheda ad un processore 168 ATMega in modo da avere 16 KB di memoria.
Nel frattempo potete scaricare la versione attuale del codice dalla pagina seguente: dcf77-arduino-0.1.tar.gz
Il codice è stato rilasciato sotto i termini del CC-GNU GPL.
Trovate altre info sul progetto con Arduino e tutti gli schemi alla pagina originale dell'articolo dal quale è tratto questo post.
Cos'è Arduino:
Per chi ancora non lo conoscesse cerchiamo di dare qualche nozione fondamentale su Arduino e sul mondo che lo circonda in modo che tutti sappiano di cosa stiamo parlando.
Come già detto sono solo nozioni base, di introduzione al mondo Arduino; nulla di approfondito.
Arduino è una piccola scheda elettronica le cui dimensioni si avvicinano a quelle di una carta di credito. Il progetto Arduino rende facile ed accessibile imparare a programmare un microcontrollore e quindi ci permette di realizzare tantissimi progetti in maniera relativamente semplice.
Arduino include anche un ambiente di sviluppo IDE, ovvero un programma per PC grazie al quale sarà possibile scrivere codici e programmi da caricare successivamente sulla scheda. Il programma, detto anche "sketch" in gergo, verrà automaticamente trasformato in un eseguibile adatto al microcontrollore e caricato sulla scheda Arduino.
Se volete avere maggiori informazioni ed entrare nella filosofia Arduino vi consiglio di visitare il sito http://www.arduino.cc/ nel quale potete trovare una risposta a tutte le vostre domande.
Esiste ovviamente anche una pagina di Wikipedia alla quale vi rimando per ottenere altre informazioni aggiuntive sul progetto Arduino espresse in maniera molto chiara e semplice.
La scheda Arduino disponibile da Farnell


Interessante progetto.Con Arduino si riesce a realizzare davvero di tutto.
Il presente articolo fa riferimento ad un hardware non aggiornato…
Sul vecchio ATmega88 si avevano 8KB di memoria Flash.
Acquistando oggigiorno una scheda Arduino, viene fornita con il chip Atmel AT328 che prevede 32KB di memoria flash!
Quindi oltre a ricevere il segnale DCF77, il nostro sistema sarà capace di fare anche molto altro!
Riporto qui di seguito le differenze per quel che riguarda la memoria disponibile riguardante questa famiglia di processori Atmel:
Device – Flash – EEPROM – RAM
ATmega48PA – 4K Bytes – 256 Bytes – 512 Bytes
ATmega88PA – 8K Bytes – 512 Bytes – 1K Bytes
ATmega168PA – 16K Bytes – 512 Bytes – 1K Bytes
ATmega328P – 32K Bytes – 1K Bytes – 2K Bytes
Scusate ma sembra che il DCF77 sia un integrato, in realtà (wikipedia docet) è un sistema radio per trasmettere l’ora attuale in buona parte dell’eropa.
Progetto interessantissimo… Ora mi sono spiegato anche come fanno le semplici sveglie da tavolo a tenere aggiornata costantemente l’ora.
Mi chiedevo però se qualcuno sapeva spiegarmi come possono delle onde radio arrivare a distanze simili.. Come mai non trovano grossi ostacoli?
Leggendo da wikipedia vedo dalla cartina che riescono a raggiungere anche il nord africa dal centro europa…sono circa due mila chilometri..
Come fa il segnale a riflettersi così lontano? Grazie alla potenza del segnale o alla frequenza di 77 khz?
la frequenza bassa permette di scavalcare montagne come si accorse Marconi dai primi suoi esperimenti.
Ti sei risposto da solo, a quella frequenza la ionosfera è praticamente come uno schermo conduttore e se non sai niente di campi elettromagnetici ti posso dire che un onda incontrando un semispazio conduttivo viene riflessa. Tutto questo a grandi linee, ora come ora non riuscirei a dare spiegazioni pià esaustive anche se lo saprei fare.
Direi che è una risposta sufficientemente esaustiva.
Ma…mi sorge spontanea un’altra domanda…il segnale che arriva a destinazione perde per strada, diciamo così, alcune informazioni? in sostanza, quanto è affidabile?
Questa volta devo darti ragione, effettivamente, rileggendo l’articolo, mettendomi dalla parte di chi NON sa cosa sia DCF77, si potrebbe pensare ad un integrato.
Anche se comunemente possono venir chiamati “ricevitori DCF77”, sarebbe stato meglio specificare “ricevitori per segnali radio con protocollo DCF77”
Grazie della segnalazione.
Inoltre vorrei postare il link di un interessante progettino per segnali DCF77 che abbiamo pubblicato qualche tempo fa
http://it.emcelettronica.com/orologio-dcf77-con-pic16f628-e-display-led-7-segmenti
In più si può aggiungere memoria con lo shield SD.
Comunque il progetto è molto interessante.
Ma si può usare il segnale orario che si riceve al posto ad esempio di un Real time clock? Per esempio sfruttando il segnale binario che ci arriva?
Mi stupisco sempre della grande comunità di sviluppatore intorno alla progetto Arduino è anche la quantità di librerie disponibile e sviluppate nessun’altra piattaforma Si rinnova così velocemente ,
Allora il sistema DCF77 Usa come portante 77,5 KHz è da lì che divenne il suo nome ,
ma cosa interessante di queste onde e la loro distanza di percorrenza fino 2000 Km ,
È il fenomeno che questo tipo di onda a tendenza di notte a percorrere più grandi distanze che di giorno nemmeno io mi ricordo esattamente perché troppo lontano il corso di telecomunicazioni, il sistema DCF77 rimane largamente usato ancora su piccole apparecchiature tipo radiosveglia per il suo basso costo , attualmente si tende a usare il sistema Global Positioning System ( GPS ) , che in termini di efficienza è di grande lunga superiore sia in ordine di precisione visto che una volta sincronizzato il segnale su satelliti sia una precisione dell’ordine di un orologio atomico , sia di disponibilità del segnale che viene messo ventiquattr’ore su 24 / 24 .
Da quanto ho letto del dcf77 le informazioni non vengono codificate con codici a correzione di errore ne a rilevazione di errore quindi non c’é la possibilità di verificare se le informazioni ricevute siano corrette. L’affidabilità quindi direi che è bassa ma data la criticità dell’informazione si può aspettare la ritrasmissione successiva e verificare se la differenza tra i due orari è diverasa da 60 secondi. L’ora infatti viene ritrasmessa ogni minuto. Devo aggiungere però che dato il bitrate davvero basso penso sia difficile incappare in errori.
Chiaramente lo puoi fare ,
Ti spiego perché il sistema DCF77 diffondere un segnale orario che lui stesso ricava attraverso un orologio atomico , quindi se riesci a filtrarlo tramite un circuito orecchini clock, nel senso di alimentare con questo clock alimentare una CPU non ha tanto senso , ma una cosa interessante sarebbe visto la sua grande stabilità usarlo come riferimento di tempo o più specificamente come campione di base temporale , per applicazioni di precisione , ma chi consegnerebbe usare un ricevitore Global Positioning System ( GPS ) che ha migliore prestazione , l’unico vantaggio di usare il sistema DCF77 è il fatto che è un sistema civile a differenza del GPS quindi in tempo di conflitto rimarrebbe attivo teoricamente lo stesso.
Colpa dell’ozono, di giorno grazie agli effetti dei raggi del sole la sua quantità è maggiore mentre ovviamente di notte il sole non c’è e c’èmeno ozono. Almeno così mi spiegarono diversi anni fa.
beccato degli appunti miei del di telecomunicazione :
Un’ onda radio che raggiunge la ionosfera forza gli elettroni liberi ad oscillare alla stessa frequenza del suo campo elettrico.
Se l’ energia di oscillazione non viene persa per ricombinazione ( cioè se la frequenza di ricombinazione è minore della frequenza dell’ onda ) , gli elettroni cesseranno di oscillare reirradiando l’ onda verso terra. Maggiore è la frequenza dell’ onda incidente , maggiore sarà il numero di cariche libere necessarie per reirradiare l’onda . Nel caso non ci siano abbastanza cariche pronte ad oscillare, la riflessione totale ( e quindi la propagazione ionosferica ) non può avvenire.
Effettivamente..non è necessaria un affidabilità assoluta per questo tipo di dispositivi. Il loro pregio è il basso prezzo dopotutto.
Credo che un progettino del genere proverò a crearlo.. dite che poi è possibile con questo trasmettitore/ricevitore creare una sorta di timer che fa qualcosa a determinate ore?
Ti sbagli è solo un ricevitore del segnale orario chi viene trasmesso dalla Germania .
Be…vuol dire che la mia scheda riceve come input un segnale orario no? quindi posso configurarla in modo che a un determinato segnale faccia qualcosa no?
con un modulo ricevitore DCF77 e un microcontrollore (arduino pic ecc) l’unico limite che hai è la tua fantasia ! 🙂
modulo:
http://www.conrad.com/DCF-receiver-board.htm?websale7=conrad-int&pi=641138&ci=SHOP_AREA_17348_1101115&Ctx={ver/7/ver}{st/3ec/st}{cmd/0/cmd}{m/websale/m}{s/conrad-int/s}{l/int/l}{sf/%3Cs1%3E641138%3C/s1%3E/sf}{p1/ef175126437eac851698fd85e14242e4/p1}{md5/2e0968e28c6ef2925978b082ad286f96/md5}
Questa è la risposta giusta! Più economico di quanto pensassi!
Prossimo acquisto!
L’affidabilità delle informazioni non dipende dal fatto di perdere alcuni dati durante la trasmissione, ma dal software che decodifica il segnale ricevuto. Il dato in binario contiene data e ora e viene scandito in continuazione e confrontato con il precedente.
Se le informazioni ricevute in sequenza sono palesemente diverse fra loro vengono ignorate e quini si evitano le informazioni eventualmente alterate o frammentate durante il loro percorso “nell’etere”. Inoltre l’apparecchio ricevente contiene solitamente un orologio quarzato che continua a funzionare autonomamente anche quando manca il segnale in ricezione e si aggiorna periodicamente quando il dato ricevuto è sicuramente affidabile. Questo permette inoltre all’orologio di poter funzionare anche per lunghi periodi in assenza di collegamento col trasmettitore.
Infatti nei satelliti il sistema di localizzazione permette di conoscere la posizione di un oggetto una volta nota la distanza da almeno tre punti; ma come si fa a ricavare i dati corrispondenti? come funziona la cosa? Per comprenderlo bisogna inanzitutto dire che non è il sistema di satelliti, nè tutto quello che a terra lo assiste, a dare o ricavare la posizione: sebbene sembri assurdo, navstar si limita a trasmettere un segnale orario corredato da alcune informazioni sulla posizione dei satelliti che lo trasmettono. Chi determina la posizione? La propria posizione (è il caso di dirlo) è il ricevitore, che lo fa valutando opportunamente il segnale orario. Ecco come funziona la cosa: tutti i satelliti operativi hanno lo stesso orario, assicurato da quattro precisissimi orologi atomici (al cesio o basati su tecnologie più moderne) che mantengono l’ora (con una precisione di un microsecondo) e si correggono a vicenda; l’orario viene trasmesso da una stazione a terra che lo invia ai satelliti che si trovano in quel momento a vista quindi lo ripete verso gli altri, con le correzioni del caso ovvero quelle dovute al tempo che le onde radio impiegate a propagarsi da un apparato all’altro. Gli orologi sfruttano tecniche diverse: quelli dei sattelliti di ultima generazione si basano su maser passivo a idrogeno e frequenza standard dell’atomo di rubidi, il cui errore è dell’ordine di pochi miliardesimi di secondo al giorno;i più datati lavorano sull’emissione dell’atomo al cesio tutti sfruttano il medesimo principio: somministrando ad un atomo una certa quantità di energia (ad esempio sotto forma di luce) se ne porta la struttura da un livello energetico ad uno superiore; per l’esattezza si passa dalla condizione di atomo normale a quella di atomo eccitato. Ciò corrisponde a spostare uno o più elettroni da un livello energetico a d uno superiore (ossia dall’orbitale corrispondente alla posizione naturale ad uno più esterno, la cui energia potenziale è maggiore, visto che deve tenere legato al nucleo un elettrone più lontano). L’atomo tenderà a rientrare nel proprio stato di iniziale e quando lo farà cederà energia ricevuta sotto forma di radiazioni e micro onde, la cui frequenza è estremamente stabile, visto che stabile è il procedimento fisico che lo origina. Infatti la lunghezza d’onda della radiazione dipende dagli stati energetici, i quali sono, a loro volta, determinati dalla struttura atomica, che è sempre quella. Queste erano alcune info su come l’ora, che per noi è soltanto (per modo di dire) il tempo che scorre e un’appuntamente importante da non mancare, in realta è usata per sincronizzare in maniera microscopita i nostri angeli custodi che oggi come oggi senza di loro non potremmo vivere. E se andiamo a pensare come noi regoliamo i nostri orologi: 5 minuti avanti o 10 minuti indietro, dipende da dove ti trovi e quardando chissa quale campanile o orologio di un bar regoli il tuo tempo più o meno; mentre i nostri angeli custodi mantengono una precisione di un microsecondo (Incredibile). Ovviamente i satelliti non si scambiano solo l’ora ma dei codici con i quali si scambiano info ma mi fermo quì altrimenti vado veramente fuori argomento.
Ciao
Premetto che di realizzazioni di ricevitori DCF77, in rete, se ne possono trovare una marea, da quelli più semplici utilizzanti moduli premontati come quello dell’articolo a progetti più complessi ma che sinceramente preferisco per il carattere altamente didattico in cui il ricevitore vero e proprio a 77.5Khz è realizzato partendo da zero e mostrando passo dopo passo le considerazioni progettuali avanzate fino ad arrivare al prodotto finito. A tal proposito mi verrebbe da proporre un link su cui trovare un progetto ricadente nell’ultima categoria descritta: http://stor.altervista.org/elettronica/dcf77/dcf.htm Consiglio vivamente anche solo una lettura del progetto proposto nel link perché credetemi è davvero altamente istruttivo. Ovviamente, progettare o realizzare un orologio digitale auto sincronizzante con tanto di ricevitore costruito adhoc senza avvalersi di moduli premontati porterebbe certamente a dare delle indubbie soddisfazioni, ma si andrebbe anche in contro al rischio che qualche errore di progettazione o di realizzazione dello stadio ricevitore possa portare a delle deludenti e preventive conclusioni negative del progetto. Forse questo non è effettivamente il caso data la bassa frequenza con cui si lavora (e quindi date le alte lunghezze d’onda non ci sono quei grossi problemi sulle linee di trasmissione, adattamento delle linee, ecc…tutte cose da tener in conto, al controrio, nella progettazione a microonde…) però se ci si vuole cimentare solo nella decodifica del protocollo, senza entrare nei dettagli del frontend analogico di ricezione, allora va benissimo utilizzare moduli premontati. Ovviamente, con quest’ultimi, si ha la certezza matematica che il segnale venga ricevuto correttamente e poi lo spazio occupato sulla nostra PCB è sicuramente notevolmente ridotto rispetto a ciò che si andrebbe ad occupare costruendo il ricevitore da zero. Naturalmente, per quanto possa essere soddisfacente un risultato positivo al collaudo del nostro bel orologio completamente auto costruito, neanche io mi ci metterei a perdere del tempo ad iniziare un progetto da zero se so che in commercio esiste già qualcosa di collaudato e garantito che mi possa assicurare il tanto sperato risultato finale…non trovate? Concludo dicendo che sicuramente la strada più furba ed elegante per realizzare un orologio tele sincronizzato tramite il protocollo DCF77 vede l’utilizzo del modulo premontato (poco ingombrante, garantito al 100% per il suo funzionamento, economico per quello che fa) ma è altamente produttivo dal punto di vista culturale sapere quali blocchi sono evidentemente implementati all’interno del modulo, qual è la loro funzione sul sistema complessivo e come tali blocchi si connettono tra di loro per ottenere il risultato finale: una demodulazione omodina a 77.5khz per ottenere un segnale seriale digitale puro!!Tale segnale demodulato viene successivamente processato da un microcontrollore o come in questo caso da un harware come Arduino e voilà la nostra ora e data visualizzata sui supporti più disparati, dai display LCD alfanumerici, a quelli grafici (su youtube gira un progetto abbastanza carino di simulazione di un orologio analogico su display grafico 64×64), ai propeller led display fino alla forse più classica visualizzazione dei dati decodificati direttamente su PC tramite software dedicato con magari aggiunta anche una funzione di autoregolazione dell’orologio di sistema…diciamo che qui la fantasia ha ampio margine per spaziare da un’idea all’altra e all’altra ancora…:)
Bel progetto, anche molto utile, ed è uno dei tanti progetti che è possibile fare con Arduino!
Sarei molto interessato a vedere quali sono le funzioni aggiuntive che possono essere attivate con le altre relese dei software.
Credo che questi circuiti elettronici che possono rilevare l’ora, possono essere sicuramente applicabili a microcontrollori come PIC o ST6, che possono essere programmati molto più facilmente e professionalmente dell’Arduino (almeno credo ancora non ho sperimentato Arduino).
Che voi sappiate, ci sono anche altri tipi di circuiti simili che possono raccogliere informazioni satellitari?
Di moduli di ricezione satellitare GPS ce ne sono in commercio, sicuramente più sofisitcati e costosi di un semplice demodulatore DCF77, ma comunque facilmente interfacciabili con i vari microcontrollori attraverso i bus di comunicazione più diffusi come SPI e I2C…praticamente puoi ottenere e visualizzare le coordiate del punto in cui si trova il ricevitore e forse (o sicuramente) altre informazione come data e ora su un display LCD, oppure su un PC tramite software dedicato ecc…basta crearsi le giuste librerie per il microcontrollore specifico (oppure scaricarle da internet dato che di porgetti ne trovi a bizzeffe) e il gioco è fatto!! 😉
Spiegati meglio, intendi forse dire progetti con Arduino ed un ricevitore GPS?
O per segnali dai satelliti ti riferisci a qualcosa di piu specifico… military / aereospace?
Io sinceramente intendevo ricevitori GPS che restituiscono le coordinate del punto in cui ci si trova, e che io sappia di progetti (almeno gestiti con microcotrollori PIC) ce ne sono un pò in rete…lo so perchè tempo fa un mio amico voleva realizzare un antifurto GPS da montare sulla propria auto e che tramite l’invio di un SMS riusciva a scoprire il luogo in cui l’automobile si trovava a seguito di un eventuale furto…poi tramite le mappe di Google riusciva ad ottenere il mappaggio preciso del luogo in cui si sarebbew trovato il veicolo…poi non so precisamente e che tipo di informazioni satellitari si riferisse Francesco92-12…
Allora, quando ho letto l’articolo mi è subito piaciuta l’idea di un orologio tele controllato da un segnale orario e devo dire che non conoscendo benissimo il modulo per la decodifica del segnale DCF77 la prima cosa che ho fatto è documentarmi sul come viene inviato il segnale e soprattutto come sia possibile estrarre un’informazione oraria dal segnale stesso ricevuto. Quindi google alla mano, wikipedia come supporto e tanti e tanti siti su cui ho potuto constatare come pur essendo un argomento nello specifico a me ignoto, in realtà questa tecnica di sincronizzazione oraria va avanti da anni e le sveglie (anche tutto sommato economiche) si agganciano a questo segnale e si autoregolano sull’orologio atomico tedesco. La portata del segnale è davvero notevole perché partendo dal centro Europa arriva a sfiorare senza problemi il nord Africa, quindi dal mio punto di vista è un qualcosa di davvero impressionante. Confermo ovviamente quanto sia stato già detto sul come questo segnale riesca a raggiunge un raggio di copertura così ampio, e il merito è proprio della bassa frequenza di 77.5khz alla quale corrisponde una lunghezza d’onda di 3871m, cioè quasi 4 Km. Perché un ostacolo possa interagire efficacemente con un’onda elettromagnetica avente tale lunghezza d’onda, dovrebbe essere delle dimensioni almeno dello stesso ordine di grandezza di lambda, quindi dell’ordine dei km… reminiscenze del corso di fisica…:D…Oltre a questo ho avuto modo di capire un po’ tutto il protocollo di comunicazione riuscendo a distinguere i vari campi del pacchetto trasmesso da cui estrarre informazioni sull’ora, la data, ecc…Come è già stato notato non c’è un controllo di integrità del dato, ma questo penso che non rappresenti un grosso problema visto che non si tratta di segnali sui quali sincronizzare comunicazioni e processi ad alta affidabilità…e infine mi sono cimentata nella consultazione di possibili configurazioni circuitali utilizzanti moduli come quelli proposti dall’articolo abbinati però non ad Arduino ma a microcontrollori PIC o Atmel…D’altronde, come diceva un professore di controlli digitali, “non importa il linguaggio con cui scrivi il programma, ciò che conta è l’algoritmo…quando hai l’algoritmo in mano hai la chiave del sapere e della conoscenza”…grande saggio direi!! 😀
Sicuramente, il progetto in se è abbastanza interessante anche se avrei preferito che data e ora fossero visualizzate direttamente su un display LCD alfanumerico anzicchè inviare i dati al computer e sfruttare una qualche interfaccia software per lo scopo…Poi si parla nell’articolo di routine e librerie per Arduino, e premettendo il fatto di non disporre di una scheda di questo genere e non avendoci mai avuto a che fare, mi tornerebbe difficile capire come strutturare la stesura del codice per un’interfaccia di questo genere. Il progetto sembrerebbe essere ancora in una fase iniziale di definizione e penso di seguire gli sviluppi futuri per un duplice scopo: approfondire l’utilizzo del protocollo DCF77 per poi cercare di realizzare una radiosveglia autoregolabile (sarebbe una vera soddisfazione far vedere l’orologio agli amici e poter dire di averlo realizzato io…:D) e in più studiare come si programma e ci si approccia con Arduino, la scheda Open Source più rinomata al mondo…;)
Scusa ma come puoi ricavare un riferimento temporale da un segnale GPS? Il GPS non ti fornice dei dati riferiti alla posizione globale di longitudine e latitudine?
Spero di non aver capito male, ma se è vero vorrei tanto capirne il principio di funzionamento dato che si possono prendere due piccioni con una fava, non so se mi spiego, insomma posizione e tempo con un solo dispositivo!!!!
ti Spiego semplicemente come funziona il sistema GPS o con il suo vero nome non abbreviato Global Positioning System ,
Per localizzare longitudine e latitudine il sistema usa la triangolo in realtà misura la distanza dal ricevitore GPS con almeno tre satellite , per fare una tale misura non impiega come normalmente si impiega la potenza del segnale visto che alle frequenze che funzionano 1.3 GHz è molto disturbato e molto aleatoria e non parliamo di quanto è in movimento , si è optato per un’altra scelta quella di cronometrare il tempo di percorrenza del segnale , visto che il tempo e la distanza sono strettamente legati . teniamo conto che un’ onda elettromagnetica viaggia 300.000 Km/s se alla velocità della luce nel vuoto , considera che nell’ atmosfera ha solo due terzi della sua velocità .
Da questo principio per misurare una distanza è sufficiente prendere due stazioni la prima trasmette alla seconda della seconda ritrasmette il segnale all’indietro così alla prima stazione misuri il tempo di andata e il ritorno lo dividi per due e sottrae i tempi di latenza dell’impianto è da questo tempo può ricavare la distanza ,
ma questo sistema è improponibile con un sistema globale , e perché mi include di avere un andata e ritorno o una via bidirezionale.
Per questo si è optato un sistema che manda anche a chi istante è stato trasmesso il segnale , così nel mio ricevitore o l’ora esatta di ricezione e l’ora con il ritardo di quanto è stato spedito fa in una sottrazione tra i due e ottieni il tempo di propagazione questo è il principio ma il sistema di implementazione è molto più complesso.
una volta che gli ho tenuto le distanze del satellite devi sapere con esattezza come sono sincronizzati tra di loro per questo si usa degli orologi atomici che hanno una precisione molto elevata in cui una parte distribuiti a terra che servono a correggere le orbite dei satelliti e altri a bordo dei satelliti , viene creato un’ora globale tra tutta la costellazione dei satelliti preciso mi sembra nell’ordine di 1 ms viene trasmesso il continuo ora e data che viene mescolato nel segnale del GPS .
In questo momento agli di distanze esatte e ali anche le posizione dei satelliti nel cielo con un po’ di geometria riesci a determinare il punto con le coordinate longitudine e latitudine .
Quando viene il ricevitore viene acceso e cerca di posizionare la prima cosa che cerca e di ricavare l’ ora del segnale così da potere agganciare più facilmente , quest’ ora può essere estratta e usata come uno mi fa più comodo , un’ altra cosa interessanteè che questo segnale orario viene trasmesso di continuo e non ogni minuto come nel segnale DCF77 e la precisione è dell’ ordine di un orologio atomico e quindi può essere anche usato in laboratorio come campione di tempo .
Spero che non sono stato un po’ troppo confusionaria , ma si trova facilmente la documentazione di come funziona il sistema ,
Si hai capito come funziona il sistema GPS. Se vuoi ti do una piccola nozione di storia: circa cinqunt’anni fa, cioè nel secondo dopo guerra quando gli USA, per contrastare l’insorgere minaccia dell’allora UNIONE SOVIETICA, commissionarono al gruppo Rockwell (Rockwell Aereospace & Avionics, Collins) unsistema in grado di guidare le navi (e in un secondo tempo anche gli aerei) in maniera del tutto innovativa: niente più carte, ingomranti e fastidiose, ma un apparato elettronico capace di determinare in ogni momento la posizione del natante anche senza bussola. Il sistema sattelitare (scopo del quale, oltre alla localizzazione, era fornire a terra un segnale orario per sincronizzare le operazioni belliche) ideato nel lontano 1940 ma seriamente considerato durante la guerra fredda, venne chiamato Navstar ( sigla di NAVIgation Signal Timing And Ranging) e ben presto fu applicato anche alla localizzazione di mezzi militari sulla terra ferma,postazioni mobili e imbarcazioni eventualmente in difficoltà e alla pianificazione di eventuali operazioni di soccorso. Quanto al termine GPS, esso è l’acronomo di Global Positioning System, che tradotto in italiano significa sistema di posizionamento globale;è il sistema di localizzazione sattelitare il cui funzionamento è basato sulla rete Navstar. Spero di essere stato esaustivo e non troppo pesante.
Ciao
E’ un buonissimo spunto per iniziare a fare entrambe le cose!
Gia, in effetti decodificando il segnale GPS, si ottengono le seguenti informazioni, tra cui anche l’ora con una ottima precisione :
1 = UTC time of fix
2 = Data status (A=Valid position, V=navigation receiver warning)
3 = Latitude of fix
4 = N or S of longitude
5 = Longitude of fix
6 = E or W of longitude
7 = Speed over ground in knots
8 = Track made good in degrees True
9 = UTC date of fix
10 = Magnetic variation degrees (Easterly var. subtracts from true course)
11 = E or W of magnetic variation
12 = Mode indicator, (A=Autonomous, D=Differential, E=Estimated, N=Data not valid)
13 = Checksum
Estraendo il primo campo e considerando il time shift nella zona rispetto alla UTC si ha l’ora
Unico neo di utilizzare un GPS e’ che all’interno di edifici questo segnale solitamente non si riesce a leggere, mentre le onde radio del sistema DCF77 solitamente si prendono anche all’interno.
Faccio notare che le schede Arduino (nelle diverse varianti esistenti) possono interfacciarsi anche con altri software quali, ad esempio, quelli specificatamente progettati per un uso “Domotico”. Un tipico esempio lo trovate sul mio sito (al momento ancora altamente incompleto), a questo indirizzo:
http://elettrolinux.com/Home-automation/stantor-a-domotic-project.html
nel quale trovate anche tutti i link necessari alle varie schede, driver, software etc …naturalmente io mi occupo solo di GNU/Linux, ^_^ quindi nel mio sito troverete tutto ciò che è inerente a questo sistema operativo però solo in alcuni campi applicativi (quelli di mio interesse 😛 ).
Bye 😎
Io aggiungerei il fatto che il sistema GPS è nato anche per rimpiazzare il vecchio sistema Loran ( LOng RAnge Navigation ) che differenza del GPS Usa delle stazioni radio di terra , che lo rende molto vulnerabile in caso di conflitto visto che usa il Antenna terra nel passato è già successo che alcune antenne sono state distrutte o rese inoperabile da un certo kadafi nel lontano 1986 ,
Vi riporto una piccola pezzo dove spiega giacché all’epoca kadafi aveva sparato contro l’Italia
Gate Guard at LORSTA Lampedusa. LORSTA Lampedusa increased security after Omar Kadafi (Lybia) fired some missiles at the nearest U.S. Military installation to his country … the Loran Station in 1986.
Onde evitare questo piccolo inconveniente si è pensato preferire i sistemi già bene integrato con satelliti essendo molto più difficile distruggere un satellite allora anche loro attuale
una cosa interessante e già questo sistema comprendeva l’invio dell’ora e del sincronismo
tre siti e qualcuno volesse approfondire questo argomento
http://it.wikipedia.org/wiki/LORAN
http://www.loran-history.info/lampedusa/lampedusa.htm
http://www.matematicamente.it/giochi_e_gare/archivio_quesiti/loran_200709161626/
Nel sistema GPS il segnale che è dedicato military / aereospace non è utilizzabile per nessun civile. nel sistema GPS ci sono due segnali L1 e L2 .
È attualmente non trovi nulla di come aprire il segnale riservato military / aereospace.
Ma è una variante di Arduino? che ha in comune?
E’ una sorta di arduino specifico oppure è una scheda che hai creato tu che centra poco con Arduino? 😉
Ho guardato quelle schede in realtà sono delle schede di tipo I / O si servono a controllare delle apparecchiature esterne attraverso la porta USB di un computer Linux ,
Fondamentalmente con una scheda Arduino si dovrebbe fare la stessa cosa .
che so, esistono delle shield Bluetooth costruite sia in versione Slave che Master per cui, con la versione Master potrebbe benissimo interfacciata con ricevitori GPS/Bluetooth.
Tempo fa sono riuscito a interfacciare un pc con il ricevitore GPS, ma come già detto, il segnale all’interno di un appartamento risulta troppo debole.
esistono delle shield GPS o esistono componenti GPS ed hanno direttamente il segnale con una seriale RS232 o I2C
Molto interessante come progetto, un piccolo ricevitore di ora esatta tramite il segnale DCF77… Voglio subito provarlo! Volendo si potrebbe abbinare alla shield VideoOverlay per poter trasmettere l’ora esatta su un display analogico, magari “condita” con altre informazioni quali umidità, temperatura, pressione eccetera ed usarlo come monitor di gestione della casa… è proprio vero: le vie di Arduino sono (quasi) infinite!!! Magari è possibile che un domani progettino i controlli di uno Space Shuttle usando il nostro Arduino!!!
Ciao a tutti,
ho scaricato il sorgente che è in cpp, in che modo può essere utilizzato sull’arduino?
oppure avete una versione da compilare compatibile con c/processing?
Grazie in anticipo.
Caro Giannino,
benvenuto sull’Elettronica Open Source.
Del DCF77 ne abbiamo parlato anche qui
http://it.emcelettronica.com/orologio-dcf77-con-pic16f628-e-display-led-7-segmenti
Mi sembra un argomento sempre attuale, un classico evergreen, non trovi?
Non ho trovato lo schema di collegamento:
”
Potete fare riferimento allo schizzo che trovate nel link a fondo pagina per il quale è stato utilizzato il “BN DCF-Empfänger 641.138″ di Conrad. Sempre in riferimento al progetto originale avremo bisogno di una resistenza di pull up.”
Il DCF ha 4 morsetti:
DCF Arduino
==========================
1: negativo ———- GND
… negativo–R?—– Pin=7
3: dati ———— Pin=7
2: positivo ——– +5vcc
4: non collegato
Quanto deve essere il volre della Resistenza?
Grazie in anticipo.
Il mio indirizzo: baffardello ( a t ) gmail.com
Il link è presente all’interno dell’articolo, puoi seguirlo ed arrivare alla documentazione.
La resitenza di cui parli mi sembra sia di pullup (giusto?)
sul foglio tecnico del modulo dcf77 è specificato di connettere eventuali pullup calcolati per una corrente di 1mA