2006年11月25日(土) 17:26
弾速測定器の基板は、液晶ディスプレイと接続するために14ピンのコネクターが付いている。当然ながら、ここに別のモノを取り付けることが可能だ。
5VとGNDが出ていてボリューム装備、そして汎用入出力として7本使用可能。本体側のPICにはプッシュスイッチ2つとLED2つとフォトトランジスター2つが装備。高精度の水晶クリックと5V安定化電源装備。PIC汎用実験基板としても結構使いでがあろう。
ただし、ゼロプレッシャーソケットではないため試験基板としては操作性が悪い。水晶発信機のクロックは2センチ以上引き回さない方が良いとされるため、ゼロプレッシャーは採用し辛い。

この回路で、PICプログラムの先頭部分はこんな感じになる。
include 16f84.h
.osc hs ; オシレータ
.wdt off ; ウォッチドッグ
.pwrt on ; パワーアップタイマ
.protect off ; プロテクト
lcd_rw equ ra.1
lcd_rs equ ra.2
lcd_stb equ ra.0
photo0 equ rb.3 ; 受光0
photo1 equ rb.2 ; 受光1
led_red equ ra.4 ; 赤LED
led_green equ ra.3 ; 緑LED
sw_start equ rb.1 ; スタートスイッチ
sw_reset equ rb.0 ; リセットスイッチ
org 0ch
count ds 3 ; 測定時間カウント
DPDT ds 1 ; LCD display data
org 0
goto start
org 4
goto start
; ****************************************************************************
; 開始
; ****************************************************************************
start
mov intcon,#00000000b ; 割り込み禁止
setb rp0 ; ページ1選択
mov ra,#00000000b ; ポートA
mov rb,#00001111b ; ポートB
clrb rp0 ; ページ0選択
mov option,#00000000b ; pullup
順次ハードの動作確認が進んだが、一応は動作しているTPS601Aの感度が足りているか確信が持てない。実際に光ファイバー使って試してみて、感度が不足だとなればQ1とQ2に独自に500KΩ程度の外付けプルアップ抵抗を付けることになるだろう。その場合、PIC内蔵のプルアップ抵抗は無効にせねばならず、2つのプッシュスイッチにもまた外付けプルアップ抵抗が必要になってしまう。
果たしてこれ以上基板にハンダゴテを入れずに済むかどうか?
TPS601Aの暗電流は典型値0.01μAだが、最悪値は0.2μAである。プルアップ抵抗に1MΩを使用すれば最悪値で0.2Vのノイズが発生する。これはPICのLow電圧スペックからして無視出来ず、検出の安定性に不安がある。プルアップ抵抗値を大きくすれば感度は上がるがノイズも増えるので、外付けするとすれば500KΩあたりがバランス良好と思われる。
液晶ディスプレイには数字だけでなく英字も表示可能。小文字OKだし日本産ならでは?のカタカナまで対応しているため、コイルガンと表示させることも出来るだろう。
PIC用としてはかなり豪勢な表示装置であり、PICで製作可能なレベルの機能なら表示情報量で悩むことは無くなる★
液晶のコントラスト調整は有効範囲が狭い。ボリューム位置のほとんどにおいて何も表示されなくなる。ほんの僅かな範囲だけ液晶が表示され、コントラストは急激に変化する。
このため、写真のように多回転型のボリューム使った方が実は遙かに調整の操作性が良くなる。
液晶との接続ピン対応は精密時計製作記事に合わせてあるため、制御コードは付属のプログラムがそのまま使えるはずだった。ところが、付属プログラムはI/O出力が連続するのにnopを挿入していなかったりする(同じ本の別の場所では入れるよう注意が喚起されているのに!)。
特に、液晶側のコマンド処理待ちルーチンが全く動かず、自前で修正するのにかなりの時間を要してしまった。幸いにして、本の印刷記事には明白な間違いが無かったために何とかなった。
弾速を測定するにあたり、有効数字3桁は確保したい。そうなると、通過時間を最低でも1000等分して計測出来ねばならない。
255までしかカウントできない1バイトカウンターは当然不可だ。2バイト使うと65535までOKだが、その場合は最高速の約65倍の時間、すなわち約65分の1の速度までしか計測出来ない。
では、どの範囲の速度を計測するか?
コイルガン専用なら当面は秒速100メートルまでで足りるだろう。この場合、遅い側は秒速2メートル以下まで測定可能となり、十分OKである。
カウンターを3バイトにすれば秒速1センチでも対応可能となる。
光センサーをポーリングしつつカウントアップする具体的なコードはこんな感じとなる。
wait_photo1a
incf count[0],1 ; カウンター1アップ
btfsc z
incf count[1],1
btfsc z
incf count[2],1
; 光が遮られるのを待つ
btfss photo1
goto wait_photo1a
カウンターが3バイトであれば、ループ1回に8クロックを要する。カウンターを2バイトにすれば2命令削減出来て、6クロックだ。
20MHz駆動のPICは内部5MHzで動作するため、時間計測の分解能=1カウンターの時間は、カウンター3バイトで1.6μ秒、2バイトなら1.2μ秒となる。
有効数字3桁を確保する1000カウントを行うには、計測時間はそれぞれ1.6ミリ秒以上、1.2ミリ秒以上必要となる。
秒速100メートルの測定対象でそれだけの時間差を作り出すには、センサーの間隔をそれぞれ16センチ以上、12センチ以上・・・確保すれば良いと分かる。
いずれであっても現実的な数字であり、この弾速測定器は有効数字3桁を十分に狙えると分かる。
written by higashino [コイルガン] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]
2006年11月24日(金) 17:28
光ゲートドライバーはパーツ選定や設計変更で大変だが、これまでの騒ぎで必要なチェックポイントはかなり明確になった。そろそろ弾速測定器の方も進行させよう。
コイルガンを作っているサイトは内外に数多いが、外国に比べると日本では弾速を測定していない所が多い。しかし、実験には測定が必須だろう。空き缶を撃ち抜くのも面白いが、具体的に弾速がどの程度まで上がれば撃ち抜けるか?という公開のされ方がしてあれば、更に面白いのにと思う。
コイルガンの弾速が測定されていないのは、適切な測定器が無いのも理由だろう。武器としてのコイルガンはプロジェクタイルの運動エネルギーより電磁ノイズ発生器としての威力が上かも(汗)
下手に測定器を使おうとすると、測定器が壊れかねない。しかも将来的に超多段式なんてなった日には・・・
そこで、コイルガン専用の自作測定器となる次第。
基本はありふれたPIC制御の光学検知式。弾丸の通過を光センサーで検出し、2点間の所用時間から速度を計算する。
ただし、すべての装置はバッテリー駆動の独立電源とし、シールドボックスに格納する。操作や結果表示の確認はボックスを開けて行うが、コイルガンを撃つ時はボックスを密閉してしまう。
シールドボックス内からレーザーを光ファイバーで検知機まで導き、15ミリほどのギャップを介して光ファイバーでシールドボックス内の光センサーまで引き戻す。
あらゆる装置はボックス内に籠城させ、外部との遣り取りは光ファイバーのみで行う。これにより、コイルガンの猛烈な電磁ノイズから守る。
ギャップを介した光ファイバーでは光量が低下するため、光源はレーザーを使用する。光源の変調はプロジェクタイル通過により物理的に行われるため、光ゲートドライバーで問題になっている立ち下がりのシャープさでは有利である。
少なくとも、発光側の立ち下がりがナマることはない。
結果表示は液晶ディスプレイを使用する。情報量が多い割に少ない配線で済むし、消費電力も少ない。
電子工作のためのPIC16F活用ガイドブックに掲載されている回路に合わせる。液晶パネルは例のごとく秋月で売っている。バックライト無しタイプを選んだ。
弾速測定器ではPICのクロックの正確さも問題だ。通常のセラロックはラジコン制御に使う程度なら充分に実用的な精度があるし小型である。しかし、弾速測定器ではクロックの誤差はそのまま測定誤差となる。温度等による変化だけでなく時間的変化があれば、別の日に測定した結果を比較し辛くもなる。
そこで、クリスタルオシレーターを使用する。
水晶発振器も液晶ディスプレイも5V安定化電源を必要とする。そこで、バッテリーをDC−DCコンバーターで5V安定化して使う。
ここで使用したのは鈴商で扱ってるもので、入力電圧4.65〜6Vとニッケル水素4本にピタリとハマる。恐らくその用途を想定した製品だろう。出力0.4Aまでなので、今回の回路には適切な能力。もっと大電流が必要ならコーセルの方が入力電圧範囲も広く小型である。しかし、このスペックで構わないのなら、こいつの方が安い。
水晶発振器の精度は4桁。しかし前書の時計作例では、5桁の精度を持ちしかも安い発信器が使われている。秋月でも売っている。だが、残念なことに自分は12.8MHz品しか発見出来なかった。クロックの精度だけでなく周波数も重要だ。測定の分解能に影響する。20MHzで動かせるPICを12.8MHzで動かすのは到底容認出来ない。検出器の長さ精度を考えた場合、5桁はオーバースペックである。精度が4桁しかなくても20MHz出せる方が価値が上と判断した。
メインスイッチはDC−DCコンバーター側面にエポキシで接着。最終的には全体をシールドボックスに収めるが、開発中は剥き出しである。
基板右側にあるのが液晶ディスプレイとの接続コネクター。14ピンあるが信号線は7本で済む。それで16桁×2列の表示が可能なのだから、7セグメントより遙かに便利。
4ビット送信モードで使うため、4本のピンは不用。残る3ピンは5VとGNDとコントラスト調整である。右上のボリュームで液晶のコントラストを調整する。
LEDは液晶ディスプレイの下に隠れてしまうが、発光していることが分かれば良いので充分に使える。検出光ではなく単なるモニター用である。
その下にTPS601Aが2つ、BポートとGNDの間に直結してある。Bポートをプルアップ設定で使うと、光が入らない場合は1で601Aに電流が流れると0がPICに入力される。
PICの内蔵プルアップ抵抗は数十KΩと大きめなのだが、それを逆用し手頃な増幅率を持つバイアス抵抗としてしまう。光ゲートドライバーで反応速度問題が出ているため、余計なパーツを極限まで省いた構成だ。
左に2つ並んだスイッチは弾速測定器の操作用。
なお、液晶ディスプレイは写真の状態では上下逆にセットされる。つまり、実際に使う場合は写真とは上下逆にする。
基板裏側。
このDC−DCコンバーターは外付けコンデンサーを必要としないが、取り付けることで電源としての品質はアップする。秋月のチップ型積層セラコンは案外作業性が良くて使い勝手が良い。
写真ではそれほどの配線量に見えないが、実際の作業は相当に面倒臭い。
電源配線が別に取り出してあるが、レーザーモジュール用である。PICで制御するのではなく、メインスイッチを入れれば点灯し続けるようにする。
光り続けるレーザーをパチンコ玉が遮る瞬間を検出する。つまり、レーザーは常時光っていなくてはならない。気分的には電力の無駄だが、あくまで気分的だ。
それに、気分的に電源を入れっ放しにしたくない仕様であれば、こまめにメインスイッチを切るようになり結果として省エネでもある。
レーザー部分以外を組んだところで、基板試験を開始。
まずはバッテリーを接続しPICはセットしない。バッテリー電圧とDC−DC出力の電圧をチェックし、正常であると確認する。メインスイッチが働いているのを確認する。
続いてPICをセットする。マイクロスイッチを押せばLEDが点灯する単純なプログラムで動作を確認。それをパスすれば、601Aに光が入ればLEDを点灯させてみる・・・という感じで動作確認は進行する。
ここで、赤LEDが光らないというトラブルが発生した。実はこれまでRA4を出力で使ったことが無かった。特殊なピンなので避けていたのだ。うっかりRA3と同じようにLEDを接続してしまった。
RA4を出力で使う場合、ピンとGNDの間がON/OFFされるような動作をする。
だから、LEDを光らせる場合はRA3など他のピンとは回路が変わるのだ。使うパーツは同じであるが。
また、ONになるのはRA4に0を出力した場合なので注意が必要。
分かってしまえばRA4も他と同じようにLEDを光らせるために使える。
written by higashino [コイルガン] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]
2006年11月23日(木) 13:12
ブログには実験のモチベーションを保つ以外にも、結果を整理して自分自身の頭も整理するという実用性がある。
IGBTをONにするにはゲート電圧を上げる。OFFにするにはゲート電圧を下げる。これは与件であり変更出来ない。一方、光スイッチングでは消費電力の問題から、点灯時をONとし消灯時をOFFとしたい。これは与件ではないが逆にすると、射撃待機時ずっと発光体を光らせておかねばならない。多段式になるほど無駄が強烈に増大する。
となると、受光側も光が入った時に電圧が上がり、入らない時には電圧が下がるような回路にしたい。
エミッター電位可変が気持ち悪いので、PNPトランジスターを使った回路を試す。
ブレッドボード上に組んで、250Hz矩形パターンがどのように受信されるかR1の+側電位をオシロでチェックした。送信側はダイレクトドライブの秋月レッドレーザーモジュールを使用。
先日用意した3種類のPNPトランジスターを比較してみる。
TPS601A直結
トランジスター無しでR1に直結して測定したもの。
パターンは結構シャープであり、フォトトランジスターの性能が良く現れている。しかし、2μ秒とされるスペック上のスイッチング時間に比較すればトロい。1目盛りが1ミリ秒なので、スイッチングに100μ秒オーダーを要している。また、OFFスイッチングが尾を引いている気配あり。
ONの立ち上がりとOFFの立ち下がりの間が2ミリ秒すなわちジャスト2目盛り分である。スイッチング時間の分だけ、ONの台地は2ミリ秒より短くなっている。
トランジスターによる増幅がないため、リップルが台地部分にモロに見えている。

