> WORKS > RCサーボコントローラ

RCサーボコントローラ

概要

シリアル通信でコマンドを送信し、RCサーボを制御する回路です。

AVRでシリアル通信を行うためにやねうらおさんのコードを使用させてもらいました。

あくまでロボ研の1部員がつくったものです。ジッター考慮などはしていないので、

致命的な欠陥がある可能性もあります。当方はこれを参考にした際の責任は負いません。

 

仕様

マイコン ATmega88P
通信方法 USART
通信速度 38400bps
クロック 内蔵発振8MHz
制御可能サーボ数 12個
分解能 0.09deg

 

回路図

ソースコード

servo_controller.c

 

使い方

シリアルでサーボの番号と角度のコマンドを送信します。

シリアルの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);
}

 

inserted by FC2 system