next up previous contents
Next: 回路 Up: サーボ Previous: 制御信号

Subsections

制御信号の作り方

さて制御信号がどんなものか分かったので,次にどうやってこのサーボ信号(以 下サーボに送り込む図[*]をこう呼びます)を作れば良いのでしょ うか。旧YosaQでは,サーボ信号はノートパソコンのタイマ割り込みを利用して 発生していたのですが,この割り込みが時々うまくかからずに,サーボがしゃっ くりしたようになってしまい非常に気持悪かったので,今回はサーボ信号を作 るための専用の回路を設計しました。

PICによるサーボ制御

サーボ信号の発生は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}

このため複数のサーボを制御したければ,サーボ 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日