SSブログ

サーボモータを動かしてみる [Arduino]

サーボモータを動かしてみます。
Arduinoにはサーボモータを動かすライブラリがあるのですが、PWMの制御などむつかしそうなことを裏でやっているようなので自前で動かしてみたいと思います。

今回のターゲットは、一番ちいさくて、800円とお手頃な、

GWSサーボ PICO/STD/F(フタバ)
http://akizukidenshi.com/catalog/g/gM-01905/

です。

ちょっと調べてみると、サーボモータの制御は、、

・周期 (15~)20 msec のパルスを使用
・パルス幅 1~2 msec で角度を制御

するらしいです。

疑問に思っていたことを実験してみました。

・マイコンと電源を共有してもいいの?
  → ホビーユースならよさそう。
・パルスを流さないときはどうなるのか?
  → そのままじっとしていました。
  → 外力にも耐えています。
・力(トルク)は?
  → そこそこあるみたいです。
・定格4.8Vらしいけど、1.5Vの乾電池2個で動かないかなぁ?
  → 動作が遅く、トルクも落ちるけど、なんとか動いた。

ATtiny13A (int. 9.6MHz) で動かしたのがこちら。
gorigori_servo.jpg

// サーボモータを動かす。

void setup() {
  pinMode(2, OUTPUT);
}

void loop() {
  unsigned int i;

  for(i=0; i<50; i++) {
    digitalWrite(2, HIGH);    delayMicroseconds( 1000);
    digitalWrite(2, LOW);     delayMicroseconds(19000);
  }
  delay(1000);

  for(i=0; i<20; i++) {
    digitalWrite(2, HIGH);    delayMicroseconds( 1500);
    digitalWrite(2, LOW);     delayMicroseconds(18500);
  }
  delay(1000);

 for(i=0; i<20; i++) {
    digitalWrite(2, HIGH);    delayMicroseconds( 2000);
    digitalWrite(2, LOW);     delayMicroseconds(18000);
  }
  delay(1000);

}



ミニブレッドボード 5色・各1枚 (5枚入)

ミニブレッドボード 5色・各1枚 (5枚入)

  • 出版社/メーカー: OEM
  • メディア: エレクトロニクス

タグ:サーボ

Programming an ATtiny13 w/ Arduino 1.0.1 [Arduino]

次のページで Arduino1.0 で Atitiny 44/45/84/85 のプログラムをしていることを以前紹介いたしました。

High-Low Tech – Programming an ATtiny w/ Arduino 1.0.1
http://hlt.media.mit.edu/?p=1695

ATtiny13も同じ8ピンなのでなんとかならいかと思っていてなんともならなかったのですが、問題点がわかりました。
attiny13a.jpg

arduino-1.0.1\hardware\arduino\cores\arduino の wiring.c の44行目
#if defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__)	

にATtiny13を加えます。

#if defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__)|| defined(__AVR_ATtiny13__)

arduino-1.0.1\hardware\arduino の boards.txt に以下の設定を追加します。
############################################

attiny13-1.name=ATtiny13 (internal 1.2 MHz clock)
attiny13-1.bootloader.low_fuses=0x6A
attiny13-1.bootloader.high_fuses=0xFF
attiny13-1.upload.maximum_size=1024
attiny13-1.build.mcu=attiny13
attiny13-1.build.f_cpu=1200000L
attiny13-1.build.core=arduino
attiny13-1.build.variant=tiny8

############################################

attiny13.name=ATtiny13 (internal 9.6 MHz clock)
attiny13.bootloader.low_fuses=0x7A
attiny13.bootloader.high_fuses=0xFF
attiny13.upload.maximum_size=1024
attiny13.build.mcu=attiny13
attiny13.build.f_cpu=9600000L
attiny13.build.core=arduino:arduino
attiny13.build.variant=tiny8

############################################

とりあえず、LEDはチカチカしました。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。