Zwei Controller synchronisieren

OP #1089414
Lesenswert?

Hallo,
ich habe hier mehrere Platinen die über einen Zeitraum von ca. 2 Minuten 
synchron laufen sollen. Es geht um Ultraschallbaken. Wenn ich das mit 
einem Uhrenquarz mit +/-10ppm mache habe ich nach 1:30 eine Abweichung 
von maximal 30cm. Und das ist eindeutig zu viel.
Kabel ist keine Alternative und ich denke, dass es mit IR auch etwas 
schwer wird, da ich das dann RC5 Codieren MUSS und die Auswertung ist 
vermutlich nicht immer genau gleich schnell. Hat damit jemand Erfahrung 
oder noch ne andere Idee?
#1089419
Lesenswert?

Laser/LED auf eine Photodiode, die mit einem Transitor auf einen Pin 
geht der einen externen Interupt auslöst und die Zeit auf eine Feste 
Zeit einstellt. Der erste µC sended bspweise genau alle x Takte per 
Timeroverflow Interupt den Strahl für genau einen Takt. Der andere µC 
wird per Interupt auf dieses Ereigniss getimed. Zu beachten ist nur die 
Verzögerung bis der Interupt eintritt und das Signal beim 2ten µC 
verwertet werden kann. Oder aber du lässt beide µCs mal mit ner Uhr ne 
Zeitlang laufen und schaust nach wie die genaue Abweichung ist und 
korregierst sie in Software. Außerdem erscheint mir die Abweichung recht 
hoch, dass das bei 2min schon einen solchen Fehler hervorruft.

Gruß ErgoProxy und schöne Weihnachten noch.
OP #1089424
Lesenswert?

Und in wie fern unterscheidet sich nun deine Laser-Technik vom RC5?
Es geht ja um einen Roboter der sich auf einem Spielfeld zurechtfinden 
muss. Problem an der Sache ist, dass da noch mindestens ein weiterer auf 
dem Feld ist der mit Pech auch sowas verwendet.
Wenn dann müsste man es so machen, dass durch den Impuls nur der Wert 
der mit dem Uhrenquarz erzeugt wurde korrigiert.
Was die Abweichung angeht: Rechne das mal hoch auf nen Jahr, dann bist 
du bei nen paar Minuten. Viel genauer sind digitale Quarzuhren doch auch 
nicht oder?
Und 30cm, sind 0,3m wären bei einer Schallgeschwindigkeit von 330m/s 
dann nur 9*10^-5 Sekunden! Das sind 90 mikro Sekunden! Ich finde das ist 
schon recht genau, aber eben nicht genau genug.

Das mit der Software-Komensation wäre ne Alternative aber schwankt das 
dann nicht auch wieder unterschiedlich je nach Temperatur? Oder müsste 
die Abweichung bei allen dann in etwa gleich sein?
Gast #1089425
Lesenswert?

Könnte man auch eine Externe Taktquelle einsetzen die Per IR-Impuls 
jeweis den Takt angibt?
Geht aber vermutlich nur wenn es recht dunkel ist, denn bei der 
Geschwindigkeit kann man keine Modulation verwenden.
#1089433
Lesenswert?

Du hattest wenn mich nicht alles täuscht nicht gesagt, dass es sich um 
Bots handelt oder aber andere IR-Quellen stören können. Und bei mir ist 
einfach die Unterscheidung gewesen, dass es nicht ausgewertet werden 
muss, es wäre damit allerdings störanfälliger, aber bei normalen sich 
nicht bewegenden Platinen unter immer gleichen Bedingungen würde das 
wohl nichts machen. Also Das nächste mal schreib doch bitte wofür es ist 
und nicht erst nachdem du eine Lösung hast die du dann auf Grund deiner 
Begebenheiten ausschließen kannst.

Gruß ErgoProxy
Gast #1089438
Lesenswert?

Hallo Fabian,

du brauchst nur einen Master der z.B. alle 10ms ein Signal sendet.

Der Start der Übertragung ist die Syncronisation und die Daten nur
absicherung ob es eine gültige Übertragung war und Abgleichwert.
Jede Platine kennt das Zeitraster und weis mit dem Abgleichwert die Zeit
bei der nächsten Syncronisation.
Jede Platine timt sich jedoch selber und ändert nur ihren internen
Zähler so, daß er bei Syncronisation die 10ms genau erreicht.

Das Prinzip ist ähnlich wie DCF77 nur schneller.

Übertragen kannst du mit IR oder Funk (RFM?).

gruß hans
OP #1089440
Lesenswert?

Funk? Denke das wird nichts... Habe hier zwei Easy Radio Module und bis 
die die Daten immer verarbeitet haben vergeht in der digitalen Welt ne 
kleine Ewigkeit.
Naja IR war eben meine Frage. Ich würde es ja codieren müssen (RC5?) und 
meine Befürchtung ist, dass die Auswerung der Daten ist so 
unterschiedlich schnell ist, dass das zu ungenau wird. Und ohne 
Codierung wird es schwer die Signale zu validieren, da da ja alles 
Mögliche andere von den anderen Bots noch zwischenfunken kann.

Mir ist auch klar, dass die Abweichung der Quarze sich stark verändert 
bei Temperaturschwankungen, aber wenn man sagen kann sie steigt bei 
einter Temperaturveränderung bei allen Quarzen um genau den gleichen 
Faktor könnte man das ja kompensieren.

Wie machen denn die GPS-Empfänger das? Die Sateliten senden doch auch in 
regelmäßigen Abständen EM-Impulse aus, wo die Uhr zwar nur für ein 
Bruchteil einer Sekunde genau gehen muss aber dafür SHER genau.
#1089442
Lesenswert?

So ein GPS empfänger braucht ja nicht umsonst ein paar Minuten zur erst 
Positionierung. Die sateliten senden ihre Momentane Zeit Position usw 
(weiß ned wirklich wie der Frame aufgebaut ist). In den man mehrere 
Sateliten hat wird dann die Synchronisation vorgenommen (eigene 
Wissenschaft)
Persönliche Seite #1089445
Lesenswert?

Fabian S. wrote:
> Mir ist auch klar, dass die Abweichung der Quarze sich stark verändert
> bei Temperaturschwankungen, aber wenn man sagen kann sie steigt bei
> einter Temperaturveränderung bei allen Quarzen um genau den gleichen
> Faktor könnte man das ja kompensieren.

Da gabs doch die Quarze, die sich selber heizen und konstant die 
Temperator halten...
Gast #1089520
Lesenswert?

Um mehrere Controller synchron laufen lassen zu koennen muss man denen 
den clock auch schon synchron mitteilen. zB als Harmonische, oder auch 
als Subharmonische. Es waere denkbar, das Signal Clock_div_128 als 
Infrarot auszustrahlen und jeder Slave hat einen PLL drauf laufen. Oder 
es wird ein Signal Clock_mal_16 als funk ausgestrahlt und die Controller 
haben einen Teiler nach einem PLL. Andersherum : Synchron bedeutet PLL.
OP #1089609
Lesenswert?

6789 wrote:
> Um mehrere Controller synchron laufen lassen zu koennen muss man denen
> den clock auch schon synchron mitteilen. zB als Harmonische, oder auch
> als Subharmonische. Es waere denkbar, das Signal Clock_div_128 als
> Infrarot auszustrahlen und jeder Slave hat einen PLL drauf laufen. Oder
> es wird ein Signal Clock_mal_16 als funk ausgestrahlt und die Controller
> haben einen Teiler nach einem PLL. Andersherum : Synchron bedeutet PLL.

Wiki:
Als Phase-locked loop (PLL) wird allgemein eine elektronische 
Schaltungsanordnung bezeichnet, die die Frequenz eines veränderlichen 
Oszillators über einen geschlossenen Regelkreis so beeinflusst, dass 
eine möglichst kleine Phasenabweichung zwischen einem äußeren 
Referenzsignal und dem Oszillator- oder einem daraus abgeleiteten Signal 
erzielt wird.

Öhhh wo habe ich denn einen veränderlichen Oszillator? Und woher nehme 
ich mein Referenzsignal? Das müsste dann doch genau genug sein dafür 
oder?

>andere frage: welche controller verwendest du?
Also die Slaves (Baken) wollte ich mit nem ATMega8 machen, den Master 
vermutlich auch aber da kann es sein, dass der Kram direkt mit an die 
Hauptplatine kommt, das wäre dann ein ATMega128.
Gast #1089631
Lesenswert?

wenn ich mich recht entsinne, hat der mega 128 doch eine "clock output" 
fuse, mit der man das interne taktsignal direkt auf einen pin 
rausschalten kann.
mit diesem signal kannst du in die clock inputs der anderen controller 
gehn. du hast dann zwar die laufzeit des kabels drin, aber die ist ja 
fix.
#1089646
Lesenswert?

Fabian S. wrote:
> ich habe hier mehrere Platinen die über einen Zeitraum von ca. 2 Minuten
> synchron laufen sollen. Es geht um Ultraschallbaken. Wenn ich das mit
> einem Uhrenquarz mit +/-10ppm mache habe ich nach 1:30 eine Abweichung
> von maximal 30cm. Und das ist eindeutig zu viel.

