Next: 回路
Up: サーボ
Previous: 制御信号
Subsections
さて制御信号がどんなものか分かったので,次にどうやってこのサーボ信号(以
下サーボに送り込む図
をこう呼びます)を作れば良いのでしょ
うか。旧YosaQでは,サーボ信号はノートパソコンのタイマ割り込みを利用して
発生していたのですが,この割り込みが時々うまくかからずに,サーボがしゃっ
くりしたようになってしまい非常に気持悪かったので,今回はサーボ信号を作
るための専用の回路を設計しました。
サーボ信号の発生はPICを使いました。PICとは Microchip Technology
Inc. のワンチップマイコンです。ちょっとした制御用途や,簡単なおもちゃ程
度の設計制作にとても便利です。趣 味で電子工作をしているアマチュアレベル
に最適なマイコンといえます。詳しいことはここでは述べませんが,関連図書
の[2]や[1]を参照してください。
サーボの制御にこのマイコンを使う理由は
- 1.
- ロジック回路で組むにはちょっとたいへんそう。
- 2.
- H8やZ80を使うのは大げだ。
- 3.
- PICに以前から興味があった。
からです。
夏休みに入る前はPIC1つに対して,1つのサーボだけしか制御できませんでし
た。(図
)
図:
PIC1つに対し1つのサーボ
![\begin{figure}
\begin{center}
\includegraphics []{servo/servo_one2one.eps}
\end{center} \end{figure}](img28.gif) |
このため複数のサーボを制御したければ,サーボ 1つに対してPIC 1つを用意し
なければなりません。またパソコンのI/Oポートの数が少ないのでパソコンか
らのデータを受け取るには,何らかの切り替え回路が必要になってきます。少
ない数のサーボを制御するのであればこのやり方でも問題ないのですが,もっ
とたくさんのサーボ例えば十数個のサーボを制御したくなったりすると,回路
が大変になりますしPICもたくさん要るのでコストもかかります。YosaQは使う
サーボが4つですので1つのPICに対して1つのサーボでも構わなかったのですが,
それではおもしろくないので,1つのPICで6つのサーボを同時に制御できるよう
にしました。
さて1つのPICで6つのサーボを同時に制御しようとすると,幾つか考えなけれ
ばならないことが出てきました。
- 1.
- PIC-パソコン間の通信方法
- 2.
- PICのI/Oポートは全部で13本なので6個のサーボを同時に制御しようと
すると,残りは7本となり,この少ない本数でどうやってデータをやり
取りするか。
- 3.
- PICで複数のサーボ信号をどうやって作るか。
まず1.ですがPICとノートパソコンとの通信はハンドシェイク通信を使いまし
た。ハンドシェイク通信とは,握手をするようにして,2台の装置間で通信
を行うことをいいます。この方法によると,2台の全く速度の異なる装置同
士を接続しても,速度の差を意識せずにパラレル通信でデータの送受信が出
来ます。詳しくは[2]の
http://www.bekkoame.or.jp/ gokan/paraframe.htmlを見てください。
次に2.ですが,ハンドシェイク通信を行うと,ビジー信号とストローブ信号に
I/Oが2本必要になってくるので,PIC-パソコン間のデータ先は5本となってし
まいます。そこでサーボ選択のデータと,サーボの角度データを切り替えてデー
タ線に乗せることにしました。そのため現在データ線にはサーボの角度デー
タが乗っているのか,それともサーボ選択のデータが乗っているのかを識別す
るためのI/Oが必要となりました。その結果 PICのI/O割り振りは表
のようになりました。
表:
PICのI/O割り振り
RB0-5 |
各サーボの信号線 |
RA4 |
データorサーボ選択の識別符号 |
RB6 |
ハンドシェイク通信(IN) |
RB7 |
〃 (OUT) |
RA0-3 |
データ線 |
最後に3.ですがこれはソフトのところで説明します。
Takao NAKAI
1999年1月18日