ヘッドホンアンプの基板見てたときに、アクリル板あるしホコリ除けにもならんけど天板付けみようと思い付く。四角切って穴開けだけじゃ寂しいのでピアプロを見てまわって nona さんが描かれた ルカさんの線画を発見 。ダウンロードさせていただき、カッティングのデータ用意して中華レーザーのセットアップしてカッティング。
この手のものでしたら線画は太めの線と、多少ベタで塗ってるところがあったほうが目立つ印象を受けました。が、いいんじゃないでしょうかということで、基板に付けました。
このサイトは楠 昌浩が興味をもったことに対して広く浅くネタ集めしております。
ヘッドホンアンプの基板見てたときに、アクリル板あるしホコリ除けにもならんけど天板付けみようと思い付く。四角切って穴開けだけじゃ寂しいのでピアプロを見てまわって nona さんが描かれた ルカさんの線画を発見 。ダウンロードさせていただき、カッティングのデータ用意して中華レーザーのセットアップしてカッティング。
この手のものでしたら線画は太めの線と、多少ベタで塗ってるところがあったほうが目立つ印象を受けました。が、いいんじゃないでしょうかということで、基板に付けました。
とりあえず、部品載せてみた感じはこんなんです。とにかく基板は広いし、部品付け直しも楽です。スカスカ基板ですな。
初段と終段はトランジスタ差し替え可能にするためソケット対応。手持ちのトランジスタあまり無いけど数パターンは実験できます。とりあえず Wavespectra で 全て 2SC1815GR/2SA1015GR で構成したときと、初段 2SA970, 終段 2SC2655/2SA1020 の組み合わせのときを測定してみました。
THDN | All 2SC1815GR/2SC1015GR | 初段 2SA970 終段 2SC2655Y/2SC1020Y |
100Hz | 0.07169 | 0.09347 |
1kHz | 0.06978 | 0.09519 |
10kHz | 0.07772 | 0.09785 |
どちらも歪み率に差は無いという感じ。特にジュールシーフ(ブロッキング発振)で 1.5V の電池で LED 点灯させようというネタ用トランジスタ 2SC2655 も家にある ATH-A700 という安いドンシャリヘッドホンを素直な感じに鳴らしてくれたのが驚きです。またゼンハイザー HD-25もインピーダンス高めなのですがいいかんじです。
2SC1815/2SA1015 の組合せは、シャキっとしてて通りはいい音ですね。2SC2655/2SA970の艶のある感じとはまた違います。今のところ2SC1815/2SA1015が個人的に好きな音が出ているので基板に 2SC1815/2SA1015 3パラ載せて使用しています。
音質の表現については申し分けありませんが無理です。本人の語彙の足りなさもありますが、感覚によるところの判断なので十人十色なのです。
基板だけ先行して頒布開始の手続したいと思います。機会ありましたらよろしくお願いします。試作時の回路は以下のとおりです。
5月に一度描いたニキシー管のドライブ側回路図。回路図中央付近の TLP627 のフォトカプラ、日本橋の共立さんで1回路のやつが 105円でありますが 4回路の入りのが通販で出てません。他の通販サイトでも地味にお高い状況だったりしてます。ということでトランジスタに置き換えするかと。
とりあえず、NPN, PNP のトランジスタを組合せてスイッチを組んでみます。Q1 のベース電圧を上げて行って、Q2 が ON になることを確認です。理想トランジスタでのシミュレーションですが、 Q1 のベース電圧が 0.6V あたりで赤色の線(47kΩの電圧)が 0V から 180V に上がっているので大丈夫でしょう。47kは適当に決めたニキシー管の電流制限抵抗で、180V / 47k = 3.8mA 程度というやつですが、ダイナミック点灯の関係でここらへんはトライ&トライで値が来まっていくものと思います。
ただし、この回路のままだと PNP の エミッタ – ベース電圧が高電圧になるので現実問題としては壊れそうです。
PNP のエミッタ – ベースの間に 10k 程度の抵抗入れてみます。470k / (470k + 10k) * 180V = 176.25V。 180V から引くと3.75V なので PNP の ON 出来そうです。
Q1, Q2 のトランジスタのコレクタ – エミッタ間はニキシー管ドライブ用の高電圧がかかりますのでトランジスタの型番は選ぶ必要がありますが、定番の MPSA42, MPSA92 の組合せでいこうかと思っています。MPSA42 は一袋あるけど、MPSA92 だけ無いと、これだけ通販するのもなんだかなぁ。
一応ちょっと確認しとこというやつです。上の回路は、2SC1815 とツェナーの組合せで点灯試験。下は TD62003(TD62083) のシンクドライバにツェナー付けての点灯試験。
2SC1815 で点灯させた状態。問題ありません。
TD62003 で点灯させてみた状態。いけます。
74141 の回路と同じと言えばそうなのですが 2SC1815 も TD62003(TD62083) も耐圧はどちらも 50V なので、74141と比較するとちょと低いですが。ニキシー管消灯時のツェナーにかかってる電圧はどちらの方式でも約13Vでした。この約 13V は、全部のセグメント消えてる場合で、隣接するセグメントが光ってる場合とかで電圧はバラバラになります。ちなみに K155ID1 の 数字 0 のセグメント出力端子(16ピン)にテスタあてて他のセグメント点灯させたときの端子にかかった電圧は下記のとおり。
LD8113 蛍光管キットを作ってるときに HV5812 というドライバの存在を知ったのですが、これが 20ビットのシフトレジスタ + ラッチ + 高電圧ドライバが 1 パッケージになっている便利な石なのですが今のところ MOUSER でオーダー出来そうというところまでしか確認出来てません。この時は買わずに 74HC595 のシフトレジスタ + TD62783 の組合せで LD8113 蛍光管のドライバ組んだ経緯がありました。実は 20ビットあるのは非常に魅力的でして、ニシキー管のカソード 0~9 の 10本分を 2個同時にドライブ出来るということなのです。
最終的には 74141(K155ID1) の在庫があるので、 74141(K155ID1) を使用した回路から設計を始めますが、上記 HV5812 を使用する案や Microchip MCP23017(MCP23S17) などの I/O エキスパンダや 74HC595 のシフトレジスタとシンクドライバの組合せでカソード制御する案もありかなというところ。8桁のダイナミック点灯でいきづまったときに 2個同時制御するなどの「そんなこともあろうかと」という予備案のネタ出しでした。
ロシア製ニシキー管 IN-12b を使用した 8 桁表示キットを頒布させていただきます。管の入手が出来る限り続けていきたいです。
ソースコードとコンパイル済み .elf, .hex, .epp ファイルは github.com/ngc6589/IN-12bNixieClock に置いてます。
当キット以外に USB-シリアル変換のモジュールを別途ご用意下さい。
時刻設定など、表示ユニットの設定は全てシリアルポートからコマンドを送って行います。このためシリアル通信出来ることが必須条件となります。
当キットのシリアルインタフェースは、9600bps / 8bit / パリティ無し の設定で信号レベルは TTL(5V) です。DTR/RXD/TXD/VCC/CTS/GND のピン配置ですが TXD/RXD/GND のみ使用していますが表示ユニットが 5V 動作のため、USB-シリアル変換も 5V 動作のモジュールが必要です。
当キットの基板(6ピンヘッダ)に接続出来る USB シリアル変換モジュールで代表的なものは下記のものです。
SparkFun FTDI Basic Breakout – 5V(実績あり)
http://www.switch-science.com/catalog/342/
スイッチサイエンス以外にも取扱店は多い
赤フグ FTDIアダプター(実績あり)
https://store.akafugu.jp/products/9
共立電子産業 シリコンハウスハウス取扱いあり
ストロベリー・リナックス USB-TTLシリアルコンバータ(5V)(実績あり)
http://strawberry-linux.com/catalog/items?code=50040
それ以外の USB-シリアル変換モジュールや、Arduino など他のマイコンからも使用いただけます。この場合は TXD/RXD/GND の配線をお願いします。3.3V 動作のマイコンと接続する場合はレベル変換必要です。
秋月電子通商 FT232RL USBシリアル変換モジュールキット(実績あり)
http://akizukidenshi.com/catalog/g/gK-06693/
IC アンプはフットプリントなど小さく出来ますが、組んでしまえばそれまでです。カスタマイズ出来る素材として小出力のディスクリートアンプ基板を企画しました。今のところアンプの回路部分のみ基板化し、頒布する範囲も基板だけにさせていただきます。
Welcart の商品ページには在庫状態という欄がありまして、在庫有り・無しは表示されるのですが、数量は表示されません。Wordpress のテンプレートに Welcart のデフォルトテーマ使ってる場合は WordPress のテーマ管理からテンプレートのphpファイル修正すれば出来るようですが、私の所では未だに Twenty Ten を使っていまして、そこにショップングカートを載せています。なので、プラグインの中を直接いじります。
サポートページなど見てますと、single_item.php を修正すれば出来るとありましたのでコードを修正し表示テストして OK となりました。プラグインの更新がかかると上書きされて消えると思われるので diff 貼っておく次第。
*** single_item.php.orig 2013-07-11 11:38:32.008441000 +0900 --- single_item.php 2013-07-11 11:38:43.734111600 +0900 *************** if(usces_sku_num() === 1) { //1SKU *** 28,34 **** $html .= '<div class="field_name">' . apply_filters('usces_filter_sellingprice_label', $usces_sellingprice, __('selling price', 'usces'), usces_guid_tax('return')) . '</div>'."\n"; $html .= '<div class="field_price">' . usces_the_itemPriceCr('return') . '</div>'."\n"; $html .= '</div>'."\n"; ! $singlestock = '<div class="field">' . __('stock status', 'usces') . ' : ' . esc_html(usces_get_itemZaiko( 'name' )) . '</div>'."\n"; $html .= apply_filters('single_item_stock_field', $singlestock); $item_custom = usces_get_item_custom( $post->ID, 'list', 'return' ); if($item_custom){ --- 28,34 ---- $html .= '<div class="field_name">' . apply_filters('usces_filter_sellingprice_label', $usces_sellingprice, __('selling price', 'usces'), usces_guid_tax('return')) . '</div>'."\n"; $html .= '<div class="field_price">' . usces_the_itemPriceCr('return') . '</div>'."\n"; $html .= '</div>'."\n"; ! $singlestock = '<div class="field">' . __('stock status', 'usces') . ' : ' . esc_html(usces_get_itemZaiko( 'name' )) . ' 在庫数 ' . usces_the_itemZaikoNum('return') . '</div>'."\n"; $html .= apply_filters('single_item_stock_field', $singlestock); $item_custom = usces_get_item_custom( $post->ID, 'list', 'return' ); if($item_custom){ *************** if(usces_sku_num() === 1) { //1SKU *** 50,56 **** $html .= "</table>\n"; } if( !usces_have_zaiko() ){ ! $html .= '<div class="zaiko_status">' . apply_filters('usces_filters_single_sku_zaiko_message', esc_html(usces_get_itemZaiko( 'name' ))) . '</div>'."\n"; }else{ $html .= '<div style="margin-top:10px">'.__('Quantity', 'usces').usces_the_itemQuant('return') . esc_html(usces_the_itemSkuUnit('return')) . usces_the_itemSkuButton(__('Add to Shopping Cart', 'usces'), 0, 'return') . '</div>'."\n"; $html .= '<div class="error_message">' . usces_singleitem_error_message($post->ID, usces_the_itemSku('return'), 'return') . '</div>'."\n"; --- 50,56 ---- $html .= "</table>\n"; } if( !usces_have_zaiko() ){ ! $html .= '<div class="zaiko_status">' . apply_filters('usces_filters_single_sku_zaiko_message', esc_html(usces_get_itemZaiko( 'name' ))) . ' 在庫数 ' . usces_the_itemZaikoNum('return') . '</div>'."\n"; }else{ $html .= '<div style="margin-top:10px">'.__('Quantity', 'usces').usces_the_itemQuant('return') . esc_html(usces_the_itemSkuUnit('return')) . usces_the_itemSkuButton(__('Add to Shopping Cart', 'usces'), 0, 'return') . '</div>'."\n"; $html .= '<div class="error_message">' . usces_singleitem_error_message($post->ID, usces_the_itemSku('return'), 'return') . '</div>'."\n"; *************** if(usces_sku_num() === 1) { //1SKU *** 117,127 **** $html .= '<span class="price">' . usces_the_itemPriceCr('return') . '</span><br />' . usces_the_itemGpExp('return') . '</td>'."\n"; $html .= '</tr>'."\n"; $html .= '<tr>'."\n"; ! $html .= '<td class="zaiko">' . usces_get_itemZaiko( 'name' ) . '</td>'."\n"; $html .= '<td class="quant">' . usces_the_itemQuant('return') . '</td>'."\n"; $html .= '<td class="unit">' . usces_the_itemSkuUnit('return') . '</td>'."\n"; if( !usces_have_zaiko() ){ ! $html .= '<td class="button">' . apply_filters('usces_filters_single_sku_zaiko_message', esc_html(usces_get_itemZaiko( 'name' ))) . '</td>'."\n"; }else{ $html .= '<td class="button">' . usces_the_itemSkuButton(__('Add to Shopping Cart', 'usces'), 0, 'return') . '</td>'."\n"; } --- 117,127 ---- $html .= '<span class="price">' . usces_the_itemPriceCr('return') . '</span><br />' . usces_the_itemGpExp('return') . '</td>'."\n"; $html .= '</tr>'."\n"; $html .= '<tr>'."\n"; ! $html .= '<td class="zaiko">' . usces_get_itemZaiko( 'name' ) . ' 在庫数 ' . usces_the_itemZaikoNum('return') . '</td>'."\n"; $html .= '<td class="quant">' . usces_the_itemQuant('return') . '</td>'."\n"; $html .= '<td class="unit">' . usces_the_itemSkuUnit('return') . '</td>'."\n"; if( !usces_have_zaiko() ){ ! $html .= '<td class="button">' . apply_filters('usces_filters_single_sku_zaiko_message', esc_html(usces_get_itemZaiko( 'name' ))) . ' 在庫数 ' . usces_the_itemZaikoNum('return') . '</td>'."\n"; }else{ $html .= '<td class="button">' . usces_the_itemSkuButton(__('Add to Shopping Cart', 'usces'), 0, 'return') . '</td>'."\n"; }
КM155ИД1(KM155ID1) を少しですけれど頒布させていただきます。この IC は SN74141N 互換 К155ИД1(K155ID1) のプラスチックパッケージじゃなくてセラミックパッケージになっております。一般民生用途のものに比べて動作保証温度範囲が広いなどインダストリアル仕様なものになっています。
KM155ID1 データシート(ロシア語)
SN74141N データシート
КM155ИД1(KM155ID1) を少しですけれど頒布出来そうなので準備中なのです。この IC は 74141 互換 К155ИД1(K155ID1) のプラスチックパッケージじゃなくてセラミックパッケージになっております。一般民生用途のものに比べて動作保証温度範囲が広いなどインダストリアル仕様なものになっています。上の写真でいうと手前が一般的な K155ID1 で奥が KM155ID1 です。
これらの部品にかぎらずニシキー管も製造されてからの年数の経過は年ではなく10年単位になります。従いまして、IC の不良や、ニキシー管の不良品を送付してしまうことは後々面倒なので事前チェックのためのテスターを作成しました。左はニキシー管はじめたときに買ったキットの DC/DC です。これのテストを行なうときは 150V にしてテストをします。ちなみに IN-9 のネオン管の出荷前確認にもこの電源を流用していまして、そのときは 120V にあわせてます。
テストは基板上のゼロプレッシャーソケットに IC を差して、右上のニキシー管ソケットに IN-12B ニキシー管差して、電源投入。基板左下のスイッチをドライバで回すと 0 ~ 9 まで表示されるのと、タクトスイッチ押すとカンマ点灯しますので、確認出来たら IC もニキシー管も大丈夫という次第