Mit 32kHz Uhrenquarzen wirst Du keinen Blumentopf gewinnen, die sind 
stark temperaturabhängig.
Nimm normale Quarze (z.B. 10MHz), die sind wesentlich stabiler.

Dann definiere einen als Master und lasse diesen z.B. 1s-Pulse ausgeben. 
Daran schließt Du die anderen Platinen an, damit sie den Korrekturwert 
für ihren Quarz ausmessen können.

Nach dem Abtrennen der Synchronisationsleitung sollten 2min Gleichlauf 
zu schaffen sein.


Peter
OP #1089649
Lesenswert?

>http://de.farnell.com/jsp/search/browse.jsp;jsessi...
>Das sind Oszillatoren mit 1ppm...
Wow cool!
Denke das sollte genau genug sein! Wären dann ja übern Daum gepeilt 3cm 
Abweichung. Ist denke ich ausreichend und das ist ja auch nur der 
worst-case.
Damit entsteht aber ein neues Problem: Die Teile sind sehr Hochfrequent, 
sprich ich werde die wohl kaum an den Clock Pin für den Timer direkt 
anschließen können.
Wenn ich nun damit direkt den Atmega betreibe und dem Timer halt nen 
Prescaler bzw Overflow Krams verpasse ist das dann noch genau? Ich meine 
mal was davon gehört zu haben, dass der Zähler in dem Atmega nur 
"abgeschätzt" ist. Stimmt das? Wenn ja wie kann ich das genauer 
bekommen?
Gibt doch so Bausteine die den Takt verkleinern. Wäre das eine Lösung?

@Peter:
Meinst du also, dass die Slaves ihren Korrekturwert immer dynamisch 
bestimmen sollen, in der Hoffnung, dass es dann 2 Minuten hält?
Wäre ne denkbare Lösung nur bleibt da auch die Frage wie genau die Timer 
sind mit ihren overflow.
#1089658
Lesenswert?

Fabian S. wrote:
> Meinst du also, dass die Slaves ihren Korrekturwert immer dynamisch
> bestimmen sollen, in der Hoffnung, dass es dann 2 Minuten hält?

Man könnte den Wert auch einmalig ermitteln und im EEPROM abspeichern.
Aber Du mußt ja eh zu Anfang alle Platinen synchronisieren.


> Wäre ne denkbare Lösung nur bleibt da auch die Frage wie genau die Timer
> sind mit ihren overflow.

Das ist ja der Witz an HW-Timern, daß sie auf den CPU-Zyklus genau sind, 
genauer geht nicht.

Der Master erzeugt seinen Sync-Impuls zyklusgenau mit nem 
Output-Compare-Pin.
Und die Slaves messen zyklusgenau mit dem Input-Capture-Pin.


Peter
OP #1089660
Lesenswert?

Ahh das ja super!
Nur habe ich grade mal bei den Teilen auf den Preis geschaut, das ist 
natürlich nicht super. :(
Was mir grade noch in den Sinn gekommen ist sind die Quarze die man im 
Modellbau verwendet für die Funkverbindungen. Die sind doch auch nicht 
ganz billig weil die exakt synchron laufen müssen oder?
Könnte man da nicht einfach zwei 35Mhz Quarze nehmen und dann nen Teiler 
dahinter?
Ich vermute mal, dass die so teuer sind weil sie eben genau diese 
Frequenz haben aber das ist bei mir ja nicht so wichtig, wichtig ist ja 
nur, dass sie gleich schnell sind.
Gast #1089677
Lesenswert?

Ich würde mich garnicht so sehr darum bemühen, alle Baken zu 
synchronisieren. Warum lässt Du nicht den Roboter ein Ultraschall-Signal 
senden, auf das dann alle Baken antworten? Der Roboter kennt dann den 
exakten Zeitpunkt von Sendung und Antwort. Jede Bake müsste natürlich 
eine andere, feste Wartezeit vor dem Senden des Antwort-Impulses haben, 
damit's nicht zu Kollisionen kommt.
#1089728
Lesenswert?

Du schickst also von fixen Stationen Schallimpulse aus und misst die 
Zeit bis zum eintreffen am Roboter? Der Roboter weiß wenn die Impulse 
gesendet werden und errechnet sich durch die differenzzeit von senden 
und empfangen die Zeit. Mit hilfe dann die entfernung ermittelt wird .
Oder irre ich mich ?

MFG Patrick
Gast #1089749
Lesenswert?

>Mit 32kHz Uhrenquarzen wirst Du keinen Blumentopf gewinnen, die sind
>stark temperaturabhängig.
>Nimm normale Quarze (z.B. 10MHz), die sind wesentlich stabiler.

Das ist leider nicht korrekt. Ein Uhrenquarz hat standardmaessig weniger 
als 10ppm, waehrend ein normaler Quarz 100ppm hat.
Trotzdem denke ich dass unabhaengige clocks bei diesem Problem nie was 
werden. Um Ultraschallphasen zu messen benoetigt man PLL synchronisierte 
Clocks. Die kann man zB ueber Infrarot synchronisieren, synchron halten. 
Alternativ wuerde sich eine Industriefrequenz anbieten, zB 430MHz
OP #1089756
Lesenswert?

@ Andreas K.: Die Frequenz spiel keine Rolle!
Bei Reichelt gibt es "normale" QUarze mit 30ppm und Uhrenquarze mit 
10ppm. die ppm sind ja eine "prozentuale" (nicht auf hundert sondern auf 
ne Million bezogen) Abweichung und da ist es egal wie schnell die sind.

Das Spielfeld ist ca. 3x3m groß und der Bot wird mit zwei 
Schrittmotoren, 200 Schritt angetrieben.
Was den Preis angeht sollte das System nicht teurer als 50€ werden.
#1089762
Lesenswert?

Ok jetzt mal ein Vorschlag von mir.
1. Du kannst dir das Synchronisieren vereinfachen, denn du kannst ja den 
Bot an eine fixe Stelle auf dem Spielfeld geben, und somit mit ein paar 
Ultraschall Pulsen die Synchronisation machen.

2. Unter dem Spiel kannst ja alle 10 Pulse die Positions unterschiede 
mit Daten die durch die Schrittmotoren erhälst vergleichen und so eine 
Korrektur des Zeitsignals vornehmen.

MFG Patrick
OP #1089765
Lesenswert?

Ich soll was synchronisieren mit Ultraschall? Hört sich seltsam an...
Verstehen tuh ich das nun nicht wirklich.
Der Plan war es eigentlich die Positionsberechnung sowohl durch die 
Radticks als auch durch den Ultraschall krams zu machen. Im Grunde 
wollte ich die Positionierung nach den Radticks machen, da die aber 
driftet das ganze mit dem Ultraschall korrigieren.
OP #1089856
Lesenswert?

@Patrick Weinberger:
Meinst du mit Ultraschall hin und zurück? Hatte ich ja bereits gesagt, 
dass das die Ersatzlösung ist.

@Travel Rec.:
Ja kenne ich aber die sind relativ träge (irgendwo im Sekundenbereicht?) 
meiner Erfahrung nach und gibts denn da welche die weiter kommen als 
80cm?
#1089886
Lesenswert?

Wo sind die den die Ultraschallsender angebracht ?

Also ich dachte so du bekommst einen Schallimpuls dann beginnt ein Timer 
zu laufen der beim eintreffen des nächsten Schallimpuls seinen Wert 
zwischenspeichert das machst so lang bis du von allen Basisstation die 
Schallimpulse hast. Was vielleicht nicht schlecht ist wenn du die 
Signale etwas Zeitversetzt versendest. Du bekommst dann eine Entfernung 
+ x und als Entfernung für das erste Signal hast x. Dann kannst via 
Winkel das x berechnen. Durch das x kannst auf die X/Y Wert im 
Koordinatensystem schließen. (Bin aber zu faul mal das ganze 
durchzurechnen)

VT: Es müssen nur die Basisstationen Synchron sein. Was aber sicher 
nicht das Problem sein würd.

NT: Es erfordert enorme Rechenleistung von so einem ATmega wegen der 
Winkelfunktionen!!!! Aber ein paar mal müsste das so ein ATmega schon 
schaffen in der Sekunde.

MFG Patrick

P.S.: Das ist ein unerprobtes Konzept !!!
OP #1089895
Lesenswert?

Mhh ich weiß grade garnicht... kann sein, dass das nun ähnlich ist.
Kann ich nicht die Baken alle mittels Kabel synchron halten (das geht 
ja) und einfach nur in regelmäßigen Abständen von jeder Bake ein US 
Signal senden. Nun kennt der Bot zwar nicht die Laufzeit aber die 
relativen Unterschiede zu den Baken.
Kann ich das damit nicht auch berechnen?
#1089920
Lesenswert?

Naja Winkelfunktionen werden mit Polynomreihen gelöst wobei man ca 3 
Polynom Glieder verwendet usw. Das dauert schon ein paar Takte besonders 
wenn man dann mit Float Werten rechnet. Für diese nicht sehr 
Zeitkritische anwendung spielt das nicht unbedingt eine Rolle(meine 
Meinung nach)

MFG Patrick
Persönliche Seite #1089925
Lesenswert?

Patrick Weinberger wrote:
> Naja Winkelfunktionen werden mit Polynomreihen gelöst wobei man ca 3
> Polynom Glieder verwendet usw. Das dauert schon ein paar Takte besonders
> wenn man dann mit Float Werten rechnet. Für diese nicht sehr
> Zeitkritische anwendung spielt das nicht unbedingt eine Rolle(meine
> Meinung nach)

Siehste, und wenn man die Winkelfunktionen vorher berechnet, in Tabellen 
ablegt und Fixkomma verwendet dreht sich die ganze Sache zu Gunsten des 
Mikrocontrollers um.
#1089931
Lesenswert?

Ich hab Ferien und mach für irgendjemanden das Denken ich bin echt 
krank!!

Aja Tabelle ist immer so eine sache die Geschwindigkeit ist von der 
Genauigkeit abhängig. Wenn die Tabelle groß wird dauerts auch etwas. 
Dann müssen die Werte noch gerundet werden usw. Wobei man kann die 
Tabellen suche mit einfache Vorfilter extrem Beschleunigen

MFG Patrick
Persönliche Seite #1089934
Lesenswert?

Patrick Weinberger wrote:
> Ich hab Ferien und mach für irgendjemanden das Denken ich bin echt
> krank!!
>
> Aja Tabelle ist immer so eine sache die Geschwindigkeit ist von der
> Genauigkeit abhängig.
> Wenn die Tabelle groß wird dauerts auch etwas.
Die Geschwindigkeit einer Array-Indizierung ist von der Größe der 
Tabelle abhängig? Das wäre mir völlig neu und überhaupt nicht logisch.
EDIT: Achso, natürlich steigt die Prozessorlast, wenn statt einem, zwei 
Bytes geladen werden müssen. Aber nur ganz ganz leicht.

> Dann müssen die Werte noch gerundet werden usw.
Quark, kann man doch schon gerundet reinschreiben in die Tabelle. Bei 
weiteren Rechnungen muss man u.U. so oder so runden. Egal ob Tabelle 
oder nicht.
OP #1089964
Lesenswert?

@Patrick Weinberger:
Danke für die Denkarbeit nur musst du mir nochmal auf die Sprünge 
helfen.
So würde es ja nun aussehen wenn ich die absolute Laufzeit hätte. Die 
habe ich aber nicht. Ich weiß ja nur, dass Bake 1 und 3 etwa gleich weit 
weg sind und Bake 2 relativ dazu etwas weiter.
Wie kann ich das nun umrechnen?
#1089995
Lesenswert?

Und genau da wären wir wieder beim GPS Prinzip: Für einen 3D-Fix 
brauchst du 4 Satelliten, da der 4. NUR für die Zeit zuständig ist. Die 
Laufzeit ist schnurzpiepe, der stellt bloß die Uhr vom GPS nach. 
Allerdings kann man das mit Ultraschall so nicht machen, da die 
Frequenzen viel zu tief sind...
Was ich mich frage: Ist es mit 2 relativen Angaben nicht möglich, eine 
2D Position in einem Rechteck eindeutig zu bestimmen? Als Beispiel: 
Senderpositionen sind bekannt und fix (eventuell Dreieck-Anordnung 
schlauer als 3 Seiten eines Rechtecks?)

Alle Signale gleichzeitig -> Mitte des Spielfeldes (der einzige Punkt, 
wo der Abstand zu allen Kanten gleich groß ist).


Nach etwas Überlegung:

Position und Abstand der Sender sind im Roboter gespeichert (weitere 
Überlegung: Abstand ist egal, wenn es insgesamt um relative 
Positionierung im Spielfeld geht, also Position 1/5 X und 1/3 Y statt 
Rand +3cm und Rand +5cm)

Nun betrachtet man nur die Signaldifferenzen:
Nehmen wir A als Referenz, dann haben wir
 und
.
 bedeutet, dass der Roboter auf der AB-Achse in Richtung A verschoben 
ist.
bedeutet, dass der Roboter auf der AC-Achse in Richtung A verschoben 
ist.

Das heißt schonmal, dass wir oberhalb der "Mittellinie" sind. Nun kann 
uns
 noch die Verschiebung von der Mittelsenkrechten auf a (Strecke BC) 
angeben. Kommt B vor C an, so sind wir in Richtung B verschoben und 
umgekehrt halt Richtung C.

Und was mir jetzt noch einfällt ist, dass das ganze absolut zum 
Mittelpunkt der Sensoren positioniert, da die Schallgeschwindigkeit ja 
eine Konstante ist. Eine Beispielrechnung:
cSchall = 330 m/s.
1 Meter entspricht also 1/330 s also rund 3 ms.

Somit sind wir vom Punkt B 1 Meter weiter entfernt als von Punkt A:
sB = sA+1.
Punkt C ist 2 Meter weiter als Punkt A:
sC=sA+2.
Punkt C ist 3 Meter weiter als Punkt B:
sC=sB+3.

Dies sind 3 Gleichungen mit 3 Variablen. Aus irgendeinem Grund bin ich 
grad zu blöd die aufzulösen, wo ist denn hier mein Denkfehler? Das 
Prinzip sollte so aber funktionieren...

Edit: Na klar, das Ding ist ja widersprüchlich... Hmm, vielleicht hätte 
ich mir keine Zeitwerte ausdenken sollen. Spricht aber immernochnichts 
gegen das Prinzip :-)
#1090019
Lesenswert?

Arghs klar, ich hab dann auch am Ende nen falschen Weg eingeschlagen. 
Also nun nochmal :-)
3 Sender. Ausgedachte Werte:
A (0|0)
B (0|-10)
C (18|0)

Nun empfangen wir A und nutzen das als Nullpunkt.
B und C können also im Vergleich zu A negativ oder positiv sein.

Beispiel ABSOLUTE Zeiten:
A nach 100ms
B nach 97ms
C nach 136ms.

Somit wäre (relativ) B=-3ms (-> -1 Meter) und C=36ms (-> + 12 Meter) :-)

Nun wissen wir den Abstand von A und B: 10 Meter.
Und den Abstand von A und C: 18 Meter. (Beide Werte an den Haaren herbei 
gezogen)

Somit sehen wir nun, dass wir (10/2)-1 Meter von B entfernt und 
(18/2)+12 Meter von C entfernt sind.
 und
.

Grafisch würde ich nun Kreise um B und C ziehen, der Schnittpunkt ist 
das Ergebnis. Praktisch wird einer der beiden Schnittpunkte außerhalb 
des Feldes liegen :-) Mathematisch wird das ganze ne etwas komplexere 
Gleichung.
Wir habne 2 Kreisgleichungen für B und C und müssen die gleichsetzen:
b:
c:

So, mit der Hand auflösen tu ich das jetzt nicht, mein Maxima hat mir 
auch verraten, dass ich mir schon wieder blöde Zahlen ausgedacht habe... 
Aber das Prinzip sollte dieses mal wirklich passen :-)

Es werden übrigens 2 Lösungen herauskommen (meistens), von denen eine 
außerhalb des gewünschten Spielfeldes liegen wird (hoffe ich), ansonten 
muss die wahre Position anhand der letzten eindeutigen Position (+ du 
weißt ja, wohin du dich bewegst) nachverfolgt werden.
#1090025
Lesenswert?

Lies mal bei Wikipedia nach.

Daß die Synchronisation aus dem Stand lange dauert, heißt nicht, daß ein 
synchronisierter Empfänger große Abweichungen hat.

Der DCF77 sendet sehr präzise mit 77,5 kHz als Normalfrequenzsender- das 
mehr als die doppelte Frequenz eines Uhrenquarzes.

Zitat Wikipedia:
> Das Trägersignal von 77,5 kHz ist in Frequenz und Phasenlage mit der
> steuernden Atomuhr synchronisiert und besitzt deshalb nur geringe
> Abweichungen von der Sollfrequenz. Es kann auch ohne Auswertung der
> Zeitinformation als Referenzsignal benutzt werden.
#1090027
Lesenswert?

Naja, das Problem der Synchronisierung gibt sich ja wie gesagt durch den 
3. Sender. Wenn es aber immer noch darum geht: DCF77 ist wirklich keine 
schlechte Idee, man müsste dann allerdings auf eine FLANKE des 
Sekundentakts synchronisieren (der ist keineswegs immer gleich! Die 
High/Low Zeiten sind nur in etwa 100/200ms mit relativ großen 
Toleranzen). Gut klar, wenn ich absolute Abstände direkt ermitteln kann, 
habe ich ohne Rechnerei meine 2D-Koordinaten, aber ich finde die Lösung 
mit dem 3. Ultraschallsender irgendwie feiner, universeller. Nachteil 
dabei ist eben, dass man die Koordinaten der Sender einstellen muss, 
bevor es funktioniert (dann also sogar variabel vor jedem Einsatz auf 
neuem Spielfeld).

