2016年4月27日水曜日

Johnny-Fiveでマイコン制御1 - サーボモーター

○サーボモーター制御用端子(PWM出力端子)
Arduino 3、5、6、10、11
Raspberry Pi(※) 12、32、33、35
※Model A+/B+/Raspberry Pi 2/ Raspberry Pi 3/Raspberry Pi Zero

○基本回路/プログラム

◇Arduino
・配線
・プログラム


◇Raspberry Pi
・配線


・プログラム
var raspi = require('raspi-io');
var five = require("johnny-five");
var board = new five.Board({io: new raspi()});
board.on("ready", function() {
var servo = new five.Servo('P1-12');
this.repl.inject({
servo: servo
});
servo.sweep();
});

※オプション、APIはArduinoのプログラムを参照してください。


○PWMパルス幅の設定
 ArduinoとRaspberry Piでは、PWMの周期が異なるため、サーボモーターの回転角度が違ってきます。調整する方法はないかと調べてみると、「pwmRange」オプションでPWMのパルス幅を調整できることが分かりました。

・オプション書式
pwmRange:[最小パルス幅, 最大パルス幅]

・プログラム(Raspberry Pi用)

var raspi = require('raspi-io');
var five = require("johnny-five");
var board = new five.Board({io: new raspi()});
board.on("ready", function() {
var servo = new five.Servo({
pin: 'P1-12',
pwmRange:[600, 2200]
});
this.repl.inject({
servo: servo
});
servo.sweep();
});

 サーボモーターの種類にもよりますが、規定のままではArduinoでも回転角度がズレる場合があるので、必要に応じて、「pwmRange」オプションで調整してください。



0 件のコメント:

コメントを投稿