Morse-Übungsgenerator mit Mikroprozessor

  • Guten Morgen QRPForum,


    nachdem ich gestern noch die Beschaltung des atTiny85, atTiny861 geändert habe, folgt hier der neue Schaltplan mit einigen Erweiterungen und Ergänzungen.


    Diese nachfolgende und alle weiteren Firmware wird nur noch für diesen Schaltplan sein !


    Die wesentliche Softwareerweiterung ist, neben der Nutzung eines atTiny861, auch der zweite PWM B Kanal.
    Er wird mit mit dem PWM A Kanal gemischt und erzeugt nur dann auch ein tönendes Telegrafie Signal.
    Mischt man nicht oder wenniger, verändert sich natürlich die Klangfarbe.


    Siehe: http://www.qrpforum.de/index.p…ad&postID=49438#post49438


    Die Oberwellen habe ich mit dem angehängten Python-Script erzeugt.



    Diese Parametern erzeugen 4 Schwingungen mit je 128 Samples, also 512 PWM-Daten.
    Die Klangfarbe des Signals kann durch die Mischung verschiedener Oberwellen verändert werden.


    Wer hat hier Erfahrungen und kann einen anderen Satz Koeffizienten A E [a2,a3, .. ,a9] benennen ?


    .

  • Hübsches Video und kling wirklich gut.
    Höher darf die Geschwindigkeit für mich leider auch nicht sein.
    Jetzt noch etwas Übungstext.... Hm. Klartext? Oder 5er-Gruppen? Wie könnte man den gehörten Text dann überüprüfen? Vielleicht mit Morsetaste wieder eingeben? Wäre das nicht noch eine Idee?


    MfG Alexander

  • Hallo Leute,


    Günter hatte eine gute Idee: Messen statt Raten. Ich habe mit meinem Hantek DSO-2090 USB drei Schalter ausprobiert: Einen Kippschalter (prellt ziemlich), eine alte Junker (Präzisionstaste, prellt nur wenig und kurz) und eine einfache, preiswerte Morsetaste von Llaves Telegraficas Artesanas GMC aus Messing. Prellt auch nur wenig.


    Resultat: Ein Entprellen von 3 ms reicht auch für einfache Morsetasten, mehr ist nicht nötig. Der Kippschalter würde ein längeres Entprellen benötigen, aber darum geht es ja jetzt gar nicht. Aber die Preisdifferenz zwischen einer billigen Morsetaste und einem teuren Schalter ist ja auch immens.


    Die Bilder und Screenshots sind hier: http://www.qth.at/dm3da/prelltest/index.html


    73 Daniel DM3DA

  • Moin Daniel,

    Einen Kippschalter (prellt ziemlich)


    ich denke, wer versucht mit einem solchen Schalter, wie du ihn auf deiner Webseite zeigst (ausser in wirklichen Notsituationen -> nichts Besseres verfügbar) CW zu geben ist "selber schuld", daß sich das Signal übel anhört... Deine Messungen sind sehr aufschlußreich! Interessant wäre einmal, die "Qualität"/Prellzeit einiger "Homemade"-Konstruktionen (z.B. aus Relaiskontakten, Fingerhüten, CDs, Nagelfeilen,...) zu ermitteln. Falls du Zeit (und "Spender") dafür finden könntest, wäre ich dir sehr dankbar ;)


    73 de Roland / DK1RM

  • Danke Daniel,


    das ist sehr aufschlussreich, nun wissen wir, wie schnell deine Tasten sind.


    Ich warte jetzt auf die ersten Berichte von einem funktionierenden (Nach-/)Aufbau.


    Wer macht mit ?


    Wer braucht evtl. Unterstützung ?


    Ich lese seit Tagen in Netz fast alles über Morse Lese / Dekodieralgorithmen.


    Viele Programme arbeiten nur statisch und können sich nicht auf das sich veränderte Zeitverhalten von dit, dah und dit-Pause und Wort-Pause einstellen.


    Bsp.:
    - http://www.elektronik-labor.de/AVR/Morsedecoder.html


    Mein Idee war auch das Zeitverhalten der Dits und Dahs per Fussy Logic zu bewerten und ich habe heute einen tollen Fachartikel darüber gefunden.


    Datei: 72-983-1-PB.PDF


    Morse Code Recognition System with Adaptive Fuzzy
    Algorithm for the Disabled


    In qst_cw.pdf sehen wir, wie man es früher gemacht hat A PIC16F84 based CW Decoder .


    Für erste Versuche verwendete ich den decoder v0.81 for the arduino .
    Die original Datei findet ihr im Anhang.
    Damit kann ich mich mit der Problematik Morsedekodierung besser vertraut machen; und nein ich nutze nicht Arduino. Jeden C Code kann man umschreiben.


    Wenn man die WPM in diesem Programm verändern könnte, wann wäre man schon fast fertig.
    Ein eigenständiges Rumpfprogramm Morsedekodierung auf einem atMega32 mit LCD-Anzeige und Keyer Eingabe habe ich gesten Nacht schon geschrieben. Mehr Infos folgen, wenn für mich die Materie etwas 'greifbarer' wird.


    .

  • Moin Uwe,

    Ich lese seit Tagen in Netz fast alles über Morse Lese / Dekodieralgorithmen.


    ich möchte dich absolut nicht von deinem Vorhaben abhalten oder dich demotivieren, nur du solltest wissen, daß du dich dabei auf ein "hartes Brot" einlässt. Auch ich habe sowas schon mal versucht (im Vorversuch mittels PC und Soundkarte), und bin dabei trotz "trickreicher" Algorithmen gescheitert. Ich würde mich freuen, wenn du dieses Problem "knacken" könntest! Mit einem "sauberen" CW-Signal klappt sowas relativ problemlos, jedoch geben einige OMs absichtlich so "unüblich", daß die "Dekoder-Leute auf die Nase fallen". Und sowas dann noch dekodieren zu können, ist eine echte Herausforderung...


    55 de Roland / DK1RM

  • Hallo Roland,


    ja es ist nicht einfach, Du kannst bitte deine Algorithmen hier einstellen.


    Es geht uns hier ja primär als Ergänzung für den Übungsgenerator und das Mitschreiben der selbst gegebenen Zeichen.


    Vielleicht stellt sich für mich auch heraus, dass ich durch andere Projekte, keine Zeit mehr dafür habe..


    Ein neues Projekt steht auch noch an: ein Funktionsgenerator mit der DDS AT9834 für den KW Bereich.
    Hat ein 2x16Z LCD Display soll einfach zu bedienen sein und wenig Kosten.
    Die abgegebene Leistung wird kalibriert und geregelt. Definierte Dämpfungsglieder liefern dann genormte Pegel. Z.B. für (T)RX Messungen.


    .

  • Moin!


    Moin Uwe,


    ich möchte dich absolut nicht von deinem Vorhaben abhalten oder dich demotivieren, nur du solltest wissen, daß du dich dabei auf ein "hartes Brot" einlässt. Auch ich habe sowas schon mal versucht (im Vorversuch mittels PC und Soundkarte), und bin dabei trotz "trickreicher" Algorithmen gescheitert. Ich würde mich freuen, wenn du dieses Problem "knacken" könntest! Mit einem "sauberen" CW-Signal klappt sowas relativ problemlos, jedoch geben einige OMs absichtlich so "unüblich", daß die "Dekoder-Leute auf die Nase fallen". Und sowas dann noch dekodieren zu können, ist eine echte Herausforderung...


    Habe mich kürzlich mal mit dem Thema CW-Dekodierung beschäftigt und war verblüfft, wie gut die Resultate trotz eines sehr einfachen und geradezu intuitiv dahingeschriebenen Algorithmus waren. Wenn das Eingabesignal nicht mit Rauschen behaftet ist, muss man keine besonderen Anstrengungen unternehmen.


    Realisiert habe ich es in JavaScript, läuft also im Browser, und die Eingabe erfolgt über die Maustaste als Handtaste auf der "KEY"-Schaltfläche:
    http://fkurz.net/ham/stuff.html#jsmorse
    (Habs nur mit Firefox probiert, keine Ahnung ob die anderen Browser ähnlich gut die Events im Millisekundentakt auflösen.)


    Die Tempoeinstellung ist nicht besonders kritisch, das ganze adaptiv zu gestalten wäre aber auch kein großes Problem.


    73
    Fabian DJ1YFK

  • Mit einem "sauberen" CW-Signal klappt sowas relativ problemlos, jedoch geben einige OMs absichtlich so "unüblich", daß die "Dekoder-Leute auf die Nase fallen". Und sowas dann noch dekodieren zu können, ist eine echte Herausforderung...


    Ich denke man sollte die ursprüngliche Intention nicht aus dem Auge verlieren, sonst verzettelt man sich schnell mit Anforderungen, die letzendlich nicht zielführend sind.


    Das Projekt startete als simpler Morse-Übungsgenerator und ist - dank Uwe - gerade auf dem Weg zum ausgewachsenen Morsetrainer. Zielgruppe ist also nicht der OM, der Morsecode von einem Empfängersignal decodieren will - dazu gibt es genügend ausgereifte Digimode PC Programme - sondern der Anfänger, der sich mit Hilfe eines simplen Morsetrainers die Grundlagen im richtigen Geben und Hören von Morsezeichen aneignen will. Insofern wird an die Decodierung hier nicht die Anforderung gestellt, "unübliche" Tastweisen ausbügeln zu können. Im Gegenteil, ein Morsetrainer sollte m.E. eine "unübliche" Gebeweise gerade nicht tolerieren und so den Gebenden dazu anleiten, sauber zu tasten. Und dazu gehört eben, dass ein Zeichen auch nur dann richtig decodiert werden muss, wenn es sauber getastet wurde, und nicht mit dem "linken Fuß" geklopft. Es ist ja der eigentliche Sinn eines Trainings, etwas richtig einzuüben.


    73, Günter

    "For every complex problem there is an answer that is clear, simple, and wrong" (H.L. Mencken)

  • Hallo Günter, das ist ein wichtiger Punkt! CW-Kodierer für Anfänger, der zum sauberen Geben zwingt. Super.


    Hallo Uwe, ich bin leider nicht so schnell, wie Du vielleicht glaubst. Ich habe heute gerade mal meine Bestellung mit einem Brenn-Adapter (myAVR mySmartUSB light) und einen Mikroprozessor bekommen. Das ist allerdings ein Attiny45. Um einen anderen Prozessor zu bekommen, müsste ich nochmal zu Conrad fahren -- dazu habe ich leider gerade keine Zeit.


    Derzeit kämpfe ich mit dem Problem, wie ich den Mikroprozessor an den Brenn-Adapter hänge. Habe ich das falsch verstanden, oder ist das wirklich trivial? Einfach nur die entsprechenden Anschlüsse miteinander verbinden? Oder müssen da noch irgendwo irgendwelche Widerstände rein?


    73 Daniel DM3DA

  • Daniel, es ist wirklich so trivial.
    Man sollte nur aufpassen, dass man keine "doppelte Stromversorgung hat", dass also beim Programmieren nur die Stromversorgung des Programmieradapters am Baustein liegt. Manche Programmer haben auch lediglich den 10 poligen STandard ISP-Stecker und noch nicht den neuen 6-poligen für die kleinen Tinys, dann muss man sich einen "Reduzieradapter" auf den 6-poligen löten. Diesen Adapter gibt es auch bei MyAVR als "Connect Kit" für 5,45E fertig zu kaufen. Beim Aufbau auf dem Breadboard ist das aber egal, da du die jeweiligen Programmiersignale sowieso einzeln verdrahtest.


    Eine komfortable, aber vom Programmplatz her gefrässige Programmieroberfläche und Tool Chain (C Compiler, Debugger, etc ) ist das neue AVR-Studio 5 Beta für Windows, das seit kurzem auf der Atmel Webseite heruntergeladen werden kann. Der My-AVR USB-Programmer wird von AVR Studio wie ein Atmel STK500, AVRISP MkII oder AVR910/911 angesprochen ( so war es jedenfalss bei AVR-Studio 4) und man kann die Firmware des Programmers darüber aktualisieren, so dass auch die jeweils neuesten AVR Bausteine abgedeckt werden. Statt AVR-STudio geht es aber auch mit dem einfachen AVR ProgTool.


    Die Linux und C Puristen kompilieren und programmieren in der Regel mit ihrer eigenen Toolchain und AVRDude. Um nur eine HEX-file zu programmieren und die Fusebits auszulesen und einzustellen ist das AVR-Studio für Anfänger m.E. einfacher.


    73, Günter

    "For every complex problem there is an answer that is clear, simple, and wrong" (H.L. Mencken)

  • Burkhard DK5JG (SK) habe ich kennen gelernt, als ich in den DARC Ortsverein Düsseldorf R01 eintrat. Leider hatte ich mich damals noch nicht besonders für Mikroprozessorprogrammierung interessiert, denn er war ausgewiesener Fachmann auf dem Gebiet.


    Eines der Themen, an dem er intensiv gearbeitet hat, sind elektronische Morsetasten. Die Bedienung dieser Elbugs/Squeeze-Geber reicht von "möglichst einfach & Contest-sicher" bis zu "ausgesprochen komfortabel". Ein Textspeicher ist, soweit ich das übersehe, bei allen der Projekte dabei. Die genaue Beschreibung und die Programme findet Ihr hier: http://home.arcor.de/burkhard-john/


    Bei dem komfortabelsten Projekt, bei dem er auf besonders gute Ergonomie wert gelegt hat, lässt sich der Mithörton über die Morsetaste ändern. Super Idee, denn wozu ein Potentiometer/Schalter, wenn sowieso eine Paddletaste an dem Gerät hängt. Er schrieb auf http://home.arcor.de/burkhard-john/macrobug/microbug.html -> Mithörton:


    Die Frequenz des Mithörtones kann zwischen 500Hz und 2000Hz eingestellt werden. Wenn die Batteriespannung unter 3V sinkt, ändert sich die Frequenz auf 400Hz. Umschalten der Tonhöhe: Als Befehl den Buchstaben "T" und die Frequenz in Hz in Speicher "5" eingeben, danach die Taste "N" drücken. Wenn die Eingabe gültig war, antwortet die Taste mit der Wiederholung des Befehls, schon mit der neuen Frequenz. Bei einer Fehleingabe wird auf 800Hz geschaltet oder es erscheint die Contestnummer "001". Ein Beispiel: Der Befehl "T700" schaltet auf 700Hz. Um die Tonhöhe abzufragen, wird der Befehl "T?" in den Speicher 5 geschrieben und die Taste "N" gedrückt. Die Taste antwortet dann mit "T" und der Tonfrequenz.


    Für den Tongenerator, über den wir in dieser Diskussionsrunde reden, ist das natürlich nichts. Aber mir hat diese Passage die Augen geöffnet, wie einfach sich Mikroprozessoren durch Telegraphie steuern lassen. In die andere Richtung geht es natürlich auch, wie z. B. bei der DL-QRP-AG Mini DDS mit Audio Frequenz Ausgabe für den Tramp.


    73 Daniel DM3DA

  • Bei dem komfortabelsten Projekt, bei dem er auf besonders gute Ergonomie wert gelegt hat, lässt sich der Mithörton über die Morsetaste ändern. Super Idee, denn wozu ein Potentiometer/Schalter, wenn sowieso eine Paddletaste an dem Gerät hängt.


    Hallo Daniel,
    ich bin total der entgegengesetzten Meinung. Jede Bedienung einer Funktion über die Paddles ist im praktischen Betrieb absolut störend.


    Wenn für irgendeine Änderung, sei es Tempo, Tonhöhe oder sonst was das Paddle benötige, muss ich meine Aussendung unterbrechen. Mein Partner weiß ja nicht, dass ich nur etwas ändere, er muß denken, ich hätte die Sendung abgebrochen. Wird über ein Poti geändert, kann ich das ohne die Aussendung zu unterbrechen tun.

    73/2 de Peter, DL2FI
    Proud member of Second Class Operators Club SOC and Flying Pig Zapper #OOO (Certificated Kit Destroyer)