Ich hätte da übrigens mal ein neues Problem: Wie unterscheidet man bitte 
die verschiedenen Ultraschallsensoren? Klar, alle haben ne andere 
Frequenz. Aber kann man dieses Überlagerungsgemisch denn einwandfrei 
auswerten? Es muss möglichst genau von allen 3 Sensoren der Sendebeginn 
festgestellt werden (Die Auswertung darf ja auch ruhig einige 10 ms 
dauern, sofern dann eben der exakte Beginn ermittelt werden kann).

Irgendwie find ich das Thema spannend und ich wäre sehr daran 
interessiert, welches Verfahren dann am Ende zum Einsatz kommt und wie 
gut es funktioniert.
Jetzt geh ich aber schlafen, morgen gehts weiter. Frohe Weihnachten 
nochmal ^^
#1090029
Lesenswert?

Matthias Larisch wrote:
> Naja, das Problem der Synchronisierung gibt sich ja wie gesagt durch den
> 3. Sender. Wenn es aber immer noch darum geht: DCF77 ist wirklich keine
> schlechte Idee, man müsste dann allerdings auf eine FLANKE des
> Sekundentakts synchronisieren (der ist keineswegs immer gleich!

Nein, nimm die 77,5 kHz als Frequenznormal und schmeiß die Uhrenquarze 
weg. (Mein Beitrag oben ist 
Beitrag "Re: Zwei Controller synchronisieren" wieder iterativ 
entstanden ;-) )
OP #1090030
Lesenswert?

Ähh... also die Sender haben ersteinmal alle die Gleiche Frequenz von 
40kHz. Unterscheiden werde ich sie durch Zeitversetzung. Sprich wenn der 
1. das Signal bekommt zum senden sendet er, der zweite hingegen wartet 
20ms oder so und sendet dann, der 3. wartet 40ms. Der Bot "weiß" das und 
kann es ausrechnen, sprich von der gemessenen Zeit einfach die 20/40ms 
abziehen.
#1090033
Lesenswert?

Zitat Wikipedia:
> Das Trägersignal von 77,5 kHz ist in Frequenz und Phasenlage mit der
> steuernden Atomuhr synchronisiert und besitzt deshalb nur geringe
> Abweichungen von der Sollfrequenz. Es kann auch ohne Auswertung der
> Zeitinformation als Referenzsignal benutzt werden.

Vergiß die Uhrenquarze.
#1090036
Lesenswert?

Nein. Das Trägersignal des DCF77 ist in Frequenz und Phase hoch stabil - 
wie es sich für einen Normalfrequenzsender gehört.

Nimm es als Taktquelle, statt der Uhrenquarze. Bau halt in jede Bake 
einen Empfänger ein, der den Takt von 77,5 kHz liefert - synchron für 
alle und hoch genau.

Du mußt die Teile dann nur noch zu Beginn synchronisieren - per Kabel - 
und dann bleiben sie synchron.
#1090038
Lesenswert?

Im Prinzip ein Schwingkreis, der auf den Sender abgestimmt ist. Ob du 
ihn hast, das kannst du den Zeitzeichen entnehmen, aber ich schätze, daß 
das garnicht notwendig ist.

Eine kleine Ferritantenne reicht aus.

Lies dir den Wikipedia-Artikel durch - dann bist du im Bilde...
#1090040
Lesenswert?

Nochmal für ganz Müde:

Der DCF77 sendet auf der Trägerfrequenz 77,5 kHz.

Da drauf sind die Zeitsignale moduliert. Die brauchst du aber höchstens, 
um sicher zu sein, daß du deinen Normalfrequenzempfänger auch 
tatsächlich richtig abgestimmt hast - ersatzweise reicht auch ein 
einigermaßen genauer Frequenzzähler.

> ALso die 77,5 Khz sind die Trägerfrequenz?

Genau - muttu wiki lesen!

Gute Nacht...
OP #1090041
Lesenswert?

Nacht...
Ich werde mir das alles mal durch den Kopf schwirren lassen... denke 
aber die Lösung mit dem Kabel was alle Baken verbindet und dann nur den 
relativen Abstnad bestimmen ist sicherlich am einfachsten, auch wenn ich 
Mathematisch noch nicht dahintergestiegen bin ;)

>Genau - muttu wiki lesen!
erledigt!
OP #1090216
Lesenswert?

So gestern abend habe ich mir im Bett noch den Kopf zerbrochen und bin 
auf die Lösung im Bild gekommen.
Das ganze basiert nun auf keiner Synchronisation sondern legiglich der 
Tatsache, dass der Bot weiß in welchen Abständen die Signale kommen. Er 
kann so a,b,c berechnen (c ist hier 0) und hat somit 3 Gleichungen und 3 
Unbekannte, sollte machbar sein.
Jemand Einwände/Verbesserungsvorschläge?

Edit: Wers nicht gleich sieht: das ganze basiert auf Pythagoras.
Angehängte Dateien:
#1090345
Lesenswert?

Das Problem:

Du kennst nur lx und ly und der Rob mißt a und b (c ist per Definition 
0).

Aus diesen Angaben kannst du d0 nicht berechnen. Es bleibt also nur, die 
Bakenpulse zu definierter Zeit loszuschicken, die auch der Rob kennt, um 
das d0 zu bekommen.

Ergo: Du brauchst eine gemeinsame und zuverlässige Zeitbasis.

Außerdem mußt du wissen, von welcher Bake der jeweilige Impuls kam - 
sonst gibt es 3 Lösungen. Diese Information erhälst du aber recht 
einfach, wenn die Baken nicht gleichzeitig, sondern zu jeweils einem 
eigenen definierten Zeitpunkt pulsen und die Pulslaufzeiten nicht 
überlappen.
OP #1090365
Lesenswert?

Irgendwie drehen wir uns im Kreis. Das die Baken nicht alle gleichzeitig 
senden ist klar und wurde auch schon erwähnt.
Und dass der Bot nen Impuls aussendet hatten wir auch mehr oder weniger 
verworfen, da das mit der Synchronität zu schwer wird.
Die einzige Alternative wäre wiegesgt das DCF77 Signal, was ich aber 
auch erstmal ohne probieren wollte, weils einfach einfacher ist.

Also, nochmal ne Frage: Ist in der Zeichnung die ich gemacht habe die 
Poition geometrisch bestimmt, wenn a,b,c,lx und ly bekannt sind?
Ich meine ja und wenn das der Fall ist gibt es auch eine Mathematische 
Berechnung dafür, wir sind nur zu blöd sie zu finden.
#1090374
Lesenswert?

Ich habs mit Maxima rechnen lassen - man kann x und y nicht isolieren 
und damit nicht ausrechnen.

> Irgendwie drehen wir uns im Kreis. Das die Baken nicht alle gleichzeitig
> senden ist klar und wurde auch schon erwähnt.

Dann kommst du um synchrone Baken und Robo sowieso nicht herum.

Sieh dir das mal an: http://www.prog-link.com/dcf77/dcf77-16.html

Den Empfängerchip wirst du wohl nicht brauchen, aber die Testschaltung 
unten zeigt, wie man den Empfangskreis basteln kann. Der Rest wäre nur 
noch ein Verstärker, der das Signal am Schwingkreis abgreift und 
nachfolgend ein Schmittrigger, um einen Taktpuls draus zu machen.
#1090411
Lesenswert?

Um die Position zu berechnen brauchst du lx, ly und das Wissen, daß die 
Baken ein rechtwinkliges Dreieck aufspannen und in diesem Umfeld den 
Abstand des Robots von jeder der Baken.

Indem du eine unbekannte(!) Pseudovariable d0 einführst - die eigentlich 
das C ist, wenn die beiden anderen Abstände A und B sind - bekommst du 
das fehlende C nicht - da hilft kein Heulen und kein Zähneklappern...
Persönliche Seite #1090466
Lesenswert?

Fabian S. wrote:
> Oder du kannst nicht vermitteln was du mir sagen willst...

Ein Gleichungssystem mit drei Gleichungen und drei Unbekannten hat nicht 
unbedingt eine Definierte Lösung. Es kann auch keine (Zum Beispiel wenn 
die Gleichungen keinen Zusammenhang haben, also nicht alle zutreffen 
können), oder mehrere haben (Beispielsweise wenn eine Gleichung nur eine 
andere der vorhandenen Gleichungen ist, nur umgestellt.

Krasses Beispiel:
I) a = b+c
II) a = b+c
III) a = b+c

Was ist die Lösung? ;)
(Firma: Nisch-Aufzüge) Persönliche Seite #1090486
Lesenswert?

leute wo ist das problem? die baken müssen nur kommunizieren.


Wenn sich alles in einer Ebene abspielt , bei konstanter 
Signalausbreitungsgeschwindigkeit:

Bake 1 sendet und Bake 2 wartet wenn das Signal bei Bake 2 eintrifft 
antworet diese.

Aus der laufzeit ergibt sich die Distanz zwichen den Baken.
Wenn jetz dieser parameter codiert gesendet wird kennt der Bot den 
Abstand der Baken zueinander.

Wenn er beide Baken abhöhrt und laufzeitdifferenzen ermittelt gibt es 
genau 2 Punkte an denen er sich befinden kann.

Spielt eine dritte Bake mit gibt es genau noch einen punkt.

