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 追加するかもですがほぼ終りと言ったところです。ということで、これから基板のアートワークへ移行したいと思います。

Strawberry Linux ダ・ヴィンチ32U with Arduino Bootloader のメモ

2013-08-03 09.50.29

これは、Arduino 互換ボードの一種です。ATMega32u4 というチップ搭載されています。このチップ元を辿ると AT90USB163 などの系統で元々は ISP か FLIP で書き込むタイプのマイコンです。特徴は USB のインタフェースが付いてることですかね。Arduino 本家では Leonardo や Micro が相当する製品になります。

今回は Arduino ブートローダー書き込み済みのものを購入してみて、しばらく使ってみた印象を少しだけ。

USBシリアルの仮想ポートが2つ

ブートローダー実行中と、通常稼動時で COM ポート番号が変化します。最初はドライバの設定(inf ファイルの場所を指示)しなきゃいけませんが、ブートローダーは8秒くらいで終了しちゃうので、COM ポート 2つ設定するという認識が無いとあせりました。

boards.txt の書き換え必要

Arduino IDE で開発を行なう場合は下記エントリを、arduinoのディレクトリ\hardware\arduino\boards.txt に追加します。

davinci.name=Da Vinci 32U
davinci.upload.protocol=avr109
davinci.upload.maximum_size=28672
davinci.upload.speed=57600
davinci.upload.disable_flushing=true
davinci.bootloader.low_fuses=0xff
davinci.bootloader.high_fuses=0xd8
davinci.bootloader.extended_fuses=0xcb
davinci.bootloader.path=caterina
davinci.bootloader.file=davinci.hex
davinci.bootloader.unlock_bits=0x3F
davinci.bootloader.lock_bits=0x2F
davinci.build.mcu=atmega32u4
davinci.build.f_cpu=16000000L
davinci.build.vid=0x1774
davinci.build.pid=0x8032
davinci.build.core=arduino
davinci.build.variant=leonardo

Serial クラス使用時の注意

本家の Guide to the Arduino Leonardo and Micro に細かいことが書かれていますが、USBシリアル使うとき

Serial.begin(9600);
while(!Serial) ;

のようにコーディングしてね、とサンプルが記述されています。この場合 PC 側で Arduino IDE のシリアルモニタ、もしくは Tera Term などの端末ソフトを立ち上げて COM ポートをオープンしないとこの while ループから抜けません。これすなわち PC 接続が条件となっちゃうイヤなパターンなのです。

マイコン単体でも稼動させたいけど、必要な時に USB 差してマイコンに指示を送りたいなどどうすればいいのでしょうかね。私は暫定的に

  // USB ポートのアドレスが変った
  if(udaddrOld != UDADDR) {
    Serial1.println("USB Serial changed");
    udaddrOld = UDADDR;
    if(UDADDR == 0) {
      Serial.end();
    } else {
      Serial.begin(9600);
    }
  }

のような方法で、Serial.end(), Serial.begin() するようにはしています。このとき while(!Serial); は書きません。プログラミング上は Serial.available() でデータ有る無しの判定で済ませています。CPU と USB 部分は別れているので、USB ケーブルの抜き差しするときなどは、30秒から1分程度放置して、32u4 側のエンドポイントがタイムアウトのような形でリセットされるとうまく行くことが多いように思われます。これは Arduino UNO みたいに常時稼動する USBシリアルと決定的に違うところなのであきらめています。

Arduino IDE からのアップロードにしょっちゅう失敗する

ブートローダー起動されたら仮想COMポート番号も変化するのですが、USBシリアルのところはいろいろタイミングとかあるのかして、Arduino IDE から 2~3回書き込みすると次からは書き込みエラーとなって駄目なことが多いです。

こうなるとお手上げなので、Arduino IDE 終了、USBケーブル抜く。マイコン電源 OFF/ON で対応。結構最悪な操作ですな。

結構クセあります。また、このボードは USB 給電と外部給電をセパレートしていないので、組込み時には設計上の注意必要です。

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

2013-08-11 11.47.01

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

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

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

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

