ここ最近ニキシー管の記事を投稿しておりませんが、基板が来ないので仕方ない

オーダーしている基板来ないとか、郵便局のトラッキング出来ないとか、ある意味時期が悪かったのかよくわからないのですが発送メール来てから2週間荷物来ません。

前の記事に書いたとおり基本部分はほぼ出来ていて、今日は某アニメのダイバージェンスメーター風のエフェクト表示するようにプログラム追記していました。暫定版ですが、https://github.com/ngc6589/IN_12Control_32u4_rtc8564 にて公開しております。まぁ、まだまだ書き換わります。

前回の記事からの進捗は

  • ダイバージェンスメーター風のエフェクトの追加
  • (使わないと思うけど)カソーポイズニング防止用に、全てのセグメント光らせるルーチンを追加

の 2点です。機能的には上記2つ追加で当初予定していたものは全て組み込んだことになります。

[X]RTC-8564NB のクラスをスクラッチ作成
[X]世界変動率?の表示 → 表示フォーマットと既知の数値確認 → Web にあった19個の数値を拾った。
[X]カンマ表示確認
[X]USB ケーブル差されたら Serial を有効にする → 連続データ受信するとハングする課題 → 解決不能 → TX/RX ポート(Serial1)を使用してもらう。
[X]カソードポイズニング防止のために全て表示させる処理
[X]時計の表示方法をまとめる
[X]日時設定の方式 → シリアル経由で、各種設定を行なう。
[X]明さ調整 → ディマー必要? → 時刻範囲を保存するというのはありか? → 昼、夜の設定で対応
[X]一定時間操作されない場合の挙動 → 時計を表示する
[X]プログラム更新の方式 → Arduino IDE から更新する
[X]EEPROM に保存する内容

だいたいこんな感じにおさまりました。

IN-12b ニキシー管8桁表示ユニット 概要部分のまとめ

IN12Nixie_20130908110500

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-シリアル変換を取り付けて使う場合は、上記の問題は発生しません。

あとは基板来てから、最後の試作と説明書まわりの整理が出来れば無事リリース出来そうなところまで来ました。某アニメーションである表示のエフェクトのようなものは今のところ組み込んでません。(シリアル経由で好きなようにデータ流してもらったら表示出来るしいいかなと思い初めてるところ)

IN-12b ニキシー管8桁表示ユニット ユーザーデータの表示はでけた

Stwrawberry Linux の Da Vinci マイコンボード。Arduino IDE で開発中です。とりあえず表示フォーマットは決めんといかんのですが時計表示の基本部分は実装済み。今回はユーザーデータの表示を追加です。テストでは、awk スクリプトで乱数をテキストファイルに出力したものを編集して準備。Tera Term からファイルの送信でマイコンへ流し込みして表示させました。

ATmega32u4 の USB-シリアルもしくは I/O ポートのシリアルから受信したデータのうち、’0′ ~ ‘9’ 数字, ‘ ‘ スペース, ‘.’ ピリオド, だけで構成されるデータの場合はニキシー管に表示させます。その後一定時間放置すると時計表示に戻る仕様です。

20130902101000

Tera Term のシリアルポートの設定で、送信遅延 1ms で動作は確認(別途マイコンから連続送信のテストは予定)。ニキシー管のダイナミック点灯に 1 管あたり 1ms 使うので 8桁表示に 8ms かかります。なので実際にデータ送信していただく際には送信後の表示待ちディレイを 10ms 程度空けていただくような感じで説明書に記載かなと。というところです。

IN-12b ニキシー管8桁表示ユニット目先の Todo

[X]RTC-8564NB のクラスをスクラッチ作成
[ ]世界変動率?の表示 → 表示フォーマットと既知の数値確認
[X]カンマ表示確認
[X]USB ケーブル差されたら Serial を有効にする
[ ]カソードポイズニング防止のために全て表示させる処理
[ ]時計の表示方法をまとめる
[X]日時設定の方式 → シリアル経由、単体でも設定出来る必要性 → マイコン基板にボタン無し
[ ]明さ調整 → ディマー必要? → 時刻範囲を保存するというのはありか?
[X]一定時間操作されない場合の挙動 → 時計を表示する
[ ]プログラム更新の方式
[ ]EEPROM に保存する内容

他にもありますが、仕様が決まってません。というステータスですね。がんばります。

IN-12b ニキシー管8桁表示ユニットのマイコン側基板のアートワーク出来ました

2013-08-25 13.29.22

IN-12 ニキシー管をマウントする基板は既に出来て手元にあるわけですが、マイコン側の基板のアートワークがやっと終りました。大きさはニキシー管をマウントする基板と同じ 200mm x 36mm の大きさです。20ピンのコネクタのところにロングタイプなヘッダーと、基板同士が接触しないようにスペーサーで間を空けてやれば基板重ねられます。

20130825121600

基板の左側に、ニキシー管のアノード側回路や K155ID1。中央部分に 5V – 180V DC/DC コンバータ。残りの部分にリアルタイムクロックモジュールとマイコンモジュールを入れました。とりあえず、必要最低限のものだけが入っているという状態です。

この基板とニキシー管の基板あわせてハンダ付け箇所 400 程度なのでそんなに時間かけずに作成可能かと思います。今後は AVR マイコンのプログラミングに移行してまいります。

