テトリスを作ってスマホで振って遊ぼう!
2019.07.13 #bmxug #bmxgg
今回作るもの
IoT
スマホをコントローラーにして使
大まかな流れ
0. 諸準備
• IBM Cloud へログイン
• Node-RED 環境構築
• Node-RED 解説
1. 画面の用意
• テトリスゲーム画面
• スマホ操作画面
• 動作確認
2. データ連携
• スマホのセンサーデータをゲーム画面へ送信
3. 難易度調整
0. 諸準備
システム構成
Node-RED
テトリス
画面
スマホ
画面 IoT
IBM Cloud へログイン (1)
https://cloud.ibm.com/
IBM Cloud へログイン (2)自分のアカウント名になっていることを確認
Node-RED の準備 (1)
Node-RED を未作成の場合
Node-RED の準備 (2)
Node-RED の準備 (3)
Node-RED の準備 (4)
Node-RED とは?
• IBM 英国 Hursley 研究所を中心に開発されたデータフローエ
ディタ
• 各種データの流れと処理を定義するもの
• HTTP や MQTT 、 WebSocket といったプロトコルに対応
• 現在はオープンソース化されて、 Linux Foundation 傘下で開発が続い
ている
• ほぼプログラミングすることなく、データ処理を定義する
https://nodered.org/
IoT(Internet of Things)
パブリッシャー ブローカー サブスクライバー
Node-RED の準備 (5)
Node-RED の準備 (6)
初回のみ
Node-RED の準備 (7)
初回のみ
Node-RED の準備 (8)
初回のみ
Node-RED の準備 (9)
初回のみ
Node-RED へのログイン (1)
Node-RED へのログイン (2)
Node-RED へのログイン (3)
パレット
キャンバス
情報タブ
デバッグタブ
デプロイボタン
個々の四角を「ノード」と呼ぶ
1. 画面の準備
ハンズオン用ソースコード
git clone する人はここからhttps://bit.ly/2K4OjYe
ゲーム画面作成 (1)
パレットの入力カテゴリから http を選んで、
キャンバスにドラッグ&ドロップ
ゲーム画面作成 (2)
パレットの機能カテゴリから template を選んで、
キャンバスにドラッグ&ドロップ
ゲーム画面作成 (3)
パレットの出力カテゴリから http response を選んで、
キャンバスにドラッグ&ドロップ
ゲーム画面作成 (4)
3つのノードを線で結合する
ゲーム画面作成 (5)
http ノードをダブルクリック
メソッド: GET
URL: /tetris
と指定
「完了」ボタン
ゲーム画面作成 (6)
http ノードの見た目が指定内容に合わせて変わることを確認
ゲーム画面作成 (7)
https://bit.ly/2Zc7Jhj
この内容をコピー
ゲーム画面作成 (8)
template ノードをダブルクリック 名前: テトリス に変更
テンプレート: 先程コピーした内容(ペースト)
「完了」
ゲーム画面作成 (9)
「デプロイ」ボタンをクリック
ゲーム画面作成 (10)
PC ブラウザで https:// (アプリケーション名) .mybluemix.net/tetris  にアクセス
テトリスが動いている!
左移動: 左矢印
右移動: 右矢印
回転:  上矢印
落下:  下矢印
スマホ操作画面作成 (1)
2本目のフローを同様に作成する:
入力カテゴリーの http ノード、
機能カテゴリーの templete ノード、
出力カテゴリーの http response ノード
をドラッグ&ドロップして、線で繋げる。
スマホ操作画面作成 (2)
http ノードをダブルクリック
メソッド: GET
URL: /publish
と指定
「完了」
スマホ操作画面作成 (3)
https://bit.ly/2K45qJG
この内容をコピー
スマホ操作画面作成 (4)
template ノードをダブルクリック
名前: スマホ に変更
テンプレート: 先程コピーした内容(ペースト)
「完了」
スマホ操作画面作成 (5)
「デプロイ」ボタンをクリック
スマホ操作画面作成 (6)
スマホのブラウザで https:// (アプリケーション名) .mybluemix.net/publish  にアクセス
スマホの傾きに応じて、
画面内の数値が変更されることを確認
ここまでのシステム構成
Node-RED
テトリス
画面
スマホ
画面
後はここだ
け
2. データ連携
データ連携 (1)
3本目のフローを同様に作成する:
入力カテゴリーの ibmiot ノード、
機能カテゴリーの function ノード、
出力カテゴリーの debug ノード
をドラッグ&ドロップして、線で繋げる。
データ連携 (2)
function ノードをダブルクリック
名前: 変換
内容:
msg.payload = msg.payload.d.ori;
return msg;
と変更
「完了」
データ連携 (3)
ibmiot ノードをダブルクリック
スマホ画面の上部に書かれている
16桁の文字列をそのまま Device id に指定
「完了」
データ連携 (4) 「デプロイ」ボタン
「デバッグ」タブに切り替え
デバッグタブにスマホの傾きが表示される
debug ノード右のボタンで
表示/非表示を切り替える
(表示を止めておく)
データ連携 (5)
出力カテゴリーの websocket ノードをドラッグ&ドロップして、
ibmiot ノードと接続する
データ連携 (6)
websocket ノードをダブルクリック
鉛筆マークをクリック
データ連携 (7)
パス : /ws/sensor
と入力して、「追加」ボタン
1つ前の画面に戻るので「完了」
データ連携 (8)
「デプロイ」ボタン
データ連携 (9) 左: 「左右」を -50 以下に
右: 「左右」を 50 以上に
回転: 「前後」を 0 以上 30 以下に
難しすぎる?
難易度調整 (1)
機能カテゴリーの delay ノードをドラッグ&ドロップして、
ibmiot ノードと websocket ノードの間に接続する
難易度調整 (2)
delay ノードをダブルクリック
動作: メッセージの流量制限
流量:  2 メッセージ 1 秒
「中間メッセージを削除」にチェック
に設定する。
※ この設定だと1秒間に2回だけ動かせる
 細かく調整しやすいが、素早く動かすことはできない
