ハードウェアの構成

推奨回路
  • 図を参照(RC回路による1次LPFで、PWM出力をなまらせている)

概要
  • USBケーブルでPCと接続し、USBシリアルで制御(38400 bps)
  • D6ピンから62.5 kHzの単極PWMで、ラインレベルのオーディオ出力(スケッチで#define SUBSTITUTE_PIN_D5_FOR_D6_AS_AUDIO_OUTを有効にすると、D5ピンから出力)
  • USBからのノイズを減らすため、ACアダプターの使用を推奨

部品リスト
  • A1:Arduino Uno Rev3
  • U1:オーディオジャック(3.5 mm)
  • R1:100Ω抵抗
  • R2:100Ω抵抗
  • C1:100 nFコンデンサ
  • ジャンパー線

実際の配線例

  • オーディオジャックは、写真のような「ネジ止め式」の変換アダプタータイプがオススメ(ハンダ付け不要)

別構成A:MIDIシールドを使用

  • 以下の設定で、MIDIシールドも使用可能(写真ではMIDIブレークアウトを使用)
  • USBのノイズを排除でき、音質もアップ
  • スケッチで#define SUBSTITUTE_PIN_D5_FOR_D6_AS_AUDIO_OUTを有効にして、D5ピンからオーディオ出力
  • #define LFO_LED_OUT_ACTIVE (LOW)  と書き換えて、D6ピンで制御するLFO表示LED用に極性を修正
  • 何らかの方法で、Arduinoからオーディオ出力とGNDを引き出す(写真ではネジシールドを使用)
  • スケッチで#define SERIAL_SPEED (31250) を有効にして、MIDIで制御

別構成B:シンプルな構成

配線
  • D6(またはD5)ピンを、ジャックのチップに直結
  • GNDピンを、ジャックのスリーブに直結

説明
  • これだけで動作するが、RC回路によるLPFがないので、アンプやスピーカーによってはPWM出力が原因の「ピー」という音が目立つかもしれない
  • オーディオ出力は、アンプ、アクティブスピーカー、オーディオインターフェース等に接続すること(パッシブスピーカーやヘッドフォンに直接接続すると、出力電流が最大定格を超える可能性が高い)
  • USBからのノイズを減らすため、ACアダプター使用を推奨

その他の情報

  • https://risgk.github.io/
  • https://github.com/risgk/digital-synth-vra8-n

ソフトウェアのインストール

  • https://github.com/risgk/digital-synth-vra8-n/releases/latest からスケッチをダウンロード、展開、"DigitalSynthVRA8N.ino" をArduino Unoに書き込む
  • https://projectgus.github.io/hairless-midiserial/ からHairless MIDI<->Serial Bridgeをダウンロード、展開
  • https://www.tobias-erichsen.de/software/loopmidi.html からloopMIDIをダウンロード、インストール

Arduinoのバージョンについての注意

  • 正常動作のために、Arduino IDE 1.8.5、正確にはArduino AVR Boardsコア1.6.20の使用を強く推奨(複数のバージョンのArduino IDEをインストールしておくと便利)
  • ただし、macOS Catalina 10.15ではこれを使用できないので、Arduino IDE 1.8.10以降でAVR Boardsコア1.8.1を使用する(プログラムサイズを減らすため、"osc-table.h" を削除し、"osc-table.h.REDUCE_OSC_TABLE_SIZE_1.txt" を "osc-table.h" にファイル名を変更する必要がある)

USBシリアル制御の準備(Windows用の説明のみ)

  1. 以下の設定は、MIDIシールドを使用する場合には不要
  2. loopMIDIを実行
  3. Hairless MIDI<->Serial Bridge("hairless-midiserial.exe")を実行
  4. Serial PortでArduino Uno (COM*) を選択
  5. MIDI InでloopMIDI Portを選択
  6. [File] > [Preferences] > [Baud rate] を38400 bpsに設定