ぽんず製造所

当ブログの記事を参考にして行った事により、いかなる不都合が発生としても当方は一切の責任を負いません。全て各自の自己責任でお願いします。

MIDI

MIDIインタラプタを作りたい

このまえテスラコイルで演奏ができたのはいいけど、MIDIインタラプタが金魚氏のものを使っていたので自分で作ってみたいなぁ......
っていうわけでそのへんも作ってみようと思う。前もちょっとやってみたけど今回は実用的(?)に使えるものを作ってみたい
MIDIインタラプタとは送られてきたMIDI信号をその音階の周波数に変換、矩形波パルスを出力するものです。


マイコンは前から使ってみたかったPIC24という16bitマイコンにしました。使ってみたかっただけ。
あと16bitだからちょっと複雑なことできるかな~とか思ってます

1431252824211

初めてのPIC24なのでうまく扱えるか不安...
今回は小さい方の14ピンパッケの「PIC24F08KL200」を使います。


まず開発環境を整えることから始まって
定番のLチカをさせてみます。適当にググって出てきたプログラムとかを参考にしました。

んで書き込んでみると

...

...

書き込めない...
なんでやねんと思いながらもいじっていくと、ライター(PICerFT)の設定が原因でした。拡張ICSPで書き込もうとしてたのですがKLシリーズは拡張ICSPに対応してないらしいです。
ただのICSPにして書き込んでみると...



動いてくれました
ん~でもMCLRピンを入力としてもなんか設定できないので色々調べてみるとPICerFTはどうやらそこのコンフィギュレーション書き込めないっぽいです。仕方ないのでMCLRピンのまま使います。


で、PIC24の練習として「音階表示器」をやってみようとしたのですが

「めうちゃんは音階表示器をやりたいんだね」
「やりたいめう」
「でもそのためにはLEDを12個つけるからピンは12本必要。ダイナミック点灯にしても7本。他に電源系や入力・出力などがあって14ピンマイコンじゃピンが足りないね」
「たりないめう...」
「そこで『チャーリープレクシング』という点灯方式を使う」
「使うめう」
「すると12個のLEDを点灯するのに4本で済む!」
「やっためう!すごいめう!!!」

こんな感じで使用ピン数を削減。
実際には12個以上のLEDを点灯させたいので5本になります。
チャーリープレクシングはn^2-n個(n=ピン数)のLEDが点灯できるので5本で最大20個まで点灯できますね。

ちなみにこんな回路です。LEDを逆向きにつないだり工夫されています。

無題

欠点は1つずつしか点灯できないので少し暗くなっちゃうことです。まぁ高輝度LEDを使って大きめの電流流してあげれば普通につきます。あと制御がチョットめんどくさいことかな?


適当にプログラム作って書き込んでみたら動きました。
昔作ったチャーリープレクシングモジュールを接続しています。

1432128492210



動かすことができたので本番のインタラプタを作ってみようと思います。
ついでにさっきの音階表示器の機能も合体させちゃおうと思います。
まぁPIC18Fで作った時のをコピペしてちょっと書き換えるだけなんですけどね。

コピペしただけだけどであっさり動く



それと出力を2chにしてテスラ2重奏もできるようにしました。


もしテスラコイルのノイズなどでマイコンが暴走した場合、出力がHになりっぱなしになってしまい最悪テスラが燃えます。
この事態を防ぐためと、パルス幅の制御=放電距離の制御用に、ロジックICでパルス制御回路を設けました。
パルス幅の制御はマイコンにやらせてもいいけど、処理が追いつかなさそうなのでついでにロジックにやらせることにしました。
タイマーIC555を使うのが主流のようですが、今回は74HC123を使います。555タイプより小型化できるし2回路入っているしちょうどいい。

回路

midi123

マイコンからは10usのパルスが出力(アクティブロー)されるだけですがボリュームを回すことで大体3.3~330us(もうちょっと多いかも)の間でパルス幅を制御できます。
上の回路では次のパルスと重なって1つのパルスとなってしまいますが、下の回路ならば重ならずに出力することができます。
というわけで破壊防止・パルス幅制御回路は完成。


インタラプタとして最低限はうごいたけどボタン(と言うか切り替えスイッチ)が足りない。

「めうちゃんはスイッチを追加したいんだね」
「したいめう」
「でも残り3ピンしかない。全部つかっても3つしかスイッチは付けられない」
「ちょっと足りないめう...」
「そこで『分圧ADC式』(勝手に命名)という点灯方式を使う」
「使うめう」
「するとADCピン一本で(理論上)いくらでもスイッチが付けられる!
「やっためう!すごいめう!!!」

こんな感じで使用ピン数を削減。
回路ではこんな感じ

