11
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

超リアルなザクを目指して!obnizでぐぽーんと音がしてモノアイが光るプロトタイプを作成!!

Posted at

##ぐぽーんと音がしてモノアイが光るのは男のロマン
ガンダムの色んな作品でよく見かける演出として、
格納庫でスタンバってるMS(モビルスーツ)の目が「ぐぽーん」という音と共に光る
というのがあります。(ザクやドムなどバリエーションも豊富)

この演出、個人的に大好物なんですが、いつかこれをガンプラで再現したいなーと思っています。

今回は100均で見かけたおもちゃとIoT基盤「obniz」を組み合わせてプロトタイプを作ったので記事にしていきます。

##完成品(ぐぽーんとなってモノアイ光るぜ)
実際に作ったものはこんな感じで動きます。

##作り方

###用意する(した)もの
####ハードウェア
obniz Board 1Y
 制御の要となります。
■赤色LED
 抵抗内蔵のもの。モノアイに見立てて使います。
■ブレッドボード
 配線用。そのままだとLEDからobnizへの配線が厳しかったため。
Grove_MP3
 グポーンという音を出すための装置。obnizから命令を送るとMP3ファイルを再生してくれます。
■スピーカー
 Grove_MP3に繋げて音を出してもらいます。今回はダイソーで300円のものを購入。
Keyestudio_Button
 音と光を制御するためのボタン。INPUTになれば良いのでセンサーの類でも代用できます。
プチブロック ロボットシリーズ
 ザクの代わりにするべくダイソーで購入。今回はスナイプをベースにナイトのパーツを少し混ぜてます。
■適当な箱
 作ったロボットと各種機器を固定するためのもの。ダイソーで購入。

####ソフトウェア
■Node.js
 obnizの制御に使いました。

###組み立て
robo.jpg
ロボットはこんな感じで組み立てました。(LEDをモノアイ代わりにするので顔だけちょっと改造しています)

box.jpg
箱に穴をあけてブレッドボードと赤色LEDを取り付けます。
配線は穴を通して裏側へ。

ura.jpg
裏側はこんな感じになってます。
(黒く塗りつぶしているのはobniz-IDを隠すためです。)

20210515_165415.jpg
後は、LEDの位置に顔が来るようにロボットを配置して完了!
制御用プログラムを実行してボタンを押せばぐぽーんという音とともにモノアイが光ります!

###制御用プログラム
obnizの制御用コードは以下の通りです。
起動後、ボタンを押すとMP3の再生とLEDの点灯処理が実行されます。
(LEDは3秒後に消えるようにしています。)

const Obniz = require('obniz');
const obniz = new Obniz('XXXX-XXXX'); // 自分のObniz_ID

const sleep = (msec) => new Promise(res => setTimeout(res, msec));

obniz.onconnect = async function () {
  
    // MP3プレーヤーを利用
    const mp3 = obniz.wired("Grove_MP3", { gnd: 0, vcc: 1, mp3_rx: 2, mp3_tx: 3 });
    await mp3.initWait();
    mp3.setVolume(20);
  
    // 赤色LEDを利用
    const led = obniz.wired("LED", { anode: 5, cathode: 6 });
  
    // 入力用にボタンを利用する
    const button = obniz.wired("Keyestudio_Button", {signal:9, vcc:10, gnd:11});

    // ディスプレイ
    obniz.display.clear(); // クリア
    obniz.display.print('Ready!');

    // ボタンが押されたら処理
  button.onchange = async function (pressed) {
    if (!button.isPressed) {
      //ぐぽーんという音を再生
      mp3.play(1);
      ///モノアイを点灯
      led.on();
    //3秒経ったらLEDをオフにする。
    await sleep(3000); led.off();
    }
  }

}

###補足(Grove_MP3の使い方)
今回、どうしても「ぐぽーん」が聞きたかったのでobnizでMP3ファイルを再生できる機器を探したところ、
公式ドキュメントで紹介されていたGrove_MP3に行きつきました。
ただ、こいつを使うまでに色々あったので補足しておきます。

####そのままではobnizに接続できない。
Grove_MP3は名前の通り、Grove規格のコネクタを持っています。
当然、付属のケーブルもGrove規格のものなのですが、obnizはGrove規格のソケットを持っていないのでそのままだと接続できません。
なので、ケーブルを別途購入しました。
GROVE - 4ピン - ジャンパオスケーブル(5本セット)

####使用できるのはマイクロSDカード(8GB以下のもの)
obniz公式にSDカードという記載がありますが、実際にはマイクロSDカードを使うことになります。
容量も8GB以下しか使えないのでご注意を。

使用する際はマイクロSDカードに「MP3」というフォルダを作って「0001.mp3」みたいに数字4桁を頭につけたファイル名のMP3ファイルを格納しておけば再生できます。

####プログラムの書き方
プログラム自体は以下のような形で記述します。
※音量は明示的に設定しないと最大値で再生されるので注意

const mp3 = obniz.wired("Grove_MP3", { gnd: 0, vcc: 1, mp3_rx: 2, mp3_tx: 3 });
await mp3.initWait();//初期化
mp3.setVolume(20);//音量設定(0~31)※デフォルトは31
mp3.play(1);//MP3フォルダ内の「0001」から始まるMP3ファイルを再生

##最後に
今回のプロトタイプ作成ではソフトウェアではなくハードウェアに力を入れました。
初心者なりにカッコいいものができたと満足しております。
次は実際にザクのプラモデルにLEDを仕込んで「ぐぽーん」やりたいですね。

11
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?