SSブログ

弾数カウンタ (その4) [PIC]

弾数カウンタの中枢はマイコンですが、PIC16F88と言う8ビットコンピュータです。
8ビットコンピュータと効いてZ80が思い浮かぶ人は相当古い人ですが、TK-80とか8080とか言い出したら筋金入りです。今思うと夢のようなマシンでした。TK-80と言うのは、ワンボードマイコンと言ってB5くらいの基板の上にメモリIC、CPU、5x5のマトリックスのボタン、8個の7セグLEDがついていたコンピュータです。これで8万くらいしたとおもいます。
今回使った16F88はROM領域で、32キロバイトを持っています。前述のTK80はROMとして2キロバイト、さらに4キロバイトまで拡張可能!なんて書いて有りました。機能的には、スピードも数倍になっているし、IOを制御するために必要なICも必要だったことをかんがえるとうんと小さくなりました。そのころは

”32キロバイトなんて広大なメモリ空間陶冶ってつかうんだ?”

なんてことも言ってました。いまや、32キロバイトなんで少ないメモリで何につかうんだ?みたいな感じです。

さて、16F88にはなしを戻すと、このコンピュータはパソコンとは違って、起動したときから何かの役目が果たせるように使います。今回の弾数カウンタであれば、いろいろ初期化処理を開始して、音が検出されるまで待つように動きますが、コンピュータはこの動作を一つずつ実行するためにクロック信号と言うのが必要です。CPU速度1ギガヘルツとかパソコンに書いてあるのはこのクロック信号の速さを言います。
PIC16F88ではこのクロック信号を自分で生成することができます。つまり見かけ上クロック信号がいらないのです。その代わり、RC発進といって発進制度があまりよくないクロック信号になります。今回の弾速計は、1秒をどうするかのようなすごくコンピュータにとっては遅いスピードなので、制度の問題はありません。しかし、いまオークションでよく売っている弾速計は二つのセンサ間のタマの通過時間をこのクロックから作り出しますので、正確なものが必要です。そのためにコンピュータの外側にクロック信号発生のための水晶発信機をつけます。
どちらのクロック発生元を使うかをPICに教える必要があります。このために”コンフィグレーションフューズ“というもので設定します。これも一種のメモリー回路です。フューズと言うといちど書き込んだ後は二度と再書き込みができないような感じがしますが、これは何度でも変更が可能なROMです。(といっても回数制限はあるようです)。

長くなったので、コンフィグレーションフューズの詳細は次回にします。
#本当はそっちの方がかきたかったのですが。。。。

nice!(0)  コメント(0) 

弾数カウンタ (その3) [PIC]

最初の記事の構成の所でも言いましたが、回路的には非常にシンプルです。
kickcounter.JPG

圧電マイクからの音声は、いちど10Kオームの可変抵抗で受け止められた後、分圧されてPICのRA2に入力されます。あとはソフトウェアの力を借りてポートBから直接7SEGをドライブしています。一般的には、ここをダイナミック点灯といって、ポートBの出力を桁ごとに分けて表示するみたいなことをするのですが、今回は1桁なので、直結します。回路図には、電流制限抵抗として220オームと書いてありますが、220オームでは明るかったので、470オームを実際のものではつかっています。日中ではこのほうがいいかもしれません。
この回路をプリント基板に起こすために各部品の配置を考えて見ます。

KickCounterPCBE.JPG

この絵はフリーソフトのPCBEと言う基板パターンエディタで、銅線に配線にしても、Eジスペンによるものでも、プリント基板でも物を作る前にいちど確認できるので、便利です。実際の部品を取り付ける時のサイズが微妙に人間の思惑とちがって、基板の大きさの中に入らないときなどがあるので、それを見つけるのに役立ちます。
とはいえ、今回のものは部品点数も少ないので、これを使う前に実際に置いてしまったほうがはやいとは思います。何しろ趣味の電子工作なので、落ち着いて考えるために書いてみました。

実際に書いては見ましたが、確認がちょっと足りなかったようで、実際のパターンでは修正をしました。

printPattern.JPG

修正後のパターンはこの様になります。

この基板、部品をつけていくと、弾数カウンタのハードウェアは完成します。
タグ:PIC
nice!(0)  コメント(0) 

弾数カウンタ (その2) [PIC]

