|
今回のGMC-4+Arduinoのテストで使用したスケッチを、(人の迷惑かえりみず)一気に載せる。と言っても、これで全部ではない。最後の似たような文が繰り返される部分は一部のみとし、以下は割愛した。 スケッチは概ね四つのパートに分かれる。 第一のパートは、#defineでプログラム中のピン表記と実際のピン番号を定義している部分。 よく見ると「P0」〜「P8」の順番と実際のピン番号の順番がずれている。これは、えっとね、配線の際、よく考えなかった結果なのよねー。こうしてハードの勘違いをソフトで吸収できるから、これでいいのだ。 第一パート末尾の「#define dly 40」は、出力ピンの状態を変えたあと、次の処理に移るまでの遅延時間。試行錯誤の結果、約40msに落ち着いた。これを30msにするとGMC-4の挙動がおかしくなる。原因としては、(1)信号を中継するフォトカプラが着いて来れない、(2)GMC-4側がキー入力に着いて来れない、(3)チャタリング対策としてGMC-4側があえて遅延を入れている、などが考えられるが、本当のところは不明。 第二のパートは、setup()関数の部分。 使用するピンをすべて出力に設定している。 第三のパートは、loop()関数の部分。 もうちっとスマートなやり方もあろうが、ここは愚直にテンキー入力をそのまま羅列している。 動作は、まずRESETしたあと、メモリアドレスを逓増しながら「0」〜「F」のデータを書き込み、次に書き込んだデータを順次読み出し、「F」を表示したところで約1秒待つ、の繰り返しである。 第四のパートは、キー入力をエミュレートする関数群。 clr()関数は、出力ピンをすべてLOW、つまりテンキーから手を離した状態にしている。 d0()関数以下で実際に出力ピンの状態を変えている。いったんclr()でピンの状態をクリアし、必要なピンをHIGHにしている。二つのフォトカプラをONにすれば、GMC-4は何らかのキーが押されたと認識する。 一回のキー入力で約80ms余りの時間がかかる。データ転送速度としては極めて遅いが、人手でテンキー入力するよりは遙かに速いので、これでよしとする。 さて、今回は動作テストということで愚直なスケッチを書いたが、Arduinoには他のパソコンから所定のデータを受け取り、適宜の処理を加えてGMC-4に渡すインターフェース役に徹してもらいたい。 というわけで、(1)どうやって外部からArduinoにデータを渡すか、(2)受け取ったデータをArduinoはどうやって解釈するか、の二点が当面の課題となる。 とか言っているうちに、できちゃう人はホホイのホイとスケッチを書いてしまうのであろうが、そこは無意味にハナシをややこしくしたがる自分のことである。何とか、ヘンなやり方で処理できないものであろうかと、思案する今日この頃である。 |
全体表示