「完了」
難易度調整 (3) 「デプロイ」をボタンを押して試してみる
必要に応じて、流量を調整する
他のスマホを使う場合
他のスマホでスマホ画面を表示
Node-RED を開いて、 ibmiot ノードを開き、
そのスマホ画面に表示されている
Device id の値に書き換えて、完了
デプロイしてからゲーム画面を開く
楽しかったですか?
• 感想を #BMXUG タグを付けて SNS で教えてください。
• 今後の運営の参考にさせていただきます。

More Related Content

PPTX
IBM Watson IoT を用いた遠隔ゲームコントローラーと Node-RED による簡易カスタマイズによる実現
PDF
"クラウド × IoT 勉強会" Bluemix とスマホでゲームを作ろう!ハンズオン
PDF
ラズパイ × Bluemix IoTハンズオンセミナー
PDF
Rancher ではじめる マルチクラウドコンテナー
PDF
●●●の知らないSBCの世界
PDF
Simple IoT BoardでIoT
PPTX
Napter で簡単リモート操作のデモ | SORACOM UG 九州 #10
ODP
GoでサブGHz帯通信
IBM Watson IoT を用いた遠隔ゲームコントローラーと Node-RED による簡易カスタマイズによる実現
"クラウド × IoT 勉強会" Bluemix とスマホでゲームを作ろう!ハンズオン
ラズパイ × Bluemix IoTハンズオンセミナー
Rancher ではじめる マルチクラウドコンテナー
●●●の知らないSBCの世界
Simple IoT BoardでIoT
Napter で簡単リモート操作のデモ | SORACOM UG 九州 #10
GoでサブGHz帯通信

What's hot (13)

