旗揚げゲーム(2)・・ラジコン化
旗揚げゲームについては前回の記事を
そして、ラジコン化については、Bluetooth通信に関するこちらの記事を
参照ください。これ二つをくっつければ、ラジコンになりますよね。
というわけでやってみました。
スケッチは
#include <Servo.h>
Servo right;
Servo left;
void setup() {
Serial2.begin(9600);
right.attach(8);
left.attach(6);
}
void loop() {
if(Serial2.available() > 0){
action(Serial2.read());
}
}
void action(char x){
if(x == 'a'){right.write(180);}//白(右)上げ
if(x == 'b'){right.write(0);}//白(右)下げ
if(x == 'c'){left.write(0);} //赤(左)上げ
if(x == 'd'){left.write(180);}//赤(左)下げ
}
スマホからBluetoothでa,b,c,d の4種のコマンドを送ります。それぞれ左右の旗の上げ下げ動作に対応させています。
つないでー、動いた!
ただ、この動画中では、途中でBluetoothの接続が切れてしまい、手動でつなぎなおしています。繰り返し試したのですが、しょっちゅう切れます。幾度がいじっているうちに原因が見えてきました。どうやらサーボモーター駆動時に大電流が流れるせいで、Bluetoothモジュール側の電源供給が不足になり、落ちるようです。
Bluetoothのモジュール(HC-05)にモーター駆動系と同じところから電源供給しているのがまずかったようですね。
もともと、サーボモーターとArduino本体の電源を分けたのは、駆動時にArduinoが落ちたからなのですが、同じことはBluetoothのモジュールにも言えそうです。
じゃあ、こうしてみたらどうか?
おおもとのUSBは同じですが、写真上の方からサーボモーターの電源、下の方から、Bluetoothの電源を取っています。
結論は、「ダメ」でした。同じくしばしば切れます。
そこで、こう変えました。Bluetoothの電源は、Arduino(MEGA)側からとった次第。
結論としてはこれが成功、安定し、切れなくなりました。以下のようにぶんぶん動きます(笑)。