Dự án Arduino: Morse Code Trainer – đọc và huấn luyện mã Morse- Version 1
Khác với bộ huấn luyện sử dụng phương pháp Koch dành để train học viên sử dụng mã Morse. Thay vì bắt đầu với tốc độ chậm và tăng dần, bộ huấn luyện sẽ bắt đầu bằng cách gửi một vài ký tự ở tốc độ mong muốn, từ 20 đến 30 từ mỗi phút (wpm). Sau đó, bộ huấn luyện sẽ lắng nghe để học viên gửi lại chuỗi ký tự đó và kiểm tra nó. Sau khi nắm vững tập ký tự hiện tại (tức là đạt được độ chính xác 90%), ký tự tiếp theo trong thứ tự Koch có thể được thêm vào tập huấn luyện, cho đến khi học viên thành thạo toàn bộ bảng chữ cái – Trích từ: The article “Arduino CW Trainer” by Tom Lewis, N4TL in the September 2016 QST magazine.
Sơ đồ nguyên lý của bộ huấn luyện mã Morse


Phiên bản cải tiến dễ sử dụng hơn bởi nó không cần sử dụng đến relay để làm input ngõ vào tín hiệu mã Morse và kết nối ngõ vào 9V riêng biệt.
Nguồn điện được cung cấp bởi một bộ đổi nguồn AC hoặc pin ngoài 9 volt. Chúng ta có thể sử dụng một hộp đựng pin 9 volt với một đầu cắm phù hợp với đầu nối nguồn của Arduino.

Danh sách linh kiện
Danh sách linh kiện cho bộ huấn luyện mã Morse như sau:
- Nguồn cấp điện:
- J2: Cổng kết nối bàn phím PS/2
- J3: jack kết nối ngõ vào
- LS1: Loa phát âm thanh 0.25w
- S2: Nút nhấn reset
- U1: Arduino Uno chíp dán
- U2: Màn hình LCD 1602 kèm module I2C LCD
- U3: Arduino Proto Shield kit
- Bàn phím PS2
- Bộ đánh mã Morse, tùy theo điều kiện và yêu cầu của bạn


Lập trình Arduino cho bộ huấn luyện mã Morse
Trước tiên, bạn cần thêm các thư viện sau vào phần mềm Arduino của các bạn
- MorseEnDecoder Library: cw-trainer/libraries/morseIO at master · ESPACE-HCM/cw-trainer (github.com)
- PS2 Keyboard Library: cw-trainer/libraries/PS2Keyboard at master · ESPACE-HCM/cw-trainer (github.com)
- LCD Shield Library: cw-trainer/libraries/Adafruit_RGB_LCD_Shield_Library at master · ESPACE-HCM/cw-trainer (github.com)
Code cho arduino bạn có thể download tại đây.
Sử dụng bộ huấn luyện mã Morse
Đây là danh sách các phím trên bàn phím được sử dụng bởi code Arduino CW Trainer:
- Mũi tên lên: Tăng tốc độ gửi.
- Mũi tên xuống: Giảm tốc độ gửi.
- Mũi tên phải: Tăng số lượng ký tự được gửi trước khi Arduino kiểm tra các ký tự đến từ học viên.
- Mũi tên trái: Giảm số lượng ký tự được gửi trước khi Arduino kiểm tra các ký tự đến từ học viên.
- F1: Đặt bộ ký tự là 26 chữ cái của bảng chữ cái.
- F2: Đặt bộ ký tự là 10 con số.
- F3: Đặt bộ ký tự là bốn ký tự này: dấu chấm, dấu phẩy, dấu gạch chéo, và dấu hỏi.
- F4: Đặt bộ ký tự là tất cả 40 ký tự liệt kê ở trên.
- F5: Phương pháp Kotch. Nhập một số có một hoặc hai chữ số, sau đó nhấn phím Enter.
- F6: Phương pháp Kotch với điểm bắt đầu khác. Nhập một số có một hoặc hai chữ số, sau đó nhấn phím Enter. Sử dụng F5 trước khi sử dụng F6.
- F7: Đặt độ trễ từ 0 đến 30 để làm chậm quá trình gửi. Phiên bản 2 code Arduino.
- F9: Dùng để chuyển đổi giữa loa nội bộ hoặc đầu ra rơ le. Không sử dụng nếu bộ huấn luyện của bạn không có đầu ra rơ le.
- F10: Lưu các tham số vào EEPROM của Arduino. Phải nhấn F10 trước khi nhấn G để bắt đầu tạo mã. Lần tiếp theo khi sử dụng bộ huấn luyện, các tham số sẽ được đọc từ EEPROM. Người dùng chỉ cần nhấn G để tiếp tục.
- G: Viết tắt của “go”. Nó bắt đầu Arduino gửi mã thông qua loa hoặc rơ le.
- D: Viết tắt của “decoder”. Nó chỉ chạy bộ giải mã CW. Loa không được sử dụng.
- P: Để kiểm tra tốc độ gửi, từ “PARIS” được gửi cho đến khi nhấn nút reset. Phiên bản 2 của đoạn code trên

