|
■シリアル通信の仕様 とりあえずはオーソドックスに、Arduinoのシリアル通信機能を用いたGMC-4の制御を試みる。 一応完成すれば(飽きたら、とも言うが)、スケッチを明らかにすることとして、方向性だけ示しておく。 (1)パソコンからは、アセンブル済みのマシンコードのみ、テキストで送信する。 (2)いちいち「INC A」を押さなくていいように、適宜、Arduino側で「INC A」を挿入してGMC-4に入力する。改行なしのマシンコードだけなら、Arduinoのバッファに(たぶん)収まる。 (3)内蔵プログラムの「オルガン」のように「INC A」が不要な場合もあるので、「プログラムモード」と「ダイレクトモード」を指定できるようにする。違いは自動的にインクリメントされるかどうか、だけである。初期値は「プログラムモード」とする。 (4)「RESET」などのキーも制御できるようにする。 ■文字列の解釈 送信された文字列は、一文字ずつswitch()関数で処理を振り分ける。 「0」〜「F」は、データとして処理。「G」以降の文字は制御文字として扱う。当初、「G」から順番に割り振るつもりであったが、やってみると機械的に過ぎる。「RESET」なら「R」を使いたくなるのが人情であろう。ということで、ある程度、意味づけをした文字を割り振る。「RUN」も「R」であるが、これは「Go!」の「G」とした。「A SET」は「A」が使えないので「Memory」の「M」とした。こんな調子で割り振った制御文字は(今のところ)次のとおり。 P:プログラムモード(自動インクリメント) N:ダイレクトモード(ノン・インクリメント) M:A SET(Memory) I:INC R G:RUN(Go!) R:RESET Z:(何もしない) 最後の「Z」はちょっと特殊で、loop()関数中で同じデータをGMC-4に送信し続けないよう、一文字解釈するたびに文字変数Dを「Z」にリセットしている。結果的に「Z」は何もしないので、何も起こらない。 ■実験 「プログラムモード」は、だいたい実装できたので早速、試してみる。 材料として、WEBに掲載されていた「FX-マイコンR-165 プログラム集」掲載の自動演奏プログラム用音楽データ「証城寺の狸ばやし」を取り上げた。 これは、CPU内蔵の演奏プログラム用データであるが、プログラムと同様、メモリ0番地からインクリメントしながらデータ入力する。 これの冒頭に、「プログラムモード」と「RESET」を意味する制御文字「PR」を付加してArduinoに送信する。 実際に送信するデータは次のとおり。 「PR633537151310171514131415171015373A1C1B1A172708171A1A1A1016151413141517171A1807051413303F0」 Arduinoにスケッチを描き込んだあと、「シリアル通信テキスト窓」にデータを貼り付けて送信ボタンを押す。 送信後、GMC-4本体の「RESET」「A」「RUN」を押すと演奏が始まる。「ダイレクトモード」を実装したあかつきには、最後に「NRAG」を付加すれば、データ転送から実行までパソコン側のワンタッチで処理できるはずである。 さて、実験の様子を録音してみた。最初の14秒ほどの「ピピピピ」がデータ転送の音。続いて、お馴染みの「ポンポコポンのポン」が連続演奏される。キリがないので2コーラス余りでフェードアウト。全体で40秒ほどである。せっかくなので、フランジャーやらコーラスやらリバーブ、コンプレッサー、イコライザなども軽くかけてみた。あまり効果はないようである。 なお、聴取の際は、音量に十分留意されたい。(→音声ファイルのダウンロードは末尾に) ■まとめ 現時点で、GMC-4は完全にArduinoのシールド化されている。改造点は次のとおり。 (1)キー入力部分を残しつつ、フォトカプラを介してデータ転送可能とした。 (2)電源をArduinoから供給するようにした。5V電源に直列に電源ランプとしてLEDを入れることで、0.6V電圧降下させ、電池と同等の4.4Vを供給している。 (3)スピーカーの代わりにミニジャックを取り付け、ヘッドフォン出力とした。 あとは、GMC-4からのデータ出力ぐらいかな、でも要るかな? というところである。 録音に手間をかけすぎて、本来しようとしていたことができなかった。まあそれが、本来の姿であるが。 どこかに飛ばされたくて、自ら進んで「バーソロミュー・くま」の前に立つような人間であると自覚していたりする。 |
過去の投稿日別表示
-
詳細
2009年08月01日
全1ページ
[1]
コメント(0)
全1ページ
[1]





