![]() |
おもちゃ |
上図はコンピュータが使われているおもちゃの一例で、
DigiQ (デジキュー) という、 赤外線を使ったリモコンカーです。
車の全長は約5cm。
この小さい車の中に、 モーターやバッテリーはもちろん、 コンピュータまで組み込まれています。
上図右はその内部で、 中央やや下のうす緑のものがバッテリー、 その後ろにモーターやギヤがあります。
プリント基板上の IC が 4 ビットのマイクロコンピュータで、
その後ろで L 字形に折れ曲がってのけぞっているのが赤外線センサです
(写真をクリックすると拡大表示されます)。
上図はコントローラから出力された赤外線信号の一例です。
光の ON と OFF の時間の比で 0 と 1 を表していいて、
光を ON にして同じ時間 OFF にすると 「0」、 3 倍の時間 OFF にしていると 「1」 です。
通信開始の合図の場合だけ、 ON の時間をうんと長くします。
したがって 上の図では、 “000101110101101” という信号を出力したことになります。
最初の 2 ビット、 “00” はセレクト信号です。
コントローラと DigiQ のセレクト信号を合わると、 4 台のコントローラを識別できますから、
4 台の DigiQ でレースができます。
次の 6 ビット、 “010111” とその次の 6 ビット “010110” はそれぞれ左右のモーターの回転方向と回転速度の信号です。
回転速度の信号が 5 ビットありますから、 モーターの回転速度を 32 段階に調節することができます。
最後の 1 ビット、 “1” はパリティビットです。
パリティビット (parity bit) は偶奇性検査のための信号で、
データ全体に含まれる‘1’の数の偶/奇が一定になるように定めておけば、
データ通信時のエラーの有無をチェックできます。
上図の例では、 “00 010111 010110” に含まれている ‘1’ は 7 個なので、
パリティビットを “1” にして、 全体の ‘1’ の数を 8 個、 偶数にしています。
データを受信したとき、 もし ‘1’ の数が奇数であれば、 通信に誤りがあったことが分かります。
モーターの回転速度はどうやって制御するのでしょうか?
上図はモーターの制御信号です。
低速で走るときは、 モーターに電流を流して、 直ちにOFFにします。
左の写真の場合は約 5% の時間だけモーターに電流が流れています。
車は 5% のパワーで、 ゆっくりと動き出します。
スロットルトリガーをもう少し引くと、 モーターの制御信号は中央の図のようになります。
この場合は約 35%、もっと強く引くと左の図のようになって、 約 75% のパワーで走ることになります。
“010111” というリモコンの信号のうち、 最上位のビットは回転方向を表していますから、 残りの下位 5 ビット、
“10111” が速度の指令信号です。
この値が大きくなればなるほど、 モーターを ON にする時間が長くなります。
電気炊飯器の 「じゅうじゅうふいたら火を引いて」 のときも、
ヒーターの ON と OFF を繰り返して火力を調整しました。
炊飯器のヒーターなら、 秒という単位でヒーターの ON - OFF をさせればいいのですが、
モーターの場合はもっと早くないと動きがぎくしゃくするので、
DigiQ では 100 分の 1 秒ごとにモーターの ON - OFF が繰り返されています。
100 分の 1 秒というとずいぶん早いように思うかも知れませんが、 コンピュータや半導体にとって、
1000 分の 1 秒、 1 万分の 1 秒の単位で ON - OFF させることなど、 朝飯前です。
ON - OFF の時間の比を変えることによって電力やモーターの回転速度を制御することを、
パルス幅変調 (PWM: pulse width modulation) といいます。