・24CH.RCサーボモーターコントローラ
1.概要
ご要望の多かったロボット作りによく利用されるRCサーボモータ(右写真)
のコントローラを試作してみました。
RCサーボモータは右下図のように与えられたパルス幅 t を位置指令として
制御されます。
t =1.5mS±0.75mSに対して回転角180度のように決められています。
パルス周期 T には依存しませんが、レスポンスなどを考慮して10〜20mS
程度に選ばれるようです。
RCサーボモータの種類により、これらの値は若干異なるようですから、
あらかじめご確認下さい。
H8/3694Fには3相のPWMを発生する16ビットタイマーWがありますので
これを使って製作することにします。
3.回路図
上記の構想に基づいて設計した24CH RCサーボコントローラの
回路図を別紙に示します。
とりあえず、右写真のように8CH分のみを組み立てて実験しました。
デモ用を兼ねていますので手動のボタンが並んでいますが・・・・・。
(手っ取り早く試して見たい方・回路を組むのが面倒な方は)
(FTIOB、FTIOC、FTIODをそれぞれRCサーボモータに )
(接続し、簡易版 3CH RCサーボコントローラのサンプル)
(プログラムをお使い下さい。 CH.0 CH.8 CH.16 のみ )
4.ソフトウエア
ソースリストを見ていただけばわかりますが変数RC_posi[CH]に値を代入するだけで各チャンネルの
制御を行うことができます。代入する値は6000〜24000でパルス幅0.6mS〜2.4mSに相当します。
またUSBを通してPCからも制御できるようコマンドを用意しました。
コマンドはバイナリ4バイトで(0xFF, CH_No, RC_posi_Hi, RC_posi_Lo)を送るだけで、応答はありません。
実際には0.1秒くらいの間隔で1こま漫画のように各CHのポジションを決めながら、一連の動作をティーチングし
これらの動作を組み合わせるようプログラムするのが簡単ではないかと考えています。
このためティーチングデータがFLASHに収まらなければ回路図に示すようにI2C接続のEEPROMを追加
するのも容易にできます。
また各CHの位置補完や種々の計算をしながら制御するためには、H8/3694では力不足で32ビットクラスの
マイコンを上位CPUとして、I2Cインターフェースを使ってコマンドをやり取りしながら制御する必要があるでしょう。
この場合は単機能のRCサーボコントローラとして動作し、48CH、72CH・・・・のように増設することも考えられます。
@ 簡易版 3CH RCサーボコントローラ サンプルソフト(HEW4・C言語)
A 24CH RCサーボコントローラ サンプルソフト(HEW4・C言語)
B PC側 ティーチングソフト (開発中) ・ 画面イメージ
(RCサーボモーター)