もので、これを回避しないとモータ制御用端子が出力になりません。一般には公開されていない模様です。そこで、不本意ですが、バグを回避する一文をここに書くことにしました。マイコンにプログラムを書き込むさて、いよいよマイコンにプログラムを書き込みます。DEMO9S08QG8評価ボードにすでに搭載されています。"USER_EN"ジャンパのRV1およびRZ1をはずしておきます。DEMO9S08QG8評価ボードをUSBケーブルで接続します。この時、モータ駆動用の電池ははずしておいてください。いうダイアログが表示されます。Multilink"のデバイスドライバをインストールします。デバッガやシミュレータと兼用のツールから利用します。デバッガが立ち上がります。ウィンドウが現れます。ここでは、USBインターフェースの設定を行います。自動的に認識されて正しい値が入っているはずです。"Connect"をクリックします。ダイアログが現れます。「Yes」をクリックします。「No」をクリックします。これで、マイコンへの書き込みは終了です。書き込みが終わったら、デバッガの初期画面が現れます。ボタンをクリックするとプログラムは自律走行を始めます。データ1・パネルの表示が時々刻々と変わるはずです。クリックすると、配列の中身が見えるようになります。ところが、腕立て君を傾けても値が変わってくれません。これは、配列表示の更新周期が「自動」になっているためです。この値を周期的に更新するには、設定を変更しなくてはなりません。データ1・パネルで「右クリック」すると出てきます。Ratio"(更新周期)ダイアログが現れます。データ1・パネルの値がその周期に従って更新されるようになります。デフォルトの"10"のまま、「OK」ボタンをクリックします。現在の値を簡単に確認することができます。A/D変換の値からわかること確かに腕立て君を傾けると表示が変化する様子がわかります。この数値は、何を意味しているのでしょうか。800mVの変化を示すと書いてあります。上のデータ1・パネルの値から加速度を計算してみます。+0.995gこの表から、XとYは、ほぼゼロ、Zはほぼ1を示していることがわかります。Z軸の加速度がゼロにならないのでしょうか。重力をを受けて下向きに加速度を感じています。これが、Z軸に現れているのです。モータを停止したときです。結果として腕立て君の姿勢が検出されるという仕組みになっています。傾きとそれぞれの値の関係このプログラムでは、体の傾きの検出しか必要としません。そのため、X軸とY軸だけを使った単純なルールにより傾きを検出しています。下向きで右に傾いている以上の9種類の場合分けを行って現在の姿勢を検出します。今回はその機能を使わずにソフトウェアによってモータ駆動を行います。このプログラムで扱うモータの動作は、以下の4通りです。左肩を下げ、右肩を上げます。