弾数カウンタの基板はEジスペンというペンを用いてパターンを轢いてあります。これはとても便利なもので、
P4010139.jpg
スルーホールユニバーサル基板にこのペンでパターンを書くと、文字通りパターンとなるというものです。この字だけ読むとなんだそりゃと言うことになりますが、この手の基板に回路を置く場合、ユニバーサル基板に対して、抵抗の余り線などを利用して回路を接続していくことになります。もう少し手が込めばエッチングしてパターンを作るということになると思います。銅線の配線は、一度間違うと、取るのに大変だし、ちゃんと置かないと接触不良を起こしてうまく動かないなんてこともあります。
しかし、このEジスペンのいいところは、まず、パターンを書くのが簡単。その後書いたうえでよく確認すれば、所詮はペイントなので、削り取ることで簡単に修正が効きます。
#部品を置いた後ではパターンとか部品配置により、難しいこともありますが。
間違ったところを削りとって、正しく轢きなおすだけで、いいのです。パターンを轢き終わったら、ドライヤーで乾かす(焼成するんですが)で出来上がりです。

普通のプリント基板では、パターンは部品面と反対側に有りますが、Eジスペンによるパターンは部品面にあります。配線を確認するときに、部品面であるので確認も簡単です。

一見いいこと尽くめのようですが、こいつには結構きつめの問題があります。伝達抵抗がちょっと高めです。銅栢のプリントパターンでは、抵抗値を読み取ることはできませんが、Eジスペンによる配線は、抵抗をもちます。
コレは電流を制御する回路には使えないことを意味します。
また、スルーホールパターンは一度はんだ付けすると、後配線時のはんだ吸い取りがやりにくいです。

こんなデメリットも有りますが、簡単に基板が作成できることは大きなアドバンテージがあります。

次回は、弾数カウンタの回路図とその中身についてかきます。。

タグ:PIC
nice!(0)  コメント(0) 

弾数カウンタ [PIC]

前回行われたピンポイントシューティングで、主催者の池上さんが披露された“段数カウンタ”ですが、惜しくも着弾センサの精度の問題で、うまくいきませんでした。

そこでこれはテーマ的に面白いと思ったので、PICを使った練習として一個作ってみました。
KickCounter.JPG

構成物としては、
電池、電源回路、圧電スピーカ、、感度調整ボリューム、マイコン、7セグディスプレイ、その他サポート部品となります。

ここでのポイントは圧電スピーカです。圧電スピーカは、普通に使うとわりと性能の悪いスピーカですが、コレを振動センサとしてみるとわりと性能がいいです。なぜとなれば、マイクは空気の微妙な振動をダイアフラムで受け取りそれを、電気信号に交換します。圧電スピーカはこの仕掛けに圧電素子を使っています。
圧電素子が一番使われている箇所は、電子ライターです。これは、衝撃を加えると電圧を発生するもで、圧電ライターではものすごいかなづちでぶん殴っていますが火花が飛ぶくらいの電圧を発生しています。空気振動のような強烈な振動を電気信号に変えられるのだから、箱に取り付けたら直接振動するので。。。ってことです。

UBWのところで見せたグラフはこのときの電圧の変化を示したものですが、あの段階で4ボルトほど流れていることが想像できます。

で、今回はさらに、それを一度可変抵抗器に受けさせそれの一部分をコンピュータへの入力信号とします。抵抗で分圧されたものを入力とするわけです。
マイコンとはいえコンピュータなので、プログラムが必要です。

プログラムのながれは、以下のようになっています。

1.AD変換をし、電圧を調べる。
2.ある数値以上であれば、50ミリ秒待つ
3.もう一度AD変換をして、電圧を調べる。
4.このときもまだ、ある数値を超えているようであれば、着弾と判定する。
5.数字を消灯し、小数点を点灯する。
6.950ミリ秒待つ
10.小数点を消灯し、弾数を一つカウントアップする。
11・カウントされた弾数を7セグに表示する。
12.最初に戻る

以上をずっと繰り返しています。


もう少しこれば、動作中は少数点を点滅させるなんてことができるかもしれませんが、多分やるとうるさいのでやめておきました。

実際に動いているときの動画はここ にあります。

これで撃ってるとちょっとおもしろいです。
nice!(0)  コメント(0) 

UBWソフトウェア [PIC]

UBWもコンピュータなので、パソコンと同じで”ソフトが無ければただの箱“にもなりません。
コンピュータの便利なところは、使用目的がはっきりしていればそれに向かった設計を行うことで、いろんな機能を利用できる点にあります。
#正確には、演算ロジックだけですが。
UBWで使用しているPICには、いろんな種類のI/Oが用意されていて、それだけで、簡単なアプリケーションが実現可能です。オークションなどで売っている弾速計もPIC(もしくはAVRと言う別のコンピュータ?)を使ってできています。しかし、買ってきただけでは、何もできないわけでそれを動かすソフトが必要です。なんてことはその辺のコンピュータ開設に書いてあります。

で、UBWのすごいところは、この手のコンピュータのプログラムの変更に必要な書き込み装置が不要なところです。まず、ソフトを起動するためのブートローダと言うソフトが起動し、メモリ内に格納していあるアプリケーションソフトを起動します。マイコン起動時にオプションスイッチが押されていると、ブログラムロードモードになり、アプリケーションプログラムをUSBから読み込みROM内にかきこみ、リセットスイッチが押されると、そのプログラムを起動します。おかしなプログラムならばいわゆる暴走をするわけです。

