Forum: Mikrocontroller und Digitale Elektronik Kommunikation zwischen zwei AVRs u.a. zur Zeitsynchronisations


von Erich F. (erich_f27)


Lesenswert?

Hallo Allerseits!

Ich arbeite an folgender Problemstellung:
2 AVRs (A1 und A2) befinden sich zwischen 18 und 70m(90m) voneinander 
entfernt.
Beide AVRs verfügen über einen Beschleunigungssensor.
Es soll die Zeit gemessen werden, welche zwischen zwei 
Beschleunigungspeeks verstreicht.
Dabei geht der Startimpuls immer von A1 aus und der folgende Impuls bei 
A2 erfolgt zwischen 0,1 und 2 Sekunden später.
Diese Zeit zwischen den beiden Peeks soll so genau wie möglich gemessen 
werden.
Zwischen den beiden AVRs befindet sich nur "Luft", d.h. für die 
Signalübertragung reicht die sog. "Freifeldreichweite".
Die Auswertung bzw. Anzeige erfolgt ausschließlich durch A1.

Ich habe das Problem mal möglichst weit abstrahiert beschrieben, wen's 
interessiert, ich möchte damit die Durchschnittsgeschwindigkeit eines 
Pfeiles zwischen Abschuss vom Bogen bis zum Auftreffen auf die Scheibe 
ermitteln.

Wie geh' ich hier nun am besten vor?
Ist es günstiger im Augenblick der Detektion ein Signal an A2 zu funken?
Dann habe ich aber eine gewisse Signallaufzeit und bei eventuellen 
Funkstörungen eine Fehlmessung.
Oder ist es besser die "Uhr" beider AVRs zu synchronisieren und dann nur 
die entsprechende "Uhrzeit" von einem zum anderen zu übertragen.
Wobei auch hier wieder die Frage ist, wie synchronisiere ich die beiden 
Uhren. Das könnte jedoch auch über eine Draht- oder IR-Verbindung zu 
Beginn der (gesamten) Messreihe geschehen. Dann müssten die beiden Uhren 
jedoch für mindestens eine Stunde, besser zwei synchron laufen. Ist das 
möglich?

Wie würdet Ihr vorgehen?

Grüße
  Erich
PS: Da ich am Bogen auch die beim Abschuss aufgetretenen 
Beschleunigungen in drei Achsen aufzeichnen möchte, suche ich einen 
entsprechenden 3-Achsen-Beschleunigungssensor. Leider habe ich im 
Bereich von +-200g noch nichts günstiges gefunden. Mir würde hier was in 
der Art eines ADXL335 vorschweben nur eben mit höheren g-Bereich.

von Floh (Gast)


Lesenswert?

Erich F. schrieb:
> Wie geh' ich hier nun am besten vor?
> Ist es günstiger im Augenblick der Detektion ein Signal an A2 zu funken?

So würde ich es machen. Die Signalverzögerung per Kabel ist bei der 
Geschwindigkeit des Pfeils vernachlässigbar.

Mit was für einem Bogen schießt du? Möglicherweise mit Klicker? Dann 
könnte man sich eventuell den ersten ACC sparen :-)

von Erich F. (erich_f27)


Lesenswert?

Floh schrieb:
> Die Signalverzögerung per Kabel ist bei der
> Geschwindigkeit des Pfeils vernachlässigbar.

Sorry, aber ich möchte keine 70m Kabel verlegen und jedesmal mit mir 
rumschleppen, deshalb soll die Signalübertragung eben über Funk gehen 
und da befürchte ich eben gewisse und auch unterschiedliche 
Signallaufzeiten.

>
> Mit was für einem Bogen schießt du? Möglicherweise mit Klicker? Dann
> könnte man sich eventuell den ersten ACC sparen :-)

Ich schiesse zwar mit Klicker, aber das ist keine Option, da der 
Zeitraum vom "Klick" bis zum Lösen nicht immer gleich ist. Zudem, wie 
beschrieben möchte ich eh den sog. Bogenschock aufzeichnen, dann fällt 
der Schusszeitpunkt automatisch ab.

Gruß
  Erich

von Adib T. (adib_t)


Lesenswert?

Hallo Erich,

Du könntest je einen Transmitter am Bogen und an der Scheibe anbringen. 
Die bei Event mehrfach mit delay aussenden zB 10x und einen Index im 
Protokoll erhöhen. Ein dritter Empfänger (am PC) wertet das ganze 
zeitlich aus. So hast du Sicherheit bei Übertragungsfehler mal ein 
Protokoll wiederherzustellen.
Ich nehme solche Module mit atmega und at86rf212. Bei der Anwendung 
brauchst du auch keine Kollisionserkenneung/-vermeidung und kannst 
direkt verzögerungsfrei auf das Medium gehen.

Der Empfänger bekommt im Idealfall 10 Protokolle vom Bogen und 10 
Protokolle von der Scheibe.

Viele Radio-Frontends bieten die Möglichkeit ein Interrupt bei Empfang 
zu generieren. Die Übertragungszeit sollte entweder vernachlässigbar 
klein oder aber konstant sein. Wie lange ist der Pfeil in der Luft?

HTH, Adib.

von Erich F. (erichabg)


Lesenswert?

Hallo Adib!

