Next:
PICの開発環境
Up:
サーボ
Previous:
回路
Subsections
ソースファイル
複数のサーボを制御するためのアイデア
PICによる信号生成の流れ
メインルーチン
割り込みルーチン
ソフト(PIC)
ソースファイル
報告書の一番最後に添付しました。
複数のサーボを制御するためのアイデア
サーボ信号はPICのタイマ割り込みを使って、作り出しています。ところが、 PICにはタイマが1つしかないため若干の工夫が必要でした。それは「タイマー は各サーボ信号のON,OFFのタイミングを計るのに使う」というものです。タ イムチャートで表すと図
のようになります。
図:
サーボ信号のタイムチャート
制御するサーボの数は6つで、各サーボ信号の間隔は3msec,サーボ信号の周 期は18msecであった場合、次のような流れになります。
1.
初期値に設定したタイマの値にしたがってタイマ割り込みがかかる。
2.
サーボ1のサーボ信号をONにする。つまりサーボ1のI/OポートをONと する。
3.
パソコンより送られてきたサーボの角度のデータから、サーボ1をON とする時間を計算し、結果をタイマにセットする。
4.
3.でセットした時間が経つと再び割り込みがかかる。サーボ1のサー ボ信号をOFFとする。
OFF
の時間 = 3
msec
- サーボ1の
ON
の時間
からOFFにする時間を計算しタイマにセット。
5.
4.でセットした時間が経つと割り込みがかかる。サーボ2のサーボ信 号をONにする。
6.
対象となるサーボがサーボ6となるまで3.~5.を繰り返し、サーボ6が 終れば次はサーボ1に戻る。
PICによる信号生成の流れ
実際のプログラムの流れは次のようなものになっています。
メインルーチン
1.
I/Oポートの設定
2.
カウンタの設定
3.
割り込みの設定
4.
各サーボ信号のON時間を初期化
5.
ループ内でハンドシェイク通信によりパソコンよりデータ取得
割り込みルーチン
1.
レジスタの待避
2.
割り込みの禁止
3.
サーボ信号がONかOFFかチェック
サーボ信号がOFFであった。
(a)
制御信号をONにする時間を計算
(b)
カウンタに値をセット
(c)
サーボ信号をONにする。
サーボ信号がONであった。
(a)
サーボ信号をOFFにする。
(b)
対象となるサーボを1つ進める(または0に戻す)
(c)
OFFの時間を計算する
(d)
カウンタにOFFの時間をセットする。
Takao NAKAI
1999年1月18日