AVR ATtiny45/85を使ったGainer互換機、pepperを作って遊んでみた。
morecat lab.さんでは、このほかATmega88Pを使ったginger、ATmega644Pを使ったsugarなどのGainer互換機を作られているが、その小ささに惚れ、Pepper-MIDIというインターフェースを接続すると学研の付録シンセ、SX-150をMIDI化できるということもあって、pepperを選択した。
とりあえず部品のレイアウトは公式のプリント基板と同じにして、ジャンパを飛ばしまくってつじつまを合わせてみた。

▲所定のサイズの基板で作らないと価値半減なので、ユニバーサル基板からの切り出しをがんばった。

▲手のひらでコロコロともてあそべるサイズ。

▲USBに直結可能。通常この手のものに必要な、12MHzのクリスタルさえ省略した作りになっている。

▲CdSを接続してみた。pepperが小さいので、USBケーブルの先に、センサなどを直結できる感覚。

▲学研の付録シンセ、SX-150を接続するインターフェース、Pepper-MIDI。

▲Pepper-MIDIを介してSX-150を接続。
Processingからのアクセス(Mac OS X)
pepperはGainerとして機能するので、pepperをProcessingで使うには、Gainer用のライブラリをProcessingにインストールすればいい。
Gainerの公式ページには、Mac OS Xでは「/Applications/Processing/libraries/serial/macosx_setup.command」を実行しろ、という説明があるが、これは古い手順で、そのようなファイルは無い。
現在は、「/Applications/Processing/Contents/Resources/Java/Libraries/serial/library/RXTXcomm.jar」を、「/Applications/Processing/Contents/Resources/Java/Libraries/gainer/library/RXTXcomm.jar」へコピー、というのが正しい手順となる。
pepperのピン配列は以下の通り。
+5V ai0 ao1 ao0 ai1 GND
アナログ入力二つがアナログ出力二つを囲むような形になっている。
また、Processingからpepperの各ポートへのアクセスは、以下のようなコードでできる。
//出力
//2番目の引数は0〜255の整数
//ao0
gainer.analogOutput(0, 0);
//ao1
gainer.analogOutput(1, 255);
//入力
int res0, res1;
gainer.peekAnalogInput();
//ai0
res0 = gainer.analogInput[0];
//ai1
res1 = gainer.analogInput[1];
※「gainer.peekAnalogInput()」を実行しないと、値が取得できないので注意。
デフォルトのCONFIGURATION_1にはデジタルI/Oが無いので、四つあるポートはすべてアナログ系の関数でアクセスする。
Recent Comments