2SA1242
パターンがかなりナマっている。特に、台地の立ち上がり側がナマっていたりノイズが多めに感じられる点がいただけない。
パーツ破壊でミソを付けたが、性能面でも疑問が残る。

2SA1926
ぐっとパターンが良い感じになっている。相変わらずOFFスイッチングが尾を引くが、もともと尾を引いているものが増幅によって見えているだけ、という可能性が高い。

2SA1972
スペックシート上は最も性能が劣るのに、実測波形は最も良好。立ち上がりタイミングは素の601Aとほぼピタリと重なっており、素性の良さが際立つ。ONの立ち上がりとOFFの立ち下がりの間がピタリと2ミリ秒である点も注目して欲しい。

いずれのパターンも、2SC2655を使用した回路とは比較にならないほどキレが良くなっている。中でも一見パッとしないA1972が実は素晴らしい。使用素子はほぼ確定である。スペックシートだけで机上設計やったのでは、こいつが選ばれることは絶対に無かっただろう。
A1972は流せる電流が小さいため、ブースター段には使い難い。しかし、受光増幅では10ミリアンペア程度流せれば良いため、A1972でもスペックには十分な余裕がある。
ただ、それでもスイッチング時間が長過ぎる。数μ秒でスイッチングして欲しいのに、100μ秒のオーダーだ。601A直結で既にそれだけの時間が掛かっている。
ところで、トロかったのはC2655でありLEDではないと判明したが、では実際のLEDの実力は?
TPS601A直結で、光源をレーザーからLEDに替えて測定してみた。