Zwei baken genügten bei Peilung  bei Laufzeit brauchst du minimum 3 
Signalquellen

google nach
Loran, Decca
#1090499
Lesenswert?

Das Problem geht auf die Berechnung des Schittpunktes dreier Kreise 
zurück, nämlich denen um die Baken.

Wenn man die drei Radien a, b, c nennt, ergeben sich daraus folgende 
Kreisgleichungen:

g1: a² = x² + y²
g2: b² = (lx-x)² + y²
g3: c² = x² + (ly-y)²

Löst man das Gleichungssystem nach a, b, c auf, erhält man eine 
Lösungsmenge mit 8 Lösungen, von denen mindestens eine für ein Paar x, y 
sinnvolle Werte für a, b, c liefert.

Sinnvolle Werte sind positiv reell und es gilt:

  lx²+ly² >= v mit v aus {a, b, c}

Man muß sich also die passende Lösung aussuchen.

Damit der Robo seine Position berechnen kann, muß die ganze Chose 
umgedreht werden: Man mißt, a, b, c und sucht dafür ein Paar x,y, das im 
oben definierten Sinn "sinnvoll" ist.

Man muß also die oben skizzierte Vorgehensweise umdrehen und in der 
Lösungsmenge nach einem Paar x,y suchen, das zu den gemessenen a, b, c 
"paßt", wobei schon kleine Meßfehler zu Unlösbarkeit führen - die Kreise 
schneiden sich dann nicht in einem Punkt.
#1090522
Lesenswert?

Klar, das ist die praktische Lösung, mit den Fehlern fertig zu werden.

Ich wollte damit nur aufzeigen, daß man nicht hoffen kann, ein lineares 
Gleichungssystem mit drei Unbekannten ausgaußen zu können, um die 
richtige Lösung zu bekommen - es ist kein lineares Gleichungssystem.


Die Definition für "sinnvolle" Lösung oben gilt nur für quadratische 
Spielfelder - bei rechteckigen wirds deutlich komplizierter.
#1090524
Lesenswert?

Ich habe gerade nicht soviel Zeit dazu, aber ich habe mir vorhin nochmal 
Gedanken gemacht und meine eigentlich, zu einer sinnvollen Lösung 
gekommen zu sein, ähnlich (aber nicht genau) nach dem zuletzt von mir 
mathematisch beschriebenen Verfahren.

Ich bin schon der Meinung, dass man das Problem auf 2 Gleichungen mit 2 
Unbekannten reduzieren kann, da der 3. Sender ja nur zur 
Zeitfeststellung dient, d.h. durch die Kenntnis des 3. Wertes werden die 
anderen 2 Werte "absolut". (nicht ganz, aber sozusagen ^^).

Ich werde das morgen mal verschriftlichen, heute abend komm ich nicht 
mehr dazu.
OP #1090527
Lesenswert?

Ohh man seit ihr Experten :D (nicht böse gemeint)
Also ersteinmal wenn die Baken mit dem bot kommunizieren reichen auch 2 
Baken, sofern sie an einem SPielfeldrand stehen, denn die 2. Lösung wäre 
außerhalb des Spielfeldes und kann somit ausgeschlossen werden.
Und mir ist klar, dass ich das damit machen KANN nur wollte ich den 
Technischen Aufwand möglichst gering halten.
#1090529
Lesenswert?

Da kommt mir jetzt eine Idee.
Wir haben ja Anfangswerte der Roboter beginnt das Spiel an einer 
Fixenposition.
Und eine ansynchrone Uhr.
Also
1. es wird auf den ersten Schalimpulse gewartet und dann die Uhr 
synchronisiert
2.nach den Schallimpulsen kommt heraus das die Uhr hinten oder vor ist.
3.Es wird die Uhr neue abgeglichen in dem man einen idealen Schnittpunkt 
der 3 Laufzeiten interpoliert.
4. Schrit 2  und 3 wird so lang wiederholt bist die Uhr synchron genug 
ist

Das dauert hald eine Weile und die Interpolation muss werden des Spiels 
nur mehr minimal gemacht werden. Der Vorteil ist man bekommt nur einen 
kleinen Kreis mit möglickeiten wo man sich befindet.

MFG Patrick
(Firma: Nisch-Aufzüge) Persönliche Seite #1090562
Lesenswert?

...siehe oben z.T. bezog sich auf den HW-Aufwand zum Abgleichen der 
Quarze.
Den kannst du dir schenken wenn mindestens eine Bake die Zeit der 
anderen kennt. Entweder muss sie die andere Bake hören, oder sehen 
können. Wobei sehen wohl besser ist. Funk allerdings wäre auf engem raum 
noch leichter.


Eigentlich sollte eine Antenne am Ersten und ein Geradeausempfänger am 
2.µC genügen, dann macht der master den Takt auch für den Slave?
(Firma: Nisch-Aufzüge) Persönliche Seite #1090583
Lesenswert?

Wenn die Baken verbunden sind, gibt die Masterbake die Zeit vor. Die 
Andere piebt nur auf befehl.
Bleibt der Bot asynchron. Um ihn zu synchronisiern genügt es das er 
stehenbleibt und die Ultraschallfrequenz der masterbake(flanken 
detektieren) ermittelt bei 40KHz/10MHz sollte die Zeit zwischenden 
Flanken für das Errechnena/Auszählen des Korrekturwertes genügen.

Diesen Wert kann er dann auch in der Bewegung kontrollieren. Da ich 
davon ausgehe, dass die Bots sich nicht nahe der Schallgeschwindigkeit 
bewegen eher v(bot) << v(Schall) sollte der Dopplereffekt irrelevant 
oder korrigierbar bleiben.   ;)
#1090585
Lesenswert?

irgendwie versteh ich die Welt nicht mehr, mein Ansatz funktioniert 
nicht...
(Hatte eben doch noch etwas Zeit)
Aber für
 gilt immerhin schonmal (bei xC=yB und yC=xB=0)
 für "geschätzte" X und Y Koordinaten. Wo da der Wurm drin ist weiß ich 
selbst nicht so genau, da fehlt noch irgendein unlinearitätsfaktor... 
Den Rest meines Ansatzes kann man total verwerfen (das hier eigentlich 
auch - aber ich wollts wenigstens noch schreiben)
OP #1090589
Lesenswert?

@matze: hihi ;) geht mir ständig so :D


>Um ihn zu synchronisiern genügt es das er stehenbleibt...
NEIN!
Das Spiel hat 90 Sekunden, man muss Würfel einsammeln, die zu einem Turm 
zusammenbauen und an bestimmen Orten ablegen, da bleibt absolut keine 
Zeit zum stehenbleiben. Zumal das ablegen der Klötzchen Zentimetergenau 
passieren muss!


So, ich sehe schon das mit den Gleichungen wird immer komplexer. Auch 
wenn ihc immernoch der Meinung bin, dass es mit meinem auf dem Bild 
vorgeschlagenen Methode gehen muss werde ich darauf verzichten und die 
Teile mit DCF77 synchronisieren.
Jemand Einwände? :D
Weiß vorallem jemand wie ich an die 77,5kHz ran komme und wie ich sie 
aufbereiten kann, so dass ich das direkt an den Interruptpin anschließen 
kann?
OP #1090618
Lesenswert?

Aha - ich versteh nur Bahnhof...
Warum das 1Hz Signal rausholen, wenn ich auch gleich das 77,5er 
verwenden kann?
Gestern hatte jemand diesen Link gepostet, dann aber wieder gelöscht:
http://www.prog-link.com/dcf77/dcf77-16.html
Da sind ja nun die beiden Quarze angebaut mit 77,5kHz. Ich gehe mal 
davon aus, dass die nicht das Maß der Dinge sind sondern intern an die 
77,5kHz von dem Signal angeglichen werden (man kann Quarze doch ziehen 
oder so).
Wenn das der Fall ist, kann ich mich dann da nicht einfach mit dran 
klemmen und fertig?
(Firma: Nisch-Aufzüge) Persönliche Seite #1090654
Lesenswert?

was möchtest du höhren?

und warum so umständlich


Darfst du erst wärend des spiels synchronisieren?
oder kann das vor dem startsignal geschehen?

zum Synchronisieren zweier Zeitbasen genügen 2 Flanken und 2 Zähler 
deren Differnz den Korrekturfaktor bezogen auf den Basiszählerwert gibt.

Diese Faktor genügt für alle weiteren Berechnungen, sofern die Zeitbasis 
stabil bleibt, egal ob sie synchron ist. Sie wird in 2 Minuten kaum 
driften.


andererseits
Wenn du eine Bake mit 0.1 mW auf 0.15-30 oder auf 433 MHz am Spielfeld 
senden lässt hast du ein deutlich stärkeres und Stabileres 
Synchronsignal als mit irgendeinem DCF Emfänger
OP #1090659
Lesenswert?