IN-12b ニキシー管8桁表示ユニットの回路整理ほぼ終り

IN-12_controlCircuit

IN12_displayPanel

上の回路のとおり、Strawberry Linux のマイコンボード Da Vinch with Arduino bootloader というやつと、秋月さんで買える RTC-8564NB のリアルタイムクロックモジュール。あとは、ニキシー管用の 180V DC/DC とアノード側、カソード側の回路です。ハンダ付けもざっくり400ヶ所くらいなので、工作規模的にも問題ないんじゃないでしょうか。

以前の回路から削除されたのは AquesTalk Pico とアンプ回路です。しゃべらすのは個別に追加して下さい。

ニキシー管の輝度調整に、CdS 追加するかもですがほぼ終りと言ったところです。ということで、これから基板のアートワークへ移行したいと思います。

IN-12b ニキシー管8桁表示ユニットの構成がだいたい揃ってきた

2013-08-11 11.47.01

朝からブレッドボード上のマイコンボードから K115ID1 へ行くポートや 74HC595 シフトレジスタへ行くポートなどを変更してワイヤも張り直ししました。ついでにリアルタイムクロックモジューの移動とバッテリバックアップ追加。AquesTalk Pico のチップも搭載してお喋りも出来るニキシー管8桁表示ユニットへと成長してまいりました。

ニキシー管8本ハンダ付けしたうちの右端一本が、型番違いでカンマ表示の無いものが混入。一旦在庫確認が必要ということになってしまいました。しくしく。目先の Todo はいきなりプログラミングのフェーズへ行く前に

  • 作ってしまった回路を KiCad で起し直す
  • 型番違いのニキシー管を交換
  • 機能まとめ

あたりから整理していきたいと思います。

IN-12B ニキシー管ダイナミック点灯のテスト、主にゴースト対策

2013-07-30 16.20.42

先日作ったユニバーサル基板に Arduino UNO を接続しました。これからダイナミック点灯の基本部分作製のためです。

今回の処理は、ATMEGA328P のタイマー割り込み2 を使用して定期的に割り込み発生させてカウンターをカウントアップ。そのカウンターを見ながら約 1ms 毎にニキシー管を点灯させるようプログラミング。

最初は表示する桁を切り替えるだけの単純な処理をコーディングしました。その結果ゴーストが発生します。 3 のゴーストや 7 のゴーストなどがわかりやすいですかね。このときのアノードの電圧はどうなっているのか測ってみたのが次のハードコピー

b0us

水色は、アノードのスイッチのパルス、黄色はニキシー管のアノード電圧です。ニキシー管表示中は一瞬 180V 程度かかって 150V 程度で安定しますが、次の桁の処理にいってもアノード電圧は 0V になりません。電荷たまっているのでゆっくり下っていくようです。

これを改善するために、表示する桁を切り替える処理にニキシー管のアノードを OFF にして消灯させるブランキングタイムというものを設けてみます。テストプログラムで試しに 1ms のうち 800μs 点灯させた後アノードを OFF にしてみました。

b200us

このブランキングタイムによって、ニキシー管消灯したときの電圧の降下が早くなり、一瞬ですが 0V に近いところまで下ります。ここまでくればゴーストはほぼ心配なくなるものと思われます。

2013-07-30 16.49.01

写真ではわかりにくいですがゴーストの基本的な対応は出来ました。

IN-12B ニキシー管8桁表示基板(開発用)の製作

2013-07-29 14.27.21

とりあえずユニバーサル基板にアノードのドライブ回路と、74141 のデコーダーを載せるべく製作。先日仕上がった IN-12 ニキシー管マウント基板も接続して 74141互換IC と 74HC595 差す前の事前配線チェックまでやったところ。ユニバーサル基板の誤配線なく大丈夫でしたしプリント基板のほうも OK でした。

IN-12_controlCircuit

回路図の修正もはいっています。TLP627-4 のフォトカプラ買えないわけではないですがトランジスタのスイッチに置き換え。これに伴ない、74HC138 3to8 デコーダーが使えなくなるので 74HC238 に置き換えたいところですが、74HC238 が無かったので 74HC595 のシフトレジスタに変更しました。

ATMEGA328P は Arduino 互換にしました。開発時は Arduino UNO 使う予定。

MPSA92 のコレクタにニキシー管の電流制限抵抗をわざわざ付けていますが、本来でしたらニキシー管用 DC/DC の出力に電流制限抵抗1本入れておけば OK と思いますが、今回はこうしています。

ニキシー管 IN-12 のアノードの金属板に違いがあるのを見付ける

2013-07-26 17.15.05

ちょっと整理とかしてたりしてますといろいろ発見あるものです。今回は、写真のように金属板の色違いです。真空管なら、管の内側に塗られたゲッターで駄目とか判断出来たりするのもありますが、ニキシー管なのでなんでしょう?

2013-07-26 17.15.52

横から見ても色違うということで材質違いと思われ。どちらも全く問題ないので良いのですが見た目揃ってるほうが当然いいです。ということで、 100個くらいしかないわずかな在庫を選別することになりました。

側面の製造年月見ても関連性ないし…