やはり、ATmega 2560 の大きなメモリを使って「ARDUINO CW KEYER」の全機能を使ってみたくなりました。
この ATmega2560 のフラッシュメモリは、256KB もの容量があります。
確かに、Arduino Uno と比べると価格が高めなのが気になるところですが、その分、メモリ不足に悩む心配がなくなるのは大きな魅力です。
自作したシールドを Atmega 2560 にスタックしました。
シールドとして自作していると、こんな場面で便利に使えます。
詰め込んだ機能は以下のとおり。
- コマンドモード
- シリアルコマンド (“CLI”) / CW キーボード
- Winkey2 エミュレーション
- メモリ機能
- PS/2 キーボード
- LCD ディスプレイ
これだけの機能を詰め込んでも、必要なメモリはたったの 55KB 程度です。
ATmega 2560 では随分と贅沢な使い方になりますが、機能の全部を詰め込むためには一番手っ取り早くお手軽な方法だと思います。
ただし、LCD はこのままでは動作しないため、ジャンパワイヤを使ってデータ線とクロック線を配線する必要があります。なお、ATmega2560 は単独で I2C 端子を備えていますが、Arduino Uno のピン配置とは互換性がありません。
Uno Atmega2560
A4 (SDA) → 20 (SDA)
A5 (SCL) → 21 (SCL)
これで、Atmega2560 で LCD が使えるようになります。
良い感じに動作しています。
Arduino Uno ではメモリ不足のためできなかった、PS/2 キーボードによる LCD 表示もしっかり機能しています。
ということで、どの機能を制限するか悩みながらコンパイルするよりも、最初から Atmega 2560 を使い、全ての機能を組み込んで構築する方が効率的で賢い選択かもしれません。