FLINTERS Engineer's Blog

FLINTERSのエンジニアによる技術ブログ

ベイブレードをマンガのように操りたい①Arduino編

こんにちは、@joytomoです。

近頃はtwitter広告運用のツールを作っており、
世界一の広告プロダクトを作るため毎日何やら励んでいます。

さて今回のエントリはそれらと一切関係なく、
表題の通りとなります。

技名を叫ぶと必殺技が出てほしい

往年の玩具系マンガにおいて良くあったのですが、
主人公達が技名を叫んだり決めポーズをとると、
不思議なことにマシンがそれに呼応して必殺技を繰り出すのです。

マグナムトルネード、ハンマーGクラッシュ、ライトニングドリフト・・・
当時の僕らはそれに胸を躍らせたわけですが、
当然市販されていた玩具自体にそのような機能は付いていませんでした。

でも、現代の技術をもってすれば容易かつ安価に実現できそうですよね!

ということで、作っていこうと思います。


構成

ざっとこんな構成となるでしょう。
音声かジェスチャーか、あと表情とか、そういったものでラジコンを操れるとマンガの世界に近づく感じがします。

f:id:s_hayase:20150722144505j:plain
しかしラジコンやkinectを買うと出費がかさむので、
何か無いかなーと思っていたところ、手頃なものがありました。

f:id:s_hayase:20150722144519j:plain
スーパーコントロールベイブレード
ベイブレードのラジコンです。

これをマンガのように操れるようにしてみましょう。

Arduinoでスーパーコントロールベイブレードを操作する

スーパーコントロールベイブレードはコントローラからの赤外線でベイブレード本体に信号を送り、加速や逆回転などの操作をすることができます。
よってPCから任意の赤外線信号を送るようにすれば良いのですが、赤外線周りは良く知りません。

ですので、ここはお手軽にArduinoからサーボモータでコントローラのスイッチをON/OFFさせることにしました。

f:id:s_hayase:20150722144548j:plain
このようにArduinoサーボモータを繋ぎ、まずはArduinoサーボモータの連携を確認するためのコードを書いていきます。

#include
#define SERVOPIN (9)
#define VOLUMEPIN (0)

Servo servo;

void setup()
{
    servo.attach(SERVOPIN);
}
void loop()
{
    servo.write(60);
    delay(1000);
    servo.write(-60);
    delay(1000);
}


両者の連動が確認できました!
続いて、レゴブロックと両面テープを使い、スーバーコントロールベイブレードのコントローラにサーボモータを固定します。

f:id:s_hayase:20150722144605j:plain
固定できました。これで準備OK!

これからマイクなりカメラなりの入力からサーボを操作できるようにしていきたいと思いますが、
今回はここまで!


参考記事:
Arduino IDEの使い方を覚えよう
サーボモータを動かす(サーボモータ使用)