LoginSignup
15
3

More than 3 years have passed since last update.

ちょっとまって!そのFDD、捨てないで演奏してみませんか?

Last updated at Posted at 2020-12-20

はじめに

この記事は、限界開発鯖 Advent Calendar 2020の20日目の記事です。
FDDで演奏する方法を解説しています。
前回:Proxyを華麗にスルーしてWi-Fiを飛ばすには ネタモロ被りして急遽変えたのは内緒
次回:RISC-Vなんにもわからないけどベアメタル開発環境とか紹介してみる

とりあえずこれを見てくれ!

とりあえずこれを見てください。
Floppy Disks - Megalovania - Undertale (Remastered) - Youtube

FDDのクセに、めちゃくちゃエモい演奏ができていることがわかると思います。
FDDは中古で叩き売られててやっすいので、いい感じのおもちゃになります。
ビジュアル的に映えるので、文化祭の出し物とかにしても良いと思います。
なお、予算については、Arduino、FDD3台 (中古)、ジャンパ線でだいたい3000円ぐらいでした。

お前は誰

こるくといいます。
限界開発鯖とかいうヤバいプログラマーコミュニティーに所属している茨城の高専生です。
なお、筆者はハードウェアの知識は皆無です。かなり適当なことを口走っています。
マサカリなどありましたらやさしくコメントしていただけると助かります。

おねがい

※これは書きかけの記事です!
随時記事内容をアップデートしていく予定です。

もう1度言いますが、筆者はハードウェアの知識は皆無です。
この記事は3年前に文化祭に出したときの曖昧な記憶を基に書いてます。
何が言いたいかと言うと、この記事の内容を実践してなんか損失を被った場合でも、責任は負えません。

必要なもの

ソフトウェア

  • Windows または Mac
    • Windows、Macどちらでも動作しました(検証済み)
  • JavaDevelopmentKit (JDK)
    • 11以上 8系ではエラーが出ますわよ!(1敗)
  • Arduino IDE
    • TimerOneライブラリをインストールしておいてください
  • Moppy2 ControllGUI
    • 今回のキモです、実際にMIDIを読み取り、それに従いArduinoに信号を送ります
  • Moppy2 Sourcecode
    • 実際にArduinoがFDDを制御する際に使います
  • MIDIシーケンサー(任意)
  • 演奏させたいMIDIのファイル
    • 後述しますが、Moppy2にサンプルが付属しています

ハードウェア

  • Arduino
    • Arduino UNOやESP8266などを推奨
  • USB-A オス USB-B オス ケーブル
    • ArduinoとPCをつなぎます
  • FDD(1台以上)
    • サイズは問い台ませんが、3.5インチがわかりやすい
  • 電源
    • PC電源や安定化電源など、DC 5Vが出れば大丈夫
  • 大量のジャンパ線
    • 新しく買うのならメスメス、 オスオスだけを買っておくといいでしょう
    • なおメス端子が無いと詰みます

やっていき!w

ハードウェア準備編

といってもやることは配線です。

FDDのピンの見方

まず、接続するFDDをすべて背面が手前になるように置いてください。
画像のような状態で作業を進めていきます。

下の画像を見てください。

FDDのピンは、このように番号が割り振れらています。

配線!

Moppy2、Arduino Unoを用いれば、最大9台のFDDを接続することができます。

1. 11番ピンと、12番ピンを接続する

Drive Select(B)を何らかの方法でショートさせます。
一番簡単なのは、ジャンパ線でつなげてしまう方法でしょう。

2. 18番ピンをArduinoの2番ピン、20番ピンをArduinoの3番ピンに接続する

実際に制御を行うステップピン、ダイレクションピンをArduinoに接続します。

3. 17番ピン、19番ピンをArduinoのGNDに接続する

4. 電源を接続する

以下の画像を参考にしてください。

PCの電源が使える場合は、4ピン電源を接続すれば準備は完了です。
それ以外の電源を用意した場合、電源の1番右に+5Vを、その隣にGND(負極)を接続してください。
残りの2本は使いません。

複数のFDDを接続する場合

複数のFDDを接続する場合でも、大まかな流れは変わりません。
ただ、2台目以降は手順2でArduino側に接続するピンが変わります。
1台目は18番ピンをArduinoの2番ピン、20番ピンをArduinoの3番ピンに接続しました。
2台目は、18番ピンをArduinoの4番ピン、20番ピンをArduinoの5番ピンに接続します。

このように、それぞれのFDDを18番をArduinoの偶数ピン、19番をArduinoの奇数ピンに接続していけばよいです。
7台目以降は、A0、A1...と続いていきます。

これでハードウェアの準備は完了です!

ソフトウェア準備編

JDK11以上、ArduinoIDE、TimerOneについては事前にインストールしてください。

ArduinoIDEの準備

ArduinoIDE、TimerOneがインストールされている前提で進めます。
1. 公式のダウンロードページへ行きます
2. 最新のバージョンを選択した後、Source code (zip)をダウンロード
3. zipファイルを解凍
4. Microcontroller/Moppy2-Arduino/Moppy2-Arduino.inoをArduinoIDEで開く
5. プロジェクトを接続されているArduinoにUploadする
6. 準備完了!

Moppy2のダウンロード

  1. 公式のダウンロードページへ行きます
  2. 最新のバージョンを選択した後、MoppyControlGUI-(バージョン).zipをダウンロード
  3. zipファイルを解凍
  4. bin/MoppyControlGUI.batを実行
    • このとき、11以上のJDKが入っていないとエラーが起きます
  5. こんなかんじの画面が開ければOK!

ついに演奏!

1. 接続されているArduinoのシリアルポートを選択します

fdd-melody.png

2. AddFileより、演奏したいMIDIファイルを追加します

fdd-melody.png
先程ダウンロードしたMoppyControlGUIsamplesongs中に、サンプルのMIDIが入っています。

3. 演奏開始!

演奏したい曲をダブルクリックします
fdd-melody.png

これで演奏が始まったと思います!

補足

演奏用のMIDIについて

(追記予定)

さいごに

あとがき

いかがだってでしょうか。今回は一般誤家庭に落ちているArduinoを使ってFDDを演奏する試みでした。
みなさんもこの機会に中古屋でFDDを購入して演奏してみてはいかがでしょうか。
なおここでは書きませんでしたが、どうやらラズパイを使う方法もあるようです。
実際にFDDを演奏してみると、メーカーや型番によって音が全然違うことがわかると思います。
和音やハーモニーなど、いろいろなFDDを使って試行錯誤して演奏してみてくださいね。

Special Thanks!

15
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
3