UBWの機能確認用なのかどうか分かりませんが、すごさを教えてくれるアプリケーションが、FirmwareDというものです。名前の経緯は良く分かりませんが、専用のコマンドインタープリタです。コマンドはUBWをコムポートとして接続したターミナルソフトで使用できます。

今回使用した18F2550は、AD変換機能を持っており、設定するリファレンスにもよりますが、グランドから電源までを1024段階で、電圧の測定ができます。そこで、このアナログ端子に、圧電スピーカを接続して連続で、アナログ電圧を測ってみました。この圧電スピーカを指ではじいてみると、以下のような波形になります。

shot.jpg

簡単なアナログオシロが出来上がります。

FiremwareDにはその他にも
デジタル出力、デジタル入力、アナログ入力、周期的デジタル入力、周期的アナログ入力、メモリ読み出し、メモリ書き出しサーボ駆動などができるようです。

これらの機能が、COMポートからつながって、文字列による操作できるので、例えば二つのマイクから音声を入力し、その差分情報から位置を計算して、ラジコンサーボに接続したレーザポインタをそっちの方に向けるなんていうのが、エクセルのVBAからできるかもしれません。

nice!(0)  コメント(0) 

UBW作成 [PIC]

UBW基板を作成しました。
基本的にUBWと言うのは、USBを使ったマイコンのコンセプトの一つで、具体的な製品を刺す名称では有りません。PIC18F2550等のUSB機能を持ったPICに対してLED3つ、スイッチを2つ、それとBOOTLOADERと呼ばれるファームウエアが動作するうコンピュータブロックです。
P3250133.jpg

この写真は、僕が作ったもので、workshop Nakさんで扱っているPIC18F2550用基板を用いたものです。この基板はUBWについて興味深いWEBページを公開して頂いている千秋ゼミさんの口利きで作られたそうです。
僕が買ったバージョンは前回乗せたものとは若干違っているようでした。機能的には同じです。

コンピュータの基準信号として、水晶とセラロックがありますが、僕は20Mの水晶を使いました。

workshop Nakさんから基板を注文して、到着するまでの間に秋葉で部品を会に行きました。LEDが3色必要でしたが、何も気にしないで安いもの(10こで150円)を買ったので、LEDの大きさが微妙にあわず。やすりを使って削りました。

またこの基板は、ICSP書き込みにも対応しています。ICSP書き込みとは、コンピュータとして組みあがったまま中のプログラムを書き込めると言うもので、この手のワンチップマイコンは、書き込無ために基板から取り外して書込み器にセットして書き込んだあともう一度装置にICを刺すと言うことをしますが、なぜかPICKIT2と言うICSP書き込みができるライタも持っていたりするので、それを使って書き込もうと思うのですが、また、LEDが邪魔をします。そのため頭を削りました。

UBWの作成を検討している段階で、このブログを見つけたあなた。あなたはきっと運が良い!部品を買いに行くときはなるべく小さなLEDにしたほうがいいです。チップLEDでも使えるのではないかと思います(使ったこと無いので確証はありません)。

PICをこの基板に指す前に正しく電源ジャンパを設定して、基板に問題が無いことを確認した後、USBケーブルを刺すと、めでたく緑色のランプが点灯します。
このランプを確認した後、PICを載せればハードウェアは完成です。


nice!(0)  コメント(0) 

UBW 事始 [PIC]

ちょっとPICであるものを作ろうと思ってましていろいろ調べてたら、
UBWなるものがあり、何ものかというと、

1.USBがつかえるPIC(18F2550)を使って、
2.ブートローダを組み込んでおくことによって、
3.USBケーブルからプログラムが可能!

というものです。
2を実現するためにあらかじめ書き込んでおく必要がありますが、普通のUSBケーブルでプログラムの変更ができることになります。たとえば、UBWを使って、弾速計を作ったとして、弾の光学部分の寸法を変更したとして(この際変更する必要があるかどうかはおいといて)、プログラムを変更する必要がある場合に、USBケーブルのみで変更が可能になるというものです。

プリント基板を頒布してくださっているサイトがあって、それを用いることで簡単に作成することができます。大体の費用は1000円くらいだと思います。
ubw.JPG開発に必要なソフトウェアは、ダウンロード可能です。
しっぽさんがやられたようにブレッドボード上でインターフェース回路をこさえると、いろいろなことができそうです。

まだまだUBWに関する情報が少ないので、僕も、いろいろといえたらなあと思っています。
タグ:pic UBW
nice!(0)  コメント(0) 

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。