PPTX
僕はまだ10%しかIDCFクラウドを理解していなかった
PDF
Old computers and C programming.
PDF
【C95】Raspberry pi zero wを使ったドライブレコーダーの説明資料
PDF
【C96】Inga-Do Type-IoT ラズベリーパイドライブレコーダー Ver.1.1の説明資料
PDF
【C96】Inga-Do Type-IoT ラズベリーパイドライブレコーダー Ver.1.1説明資料
PDF
C99 因果堂typeiotラズベリーパイドライブレコーダー_監視カメラキット
PPTX
IoT鳥瞰図
PDF
Node-RED x Lazurite 3分で作るIoTシステム
PPTX
SORACOM Device Meetup #1
PDF
Sony Spresense #Edge computing device with ultra low power
PPTX
PSoC4 BLEで作る簡単無線センサーユニット
PDF
mbedでIoTデバイス
PDF
Making AutoRun USB HID Device / 自動入力するHIDデバイスを安く簡単に作る
僕はまだ10%しかIDCFクラウドを理解していなかった
Old computers and C programming.
【C95】Raspberry pi zero wを使ったドライブレコーダーの説明資料
【C96】Inga-Do Type-IoT ラズベリーパイドライブレコーダー Ver.1.1の説明資料
【C96】Inga-Do Type-IoT ラズベリーパイドライブレコーダー Ver.1.1説明資料
C99 因果堂typeiotラズベリーパイドライブレコーダー_監視カメラキット
IoT鳥瞰図
Node-RED x Lazurite 3分で作るIoTシステム
SORACOM Device Meetup #1
Sony Spresense #Edge computing device with ultra low power
PSoC4 BLEで作る簡単無線センサーユニット
mbedでIoTデバイス
Making AutoRun USB HID Device / 自動入力するHIDデバイスを安く簡単に作る
Ad

More from K Kimura (20)

PPTX
Introducing my personal / original CAPTCHA implement
PPTX
ThinkPad を自慢できると聞いてやってきました
PPTX
IBM FamilyDay 2022 - 帰ってきた LINE 手描きスタンプ
PPTX
「プライベート版 Heroku」の "dokku" は Cloud Foundry 代替としてどこまで使えるか?
PPTX
LINE お絵描きスタンプが NFT 対応するかも
PDF
ICFO2021 コロナ時代のオンラインハンズオン体験
PPTX
IBM Family Day 2020 - LINE で手描きスタンプに挑戦!
PPTX
マンホールマップ10周年 20200725
PPT
MashupAward6 Manholemap(2010)
PPT
スライドパズルハンズオン資料
PPTX
ユーザー投稿型位置情報プロットシステム - マンホールマップ
PPT
Scratch でゲームプログラミング
PPTX
空耳アワーマシーンを作ってみた
PPTX
生まれ変わるマンホールマップ
PPT
地図データでレースゲームを作って遊ぼう!
PPT
AI先生と外国語会話を練習しよう!
PPT
LINE お絵描きアプリハンズオン 20190519
PPT
LINE お絵描きハンズオン 2019.04.26
PPT
Hyperledger Hands-on 2019-03-30 @ Singularity HIVE
PPT
LINE お絵描きアプリハンズオン
Introducing my personal / original CAPTCHA implement
ThinkPad を自慢できると聞いてやってきました
IBM FamilyDay 2022 - 帰ってきた LINE 手描きスタンプ
「プライベート版 Heroku」の "dokku" は Cloud Foundry 代替としてどこまで使えるか?
LINE お絵描きスタンプが NFT 対応するかも
ICFO2021 コロナ時代のオンラインハンズオン体験
IBM Family Day 2020 - LINE で手描きスタンプに挑戦!
マンホールマップ10周年 20200725
MashupAward6 Manholemap(2010)
スライドパズルハンズオン資料
ユーザー投稿型位置情報プロットシステム - マンホールマップ
Scratch でゲームプログラミング
空耳アワーマシーンを作ってみた
生まれ変わるマンホールマップ
地図データでレースゲームを作って遊ぼう!
AI先生と外国語会話を練習しよう!
LINE お絵描きアプリハンズオン 20190519
LINE お絵描きハンズオン 2019.04.26
Hyperledger Hands-on 2019-03-30 @ Singularity HIVE
LINE お絵描きアプリハンズオン
Ad