高輝度型ではない地味な赤色LEDである。レーザーに比べると波形の安定性に難があり、崩れそうなプリンに見える。しかし、発光にトランジスターやレギュレーターを使用しないせいかリップルは少なく、変に尾を引くこともなく、反応時間的にはレーザーの代用が勤まりそうである。
そこで今度は、性能の良好だったA1972で増幅後の波形をチェックしてみた。

レーザーと全く遜色のないパターンである。これなら、安価で小型となるLEDで発光側を組める。
ONの立ち上がりとOFFの立ち下がりの間が2ミリ秒より長くなっているが、これは素のLEDからしてそうなっている。台地の幅が一定であれば問題にはなり難い。しかし、本番使用時の最小ONタイムとなるパルス幅100〜200μ秒の発光が正常に行えるかどうかチェックする必要はある。
written by higashino [コイルガン] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]
2006年11月22日(水) 17:05
続いての確認は言うまでもない。
TPS601Aにトランジスター増幅を入れての測定だ。
ビンゴ!
出力波形は見事にナマっていた。真犯人はC2655だったのだ。フォトトランジスターを1KΩに直結した場合は矩形パターンだったものが、C2655で増幅してから1KΩに接続したら、ナマりまくり。
こうして山狩りは成功し、犯人を逮捕した。だが事件は解決していない。犯行の動機がまだ不明なのだ。なぜC2655を入れると波形がナマるのか?
それが分からない。
これは、ブレッドボード上に組み立てた試験回路である。
ニッケル水素電池4本で作り出された約5.5VでPICを動作させる。
三端子で3Vに安定化したものは秋月レーザーを発光させる。これはQ1を通してPICで250Hzに変調されている。
受光側も電源は同じである。
問題は、Q2を使わなかった昨日の試験では、R1の+側電位をオシロで測定してもちゃんとした矩形パターンが現れていた点である。そもそも発振側でQ1にC2655が使用されているのである。もしC2655が根っからの悪人(異様に反応速度が遅い)だとすれば、Q2の有無に関わらず矩形パターンがナマっているはずだ。
だが、現実にはQ1は善人でQ2は悪人。これがパーツの個体不良ではないことは当然容易に確認出来る。
Q1とQ2の違いは、エミッターがGNDに直結されているか抵抗を挟んでいるか・・・である。
エミッターをGNDに直結しないとOFFスイッチングが遅くなるのは、果たしてNPNトランジスター一般の性質なのか?それともC2655だけの問題なのか?
残念ながら基本的な教科書にはそんなこと書かれていないし、シロウトである自分にはそんな知識もない。もしかするとプロには常識な罠なのかもしれないが・・・
written by higashino [コイルガン] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]
2006年11月21日(火) 17:30
IGBTのゲートに接続した抵抗が各51Ωではなく51KΩだったりして。過去のドジを踏まえるといかにもありそうだ。しかし、残念ながら?ちゃんと51Ωが接続されている。
PICの出力ピンは綺麗な矩形パターンだし、トランジスターを通した後でもやはり250Hz程度ではパターンはまるで崩れない。それがなぜ?
まてよ・・・確かにレーザーポインターを振ると綺麗な点線になるのだが、明るい白壁と暗い壁では点線が違う。明るい壁ではシャープなのだが暗い壁で振ると明るい期間が明らかに長い。元の信号はPICが生成した正確にデューティー50の波形である。レーザーポインターもLED並に反応遅いんじゃないか?
確かにレーザーダイオードは超高速の反応速度を誇る。だが、秋月円筒形モジュールは薄型モジュールと異なり、出力が安定している。マトモなAPCが組み込まれているのでは?そしてそのせいで、反応がトロくなっているのでは?
試しに、薄型モジュールに換装する。話にならないほど出力が不安定だが、レーザーを振ると暗い壁であっても明暗の長さが等しいシャープな点線が輝く。期待しながら接続するが、やっぱりナマったゲート電圧しか出て来ない。
ただ、ナマってるだけでなくノイズが乗りまくっている。円筒モジュールではノイズは乗らない。これは薄型モジュールの品質が劣悪であることと同時に、フォトトランジスターの反応速度は速いことも示唆している。
ならば最後の手段、レーザーダイオードの直接ドライブだ!
共立グリーン改造でお馴染みの手法。3V定電圧に51Ωの電流制限抵抗を入れ、レッドレーザーを動かす。早い話がLED光らせるのと同じです。
写真では赤と黒の配線が逆(汗)
黒い方が3Vで、赤い方がGNDだ。
これで、究極の反応速度が得られる。だが、やっぱりゲート電圧の波形は変わらない。さすがにLD直接駆動で反応速度がミリ秒オーダーは考えられない。犯人は送信側ではなく受信側に居る。
レーザーポインターの近くにTPS601Aを設置する。入射光が強力なので増幅を必要としない。
1KΩを直接バイアス用とする。これで、カソード電圧をオシロでチェック。ミリアンペアあたり1Vの電圧が計測される。入射レーザーの強度がそのまま電圧として測定可能だ。さあ、波形はどうだ?
綺麗な矩形パターンが現れた。
やはり、TPS601Aは充分な反応速度を持っている。こいつも犯人ではない。
こうなったらIGBTを取り外しての測定も必要。波形がナマってるのはIGBTゲート容量のせいなのか?それとも別の理由なのか?
ゲート電位だけでなく1KΩの+側で計測しても波形がナマっていたため、IGBTゲートの責任ではない可能性が高い。しかしここまで犯人が絞られて来れば、最終的な確認もすべきだ。
IGBTを何度もハンダ付けしたり外したりしたくないため気が進まないのだが、原因は徹底的に調べねばならない。自分が何を見落としているのか?トラブルは開発の初期に解決するほど影響が小さくなる。慌てて進むと後で大変なことになる。
IGBTを外して光ゲートドライバー単独にしても、波形は変化無し。微妙に遅い電圧立ち上がりと異様に遅い電圧降下。
光ゲートドライバーの回路そのものに関しては、例のごとく回路シミュレーターを使って理論的にはちゃんと動作することを確認してある。パーツの定数にはズレがあるが、仮にブースター部分を無くした場合のシミュレーション例がこれ。2ミリ秒ごとではなく0.1ミリ秒ごとに切り替えている。

ブースターを除去しても、現実回路より1桁高速にスイッチング可能なはずなのだ。
いよいよ犯人を追い詰めたのか?まだ分からない。こうなると一番怪しいのはC2655なのだが、どっこい送信側でもLD駆動に使われている。そして、そのC2655と三端子レギュレーターを通した後でも250Hzの駆動波形はナマっていない。
written by higashino [コイルガン] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]
Generated by MySketch GE 1.4.1
Remodelling origin is MySketch 2.7.4