-
-
Erfahrener Benutzer
Roboter Genie
Nochmal zur Kennung:
Überlegung zur Kennung mittels Frequenz:
Da einen keiner zu festen Bitzeiten zwingt kann man beliebige Frequenzen erzeugen, solange die On-Zeit>22µs und <500µs ist und die Auszeit >26µs. Zusammen also rund 50µs oder 20kHz.
Ich kann jetzt beliebig z.B. wie folgt codieren:
Bake 1: 20kHz
Bake 2: 18kHz
Bake 3: 16KHz
Bake 4: 14kHz
Bake 5: 12kHz
Bake 6: 10kHz
...
Geht das? Oder macht der Dopplereffekt Probleme?
Untersuchung:
Beispiel:
Strahlweite 3,6° = 1/100 U
20U/s entsprechen 50ms/U
oder 500µs pro 3,6°
Die Trägerfreuenz von 455kHZ gibt Perioden von ca. 2,2µs vor. So hoch kann ich theoretisch die Pulsweite beim Senden auflösen und somit eine Frequenz eingestellt werden. Ich kann also o.g. Frequenzen locker realisieren.
Betrachtung zur Fahrgeschwindigkeit / Dopplereffekt:
n=20U/s = 50ms/U = 138µs/°
bei r = 10m wäre U = 31,4m und 1°= 8,7cm Wegauflösung
d.h. die Geschwindigkeit des Lichtstrahls beträgt dann 8,7cm/138µs oder 630m/s. Dazu würde sich die Geschwindigkeit des Bots addieren bzw. subtrahieren und dabei die Frequenz verstimmen.
Die Verstimmung liegt also bei 10m Abstand und 1m/s bei << 1%
Bei 1m Abstand wären das dann "nur noch" 63m/s Umfgangsgeschwindigkeit. Hier macht sich ein Tempo von 0,6m/s dann mit 1% Frequenzverstimmung bemerkbar.
Fazit: Das macht bei einem Rasenmäher, in der Sub-Formel-1-Klasse kein Problem. Frequenzabstände von ca. 10% oder 2kHZ/20kHZ sollten allemale sicher unterscheidbar sein sein.
Nun stellt sich die Frage nach der Auswertung der Frequenz im Bot.
Frage: Kann man das über eine Zählermessung ala Frequenzzähler realisieren? Problem: Die Messdauer ist sehr klein.
Bei o.g. Beispiel hatten wir bei 3,6° Strahlweite eine Dauer von 500µs in der etwas empfangen wird. Das sind bei 20kHz nur 10 Perioden. Bei 10kHz sogar nur noch 5 Perioden.
Wenn man also 1 Perioder "verpasst" hat man schon einen Fehler von ca. 10 bzw. 20%
Fazit: So geht es nicht.
Also muss gesampled werden:
Wie groß ist der Unterschied der Periodendauber zwischen 20kHz und 18kHz?
20kHZ <=> 50µs
18kHz <=> 55,5µs
Hmm, hässlich wenig aber OK.
Also dann einen Zähler mit >1MHz laufen lassen und die Periodendauern der vollständigen Perioden mittels Port-Change-Interrupt messen und ersatmal in Liste schreiben (ca. 10-30 Bytes pro Bake) später auswerten. Falls kein Port-Change erfolgt, Empfang beendet..
Gleichzeitig mit einem 2. Timer die gesamte Empfangsdauer vom ersten bis letzten Impuls messen (um dann die Mitte zu nehmen..)
Wenn Empfang einer Bake beendet, Zeitpunkt der Mitte des empf. Signals bestimmen und Frequenz des Signals, speichern.
Dito für die anderen Baken.
Wenn ein kompletter 360°-Zyklus rund ist, kann erstmal in Ruhe gerechnet werden. Die Peilwinkel ausrechnen usw..
Man lässt halt einfach eine Runde oder 50ms vergehn und hat genug Zeit für die Auswertung. Ergebnis an Host...
So hätte man alle 100ms eine Positionsuflösung von ca. 8,7cm in 10m Entfernung. Entsprechend weniger in geringerer Entfernung..
Wenn die Baken langsamer rotieren und der Lichtstrahl schmaler (Laser) wird, steigt die Auflösung entsprechend. Hier kann dann ggf. der Dopplereffekt zuschlagen..
Das System wäre in Grenzen skalierbar. Es gibt nirgends irgendwelche High-Tech-Anforderungen an Rechenleistung usw.
Drehzahl, Strahlweite, Stralleistung, Modulationsfrequenz, Anzahl der Baken usw. erlauben weitere Steigerungen. Die Anforderungen an das Fahrzeug sind gering. Ideal auch wenn man mehrere Fahrzeuge bewegen möchte.
Bisher allerdings noch weitgehend ein Gedankenmodell.
Any comments?
Sigo
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen