| Beide Seiten der vorigen Revision
Vorhergehende Überarbeitung
Nächste Überarbeitung
|
Vorhergehende Überarbeitung
|
f11:technik:arduino:programme:arduino-cw-keyer-k3ng [2021/03/13 13:51] dm3kb [Veränderungen] |
f11:technik:arduino:programme:arduino-cw-keyer-k3ng [2021/08/30 07:28] (aktuell) dm3kb [Compile & Upload] |
| irgendwas nicht, im dümmsten Fall geht gar nichts und die Fehlersuche ist nicht wirklich einfach.\\ | irgendwas nicht, im dümmsten Fall geht gar nichts und die Fehlersuche ist nicht wirklich einfach.\\ |
| \\ | \\ |
| Hardware Test [[f11:technik:arduino:programme:sketch-basis|Sketch]] (Das ist nur für einen Test, also kein richtig schöner Code, aber es reicht): | Hardware Test [[f11:technik:arduino:programme:sketch-basis|Sketch]] (Das ist nur für einen Test der auf dem Terminal Informationen darstellt und Output-Pin's ansteuert), also kein richtig schöner Code, aber es reicht um zu sehen ob es funktioniert): |
| <code> | <code> |
| /* | /* |
| Note: It is far mor easy to change the Ardiono pins here as to change the wiring on the board... | Note: It is far mor easy to change the Ardiono pins here as to change the wiring on the board... |
| */ | */ |
| | // Digital |
| int led = 5; // Pin with LED for CMD-Indication | int led = 5; // Pin with LED for CMD-Indication |
| int sound = 7; // Pin to output Sound | int sound = 7; // Pin to output Sound |
| int key3 = 3; // Input from Key pin D03 Right dah | int key3 = 3; // Input from Key pin D03 Right dah |
| int key4 = 4; // Input from Key pin D04 Left dit | int key4 = 4; // Input from Key pin D04 Left dit |
| | // Analog |
| int ana6 = 6; // input pin for the potentiometer A6 | int ana6 = 6; // input pin for the potentiometer A6 |
| int ana7 = 7; // input pin for the potentiometer A7 | int ana7 = 7; // input pin for the potentiometer A7 |
| | //########################################################################### |
| int val = 0; // Variables used below | int val = 0; // Variables used below |
| int key = 0; | int key = 0; |
| | // ######## Code ######## |
| // the setup routine runs once when you press reset: | // the setup routine runs once when you press reset: |
| void setup() { | void setup() { |
| pinMode(sound, OUTPUT); | pinMode(sound, OUTPUT); |
| digitalWrite(led, LOW); | digitalWrite(led, LOW); |
| |
| // Setup control input pins | // Setup control input pins |
| pinMode(key3, INPUT_PULLUP); | pinMode(key3, INPUT_PULLUP); |
| pinMode(key4, INPUT_PULLUP); | pinMode(key4, INPUT_PULLUP); |
| |
| |
| Serial.begin(9600); // open the serial port at 9600 bps: | Serial.begin(9600); // open the serial port at 9600 bps: |
| } | } |
| |
| // the loop routine runs over and over again forever: | // the loop routine runs over and over again forever: |
| void loop() { | void loop() { |
| delay(1000); // wait for a second | delay(1000); // wait for a second |
| } | } |
| | //#### End #### |
| </code> | </code> |
| \\ | \\ |
| ====== Hardware ====== | ====== Hardware ====== |
| Das Projekt war zwei Stufig, zuerst wurde ein [[http://www.w1hkj.com/FldigiHelp/cw_keying_page.html|Fldigi-Interface]] gebaut, allerdings mit [[http://www.kk5jy.net/a1a-fldigi/|Schotky-Dioden (Idee KK5JY)]] und einem Opto-Koppler anstatt des Übertragers/Transistors.\\ | Das Projekt war zwei Stufig, zuerst wurde ein [[http://www.w1hkj.com/FldigiHelp/cw_keying_page.html|Fldigi-CW-Interface]] gebaut, allerdings mit [[http://www.kk5jy.net/a1a-fldigi/|Schotky-Dioden (Idee KK5JY)]] und einem Opto-Koppler anstatt des Übertragers/Transistors.\\ |
| Danach wurde der Aufbau um den Keyer mit einem [[https://en.wikipedia.org/wiki/Arduino_Nano|Arduino Nano]] erweitert um auch mit einem Iambic Paddel geben zu können und final hat sich dann ergeben das es das Feature Winkeyer sein muß. \\ | Danach wurde der Aufbau um den Keyer mit einem [[https://en.wikipedia.org/wiki/Arduino_Nano|Arduino Nano]] und 4 CW-Speicher-Plätzen erweitert um auch mit einem Iambic Paddel geben zu können und final hat sich dann ergeben das es das Feature Winkeyer sein muß. \\ |
| ==== Bilder ==== | ==== Bilder ==== |
| {{f11:technik:arduino:programme:20210307_114317.jpg?200| }} {{ :f11:technik:arduino:programme:20210311_192015.jpg?200|}} {{ :f11:technik:arduino:programme:20210311_192029.jpg?200|}}\\ | {{f11:technik:arduino:programme:20210307_114317.jpg?200| }} {{ :f11:technik:arduino:programme:20210311_192015.jpg?200|}} {{ :f11:technik:arduino:programme:20210311_192029.jpg?200|}}\\ |
| * Sound-Output: [[https://forum.arduino.cc/index.php?action=dlattach;topic=439305.0;attach=189286|Poti zur Volumenanpassung und eine Klinkenbuchse für Ohrhörer und keinen Piezo-Buzzer]]. | * Sound-Output: [[https://forum.arduino.cc/index.php?action=dlattach;topic=439305.0;attach=189286|Poti zur Volumenanpassung und eine Klinkenbuchse für Ohrhörer und keinen Piezo-Buzzer]]. |
| * Buttons. Ein Command-Button und 4 x Memory macht 5. | * Buttons. Ein Command-Button und 4 x Memory macht 5. |
| * Poti für die CW-Geschwindigkeit: [[https://forum.arduino.cc/index.php?action=dlattach;topic=515262.0;attach=236067|Kondensator vom Abnehmer in Richtung Masse, Wert unkritisch z.B. 100nF ]] macht das Einstellen genauer. | * Poti für die CW-Geschwindigkeit: [[https://forum.arduino.cc/index.php?topic=515262.0|Kondensator vom Abnehmer in Richtung Masse, Wert unkritisch z.B. 100nF ]] macht das Einstellen genauer. |
| * Output Line: Eine LED, mit Vorwiderstand gegen Masse, zur Kontrolle des Tastens/Sendens. | * Output Line: [[https://learn.adafruit.com/adafruit-arduino-lesson-2-leds/breadboard-layout|Eine LED, mit 270 Ohm Vorwiderstand gegen Masse]], zur Kontrolle des Tastens/Sendens. |
| * Output Line: Mit einem [[http://www.kk5jy.net/AnyRig-v1/images/optoisolated-ptt-or-key-driver.png|Opto-Koppler galvanisch vom Funk-Gerät getrennt]]. | * Output Line: Mit einem [[http://www.kk5jy.net/AnyRig-v1/images/optoisolated-ptt-or-key-driver.png|Opto-Koppler galvanisch vom Funk-Gerät getrennt]]. |
| | * Parallel zum Opto-Koppler Output existiert noch ein Aschluß für einen "Straight-Key". |
| \\ | \\ |
| ====== Custom Config ====== | ====== Custom Config ====== |
| //#define OPTION_CW_KEYBOARD_CAPSLOCK_BEEP | //#define OPTION_CW_KEYBOARD_CAPSLOCK_BEEP |
| </code> | </code> |
| | \\ |
| | Am Ende dieses Kapitels gibt es ein Archiv mit den kompletten Files die geändert wurden! |
| | \\ |
| \\ | \\ |
| ===== Archiv Konfig Files ===== | ===== Archiv Konfig Files ===== |
| Nicht erschrecken es werden alle *.h Files mit geöffnet, das ist aber nicht weiter schlimm.\\ | Nicht erschrecken es werden alle *.h Files mit geöffnet, das ist aber nicht weiter schlimm.\\ |
| Nun den "k3ng_keyer" Sketch Kompilieren und auf den Arduino Nano hoch laden.\\ | Nun den "k3ng_keyer" Sketch Kompilieren und auf den Arduino Nano hoch laden.\\ |
| Hinweis: Bei "China" Nachbauten des Nano dabei eventuell den Prozessor auf: "Arduino328P(Old Bootloader)" stellen!!\\ | Hinweis: Bei "China" Nachbauten des Nano dabei eventuell den Prozessor auf: "Arduino328P(Old Bootloader)" stellen oder erst mal überhaupt einen Bootloader via ISP-Schnittstelle brennen!\\ |
| \\ | \\ |
| ===== Fehler ===== | ===== Fehler ===== |
| * Das Poti zur Regelung der CW Gwschwindigkeit war anfangs ohne Funktion, geholfen hat: In den CMD-Modus gehen, mit "V" (Ja via Paddel!!) das Speed-Poti "inactive" und mit einem weiteren "V" wieder "active" setzen. (Tipp aus dem Forum)\\ | * Das Poti zur Regelung der CW Gewschwindigkeit war anfangs ohne Funktion, geholfen hat: In den CMD-Modus gehen, und mit "V" (Ja via Paddel!!) das Speed-Poti "inactive" und mit einem weiteren "V" wieder "active" setzen. (Tipp aus dem Forum)\\ |
| * In der ersten Version mit der Option **#define OPTION_WINKEY_2_SUPPORT** war nach dem ersten Durchgang Senden Schluss, "Keyer busy", WINKEY Version 1 funktioniert! | * In der ersten Version mit der Option **#define OPTION_WINKEY_2_SUPPORT** war nach dem ersten Durchgang Senden aus dem Log-Programm Schluss, "Keyer busy", WINKEY Version 1 funktioniert aber! |
| \\ | \\ |
| ====== Winkey Daemon ====== | ====== Winkey Daemon ====== |
| Während FLDIGI den Winkeyer wohl auch direkt ansprechen kann nutzen andere Log-Programme unter LINUX oft den "[[http://cwdaemon.sourceforge.net/|cwdaemon]]" via Netzwerk kann der einen Winkeyer aber nicht ansprechen. \\ | Während FLDIGI den Winkeyer wohl auch direkt ansprechen kann nutzen andere Log-Programme unter LINUX oft den "[[http://cwdaemon.sourceforge.net/|cwdaemon]]" via Netzwerk der kann aber einen Winkeyer nicht ansprechen. \\ |
| Es gibt aber Ersatz, und zwar ein Perl Programm das: Einen Netzwerk-Port (Port: 6789) am Loopback-Interface (127.0.0.1) des Linux-Hosts öffnet und die dort empfangen Packete im "[[http://cwdaemon.sourceforge.net/|cwdaemon]]" Dialekt auf die Serielle Schnittselle (z.B. /dev/ttyUSB0) an der der Winkeyer lauscht in den WinKeyer "Dialekt" "übersetzt" und den WinKeyer Version 1 der vom K3NG Keyer abgebildet wird anspricht und darüber das Funk-Gerät tastet.\\ | Es gibt aber Ersatz, und zwar ein Perl Programm das: Einen Netzwerk-Port (Port: 6789) am Loopback-Interface (127.0.0.1) des Linux-Hosts öffnet und die dort empfangen Packete im "[[http://cwdaemon.sourceforge.net/|cwdaemon]]" Dialekt auf die Serielle Schnittselle (z.B. /dev/ttyUSB0) an der der Winkeyer lauscht in den WinKeyer "Dialekt" "übersetzt" und den WinKeyer Version 1 der vom K3NG Keyer abgebildet wird anspricht und darüber das Funk-Gerät tastet.\\ |
| \\ | \\ |