2019年9月9日月曜日

HDD 演奏


注意:この記事の内容を鵜呑みにし、事故や損失を招いた場合でも当方は一切の責任は負いかねます。自己責任でお願いします。

HDD(ハードディスクドライブ)のシークコイルを利用し演奏させます。

構成:
1. はじめに
2. 回路設計
3. HDDの改造
4. 基本動作説明
5. 回路中の半固定抵抗の調整
6. 動作例
7. 終わりに

1. はじめに

今回は音を出すと共にシークコイルを大きく動かすことを目標にします。その上で一つ大きな課題があります。それはシークコイルの位置の検出が非常に困難なことです。FDDや工学ドライブなどにはステッピングモーターが用いられており、特別なセンサーが無くてもある程度は位置を把握して制御することが出来ます。それに対して、HDDのシークコイルの位置検出はプラッタから位置情報を読み込んでシークコイルを動かしています。そのため、改造したHDDではこの位置検出がほぼ不可能となります。なので代わりの検出を考えます。
考えられる方法としては、
・シークコイルの部分に物理スイッチを付ける
・フォトインタラプタ又はフォトリフレクタを付ける
・磁石にフィードバックコイルを付ける
・シークコイルの電流を監視して検出する
・HDD全体をカメラ撮影して、画像検出する
5つほど上げて見ましたが、上の方ほど物理的にHDDを改造していき、下に行くほど難易度が上がります。
あくまで「異色演奏」であるため物理改造はできるだけ避けたいです。
あとは開発コストや、どんなメーカーのHDDでも簡単に演奏できるようにすることも重要です。
これらを踏まえて最終的に磁石にフィードバックコイルを付けて検出することにしました。
見栄えは劣りますが、検出が簡単でどんなHDDでも簡単に改造できます。


2. 回路設計

次に制御方法です。
HDDの演奏ではハードウェアを大幅改造します。そのため、マイコン制御とアナログ制御の両方を必要とします。
2つの制御の配分をどうするかは個人で好みが別れますが、今回は音程パルス波をマイコンで生成し、パルス波を元にコイル動作を位置検出をデジタル回路とアナログ回路を使い制御します。
この方式にした理由は、FDDで演奏する際のFDDの入力方式と合わせることができるからです。FDDは鳴らしたい音程のパルス波を直接入力します。つまりFDDと制御方法を合わせることでFDDで演奏している方でも簡単にHDDで演奏できるということです。

ではパルス波を元に制御する方法を検討します。
シークコイルの動作としては
・周波数によって動くスピードを変える(高いほど速く動き、低いほどゆっくり動く)
・シークコイルが限界まで動いたら反転させる
の2つです。
また、入力されるパルス波の立ち上がり維持時間(オン時間)が不定なことからパルス波の立ち上がり維持時間を一定にする回路、シークコイルが動くため音が小さくなるのですがこれを防ぐ回路(音を大きくする回路)が必要です。

これらを元に回路を設計しました。
初心者が設計した回路なのでミスが多くあると思います。コメント等で指摘してもらえると助かります。
フルブリッジドライバはモータードライバなどのICを使用すると簡単です。
秋月電子さんで様々なモータードライバICが販売されています。
http://akizukidenshi.com/catalog/c/cmotoric/
この中でHブリッジ、フルブリッジと書かれているものは使用できると思います。(もちろん全てではありません)

一応、いくつか回路例を挙げてみます。
BD6231F
秋月電子で販売しているDCモータードライバです。
表面実装のICですが回路が簡単で使いやすいと思います。
http://akizukidenshi.com/catalog/g/gI-05088/

LV8548MC
秋月電子で最近販売されたDCモーター、ステッピングモータードライバです。
http://akizukidenshi.com/catalog/g/gI-14480/
2回路入りなのでHDDを2台演奏できます。
ただ、SOIC-10 NB(SSOP10 1mm相当?)という少し珍しいパッケージなため、変換基板が出回っていません。なので、SSOP16 1mmの変換基板を使うと良いでしょう。
http://akizukidenshi.com/catalog/g/gP-13594/



MOSFETを使用してフルブリッジドライバを作成しても良いでしょう。
この回路ではフォトカプラを変則的な使い方をしています。

フォトカプラのトランジスタがONになると2つの330Ωが直列となり、「(電源電圧 - (フォトカプラのVCEsat)) / 2」の電圧付近で分圧され安定します。この回路で言うと約5.8Vほどの電圧がゲート駆動用トランジスタのベースにかけられます。(ハイサイド側は電源電圧から見て約-5.8Vほど)
そしてゲート電圧が「5.8V - ゲート駆動用トランジスタのVBE」になるまで上昇し、MOSFETがONになります。

フォトカプラのトランジスタがOFFになると各330Ωはゲート駆動用トランジスタのベースにのみ繋がれるため、ゲートの電荷が抜けてMOSFETがOFFになります。