Học cách gửi mã Morse
Điều đầu tiên bạn cần làm là học cách gửi để bộ huấn luyện có thể đọc mã của bạn.
Bật bộ huấn luyện và nhấn D.
Điều này sẽ chỉ chạy bộ giải mã. Bây giờ, hãy gửi tín hiệu đến bộ huấn luyện. Đảm bảo rằng tín hiệu của bạn có tốc độ vừa phải để bộ huấn luyện có thể hiểu được.
Tôi nhận thấy rằng cần cần phải để khoảng cách giữa các ký tự nhiều hơn một chút so với bình thường.
Học cách nghe mã Morse
Bây giờ, hãy sử dụng phương pháp Kotch để học âm thanh của từng ký tự.
Nhấn F5 và sau đó là số 1. Nhấn các phím mũi tên trái và phải để chọn 2 ký tự. Sau đó, nhấn F10 để lưu giá trị. Tiếp theo, nhấn G để bắt đầu.
Bộ huấn luyện sẽ gửi cho bạn ký tự K và K. Bạn hãy gửi lại K và K.
Sau khi đã biết âm thanh của K, nhấn nút reset.
Bây giờ nhấn F5 và số 2. Sau đó, nhấn F10 và G. Bộ huấn luyện sẽ gửi cho bạn ký tự K và M. Bây giờ hãy gửi lại K và M mà không nhìn vào màn hình để học âm thanh.
Tiếp tục làm điều này với nhiều ký tự hơn cho đến khi bạn biết hết chúng. Bạn có thể sử dụng F6 để đặt điểm bắt đầu khác trong phương pháp Kotch.
Luyện tập nhớ những gì đã được gửi
Bây giờ, hãy thay đổi số lượng ký tự được gửi từ 2 lên các số cao hơn và luyện tập nhớ những gì đã được gửi, một lần nữa mà không nhìn vào màn hình và không viết ra giấy.
Nếu bạn dừng lại một ngày và quay lại vào ngày hôm sau, bộ huấn luyện sẽ nhớ vị trí bạn đã dừng lại vì bạn đã nhấn F10. Nếu bạn muốn tiếp tục từ vị trí của ngày hôm trước, tất cả những gì bạn cần làm là nhấn G.
Bạn có thể google search để biết thêm thông tin về cách huấn luyện ““W0UCE’s method for teaching CW”
Cập nhật ở phiên bản 2.1
Đã thêm F7. Phím này được sử dụng để làm chậm tốc độ gửi bằng cách đặt độ trễ giữa các ký tự. Bạn có thể nhập giá trị từ 0 đến 30. Mỗi lần đếm tương ứng với 0,01 giây. Tôi nhận thấy rằng số từ 10 đến 20 sẽ làm chậm tốc độ gửi một cách hợp lý. Độ trễ này cho phép các ký tự được gửi với tốc độ tối đa nhưng có khoảng cách giữa mỗi ký tự. Phương pháp này được gọi là phương pháp Farnsworth. Vì vậy, bây giờ bạn có thể sử dụng đồng thời cả phương pháp Koch và Farnsworth.
Đã thêm P vào điều khiển bàn phím. Khi nhấn P, bộ huấn luyện sẽ gửi từ PARIS lặp đi lặp lại cho đến khi nhấn reset. Thời gian gửi từ PARIS chia cho 60 sẽ cho tốc độ tính bằng từ mỗi phút (WPM). Tôi đã thay đổi Key_speed_adj = -2 và đo các tốc độ này. Tôi không chắc liệu tốc độ xử lý khác nhau có thay đổi các tốc độ này hay không.

Đã chỉnh sửa D: Khi các ký tự được viết trên một dòng mới, dòng đó sẽ được làm trống trước thay vì bị ghi đè. Các ký tự cũng được ghi vào màn hình serial.
Nguồn tham khảo: How to build a Simplified Arduino CW Trainer.pdf (qsl.net)








