要旨

 PICマイコンを用いたUSBデバイスの自作に関する記事である。本記事は第3回として実験用基板にUSB MIDI入力装置のサンプルプログラムを書き込み動作テストを行った。


背景と目的

 マイクロチップテクノロジーが無償で提供しているApplication Librariesには、USB MIDIデバイスのサンプルがある。一方、筆者は趣味として音楽制作を行っており作業の際にMIDIキーボードを使用している関係上、このサンプルプログラムには非常に興味をそそられる。そこで、今回はサンプルを用いてMIDIデバイスとして認識させることができるか試す。


活動の詳細
1.サンプルプログラムの概要

 サンプルプログラムは、マイクロチップテクノロジーがUSBデバイス開発者向けに無償提供しているApplication Librariesに用意されており、USB Device - Audio - MIDIというフォルダの中にある。動作としては、PCと接続するとMIDI機器として認識され、マイクロチップ純正の評価ボード上にあるボタンを押すごとに半音ずつ音程があがっていくというもののようである。


2.プログラムの準備と書き込み

 プログラムはマイクロチップ純正の評価ボードで動かすことを想定しているが筆者の環境は第1回からテキストとしている『PICで動かすUSB』付属のPIC18F14K50用実験用基板である。したがって、プログラムをそのまま動かすことはできないのではと思ったが、実はその実験用基板は純正評価ボードと構成がほとんど一緒のため、USB Device - Audio - MIDI Demo - C18 - Low Pin Count USB Development Kit.mcpというプロジェクトを使用することでプログラムの修正がいらないことがわかった。具体的には、

  • 入力ボタンとしているスイッチのポート接続関係が同じ
  • インジケータとしている2つのLEDの接続関係が同じ

 なので、サンプルのプロジェクトをビルドして、書き込み可能なhexファイルを作成するだけでOKである。
次に、書き込みであるが第2回までにデバイスへブートローダプログラムの書き込みが完了しているため、ブートローダを用いて書き込みを行うことができた。


3.動作確認

 動作確認は、DAWソフト SONARを用いた。
まず、実験用基板をPCに接続した。このとき、デバイスを使用する準備ができましたというメッセージが出た。どうやらUSBデバイスとして正しく認識されたようである。次に、SONARを立ち上げたところ、MIDIデバイスとして新たに認識した旨のメッセージが出た。つまりMIDIデバイスとして認識されているようである。そしてデバイスを使用可能なよう、デバイス設定画面を表示したところ、確かにMIDI sampleとして認識されているようである。(図3参照)そして、実験用基板のボタンを押したところ、確かにMIDIメッセージをSONARが受け取り音源を介して音が発せられた。
 以上より、デバイスが正しく認識され、入力操作が受け付けられたことが確認できた。
 今回のサンプルプログラムではボタンを押すごとに半音上がる動作であったが当然プログラムを改良すれば任意の動作に変更することができるだろう。また、実験用基板ではなくボタンやセンサなどを使って独自のハードウェアを組めばMIDIデバイスの自作もできるだろう。


MIDI認識
図3 デバイスが認識された様子

まとめと今後の課題

 MIDIデバイスのサンプルプログラムを使用してMIDIデバイスとして認識させることができた。今後は、サンプルプログラムの改造等を行いながら自作MIDIデバイスの実現可能性を探ってみたい。