HSP3からの数値データ出力をARDUINOで受けて、ガルバノ・サーボモータ駆動
高田 芳郎 2013/7/15(Mon) 09:36:11|NO.55689
HSP3からの数値データ出力をARDUINOで受けて、2個か3個の、ガルバノメータあるいは、
サーボモータ駆動したいのです。
HSPにせよ、ARDUINO にしても、初心者ではあります。ご教示お願いします。
ARDUINO側のスケッチは、おおよそ、
#include <Servo.h>
Servo servoX;//サーボのインスタンス
Servo servoY;
int val_x;
int val_y;
void setup(){
//サーボの信号線を3番ピンに接続
//(PWMピン以外のピンにも接続可)
servoX.attach(3);
servoY.attach(5);
}
void loop(){
//
//int val=analogRead(0);//0~1023
val_x = 20; //x振れ角度 ほんとはここで、HSPからのデータをserial.read()したい
val_y =1000; //y振れ角度 ほんとはここで、HSPからのデータをserial.read()したい
//map()を使って0~1023を544~2400に変換
int pulseWidth_x=map(val_x,0,1023,544,2400);
int pulseWidth_y=map(val_y,0,1023,544,2400);
//サーボ出力
servoX.writeMicroseconds(pulseWidth_x);//変換したパルス幅値を代入:544~2400
servoY.writeMicroseconds(pulseWidth_y);//変換したパルス幅値を代入:544~2400
delay(1000);
val_x = 1000; //−振れ角度
val_y = 20;
//map()を使って0~1023を544~2400に変換
pulseWidth_x=map(val_x,0,1023,544,2400);
pulseWidth_y=map(val_y,0,1023,544,2400);
//サーボ出力
servoX.writeMicroseconds(pulseWidth_x);//変換したパルス幅値を代入:544~2400
servoY.writeMicroseconds(pulseWidth_y);
delay(1000);
}
と仮にしています。
val_x = 20;以下の2行を、Serial.read()とし、
HSP3で、数値データを文字として、もともとUSB接続されているARDUINO に送り、
Serial.read()で受けたいと思っております。
このような場合の、模範となるような、HSPスクリプト例と、ARDUINOのスケッチ例を、
ご教示お願いします。
KA 2013/7/15(Mon) 09:36:55|NO.55690
ポートの初期化方法と通信仕様が分かれば、何とかなるかもしれません。
f(現場帰り) 2013/7/16(Tue) 16:20:24|NO.55706
Aruduinoのドライバを素直にインストールしたのなら、
見かけ上は(USB接続から変換した)シリアルポートと接続している機器として扱える。
あとはシリアル通信で文字列をやり取りするだけだ。
まずはHSPから「o」を送ったらLED13番を点灯、「x」を送ったら消灯程度の簡単なところから
自 力 で や れ 。
ぶっちゃけ難しくないから、まずやってみれ。
もしかしたら 2013/7/16(Tue) 18:41:37|NO.55707
もうご存知かもしれませんが、こちら方面が参考になるかもしれないと思いました。
TECHNO KIT テクノキット
http://www.technokit.biz/
Km2Net
http://km2net.com/
HSPのサンプルソースもおいてありますよ。
f(おビール様中) 2013/7/19(Fri) 22:22:41|NO.55767
その後どうなったんかのう。
と思って見てみたら、
前回の書き込み時、最後に「それでも駄目だったらもう一度書き込め」と
書き忘れていた事に今更気付く。
完全に突き放した様でマジですまない。