IN-12 ニキシー管を使用した 8桁表示ユニットの製作ですが、ほぼまとまってきたかなという感じです。動作の概要は以下のとおり。
- 電源投入直後は時計表示モード。
- Serial, Serial1 から受信した ‘ ‘スペース, ‘.’ ピリオド, ‘0’~’9′ 数字から構成される文字列の場合はニキシー管にそれを表示します。
- 表示されたユーザーデータは一定時間放置していると最初の時計表示に戻ります。(コマンドで時計表示に戻すことも出来ます)
日時設定や明さの設定などはリシアル経由でコマンドを送って設定する。(Serial, Serial1 はジャンパ切り替え) 以下は主なコマンド
- 日時設定コマンド(RTC 書き込み)
- 時刻表示フォーマット ’99, 99, 99′ か ‘ 999999 ‘
- 日付 ’20YYMMDD’ を表示する秒間隔
- 日付 ’20YYMMDD’ を表示させる秒数
- ニキシー管輝度(日中)
- ニキシー管輝度(夜間)
- 日中の開始時
- 夜間の開始時
- 12/24時間表示の切り替え
- ユーザーデータ表示後、時計表示に戻るまでの秒数
- 設定状況表示
- EEPROM へセーブ
問題点としては、Da Vinci マイコンボードの USBポートを PC に接続する時は、USB ケーブル抜き差ししないと,PC 側の仮想 COM ポートとうまく通信出来ないことです。Arduino の公式サイトに掲載されているシリアルポートのコーディング例は以下のようになっています。
Serial.begin(9600); while(!Serial) { ; }
これは、while ループで PC 側のアプリやターミナルソフトが COMn: をオープンするまで待つというコーディングです。これでは、マイコンボードと USB ケーブルを必ず差して PC と連携しない限り動きません。言いかえると単体動作出来なくなります。マイコン側は while ループの接続確立チェックを無視して先に進めるようにし、USB ケーブルが差さっていなくても単体動作可能としていますが、それの弊害で USB の抜き差しが必要です。
I/O ポートを使う Serial1 に、USB-シリアル変換を取り付けて使う場合は、上記の問題は発生しません。
あとは基板来てから、最後の試作と説明書まわりの整理が出来れば無事リリース出来そうなところまで来ました。某アニメーションである表示のエフェクトのようなものは今のところ組み込んでません。(シリアル経由で好きなようにデータ流してもらったら表示出来るしいいかなと思い初めてるところ)