Untitled

どれかのスイッチが閉じた時、上の抵抗としたの抵抗で分圧された電圧が出てきます。
この電圧をADCで読んでどのスイッチが閉じたのかを判断します。
すべての抵抗を違う値にすれば同時押しにも対応できます。
「いくらでも」と言いましたが実際はADCの分解能や誤差、ノイズ等でズレるので余裕を持ってスイッチは4つまでにしました。 

実際にこの方式で読んでみましたが意外と使えます。


ちょっと長めの記事になったけどこれでインタラプタはほぼ完成です。
ピンが足りないンヒィ!!とか騒いでたけど回路の工夫で最終的に2本も余らすことが出来ました。しかもチャーリープレクシングはまだ余力があるのでLEDを追加できます。
チャーリープレクシングと分圧ADCはオススメです。

このインタラプタの基板はプリント基板で作りたいと思います。いつになるかわからんけど。

いろいろ

また随分とサボっていましたね。まぁこのブログは1ヶ月に更新するかしないかくらいのペースで行きましょうか。

 
まず前の記事で言っていたモノを完成させました。

レールガン用ワイヤーカット式弾速計 

CIMG0529

まぁうん。普通の弾速計です。
中にはアルミホイルで気休め程度のシールドをしてやりました。素直にアルミケースを使えばよかった。
赤系の7セグだと上に茶色い塩ビ板をかぶせると見やすくなるらしいですが、赤系以外の7セグにかぶせてやっても問題ないようです。むしろかぶせたほうが見やすくなった

m/sの部分は、透明フィルムにm/sを印刷したものをバーLED(面発光のLED)に貼って作りました。

DSC_0118
予備で3枚分くらい印刷しました

7セグ白だったしここも白が良かったかな。緑か赤しか売ってなかったし、白色は自作するしかないかも


光センサー式弾速計

CIMG0531

コイルガン用に制作したものですが、普通のエアガンなども測れるはずです。
超小型弾速計を目指していたのですがそこまで小型になりませんでしたわww

CIMG0530
CIMG0532
 
センサー部は赤LEDを使用していかにも測ってる感じが出るように......いや、赤外線センサーだけど何故か赤外線LEDより赤LEDの方が動きが良かったから。
入射口が小さすぎて測りにくいのでもうちょっと太いパイプにすればよかったかもしれない 


電圧計(キャパシタメーター)

 DSC_0088

コンデンサの電圧を監視するために作ったものです。
テスターが378Vで374Vだからまぁまぁの精度かな?
440Vで10連バーLEDが点くようになってます


あとはMIDI信号の制御の練習も兼ねて、MIDI信号を受信してなってる音を光らせるものを作ってみた。





久しぶりにテスラコイル動かす気になったので動かしてみたり。まぁ普通に放電。

光ファイバーがなかったのでMIDIで演奏するのは諦めていたのですが
「もう光ファイバーとかなしで演奏しちゃえば?」ってなってPCとは一応フォトカプラだけで絶縁してめっちゃ怖いけど一応演奏出来ました。



アンテナFBなので全然安定してないですね。後で二次FBにしたら結構安定して動きました。

フォトカプラだけでも意外と大丈夫みたいですが、ちょくちょくDomino(MIDIシーケンサーソフト)がフリーズしたりする事がありました。
やっぱりしっかりと光ファイバーで絶縁したほうが良さそうです。
 


そんでもって弾速計をキット化(?)しました。

CIMG0521

機能は...
測定範囲:0.01m/s~9999m/s
光センサー式とワイヤーカット式が選択可能
センサーの間隔:1.0cm~52.0cmまで2mmごとに設定可能
簡易運動エネルギー計算機能
プロジェクタイル質量は0.01g~85.00gまで設定可能 
いずれもユーザー側で設定できます。
機能はこれだけで、連射速度とか前回の初速記録して表示とかエアガン向けの機能はないです(そもそもEML用に開発したため)
精度は......うん......大きくても誤差1%以内には収まっていると思います......
個人で使う分には問題ないかと

こいつは特に音速(大体340m/s)以上の高速域の測定が得意です。
お値段多分700円くらいですマイコンだけでいいとかそういう場合は値引きします。

好評につき完売しましたのでバージョンアップしたものを新しく発売しました。

というか個人で販売していいのか?許可とかいらないの?
詳しいこととか欲しい方はブログのコメント欄とかTwitterからどうぞ。
(このキットはいろいろ応用できるようにしたためにセンサーなどは他に購入する必要があります)

基板はHaido氏に制作してもらいました。ありがとうございます。

DSC_0101

それでは。 
5000兆円欲しい!
Twitter
Twitterに大体います