PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Morsecode auslesen



sulu
28.12.2008, 15:10
Hi

ich experimentiere ja grade an Daten Sendungen über die Rs232 Schnittstelle.
Dabei ist mein Mini-Projekt auch schon erfolgreich verlaufen.
Nämlich Daten (Sensorwerte oder dergl.) per Morsecode und Walkie Talkie bis zu 5km weit(oder per Handy um die ganze Welt) vom Controller zurück zum Pc zu schicken.
Wie gesagt, dass ist nicht das Problem. Das liegt vielmehr darin mit Bascom und dem Avr einen Morsecode zu entschlüsseln, damit ich nicht nur Daten zurück bekomme, sondern mit der selben Methode auch Befehle schicken kann.

Gibt es da also einen Weg den Morsecode mit dem Avr(Mega32) auszulesen?(Also das was jetzt noch ein Pc-programm macht.(siehe Bild))

Vielen Dank
und viele Grüße
sulu

PicNick
28.12.2008, 17:30
Wenn du sicher erkennen kannst, was lang und was kurz ist (ist ja immer nur relativ beim morsen) ist es halt ein gefrickel, um das dann zu entschlüsseln.
Ich hab aus dem Netz so einen "kurz-lang-Baum", wo das beschrieben ist.

Wenn du nicht mit der Hand sondern mit dem PC morst, sollte das ja mit den Zeiten halbwegs genau sein.

magic33
28.12.2008, 17:35
bitmuster liste erstellen liste durchlaufen und dann das ergebniss eben auf lcd PC oder an die ausgabe

liste rekursiv wählen also 2 listen liste 1 =A,B,C....
liste 2 =10,0111,0101....
die trennung erfolgt mitels timer interupt denk ich

vohopri
28.12.2008, 17:46
Hi,

Morse ist zwar nicht der effizienteste Code, aber macht Spass und kann jederzeit per Hand gesendet und per Ohr dekodiert werden. Meinen ersten Decodierer hab ich für den c64 geschrieben und meinen letzten heuer für ein Programm, das es erlaubt, die Computermouse als sqeeze key ein zu setzen.

Der Algo ist sehr einfach, da braucht es auch nicht viel Speicherplatz.

Wenn du Fragen dazu hast, stelle sie hier.

grüsse,
Vohopri

chr-mt
28.12.2008, 18:04
Hi,
ich habe sowas auch vor vielen Jahren mal in GFA-Basic geschrieben.
Leider habe ich die Sourcen dazu nicht mehr. :(
Soweit ich mich noch erinnere, war das größte Problem, sich an die unterschiedlichen Gebegeschwindigkeiten anzupassen.
Ich hatte das damals manuell gemacht, was etwas umständlich war.

Mich würde ein Bascom Programm auch sehr interessieren!

Gruß
Christopher

sulu
28.12.2008, 18:09
bitmuster liste erstellen liste durchlaufen und dann das ergebniss eben auf lcd PC oder an die ausgabe


hi
im Prinzip Ok. Aber mit welchem Befehl übersetze ich das Signal in Bits? Das Audio signal läge ja direkt am Port an.

Viele Grüße

vohopri
28.12.2008, 18:36
Ha, da werden schon viele originelle Vermutungen geäussert:

2 Listen für die übersetzung zu verwenden, ist unsinnig. Man verwendet auch sicher keine Liste mit den Bitmustern. Also: KEINE Codelisten durchlaufen.
Wenn du alfanumerische Ausgabe hast, verwendest du eine einzige Liste und die enthält die Characters, die ausgegeben werden sollen. Wenn du das empfangene ohne alfanumerische Ausgabe einfach im Programm weiter verarbeiten willst, dann verwendet man eine Liste mit Unterprogrammadressen oder GAR KEINE Liste.

Der übliche Algo ist auch kein Gefrickel sondern ein recht elegantes Ding ohne Listen und ohne komplizierte Verzweigungen.

Die Programme passen sich sehr einfach den wechselnden Gebegeschwindigkeiten an, die bei normaler Handtastung vorkommen. Das geht automatisch und fliessend. Erst bei abrupten Temposprüngen aufs 2- oder 0.5 fache von einem Zeichenelement aufs nächste gibt es Aussetzer und dann funktionierts wieder normal auf der neuen Geschwindigkeit. Sowas kann man aber ausschliessen.

Bei der Erkennung von Ton und Pause per Software, kann ich dir aber nicht helfen, da ich das immer mit einer selektiven Transistorschaltstufe gelöst habe.

v.

Besserwessi
29.12.2008, 00:09
Das Erkenne des Tons sollte so ähnlich wie beim tastenentprellen gehen.
Wie genau hängt davon ab welcher pin genutzt wird. Heir ein Beispiel:
Am besten wäre da wohl ein Timer Eingang zum zählen (z.B. T1,T0). Alle etwa 10-100 ms wird im Interrupt der Zähler ausgelesen um zu sehen ob in der Letzten Zeit ein Ton ankam. Wenn da mehr als 1-5 Counts waren, war da wohl ein Ton. Die genaue Grenze muß man eventuell optimieren, sollte aber nicht kritisch sein.
So hat man dann eine abfarge des Eingangs auf to oder nicht. Die Länge des Tone läßt sich dann darüber feststellen wie oft hintereinander man den Ton festgestellt hat.

vohopri
29.12.2008, 05:43
Hallo wessi,

wie wird denn da zwischen Störgeräusch und Signal unterschieden? Störgeräusch ist ja nicht grundsätzlich kürzer als der Morseton, sondern hat ein anderes Frequenzspektrum.

grüsse,
vohopri

vs
14.06.2009, 16:43
Hallo, bin zufällig über das Thema gestolpert, ist das noch aktuell?

vs