Winfried J. wrote:
> was möchtest du höhren?
Keine Ahnung, eine Anregung? Habe kein Plan von sowas :(
>
> und warum so umständlich
>
>
> Darfst du erst wärend des spiels synchronisieren?
> oder kann das vor dem startsignal geschehen?
>
> zum Synchronisieren zweier Zeitbasen genügen 2 Flanken und 2 Zähler
> deren Differnz den Korrekturfaktor bezogen auf den Basiszählerwert gibt.
>
> Diese Faktor genügt für alle weiteren Berechnungen, sofern die Zeitbasis
> stabil bleibt, egal ob sie synchron ist. Sie wird in 2 Minuten kaum
> driften.
Ich soll ne Software-Korrektur einbauen? Und wie berechne ich den ganzen 
Kram mit Temperaturschwankungen etc???
>
>
> andererseits
> Wenn du eine Bake mit 0.1 mW auf 0.15-30 oder auf 433 MHz am Spielfeld
> senden lässt hast du ein deutlich stärkeres und Stabileres
> Synchronsignal als mit irgendeinem DCF Emfänger
Klar, vorallem weil ich Amateurfunker bin... denke da würden wir sofort 
disqualifiziert werden!
Persönliche Seite #1090681
Lesenswert?

Fabian S. wrote:
>> andererseits
>> Wenn du eine Bake mit 0.1 mW auf 0.15-30 oder auf 433 MHz am Spielfeld
>> senden lässt hast du ein deutlich stärkeres und Stabileres
>> Synchronsignal als mit irgendeinem DCF Emfänger
> Klar, vorallem weil ich Amateurfunker bin... denke da würden wir sofort
> disqualifiziert werden!

Falls das Ironie war: Für die angegebene Frequenz/Leistung muss man kein 
AFU sein.
OP #1090706
Lesenswert?

Weiß ich jetzt nich ob das ausgeschlossen ist. Ich würde es ja auch dann 
wohl nicht so machen, dass ich den Sender selber baue (habe ich zu viel 
Angst da ne Frequenzschleuder hinzustellen) sondern einfach en normales 
Funkgerät oder so dafür nehme. Sollte ja auch gehen oder?
#1090712
Lesenswert?

Nochmal zum Mitdenken:

Der DCF77 hat angefangen als Normalfrequenzsender - da hatte er noch 
kein Zeitzeichen aufmoduliert.

Mittlerweile hat ers und auch noch Wetterinformation - aber er ist immer 
noch ein Normalfrequenzsender, der in Frequenz und Phase hoch genau 
mit einer Cäsium-Atomuhr synchronisiert ist.

Einzelheiten hier: http://de.wikipedia.org/wiki/DCF77 
http://de.wikipedia.org/wiki/Normalfrequenz

Wenn man aus dem Trägersignal, das man mit einem Schwingkreis mit einer 
Ferritantenne empfangen kann, ein Rechtecksignal gewinnen kann, dann hat 
man zu mindest die Frequenz 77,5 kHz mit sehr geringer Abweichung, die 
man als Takt verwenden kann - denke ich zumindest.

Den Empfängerchip braucht man dazu nicht wenn man das Zeitsignal nicht 
decodieren will.
(Firma: Nisch-Aufzüge) Persönliche Seite #1090730
Lesenswert?

@ uhu

Das problem ist, das das Signal äußerst Schwach und nur sporadisch 
emfangbar und stark gestört ist nur eine aufwendige Fehlerkorrektur 
(Plausiblitätsprüfung) erlaubt, es überhaupt sinnvoll auszuwerten, wenn 
mann nicht unnmittelbar neben dem Sender steht. In einer Halle voller 
QRM braucht man schon fast Korellationsempfänger, das Signall in all dem 
Müll wiederzufinden.
OP #1090770
Lesenswert?

So... es gibt noch eine viel einfachere Lösung, auf die Patrick gekommen 
ist. Genau wie GPS es macht. Man synchronisiert einfach alle Baken 
untereinander mit Kabel. Tut auf beide Seiten ein Quarz. Wenn nun der 
Bot der Zeit vorauseilt werden die berechneten Entfernungen du den Baken 
immer kleiner werden als sie in wirklichkeit sind. Wenn man nun mehrere 
Baken einsetzt wird sich zeigen, dass die berechneten Schnittpunkte eine 
größere Streuung haben. Sellt man das fest kann man mit der 
Schallgeschwindigkeit berechnen um wie viel der Quarz im Bot falsch 
läuft und er korrigiert ihn.
So einfach ist das ;)
(Firma: Nisch-Aufzüge) Persönliche Seite #1090852
Lesenswert?

Guten Morgen

In diesem Falle wollte ich anzeigen, dass ich den Sendebetrieb 
einstellte.


noch ein Funknahes Verfahren fällt mir da ein das aber kein Funk ist!
mit eienr Induktionsschleife könntest du alle Bots syncronisieren.
Ich besaß in meiner Kindheit vor 40 jahren ein Fahrzeug welches bei 
jedem Impuls innerhalb der induktionsschleife die Richtung wechselte.

http://www.itwissen.info/definition/lexikon/Induktionsschleife-inductive-loop.html

dabei wurde ein Verfahren benutzt wie bei der Höhrgeräte akustik

die schleife begrenzte das aktionsfeld, und die signale wurden als NF 
eingespeist. innerhalb der schleife konnte das fahrzueg diese NF sigale 
empfangen.


das ginge auch mit einem µ und einem Kleinem Verstärker sogar 
Phasenkorrekt,
einfach ein flachbandkabelmit zehn inreihe geschalten adern um das 
Spielfeld legen und alle Bots kennen die Systemzeit.
OP #1091032
Lesenswert?

Sorry ich muss hier nochmal für Unruhen sorgen ;)
Ich brauche ja nun im Bot und in den Baken ein Quarz. Was würdet ihr mir 
empfehlen? Ein Uhrenquarz direkt an den Timer anschließen oder einfach 
nen normales 8/16Mhz Quarz nehmen, damit den µC antreiben und dann mit 
dem Timer auf die gewünschte Frequenz machen?
Was ist verallem genauer?
OP #1091046
Lesenswert?

Seriell? Kann ich doch auch mit nem 16er verwenden? Habe ich zumindest 
bislang immer gemacht und ging wunderbar.

> Wichtig ist ansonsten das man eine ms(oder 100µs) genauae systemuhr hat, ...
Ja und meine Frage war, wie ich das am besten mache. Du sagst einfach 
nen normales Quarz und Timer mit Prescaller/Overflow verwenden?
(Firma: Nisch-Aufzüge) Persönliche Seite #1091106
Lesenswert?

>Schallgeschwindigkeit berechnen um wie viel der Quarz im Bot falsch
>läuft und er korrigiert ihn.


ja mit einem Korrekturfaktor z.B. 1002/1000 oder 998/1000

heist bezogen auf die basis,

muss der interne timer statt 100o takte 1002 takte zählen, 
Korrekturfaktor = 2 promille


umgekehrt 998/1000
Korrekturfaktor = -2 promille

oder genauer vielleicht -1958 pro µ
Persönliche Seite #1091125
Lesenswert?

Winfried J. wrote:
> Spar dir den Uhrenquartz.
> Wenn du serielle Comm(UART nutzen willst nim nen 11,0592 Mhz) der ist
> für 19.200 Baud geeignet

Oder 14,7456MHz. Aber damit gehen eigentlich alle Baudratenfrequenzen 
zwischen 1200-115200 Baud (theoretisch) Fehlerlos, nicht nur 19200Baud.

Mit 16 MHz kommst du nur auf ein paar Frequenzen mit einem kleinen 
Fehler. (1200, 2400, 19200 usw.). Zumindest bei den normalen AVRs. Die 
XMega AVRs haben ja nun endlich auch fractional baud rate divider :-)
OP #1091428
Lesenswert?

SO....
war bis grade beim Kollgen und wir haben mal den ganzen Hardware Krempel 
aufgebaut. Funktioniert auch relativ gut. Also die gesendeten Signale 
kommen beim Micro klar und deutlich an, man kann jeden Millimeter 
Bewegung auf dem Oszi erkennen, aber es gibt ein Problem: Irgendetwas 
schwingt extrem nach.
Hier gibts nen Video: www.dirk-soft.de/CIMG3028.AVI
Da sieht man es ein wenig. Oben der Sender, unten das Mic. Die 
Signaldauer der Mics ist deutlich länger als die des Senders.
Reflektionen von Wänden etc sind es meiner Meinung nach nicht, da das 
ganze länger wird, wenn man es dichter an den Sender hält. Was ja bei 
Reflektionen von Wänden egal wäre.
Das Signal bestand zu dem Zeitpunkt aus 10 Schwingungen, danach folgt 
eine lange Pause.
Kann sich das jemand erklären? Braucht ihr mehr Infos wie die 
Beschaltung war?
(Firma: Nisch-Aufzüge) Persönliche Seite #1091488
Lesenswert?

erklärung: lasse einen Gummiball fallen.
...
richtig ein Impuls reicht solange bis die Energie in Wärme umgewandelt 
wurde.

Die Dämpfung ist umgekehrt proportional, der Sensiblität also macht man 
die Mikes so empfindlich wie möglich, und der nutzer muß eine 
entsprechende Bürde basteln.

Dämpfen ist einfacher als empfindlicher machen ;)
#1091513
Lesenswert?

Fabian S. wrote:
> Wenn ichs recht verstanden habe einfach ein 40kHz Signal vom µC und ein
> Schmitt-trigger. Der Sender bekommt dann +/-5V Rechteck.

Wohl eher ein Pegelwandler, der die µC-Signale sind ja schon ziemlich 
steil, aber eben nicht +/- 5V
OP #1091520
Lesenswert?

Uhu Uhuhu wrote:
> Wohl eher ein Pegelwandler, der die µC-Signale sind ja schon ziemlich
> steil, aber eben nicht +/- 5V

Ja ist auch nur so in etwa, haben zur Zeit ne Notlösung meinte er, mit 
einem NE555 ;)

Winfried J. wrote:
> Joh, so hatte ich das auch gemacht. Allerdings habe ich festgestellt das
> eine Erregung mit  einem  1µS impuls am Sender den Empfäger ca. 20ms
> nachschwingen lies. Es handelte sich um Tests für einen
> US-Entfernungsmesser. Die maximale Entfernung lag bei ca 2,5 m. Die
> minimale auswertbare Entfernung bei ca. 10 cm.

Und hast du das mit dem Nachschwingen in Griff bekommen oder einfach 
ignoriert?
Gast #1091637
Lesenswert?

Beitrag "Controller Synchronisation über FBAS-Signal"

Beitrag "Synchronisation über Funk"

Folgende Lösung wurde realisiert:

Im Raum wurden 4 Ultraschall-Sender installiert (in jeder Ecke einer). 
Diese sind über eine Leitung synchronisiert.

Sender 1 (X1/Y1/Z1):
Sendet alle 02, 12, 22, 32, 42 und 52 Sekunden jeder Minute einen 
Impuls.

Sender 2 (X2/Y2/Z2):
Sendet alle 04, 14, 24, 34, 44 und 54 Sekunden jeder Minute einen 
Impuls.

Sender 3 (X3/Y3/Z3):
Sendet alle 06, 16, 26, 36, 46 und 56 Sekunden jeder Minute einen 
Impuls.

Sender 4 (X4/Y4/Z4):
Sendet alle 08, 18, 28, 38, 48 und 58 Sekunden jeder Minute einen 
Impuls.


Der autonome Roboter kennt die Koordinaten der Sender 1..4 und hat einen 
Ultraschall-Empfänger. Aufgrund der Laufzeiten errechnet sich der 
Roboter  alle 10 Sekunden seine Position neu (Koordinaten: Xr/Yr/Zr), 
und dies mit einer Genaugigkeit von +/- 5mm. Die ganze Berechnung wurde 
in Integer-Format realisiert und ist verdammt schnell...
#1093373
Lesenswert?

Hab jetzt nur bis zur Hälfte des Threads gelesen...
Bei uns an der Uni (JKU Linz) beschäftigen sich auch einige Leute mit so 
genanntem Local Position Measurement (LPM; Stichwort Hallen-GPS).
Hab leider keine tieferen Einblicke in deren Arbeit, aber das alles ist 
nicht wirklich einfach.

Mir scheint die Lösung mit relativer Zeitmessung am sinnvollsten.
Persönliche Seite #1094542
Lesenswert?

Das Nachschwingen kannst du nur mit sanfter Gewalt verhindern. Du hast 
einfach die falschen US-Wandler ausgesucht. Dein Wandler ist für hohen 
Wirkungsgrad gezüchtet, damit die umliegenden Schaltungsteile möglich 
billich billich sein können.
Du brauchst eigentlich breitbandige Wandler, z.B. die von Polaroid bzw. 
suche dir welche mit möglichst hoher Arbeitsfrequenz. Es gibt auch 
welche mit 100kHz aufwärts.

Der einfachste schnelle Fix wäre eine Miniatur-Mikrofonkapsel nur für 
den Empfänger. Nicht alle, aber viele, gehen locker bis 40kHz wenn man 
nicht die volle Empfindlichkeit nutzen muß.


Gruß -
A.
OP #1094549
Lesenswert?

Was meinst du mit US-Wandler? Umwandler von Schall in Strom, sprich nen 
Mic?
Also denkst du, dass es am Mic liegt?

Was mir da grade noch seltsames einfällt: Als wir das ganze am Oszi 
hatten, hatte ich mal ein Programm geschrieben, was ein Burst von 20 
Pulsen sendet und dann eine Pause macht. Nach den 20 Pulsen war wieder 
das nachschwingen. Aber: Ich hatte in der Mitte einen Impuls 
ausgelassen, also das Signal ein wenig kodiert. Hat auch funktioniert, 
da man es dann piepen hören konnte. So naja das interessante war nun, 
dass man auf dem Oszi (was am Mic hing) den fehlenden Impuls super sehen 
konnte! Wie kann das sein, wenn das doch nachschwingt?
Persönliche Seite #1094561
Lesenswert?

US=Ultraschall-Wandler
Ich dachte das wäre dein Problempunkt?

Ich habe vor Jahren mal vermutlich die gleichen Kapseln wie du 
ausprobiert, in einer Plastikröhre. Man konnte die Laufzeit des Signals 
gut messen. Durch das Nachschwingen hat man aber eine räumliche Totzeit 
von ca. 10cm gehabt, wenn man es nicht irgendwie unterdrückt.

Wie sieht dein Sender aus? Steuerst du den Wandler resonant an? Das wäre 
dann in deinem Fall schlecht. Du willst ja möglichst heftige kurze 
Impulse. Also einfach mit einem kräftigen Treiber den US-Geber 
'rumreißen'. Der darf gar nicht mehr dazu kommen ein Eigenleben zu 
entwickeln. Dsa bessert das Verhalten wesentlich. Es bleibt aber bei der 
Aussage, das die Kapseln für hohe räumliche Auflösung ungeeignet sind!

Am Empfänger kannst du einen Impedanzwandler verwenden. Die sind am 
Eingang sehr niederohmig und damit bedämpfen sie den US-Empfänger. Suche 
bei Google nach "Impedanzwandler OpAmp" z.B. als Fotodioden-Verstärker. 
Problemkreis der gleiche wie bei dir. Einfacher wäre ein passendes 
Mikrofon als Empfänger zu verwenden. Die sind von Natur aus 
breitbandiger.

Merke: Bandbreite antiproportional Ein-/Ausschwingzeit
Lese doch einfach mal über Schwingkreise bei Wiki. Dir fehlen die 
wichtigsten Grundlagen.


Gruß -
A.
(Firma: Nisch-Aufzüge) Persönliche Seite #1094565
Lesenswert?

Wenn du das signal gegengekoppelt zurückführst, kanst du die membran der 
Kapsel mechanisch nahe der Nullposition halten, was ein nachschwingen 
ausschliest. Du mist dann die Kraft mit dem OAmp, welche dazu nötig ist. 
Erst deren Stromäqivalent an einer Last führst du dem 
Spannungsverstärker als eingangsgröße zu.

Die Transmitter mit viel Power zu übersteuern bringt keinen 
Leistungsgewinn. Lediglich die nichtabgestralte und nicht verheizte 
Energie schwingt im System weiter zwichen Feder und Masse hin und her, 
und behindert die Nahauflösung.
(Firma: Nisch-Aufzüge) Persönliche Seite #1094574
Lesenswert?

>So naja das interessante war nun, dass man auf dem Oszi (was am Mic hing) >den 
fehlenden Impuls super sehen konnte! Wie kann das sein, wenn das doch 
>nachschwingt?

Das spricht für ein Nachschwingen des unbelasteten Transmitters, ein 
ausgelassener Impuls scheint ihn schon schwach zu dämpfen solange die 
treibendestufe niederomig ist. Der Recive scheint in diesem Fall schon 
soweit gedämpft zu sein, das der Impulsausfall erfassbar wird.
(Firma: Nisch-Aufzüge) Persönliche Seite #1094581
Lesenswert?

jo mei

Denn braucht er nur die erste Pulsflanke auszumessen und den Schwanz zu 
ignorieren Totzeit.

Beschränkt aber auch die Pulsfolgefrequenz aber nur gering.

Im Zeitschlitzverfahren jedoch verschlechtert sich dadurch die 
Messgenauigkeit am bewegten Objekt.,da er während der Totseit des 
geblendeten Snesors keinen neuen Impuls der Nächsten Bake aufnehmen 
kann.

sorry Fabian Abdul hat den Durchblick
OP #1094591
Lesenswert?

Oh ich blicks inzwischen nicht mehr. 1000 Meinungen und ich versteh nur 
die Hälfte.

> Das spricht für ein Nachschwingen des unbelasteten Transmitters, ein
> ausgelassener Impuls scheint ihn schon schwach zu dämpfen solange die
> treibendestufe niederomig ist. Der Recive scheint in diesem Fall schon
> soweit gedämpft zu sein, das der Impulsausfall erfassbar wird.
Ähh wann ist er denn mal hochohmig? Soweit ich weiß nie.

