Z tego powodu autor projektu zbudował własnoręcznie projekt klawiatury Morse'a podpinanej do portu USB. Po wystukaniu odpowiedniej litery na kluczu dany znak pojawia się w edytorze tekstu tak jak po wpisaniu ze standardowej klawiatury.
Cechy urządzenia:
• Współpracuje ze wszystkimi komputerami obsługującymi klawiatury USB.
• Nie wymaga żadnego specjalnego oprogramowania
• Można jej używać w połączeniu ze standardową klawiaturą (do wpisywania znaczków z ogonkami)
Sprzętowo układ nie jest rozbudowany:
• Budowa oparta o mikrokontroler ATMEGA168
• Emuluje standardową klawiaturę USB
• Programowany za pośrednictwem standardowego Arduino IDE (wypalony programatorem ICSP)
• Wyposażony w podwójny 7 - segmentowy wyświetlacz (pokazujący aktualny WPM – words per minute)
• Jako obudowę użyto metalowej puszki po gumach
Korzystanie z klawiatury przebiega w następujący sposób:
1. Po wpięciu klawiatury do portu USB system rozpoznaje ją, jako standardową klawiaturę
2. Pierwszą rzeczą jest konfiguracja klawiatury (wstępna kalibracja)
a. Po otwarciu dowolnego edytora tekstu należy nacisnąć klawisz „Learn”
b. Edytor wyświetli napis „Learning. Enter „-.-.-„
c. Po wpisaniu kodu startowego (dah-di-dah-di-dah), na wyświetlaczu pojawi się szybkość wpisywania (ilość słów na minutę) a następnie klawiatura przełączy się do normalnego trybu pracy
Klawiatura rozpoznaje następujące symbole:
• Wszystkie standardowe symbole (Symbole)
• Wpisanie symbolu Error (........) jest interpretowane, jako backspace
• Wypisanie sygnału SOS (bez odstępów między znakami) powoduje wejście do ustawień
• Wpisanie odpowiedniego numeru w trybie ustawień powoduje przejście do odpowiednich opcji:
1. Praca w trybie normalnym
2. Tryb nauki
3. Auto formatowanie
4. Ustawienia buzzera
Klawiatura posiada dwie opcje autoformatowania (auto-space oraz auto-caps), które są domyślnie odblokowane. Klawisze dodatkowe jak Shift czy Ctrl można łączyć z klawiaturą Morse’a poprzez potrzymanie jej na tradycyjnej klawiaturze
Działanie klawiatury Morse’a jest oparte o mikrokontroler ATMEGA168. Do emulacji portu USB została wykorzystana biblioteka V-USB, co eliminuje potrzebę stosowania innych elementów aktywnych. Na płytce zamontowano gniazdo USB typu B.
Podwójny wyświetlacz 7-segentow jest połączony z pinami mikrokontrolera przez rezystory. Na podobnej zasadzie zamontowany jest przycisk uruchamiający naukę.
Do wstukiwania alfabetu Morse’a autor zastosował natomiast prawdziwy klucz telegraficzny, który, również z wykorzystaniem rezystora po wciśnięciu łączy się z masą podając na pin stan niski – logiczne 0.
Mały głośnik podłączony bezpośrednio do jednego z pinów zapewnia dźwiękowy sygnał zwrotny informujący o naciśnięciu klucza telegraficznego.
Schemat zawiera elementy zastosowane w projekcie wraz ich wartościami. Wartości nie są krytyczne i mogą się różnić w przedziale 10 -20 %. Jedynymi elementami krytycznymi w projekcie są dioda zenera i kwarc.
Komponenty zostały zlutowane na prototypowej płycie perforowanej z powodu krótszego czasu potrzebnego na uruchomienie i niewielkiej ilości elementów. Ponieważ urządzenie miało być małe a nie miniaturowe, większość elementów jest przewlekana a jedynie kilka jest wykonanych w technologii SMD, zwłaszcza tam gdzie są one montowane w pobliżu innych elementów. W projekcie zastosowano rezystory o mocy 1/8W (gdyż są znacznie łatwiejsze do montażu na niewielkiej płytce niż 1/4W).
Obudowę dla płytki stanowi metalowe pudełko po gumach Eclipse. Po włożeniu płytki została ona odizolowana od metalowych części tekturą. Opakowane pozwala też na łatwe wycinanie otworów na wyświetlacz, gniazdo czy przycisk.
Program został napisany w języku C++ z wykorzystaniem środowiska Arduino.
Choć urządzenie mogłoby z powodzeniem pracować na standardowej regularnej płytce Arduino, kod zmodyfikowany bezpośrednio na mikrokontroler ATMEGA168 z pominięciem stosu Arduino. Oprócz tego jest w 100% zgodny z produktami Arduino.
Dla stosu USB została użyta biblioteka USB – V, emulująca klawiaturę. Jej kod został troszkę zmodyfikowany np. klasa UsbKeyboard dziedzicząca z Print, która umożliwia zastosowanie funkcji UsbKeyboard.println („Line to type’);
Kod obsługujący dekoder Morse’a został napisany od podstaw, ponieważ autor nie znalazł nic podobnego z innych dostępnego źródeł. Dekoder jest tutaj napisany, jako standardowa biblioteka Arduino. Program uwzględnia również śledzenie postępującego dryfu częstotliwości wpisywania znaków po pierwotnej kalibracji.
Wyświetlacz LED
Funkcja obsługi wyświetlacza LED jest bardzo prosta. Kod obejmuje 15 linijek tekstu plus definicję pinów. Podczas wyświetlania odpowiednich symboli ustawiane są odpowiednie sygnału na piny połączone z anodami i katodami. Kod został skonfigurowany dla wspólnej katody. Przy zastosowaniu wyświetlacza ze wspólną anodą należy zmienić definicję COMMON_ANODE/COMMON_CATHODE w programie głównym.
Źródło:
http://us.cactii.net/~bb/morsekey/index.html
Fajne? Ranking DIY