2SA1015/2SC1815 ヘッドホンアンプ部品セット

P-0006

K-0004 とりあえずアンプ作ってみたい方向け 2SA1015, 2SC1815 で作れるヘッドホンアンプ基板の基本部品セットです。

部品セットの内容は以下のとおりです。部品揃い次第発送しますが4~7日程度余分にかかります。あらかじめご了承下さい。

部品購入代行


頒布品一覧のページに戻る

12V / 1A ACアダプター

P-0005

ロシア製バーグラフネオン管 IN-9 使用簡易 VU メーターキットで使用出来る AC アダプタで、秋月の
超小型スイッチングACアダプター12V1A 100V~240V GF12-US1210 になります。

プラグ先端は 2.1mm センタープラスの仕様です。


頒布品一覧のページに戻る

RTC-8564NB をニキシー管8桁表示ユニットに接続

2013-08-04 17.57.54

この記事、Wordpress-3.6-ja 更新失敗した後の動作確認でポストしているテスト投稿記事です。

ジャンクボックスを探しまして、リアルタイムクロックモジュールを発掘。Sparkfun など都合3つ出てきたわけですが唯一 5V 動作可能なのが秋月さんで買える RTC-8564NB のリアルタイムクロックモジュールでした。ということで、早速ブレッドボードに差しまして即席の配線を行ない動作確認。これは動作 OK でした。

8桁ユニット的には世界線変動率も出せるようにしたほうが良いのでしょうかと思うものの管が違うのでそれっぽく表示というところでしょうか。どんな感じで表示させるのが良いかよくわからないですが調べて実装してみたいです。

ストロベリー・リナックスの「ダ・ヴィンチ32U with Arduino Bootloader」のピン番号わかりにくいので一覧作成

Da Vinci 32Uピン配置

Arduino IDE で使う digitalWrite() などのピン番号の位置が純正の Arduibo Micro と違うので一覧作成。よそのサイトのほうが正確か…

PD0 が 3、 PD1 が 2 が正解とのコメントがありました。一覧表逆になっています。注意下さい。

今回は arduino-1.0.5\hardware\arduino\variants\leonardo\pins_arduino.h 参照して作成

ストロベリー・リナックスの「ダ・ヴィンチ32U with Arduino Bootloader」でタイマー割り込みの確認

2013-08-03 09.50.29

IN-12 ニキシー管8桁表示ユニットのマイコンをどうしようかと日本橋ウロウロしてまして見つけたのがこれです。お値段も 1,260円なり。これなら、マイコンと PC と USB シリアル出来て 32ピン 600mil 幅の大きさです。シリアル通信は Arduino Leonard 同様 Serial クラスが USB, Serial1 クラスが I/O ポート使うらしく、シリアル2ポートはありがたいし、USB シリアル接続してもボードリセットかからないのもよろしい感じです。 Arduino Micro というのがほぼ同じものに見えます。電源回路内蔵されてたりと部品はちょっと多い目についているのですが 2800円くらいなのが微妙なところ。

正直言いますと ARM マイコンボード(評価用)のほうが安いのあったのですが、地味に大きかったりしたのと開発環境構築と開発に時間かかりそうだったので使い慣れてる AVR マイコンにしました。また、このボードはポリスイッチ1個外してしまえば USB からの 5V 切れそうなので、そういう改造も楽そうなのであります。

データシート見まして8ビットカウンタは MEGA328 と変わらんかなということで、早速コーディングして割り込み版 LED チカチカを作成。1ms 毎にポートをパタパタさせたのを測定。500Hz と出ているので正解です。(波形立ち上がり後 1ms で立ち下げ、また 1ms 後に立ち上がりなので1サイクル合計 2ms かかっているため 500Hz です)

あとは、シリアル通信のライブラリが問題なく動けば楽出来るので今後そっちのほうを確認していきます。

#include

boolean led01 = false;

ISR(TIMER0_COMPA_vect) {

if(led01 == false) {
led01 = true;
digitalWrite(13, HIGH);
} else {
led01 = false;
digitalWrite(13, LOW);
}
// set interrupt mask
TIFR0 |= (1<