Recently uploaded (18)

PDF
1分でわかるMSOL(エムソル)________________________
PDF
Z‐L‐バリン NCA、グローバルトップ13企業のランキングと市場シェア.pdf
PPTX
だれでもサクッと使える!採用ピッチ資料テンプレート(解説付き)_20230529_ver1.pptx
PDF
[スクフェス大阪2024]組織は人でできている~組織をマルチレイヤーアジャイルでコネクトしよう~
PPTX
Setting KPI of Estimation Department Division
PPTX
GN Business Consulting会社概要 (FREE CASH MAKER)_saleshub.pptx
PDF
【スタートアップ向け】waypoint venture partners1partners1号ファンドのご紹介_v1.4.pdf
PDF
This document is a company profile for Drecom Co., Ltd.
PDF
11期MAKERS事前説明会全校生徒、革命児次世代のイノベーションが集い.pdf
PDF
ROXX概要資料
PDF
[アジャイルジャパン2024]組織をアジャイルにしていくのに プロジェクトファシリテーションが必要ないわけがない
PDF
GN Business Consulting会社概要 (FREE CASH MAKER)_saleshub.pdf
PDF
STRARTS Inc. COMPANY INFORMATION [NOW WE ARE HIRING]
PDF
カーボンナノチューブ(CNT)、グローバルトップ10企業のランキングと市場シェア.pdf
PPTX
高知OOH媒体活用<アナログ×デジタルの融合戦略により、ブランディングで他社より一歩リードする手法>
PDF
AIゲートウェイ、グローバルトップ12企業のランキングと市場シェア2025.pdf
PDF
神奈川県の伊勢原市商工会で中小企業講演「人手不足を解消するためのAI活用セミナー」
PDF
【VISIONARY JAPAN】エンジニアチーム 採用ピッチ資料(ver2.1)
1分でわかるMSOL(エムソル)________________________
Z‐L‐バリン NCA、グローバルトップ13企業のランキングと市場シェア.pdf
だれでもサクッと使える!採用ピッチ資料テンプレート(解説付き)_20230529_ver1.pptx
[スクフェス大阪2024]組織は人でできている~組織をマルチレイヤーアジャイルでコネクトしよう~
Setting KPI of Estimation Department Division
GN Business Consulting会社概要 (FREE CASH MAKER)_saleshub.pptx
【スタートアップ向け】waypoint venture partners1partners1号ファンドのご紹介_v1.4.pdf
This document is a company profile for Drecom Co., Ltd.
11期MAKERS事前説明会全校生徒、革命児次世代のイノベーションが集い.pdf
ROXX概要資料
[アジャイルジャパン2024]組織をアジャイルにしていくのに プロジェクトファシリテーションが必要ないわけがない
GN Business Consulting会社概要 (FREE CASH MAKER)_saleshub.pdf
STRARTS Inc. COMPANY INFORMATION [NOW WE ARE HIRING]
カーボンナノチューブ(CNT)、グローバルトップ10企業のランキングと市場シェア.pdf
高知OOH媒体活用<アナログ×デジタルの融合戦略により、ブランディングで他社より一歩リードする手法>
AIゲートウェイ、グローバルトップ12企業のランキングと市場シェア2025.pdf
神奈川県の伊勢原市商工会で中小企業講演「人手不足を解消するためのAI活用セミナー」
【VISIONARY JAPAN】エンジニアチーム 採用ピッチ資料(ver2.1)

「テトリスを作ってスマホで振って遊ぼう!」ハンズオン資料