【概要】
日本語と英語での入出力に対応した英和-電子辞書。
より複雑なスイッチ入力の実装能力の取得を目的に、PC同様のアルファベット入力方式を取り入れた電子辞書を製作。
ローマ字入力に対応しており、汎用性の高いシステムを意識して作りました。
【製作期間】
1ヶ月 (2024/2/5〜3/1)
【システム(ファイル) 構造設計・スイッチ回路】
【開発環境・使用部品】
- 場所:兵庫の職業訓練校の施設設備をお借りしました。
- プログラミング-統合開発環境 : Arduino IDE
- 回路設計・シミュレーション : Circuit Simulator Applet https://www.falstad.com/circuit/
- マイコン : Arduino UNO R3
- その他 : LCD(I2C)1個、スイッチ30個、整流用ダイオード5個、330Ω抵抗6個、10KΩ抵抗2個、ワイヤー
【使用技術・ツール】
- 文字列(書き換えあり) : mallocで生成したヒープ領域に格納
- 文字列(書き換えなし) : 配列型・スタック領域に格納
- ローマ字および翻訳用データセット : フラッシュ領域に格納
- スイッチ部-回路 : キーマトリクス方式
【製作においてのこだわりポイント】
1.単純な1スイッチ1機能ではなく、複数スイッチの組み合わせによるコンボ機能(ShiftキーやCtrlキーの役割)としてCOMBOキーを配置。
2.材料削減のためダイオードは必要最低限とし、複数同時押下時の電流回り込みはシステムで対処。
3.PCでの日本語入力同様にリアルタイムでローマ字変換する方法を考案。
【製作で苦労した点】
【次回の改善点】
1.今回は材料削減としてダイオードをArduinoとの接続部(オレンジ部)のみに配置した。それによってスイッチ3個以上の入力時に正常読み取りができなかったため、次回以降3個以上の同時押下が必要な場合は全スイッチにダイオードを配置。
【製作において参考にした資料】
- システム構造設計 :
- ポインタ(文字列用) : 新・明解C言語ポインタ完全攻略
- キーマトリクス : QMK (Github)