ここで注意しなければならないのがMOSFETのゲートしきい値電圧Vthです。
エンハンスメント型のMOSFETはゲートにしきい値以上の電圧(Vth)がかかると急激に電流を流すようになります。逆に言うとVthより中途半端に少し低い電圧になるとMOSFETの抵抗値が高くなり、無駄な損失が大きくなり、最悪破壊されます。
回路の特性上ゲートにかかる電圧は「((電源電圧 - (フォトカプラのVCEsat)) / 2) - (ゲート駆動用トランジスタのVBE)」となり、MOSFETによってはVthにぎりぎり満たない場合があります。
対策としては、電源電圧を12Vより上げる、Vthの低いMOSFETを使用する等があります。

また、フォトカプラもできるだけ応答性の速いものを使用します。
(この回路図上では手持ちのフォトカプラの関係上ILD217Tを使用しています)


3. HDDの改造

シークコイルで演奏するために改造していきます。もちろん不可逆的な改造なので改造または、分解した時点でHDDとしての使用が出来なくなりますので注意してください。
まずはHDD選びです。現在主流のHDDは3.5インチのものと2.5インチのものがあります。大きさの違いだけで中身の構造はほとんど同じなのでどちらを使用しても構いません。また、メーカーや生産時期によっても構造が変化しますが、ほとんどのHDDは改造可能です。ただし、近年はヘリウム入りのHDDも出始めているようです。ヘリウム入りのHDDは本体が溶接されているため、分解が非常に困難なので避けます。

大まかな改造手順は、
基板除去→本体開封→ヘッド退避磁石除去→シークコイルの駆動電極の特定→フィードバックコイル巻き
です。

では実際に改造例を示します。


改造するHDDはマーシェルのHDDのMAL3080SA-W72です。WDのリファービッシュ品なので構造はWDのHDDと同様です。代替処理済みセクタが急増したので故障と見なし改造することにしました。


まずは、基板を外します。HDDのネジはトルクスネジという特殊なものになっており、普通のドライバでは回せません。無理やりマイナスドライバを使い回すことも出来ますが、専用のドライバを用意することをオススメします。



次に本体の開封です。
銀色の大きい円盤がプラッタ、その斜め下の曲玉状の金具がヘッドを駆動するための磁石です。この磁石はネオジム磁石と言い、非常に強力で指などを挟んで怪我をする可能性があるので注意してください。




ネオジム磁石を外します。
2対になっている一方のみを外します。メーカーによっては片方の金具のみに磁石がついているものもありますが、簡単に取れるほうを外します。



ヘッド退避用磁石(金具)を外します。
この小さい磁石(金具)を取り外さないとヘッドが往復しません。
この磁石はシークコイルの根元または、ネオジム磁石の金具についています。メーカーによって取り付け位置や方法が違うので慎重に取り外します。特にWD製のHDDは樹脂の中に埋め込まれているものもあるため難易度は高めです。


ヘッドの調整を行います。
ヘッドがプラッタについた状態で往復させるとプラッタに傷がつくことがあるので爪楊枝等でほんの少し浮かせます。


ランプの取り外しをします。
ランプロード方式のHDDの場合はランプと呼ばれる金具が取り付けられています。
シッピングゾーン方式の場合はこの金具が取り付けられていませんので、この工程を飛ばしてください。


シークコイルの駆動電極の特定
HDDの基板を取り外した側を表にし、飛び出ている電極をテスターを使いシークコイルの駆動電極を特定します。
テスターのレンジは抵抗値測定モード(低抵抗)にして手当たり次第リードを当て探し出します。テスターにもよりますがシークコイルに繋がる電極にリードを当てるとヘッドが動きます。
もちろんフレキケーブルのパターンを見て特定しても良いです。プラッタの中心付近から出ている3~4ピンの電極はモーターなのでシークコイルには繋がっていません。
電極を特定したら導線などを2本を半田付けします。





フィードバックコイル巻き
外したネオジム磁石の端と端にエナメル線(ポリウレタン線)を5~15ターンほど巻きます。この時、ネオジム磁石をHDDに取り付けてみて、

①フィードバックコイルの巻き線がネオジム磁石の金具に挟まないようにする。
②シークコイルを手で動かしてみたときにシークコイルとフィードバックコイルが接触しないようにする。

この2点をクリアするようにフィードバックコイルを巻き付けます。
その後、フィードバックコイルから飛び出ている4本の線をコネクタなどに半田付けし、ネオジム磁石をHDDへ戻します。




HDDの改造は以上です。
基板は演奏に必要ないため部品取りなどにしてもかまいません。



4. 基本動作説明

パルス波が入力されるとまず74hc123でパルス幅を揃えます。この74hc123はパルスの入力があったときRとCで決められた時間出力します。ここで注目してほしい所は、回路中にこの部分が2つあることです。本来なら1つで十分なのですが音を大きくするために入れています。仕組みとしては3歩進んで2歩戻る方式です。またこのようにすることでシークコイルの動くスピードを調整しつつ、音の大きさも調整出来ます。例えるなら10歩進んで9歩戻るようにすると音を大きくしてゆっくり動かすことも出来ます。