> Ein dritter Empfänger (am PC) wertet das ganze
> zeitlich aus.
Ich wollte das ganze eigentlich unabhaengig von einem PC machen.
Die Auswertung sollte der AVR am Bogen selbst vornehmen und nur optional 
ueber Blutooth an ein Android Smartphone oder eben einen PC senden.


> Viele Radio-Frontends bieten die Möglichkeit ein Interrupt bei Empfang
> zu generieren. Die Übertragungszeit sollte entweder vernachlässigbar
> klein oder aber konstant sein. Wie lange ist der Pfeil in der Luft?

Wie schon geschrieben gehe ich von wenigen 1/10tel Sekunden bis zu max. 
2 Sekunden aus. Das ist abhaengig vom verwendeten Material und den 
Abstand von der Scheibe (18 bis max 90m). Bei 18m und einer 
Pfeilgeschwindigkeit von 200km/h sind's so um die 0,3 Sekunden bei 90m 
dann schon ca. 1,6 sec.

Gruesse
  Erich

von Anja (Gast)


Lesenswert?

Erich Freibert schrieb:
> Bei 18m und einer
> Pfeilgeschwindigkeit von 200km/h sind's so um die 0,3 Sekunden bei 90m
> dann schon ca. 1,6 sec.

Wie genau muß es denn sein?

Ein normaler Quarz ohne Abgleich hat so 30-100ppm Abweichung
Bei 2 Stundan also schon knapp eine Sekunde.
Mit Abgleich wird es besser. Aber du kannst wahrscheinlich nicht 
garantieren daß die Temperatur konstant bleibt bzw. beide Quarze gleich 
reagieren.

Mit 2 DCF77-Empfängern hättest Du eine sehr genaue Zeitbasis. Allerdings 
dürften die Flanken in den Empfängern nicht kurzzeitstabil genug sein.

-> eventuell eine Kombination aus DCF77 und lokaler Quarzuhr um die 
Quarze über Temperatur und Absolutgenauigkeit abzugleichen.

Gruß Anja

von Adib T. (adib_t)


Lesenswert?

Erich Freibert schrieb:
> Hallo Adib!
>
>> Ein dritter Empfänger (am PC) wertet das ganze
>> zeitlich aus.
> Ich wollte das ganze eigentlich unabhaengig von einem PC machen.
> Die Auswertung sollte der AVR am Bogen selbst vornehmen und nur optional
> ueber Blutooth an ein Android Smartphone oder eben einen PC senden.
>
...
>
> Gruesse
>   Erich

dann sende einfach die Daten von der Scheibe mit einer konstanten 
(bekannten) Verzögerung zum Bogen zurück.
Die Verzögerung rechnet der Boge-Empfänger wieder raus.
Mehrfachübertragung erhöht die Datensicherheit.
Bei reiner Laufzeitmessung brauchst du auch keinerlei DCF 
Synchronisation und die Quarze sind über einen Messintervall von 2sek 
ausreichend stabil.

Gruß, Adib.

von Erich F. (erich_f27)


Lesenswert?

Adib T. schrieb:
> dann sende einfach die Daten von der Scheibe mit einer konstanten
> (bekannten) Verzögerung zum Bogen zurück.

Hallo Adib!

Die Frage ist, ob die Verzögerung durch die Funkmodule immer gleich ist? 
Da werde ich wohl mal einen Versuch aufbauen müssen. Ich verbinde dazu 
einfach die zwei AVRs zusätzlich noch mit einem Kabel und schaue dann 
mal wie gross diese ist. Eventuell hat hier im Forum ja schon mal jemand 
so einen Test durchgeführt, dann könnte ich mir das sparen?

Bei den Funkmodulen denke ich an sowas 
http://www.pollin.de/shop/dt/OTI5OTgxOTk-/Bausaetze_Module/Module/Funkmodul_RFM12_Sende_Empfangsmodul.html
oder dieses 
http://www.pollin.de/shop/dt/MDU4OTgxOTk-/Bausaetze_Module/Module/Funkmodul_RFM70_Sende_Empfangsmodul.html
Waeren halt ziemlich einfach zu integrieren.

Grüsse
  Erich

von Adib T. (adib_t)


Lesenswert?

Also ich benutze die Module von AN Solutions http://www.an-solutions.de/
oder ATZB900 
http://de.farnell.com/atmel/atzb-900-b0r/mod-zigbit-900mhz-balanced-port/dp/1773402?Ntt=atzb900
Da kommuniziere ich direkt mit dem RF Frontend und kann die Verzögerung 
als konstant ansehen. Vorteil der Atmel ist gleich in den Modulen drin.
WEnn du ein Modem Chip dazwischenhängst, der erst Verbindung aufbauen 
muss, Clear Channel test macht und und und, kann es sein das du da einen 
Jitter reinbekommst.
Gruss, Adib.

von Anja (Gast)


Lesenswert?

Erich F. schrieb:
> Die Frage ist, ob die Verzögerung durch die Funkmodule immer gleich ist?

Das wird wohl auch von den Störungen in der Umgebung und den 
Entfernungen abhängen.

Gruß Anja

von Tom (Gast)


Lesenswert?

Hallo,

Ich würde mit sowas
http://de.wikipedia.org/wiki/Precision_Time_Protocol
die Stationen ständig (bzw. min-Takt) synchronisieren. Dann werden nur 
noch die Ereignisse mit Zeitstempel versehen.

BG Tom

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.