RJBさんが作ったもの追試してみた。ひょっとして本体に内蔵できるかとか、ちょっと小さめにしてみたけど、結局、本体にはMIDIの5PINのDINのコネクタを付けられそうな場所が取れそうにない。一度は考えた本体内蔵だけど、基本的には、RJBさんのオリジナルにしたがって本体への改造なしで使えるようにしてみた。
デモンストレーションのほうにパソコンベースのシーケンサで録音した音源と、ビデオを用意したのでそちらも参照のこと。
ソフトはそのまま、RJBさんのサイトからダウンロードさせていただいたものを使わせていただいた。毎度、ありがとうございます
プログラムは、コンパクトに狙いを絞ってシンプルに書かれている。僕自身、何年か前に、Chackさんが書かれ、オープンソフトウエアとして公開されたMIDI-CVコンバーターのソフトウエアにいたく影響を受けて、オブジェクトオリエンテッド風味にソフトを動かすデータを吐き出すMIDI Parserというソフトを書いたのだけど、小さなCPUではしらせるには不要な機能満載、気が付くと、メモリーを使い切っていて、有れば便利なはずのサブルーチンでお腹一杯になってしまい、メインディッシュのアプリケーションが乗らなくなってしまった。手段のために目的とCPUを選ばなきゃいけない状態になったりして、本末転倒。そんな苦い思いとともに、色々むずむずと込み上げてくる物がなくもないのだけど、今回は、追試に徹するべく、AS IS前提で挑戦させていただいた。
その後、MIDIの処理のうち、ランニングステータスの処理の不備を発見し修正した。
修正した版はこちら。
画像はMIDIの入力のコネクタの配置。DINのpin配置は不思議な配列になっている。どうなってるの分からなくなって、いつも調べなおしたりして、面倒。
| R1 | 47K | 1/4w or 1/6w |
| R2 | 220R | 1/4w or 1/6w |
| R3 | 1K | 1/4w or 1/6w |
| R4 | 10K | 1/4w or 1/6w |
| R5 | 47K | 1/4w or 1/6w |
| C1 | 0.1uF/50V | celamic |
| C2 | 0.1uF/50V | celamic |
| C3 | 47uF/50V | chemical |
| C5 | 0.01uF/50V | film |
| C6 | 0.01uF/50V | film |
| U1 | ATtiny2313 | One Chip CPU |
| U2 | 6N138 | Photo Couppler |
| U3 | 78L05 | 3 tarminal Voltage Regrator |
| U4 | 20MHz | ceralock |
| D1 | 1S2076A | SW.Diode |
| VR1 | 10K | Liner |
特に入手の難しい部品はない。すべて、通販で入手可能。フォトカプラは、RJBさんは回路図には、TLP552 etcと指定しつつ、実際の組み立てには、PC910を使われてたようだ。僕は、6N138を使ってみた。
CPUは、最近安価に手に入るようになってうれしい、AVR。ATtiny2313。僕は東京・秋葉原の秋月電商で一つ100円で買った。
PCBデザインからはISPポートを外してしまったので、プログラムの書き込みは別途ブレッドボードに電源とリセットだけ配線したものを用意して書き込む。プログラムの書き込みについては、タケダノヲトVol12のおまけも参考になるかもしれない。
クロックにセラロックを使われているけど、買ってきたばかりのATtiny2313は、内部クロックに設定されているので、フューズを書き換える前であれば、クロックなしでも書き込むことができる。プログラムを書き込んでから、フューズビットを書き変えた。
一度、外部クロックを使うようにフューズビットを書き換えてしまったら、ブレボに乗せ変えてプログラムを書き込む時にもクロックが必要になる。
僕の場合、セラロックは秋葉原への電車代/送料にくらべて、圧倒的に安価な部品なので余分に買っておかないとソン。
メールで、千石の通販ページに、220Rという値の抵抗は見つかりませんでした、という問い合わせをいただいた。
部品表の中の、R2、220Rは、220Ωの事。キロやメガの場合、数字の最後に単位として「K」や「M」をつけるけるけど、200オームの場合は、単位がないので、抵抗(registor)の意味の、Rが使われる。この記号が、小数点の代わりに使われる事もあり、2R2、2K2とか、2n2と表記し、それぞれ2.2Ω、2.2kΩ、2.2nFを意味する。字が小さいとき、数字の中で一番小さな小数点が見えなくならないようにとか、プリントした図面が擦り切れて小数点が消えないようにする工夫かなと思う。
このほか、蛇の目基板、006p用電池スナップ、ボリュームのつまみ、MIDI用、Din5Pinコネクタ、Pitchバー接続用のコネクタ、SX-150のグランドへ接続するためのワニ口クリップや、それにかわるなにかも必要。
上手に買い集めれば、電車代より安くそろえられるかもしれない。僕はまだ、手に入れてないんだけど、ケースが一番高価な部品になりそうだったりして。
部品点数は多くない。基板サイズも、最初はSX-150の中に入るかなーとかやってたくらいだから、ちょっと小さい。72mmX48mm程度のものを切って使う。僕は、スルーホールタイプのものがあまっていた(というか、あまってたこれに乗るように工夫したというのが本当)が、片面のもので十分。逆に、表にジャンパ線を飛ばすと、ショートする可能性があるので、チューブで保護したりして。
PCBレイアウト例と実体配線図(もどき)では、コネクタを使うように書いてあるけど、実際には使わなくてもいい。できれば、使わないほうがいい。音が悪くなります。
あ、しまった、このメカは音がでないんだったー!!ええ、ウソです、使ってもそうでなくてもこのメカの場合はぜんぜん変わらない。コネクタを使うのは後からのメンテナンスが必要な場合、基板だけ取り外したり、蓋をはずせなくならないようにするため。メンテが必要無いメカでは、コネクタを使うだけコストとスペース的にもソン。
ボリュームはオクターブの調整をする。鍵盤で1オクターブ違う音を出した時、ただしく1オクターブ高い音が出るようにセットする。このVRは、R5とセットでアッテネーターを構成していている。
右に回しきると、抵抗値が低くなるように接続すれば、まわせばまわすほど、1オクターブのスパンは広くなり、下高井戸(本当は「シが高いド」)になる。逆は、浜田山。(ファまだ山、ファがまだこないってのはちょっと苦しい?いや、京王線沿線の人は笑うように。)
ここの配線に限って、逆になっても壊れる事はない。あわてず騒がず、アハハーとかわらいながら、接続しなおせば、OK。
いや、笑ってる場合ではない。このつまみは、一体ナニをするのかというと、「なんちゃってピアノの調律師」つまみなのだ。あれって、一人前になるのに、どれぐらい修行しなきゃいけないか知ってる?
しかも、苦労してあわせたチューニングは、時間が経てばずれてくるし(本当は気温の変化でずれる)オリジナルを開発された、RJBさんも、おっしゃっている通り、なんとなく合うのはせいぜい2オクターブ程度。
オクターブを変えて演奏するには、再調律が必要だし、たぶん、その調律は、さっきのオクターブとは違う調になっている。
調律のコツは、ある音を聞いてみて、それより1オクターブ高い鍵盤を弾いてみる。低ければスパンを広げる。(下高井戸方向)このとき、さっき基準にした元の音も一緒に高くなってしまうので、まだ、浜田山。もう一度音を良く効いてさらに下高井戸方向へ。明大前(浜田山と、下高井戸の中間点)で乗り換えが肝要。え?ええ、笑っても結構です。おあとがよろしいよーでー。
笑ってる場合じゃないかも。
情報を公開して、Youtubeにビデオを公開してと色々やった。いろいろな人からレポートをいただくのは、DIYer冥利に尽きる事のだけど、届くレポートは全部、「うごかねーぞ!」
部品点数も少ないし、PCBデザインもコンパクトにできたこともあって、多くの初心者が食いついて、軒並み撃沈してるのかもしれない。動きましたーが、1通も届かなくて、チト、不安を覚えたので、デバッグの技法をいくつか紹介する。
とりあえず、公開した情報のまま組み立てれば動く。自分で2回組み立てたし、組み立てたけど動かない、とおっしゃる方のPCBをお預かりしてチェックしたけど、1箇所ミスがあった。そこだけ修正したらさっくり動いた。
現段階(2009/03/08)では、ハードウエアの問題は出ていない。ソフトウエアには問題が見つかり修正済み。
というわけで、もし組み立てたけど動かないのなら、回路が悪いのではなく、あなたの組み立てに問題があるからだ。
意地悪に聞こえるかもしれないが、デバッグの基本は、動かない原因があるから動かないと思うこと。いわれの無い呪いを掛けられて動かないということはほとんど無い。原因はすべて目の前にあるという認識に立つのが、デバッグの最初の1歩。
組み立てたPCBのチェックは、電源系から始める。一番ミスっちゃいけないところ。どこが電源系なのかわからなければ、電池からたどる。
次はグランド系。一通りチェックが終わったら、写真のように、電池とスナップを半分くっつけて、テスターを電流計モードでチェック。もし、回路の電源系がショートしてると、テスターの内蔵ヒューズが落ちるので、まずは、数アンペアのモードでみる。当然テスターは、ピクリとも動かない。次は数百ミリアンペアモードで。ちっとは動くかもしれない。そこで、初めて、数十ミリアンペアモードにして、回路全体に流れる電流寮をチェックする。
この回路では、15mAから、16mA程度の電流が流れるはず。
一般に、乾電池を使う回路で、50mA以上流れていたり、0mAだったら、ちゃんと組み立てられていない。電池をはずし、もう一度、PCBを見直す。ミスが発見できるまで2度と電池は繋げちゃだめ。多くの場合1発目は勘弁してもらえるが、ミスがあるのが分かってるにもかかわらず電源を繋げると、2回目には壊れる。偶然なんだろうけど、物理の神様は結構、意地悪。電源を入れてのテストが必要なときは相応の覚悟の上で!
上記のテストをクリアできれば、ハードウエア的には問題なさげ。それでも動かないのなら、ソフトウエアがちゃんと転送できてない可能性が高い。
先にも紹介したようにタケダノヲトVol12のおまけで紹介している、AVRSPを使う場合、AVRのフューズは、
でフューズを変更しなければいけない。(16進数なら、0xEF)
ソフトを書き込むソフトがベリファイOKで、フューズの変更も無事にできているのなら、やっぱりハードに問題がある。
例えば、この回路なら、ICが2つついてるのだから、どちらかがちゃんと動いてい、と疑ってみる。ICの動作とかいうと、難しげだけど、一般に、ICは電源入れときゃ動く。ちゃんと動かないのは電源がきてないから、と考えて、まずは、電源pinをチェック。
たとえば、AVRなら、10pinにマイナスを20Pinにプラスのリードをあてる。フォトカプラなら、5pinと8pinの間の電位を見る。それぞれ5Vのはず。どこかはともかく、「ここがグランドのはずのポイント」と、ICのpin以外のポイントでチェックするのは間違い。
ちゃんと動いて無い基板を見てるという事を忘れないように。つながってるはずのところが、オープンしてたり、ショートしてるから、動かないのだ。これ、大事。
テスターのリード棒がつるっと滑らないように十分注意して、基板の上から、ICの足を直接見る。思った電圧がでてなければ、そこを重点的にPCBパターンをチェック。
さらに、もし、オシロスコープが使える環境にあるのなら、数mSモードにして、AVRの2pinを見る。
ここには、MIDIのデータが届いているはず。プルアップされているので、いつもは5Vがでている。多くの場合、アクティブセンシングという、MIDIが生きてるかどうかを先方に伝えるためのデータが0.5秒おきぐらいに、出ているので、パタ、パタっと、定期的に、0Vに落ちるヒゲが見えるはず。1mS以下のヒゲなので、テスターなどでは見られない。オシロスコープがあれば、チェックできるポイント。
このテストで、MIDIのコネクタ周り、フォトカプラの入力のダイオードの向きがチェックできる。
ちゃんと動いているのなら、鍵盤を押したときに、15pinにPWMのパルスが見られるはず。ソフトに問題が無ければ、鍵盤を押してるときには必ずパルスが出ているはず。テスターに、周波数カウンタ機能があれば、19.53125k程度の周波数が読めるはず。もしずれていれば、それは、セラロックの発振周波数の誤差。小数点以下のずれなら、問題なく動くはず。
こんなところが、というポイントにミスは隠れる。ここは大丈夫、と思っているところに限って、ミスは存在する。デバッグに王道はない。アンパイも無い。
部品点数も少ない。根気よく見ればかならず、ミスは発見できる。ぜひとも、クリアして、
MIDI-IF Ver.2や、MIDI-IF Ver.2 Rev.Bなど、実用バージョンに進んでほしい。