74hc123の後ろにあるのはシークコイル移動方向セレクタとシークコイル駆動ドライバのアーム短絡防止回路です。アーム短絡防止回路はよくある回路です。回路の性質上74hc123の2つ目がHの時にパルス波が入力されるとハイサイドとロウサイドが両方Hになり、フルブリッジ内の素子がアーム短絡します。

フィードバックコイルは磁石の両端に5~15ターンくらい巻きます。
シークコイルにパルス電流が流れ、このフィードバックコイルに近づくとシークコイルとの距離に応じて起電力が発生します。その電圧とある一定の電圧を比較し、移動方向をセットします。


具体的には比較する部分はオペアンプ(コンパレータとして使用)で移動方向の維持はRSフリップフロップで行います。ここで比較にコンパレータを使わずオペアンプを使用した理由は、フィードバックコイルからフィードバックされる電圧が非常に小さいためグランド電位付近の比較が出来るC-MOSオペアンプを選びました。また、検出周波数も可聴域内と低いのでC-MOSオペアンプでも問題ありません。

今回、RSフリップフロップ、セレクタ、アーム短絡防止回路は74hc00等を多様しましたが、所持部品の関係です。もちろんそれぞれ専用ICを使うことでかなり回路が簡略化出来ます。また、モータドライバIC等を使うことでアーム短絡防止回路を省略出来る場合もあります。


5. 回路中の半固定抵抗の調整

この調整は難しく、慣れが必要です。大まかな調整方法を示しますが、自己流で調整してみるのも良いでしょう。
回路中に4つの半固定抵抗があります。
74hc123付近に2つ、コンパレータ付近に2つあり、

[A]前者はパルスのHの出力時間、
[B]後者はフィードバックコイルの電圧の反転閾値を設定をします。

基本的には[A]の調整をしてから[B]の調整します。
ファンクションジェネレータ等で信号を入力した状態で調整していきます。
まず、[A]の1段目の半固定抵抗(VR1)と2段目の半固定抵抗(VR2)を最低抵抗値状態に、[B]の2つの半固定抵抗(VR3,VR4)を最高抵抗値状態に回転させます。
この時HDDからは任意の音程の音が出てますが、シークコイルは動いていないと思います。
まずは音量と移動スピードを調整します。
①この状態で[A]の1段目の半固定抵抗(VR1)を抵抗値が上がる方向へ少しずつ回していきます。すると、シークコイルが少しずつどちらかに動いていき、可動域の端まで行きます。この時、出したい音量の半分くらいの音量になるまで半固定抵抗を回わします。
②次にその状態で[A]の2段目の半固定抵抗(VR2)を抵抗値が上がる方向へと少しずつ回していきます。すると、ある地点でシークコイルが今度は反対向きに動き出します。そのタイミングで半固定抵抗の回転方向を逆(抵抗値を下げる方向)へ少しだけ回わし、シークコイルが再び「①」の位置に向かう方向へ移動するようにします。この時、シークコイルの移動スピードを調整します。
これで音量と移動スピードの設定が終わりました。
続いてシークコイルの反転の調整をします。
③[B]の2つある半固定抵抗(VR3,VR4)のうち好きな方を抵抗値が低くなる方向へ少しずつ回します。するとある地点でシークコイルの進行方向が反転します。この時、回しきってしまってもシークコイルの進行方向が反転しない場合は半固定抵抗を最高抵抗値に戻し、もう一方の半固定抵抗をこの通りに操作します。
続いてもう一方の半固定を同様に操作していくと、シークコイルが大きく往復します。この段階ではシークコイルやヘッドの先端が様々な所に衝突を繰り返していると思います。なので半固定抵抗(VR3,VR4)を微量に抵抗値が低くなる方向へそれぞれ回し、衝突が起こらないように調整します。
入力した周波数に応じてシークコイルのスピードが変化するので、高周波や和音でも衝突しないようにするように調整します。

画像でイメージしやすくすると、
青色、赤色がそれぞれの反転検出位置です。紫色の部分は両方の反転検出位置が重なっており(両検出領域)、RSフリップフロップが異常発振するため、あまりよくありません。(2枚目の画像)
低い音を鳴らすときは1枚目の画像のように非検出領域を持たせることで振幅が安定します。
逆に高い音を鳴らす場合は3枚目の画像のように両検出領域をほんの少し持たせるようにすることでヘッドの衝突を減らすことができます。






6. 動作例

実際に改造したHDDで演奏させてみます。
マイコンでパルス波を発生させています。

音を出しながらヘッドが往復し、音程が高いほど速く動きます。
原理上音を止めるとヘッドの位置の検出が出来なくなるため、音を止めた瞬間シークコイルやヘッドが衝突します。

動画内では2台のHHDを用いて演奏しています。

動画は準備中です。

7. 終わりに

長い文章を読んでいただきありがとうございます。
部品点数も多く難易度も高めですが、ぜひチャレンジしてみてください。











0 件のコメント:

コメントを投稿