> WORKS > RCサーボコントローラ
概要
シリアル通信でコマンドを送信し、RCサーボを制御する回路です。
AVRでシリアル通信を行うためにやねうらおさんのコードを使用させてもらいました。
あくまでロボ研の1部員がつくったものです。ジッター考慮などはしていないので、
致命的な欠陥がある可能性もあります。当方はこれを参考にした際の責任は負いません。
仕様
マイコン | ATmega88P |
通信方法 | USART |
通信速度 | 38400bps |
クロック | 内蔵発振8MHz |
制御可能サーボ数 | 12個 |
分解能 | 0.09deg |
回路図
ソースコード
使い方
シリアルでサーボの番号と角度のコマンドを送信します。
シリアルの8ビット通信で2バイト送信し、その内容は、
サーボ番号 0〜B 4ビット |
サーボ角度 500〜2500 12ビット |
例) サーボ1を角度2000に。
0x17 0xD0 を送信する。
送信側の関数の例
void move_one_servo(uint8_t servo_num, uint16_t servo_val){
uint8_t buff1,buff2;
buff1 = (servo_num << 4) + ((servo_val & 0x0F00) >> 8);
buff2 = servo_val & 0x00FF;
USART2_Putchar(buff1);
USART2_Putchar(buff2);
}