> Im Zeitschlitzverfahren jedoch verschlechtert sich dadurch die
> Messgenauigkeit am bewegten Objekt.,da er während der Totseit des
> geblendeten Snesors keinen neuen Impuls der Nächsten Bake aufnehmen
> kann.
Und genau das ist mein Problem. Der Bot bewegt sich mit bis zu 1m/s und 
wenn ich ne halbe Ewigkeit auf die Ultraschallsignale warten muss und 
dann auch noch 4 Stück davon. In der Zeit ist der Bot übers halbe 
Spielfeld gefahren...

> Wie sieht dein Sender aus? Steuerst du den Wandler resonant an? Das wäre
> dann in deinem Fall schlecht.
Hmpf... Momentan mit einem gestuertem NE555 (weiter oben beschrieben). 
Und mein neuer Plan ist (auch schon beschrieben!) ein L293D zu 
verwenden.
(Firma: Nisch-Aufzüge) Persönliche Seite #1094615
Lesenswert?

Also wenn du schneller messen willst, ist "more power"  und resonant 
keine alternative in geschlossenen Räumen. Du kannst da weder 
Mehrfachreflektionen ausschließen und mußt zudem abwarten bis der 
impulsvollständig im Rauschen untergegangen ist bevor du den nächsten 
senden kanst, weil sonst der Reciver einlaufende signal weder einer Bake 
noch einer zeitscheibe zuzuordnen vermag.


Zum schnellen Messen must du also dissonante orts-und-zeit-codierte 
Pulsepakete auf unterschiedlichen Kanälen umlaufend senden und erfassen. 
So kann der Prozessor auf das jeweils jüngste signal jeder bake 
zugreifen und daraus den neuesten Standort errechnen, auch wenn sich der 
Bot in unmittelbarer nähe einer Bake und weit weg von einer Anderen 
befinden.

Stichworte DSP FFT
Persönliche Seite #1094618
Lesenswert?

Fabian, du kannst die physikalischen Grenzen nicht neu ziehen! Wenn du 
eine hohe Meßgeschwindigkeit brauchst, muß das dein Sensorsystem auch 
von seinen Eigenschaften her unterstützen. Du kannst das mit deiner 
Schaltungstechnik allerhöchstens verschlechtern oder dich sinnlos auf 
den Kopf stellen.

Der L293 hat viel Leistung, interessiert sich aber nicht für seinen 
Ausgang! Der gibt dann einen kräftigen digitalen Impuls raus mit allen 
tollen Oberwellen und die soll dann der US-Wandler verdauen...

Ein schneller Audio-Verstärker wäre besser! Den kannst du nämlich 
gegenkoppeln, so daß dieser was vom Eigenleben des US-Wandlers 
mitbekommt. Am Eingang bräuchtest du dann einen Sinus. Ich sehe schon, 
denn hast du natürlich auch nicht :-)

Ich kann dir aus dem Kopf leider auch nicht sagen, WIEVIEL Bandbreite 
deine Wandler für deine gewünschte Geschwindigkeit brauchen. Das würde 
ich persönlich ausprobieren, man kann es aber sicherlich auch berechnen.

Als Anhaltspunkt würde ich mal sagen, das man drei Wellenlängen des 
Nutzsignals für ein gutes erkennbares Ereignis brauch. Also rechne dir 
aus, wie lange das bei 40kHz in Luft dauert.


Da fällt mir gerade ein Diplomarbeit ein, wo ein Typ deine Navigation 
mit US machte und alles exakt herleitete. Der hatte sogar extra Tütchen 
gebastelt, um den US kreisförmig abstrahlen zu können. Wenn es dir 
hilft, wühle ich mal auf der Festplatte.


Gruß -
A.
OP #1094619
Lesenswert?

Ja ne ist klar, und nen kleines Atomkraftwerk bau ich auch noch eben mit 
ein, denn das ganze brauche ja mindestens 100mA :D
Sorry, zu kompliziert :)

Was mich eigentlich am meisten stört ist, dass ich nicht weiß was denn 
die Nachschwingungen verursacht. Habe ich schon zich mal gefragt und 
keiner hat mir bislang ne richtige Antworte gegeben, soweit ich mich 
erinnern kann.
Persönliche Seite #1094627
Lesenswert?

Das Nachschwingen ist wie bei einem Feder-Masse-System. Der Wandler wird 
von dir angeregt, lädt sich mit jeder Schwingung mehr Energie in sein 
System und wird die dann genauso schlecht wieder los durch die Dämpfung 
deines Treibers nach dem gewünschten Impuls. Das ist doch nicht schwer 
zu verstehen!

Und solange er da so rumschwingt, schwingt auch seine Membran und damit 
die Luft und das Ergebnis kennst du ja...


Der grundlegende physikalische Hintergrund ist auch simpel: Der Wandler 
hat eine hohe mechanische Steifigkeit, weil er aus Keramik besteht. Die 
anzuregende Luft ist extrem weich. Sie ist zwar bei US-Frequenzen härter 
als in unserem Hörbereich, der Unterschied ist aber immernoch 
katastrophal groß! In dem Wandler ist eine runde kegelförmige Platte. 
Die zusammen mit einer lambda/4 resonsten Abstand zu einer 
Reflexionsschicht unterhalb des Sensors (Auf der Seite wo er die Pins 
hat), erzeugt einen Resonanzraum von 40KHz mit Anpassung an die Luft. So 
ein Wandler ist High-Tech auch wenn man es nicht vermutet! Die Anpassung 
ist nun aber immernoch schlecht, weil der Wandler einfach viel zu wenig 
Fläche hat! Deswegen schwingt er so dämlich nach. Er kriegt die Energie 
einfach nicht schnell genug in die Luft bzw. umgekehrt kann er sich 
nicht fest genug an die schwingende Luftsäule ankoppeln, wenn du ihn als 
Empfänger benutzt.

Das allgemeine Prinzip dahinter ist einfach Brechung an 
unterschiedlichen Schichten. Gibt es auch bei Linsensystemen in der 
Optik. Die Gesetze von dort gelten hier auch.

Sender und Empfänger sind fast gleich. Der eine wird in Parallelresonanz 
betrieben, der andere in Serienresonanz. Ansonsten kann man sie aber 
auch mit schlechteren Eigeschaften durchaus gleich machen oder 
vertauschen. Der für Sender war wohl in Serienresonanz. Ich weiß das 
nicht mehr aus dem Kopf. Ist egal, nimm halt den Sender fürs Senden und 
den speziellen Empfänger fürs Empfangen. Dann hast du die höchste 
Reichweite. Die beiden unterschiedlichen Kapseln kann man ja immer 
zusammen kaufen.



- A.
Persönliche Seite #1094654
Lesenswert?

Ja! Aber mit weniger Schwingungen pro Meßimpuls-Ereignis sinkt auch die 
erreichbare Amplitude! Erinnere dich an das Feder-Masse-System. Weniger 
Amplitude bedeutet weniger Reichweite, da dein Empfänger eine feste 
erreichbare eigene Empfindlichkeit hat (Die wird hauptsächlich von den 
Umgebungsgeräuschen und dem Eigenrauschen bestimmt). Es ist ähnlich wie 
bei der Heisenbergschen Unschärferelation. Man kann nicht hohe Auflösung 
und hohe Empfindlichkeit gleichzeitig haben! Da mußt du einen Kompromiß 
finden.


Man kann das nun technisch noch extrem viel weiter treiben. Du wärest 
erstaunt, was machbar ist. Als Beispiel nannte ich schon Fledermäuse. 
Die sind in der Lage im Dunkeln einen im Raum gespannten Bindfaden zu 
umfliegen! Ihre Sendefrequenz liegt je nach Art irgendwo im Bereich 
15kHz bis vielleicht 300kHz. Viele Arten senden extrem breitbandig in 
Chirps. Jetzt wirst du zu Recht einwenden: Das kann ja nach den 
bisherigen Ausführungen dann kaum funzen! Die Viecher schaffen das aber, 
hatten aber auch über 100 Millionen Jahre Zeit für die Entwicklung und 
wer schlechter war, wurde zu früh gefressen ohen Spaß gehabt zu haben...
Es gibt diverse Kreise vor allem beim Militär, die gerne wüßten wie die 
Tiere solche extremen Leistungen verbringen können.

Soweit sind wir hier noch lange nicht. Aber es geht noch einiges!
Aber sowas mache ich nur noch gegen Geld. Die vergangenen Jahre des 
Lernens müssen kompensiert werden :-)


- A.
Persönliche Seite #1094690
Lesenswert?

Man kann den Schall als schwach gekoppelten Trafo simulieren. 
Mechanische Größen lassen sich in elektrisch Äquivalente umrechnen. 
Ersatzschaltbilder habe ich irgendwo auf der Platte.
Bevor du so tief einsteigst und sich das für dich vielleicht in dieser 
Anwendung gar nicht lohnt, schau hier mal rein:
http://www.informatik.uni-kiel.de/~railway/Downloads/hoehrmann1.pdf

Vielleicht reicht dir die dortige Leistung bereits aus?

Sei dann aber nicht enttäuscht und auf mich sauer, wenn dir keine Arbeit 
außer Nachbauen mehr bleibt :-)


Jetzt muß ich aber wirklich noch etwas arbeiten...


Gruß -
A.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren