Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8691

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

$
0
0
ぐぽーんと音がしてモノアイが光るのは男のロマン ガンダムの色んな作品でよく見かける演出として、 格納庫でスタンバってるMS(モビルスーツ)の目が「ぐぽーん」という音と共に光る というのがあります。(ザクやドムなどバリエーションも豊富) この演出、個人的に大好物なんですが、いつかこれをガンプラで再現したいなーと思っています。 今回は100均で見かけたおもちゃとIoT基盤「obniz」を組み合わせてプロトタイプを作ったので記事にしていきます。 完成品(ぐぽーんとなってモノアイ光るぜ) 実際に作ったものはこんな感じで動きます。 できた!(スピーカーのノイズが凄いとかLEDの赤がカメラ通すとピンクに見えるとかあるけど気にしない)#obniz pic.twitter.com/sQLUUQqyrz— shoito66 (@shoito66) May 15, 2021 作り方 用意する(した)もの ハードウェア ■obniz Board 1Y  制御の要となります。 ■赤色LED  抵抗内蔵のもの。モノアイに見立てて使います。 ■ブレッドボード  配線用。そのままだとLEDからobnizへの配線が厳しかったため。 ■Grove_MP3  グポーンという音を出すための装置。obnizから命令を送るとMP3ファイルを再生してくれます。 ■スピーカー  Grove_MP3に繋げて音を出してもらいます。今回はダイソーで300円のものを購入。 ■Keyestudio_Button  音と光を制御するためのボタン。INPUTになれば良いのでセンサーの類でも代用できます。 ■プチブロック ロボットシリーズ  ザクの代わりにするべくダイソーで購入。今回はスナイプをベースにナイトのパーツを少し混ぜてます。 ■適当な箱  作ったロボットと各種機器を固定するためのもの。ダイソーで購入。 ソフトウェア ■Node.js  obnizの制御に使いました。 組み立て ロボットはこんな感じで組み立てました。(LEDをモノアイ代わりにするので顔だけちょっと改造しています) 箱に穴をあけてブレッドボードと赤色LEDを取り付けます。 配線は穴を通して裏側へ。 裏側はこんな感じになってます。 (黒く塗りつぶしているのはobniz-IDを隠すためです。) 後は、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を仕込んで「ぐぽーん」やりたいですね。

Viewing all articles
Browse latest Browse all 8691

Trending Articles