SlideShare una empresa de Scribd logo
1 de 16
6-A
IBM Watson IoT を用いた遠隔ゲームコントローラーと
Node-RED による簡易カスタマイズによる実現
本日の講演内容
https://bmxug.connpass.com/event/134792/
の前に・・・
テトリスを作ってスマホで振って遊ぼう!
2019.07.13 #bmxug #bmxgg7.13 復習
今回作るもの
IoT
スマホをコントローラーにして使う!
7.13 復習
デモ
Node-
RED テトリス
画面
スマホ
画面
7.13 復習
IoT(Internet of Things)
パブリッシャー ブローカー サブスクライバー
7.13 復習
Node-RED フローの完成形
http リクエスト(GET /tetris)
http リクエスト(GET /publish)
謎フロー
テトリスゲーム画面
スマホ画面
入力は ibmiot ノード、
出力は WebSocket ノード
(と debug ノード)
フロー構成とデータの流れ
MQTT
ブローカー
GET /publish
GET /tetris
MQTT サブスクライバー
HTTP(S)
MQTT
WebSocket
(JavaScript で)
傾き検知
傾き情報
左右傾き > 横移動
前後傾き > 回転
Node-RED
JavaScript による傾き検知
:
if( window.DeviceOrientationEvent ){
// システムが DeviceOrientation イベントに対応している場合、傾き検知時のイベントハンドラを定義
window.addEventListener( "deviceorientation"
, deviceOrientation );
}
:
function deviceOrientaion( e ){
var dir = e.alpha; // 向いている方角
var tiltFB = e.beta; // 左右の傾き
var tiltLR = e.gamma; // 前後の傾き
var ori = { tiltLR: tiltLD, tiltFB: tiltFB, dir: dir };
:
}
JavaScript による MQTT パブリッシュ
:
<script src="/mqttws31.js"></script> <!– Paho -->
:
var pubTopic = "iot-2/evt/status/fmt/json"; // MQTT のトピック
var clientID = "d:quickstart:MyDevice:(Device ID)"; // MQTT のクライアントID
// MQTT ブローカーを指定
var client = new Messaging.Client( "quickstart.messaging.internetofthings.ibmcloud.com", 443, clientID );
:
phoneData.publish = function(){
// JSON データを MQTT ブローカーへ送信
var message = new Messaging.Message( phoneData.toJson() );
message.destinationName = pubTopic;
client.send( message );
}
:
IBM Cloud の MQTT ブローカー
IBM Cloud 内で Node-RED を作成した時に標準で使える ibmiot ノードと連携するための MQTT ブ
ローカー
IBM Watson IoT サービスの一部として無料で利用可能
ホスト: quickstart.messaging.internetofthings.ibmcloud.com:443
トピック: "iot-2/evt/status/fmt/json"
クライアントID: "d:quickstart:(デバイス名):(デバイスID)"
で MQTT パブリッシュすると、Node-RED 内の ibmiot in ノードの Device ID に同じものを指定する
だけで簡単に MQTT サブスクライブできる。
MQTT
ブローカー
MQTT データを WebSocket へ
MQTT サブスクライバーで受け取り、
(オプション)
全ての傾き情報を送るのは意味ないの
で、1秒に2つだけにフィルタリング
受け取った傾き情報を /ws/sensor へ
WebSocket で送信
JavaScript による WebSocket 監視
:
var socket;
var wsUrl = "wss://" + location.hostname + "/ws/sensor"; // 監視先
function connect(){
socket = new WebSocket(wsUrl);
socket.onmessage = function(e) { // WebSocket イベントを監視
var sensorData = JSON.parse(e.data);
if( sensorData.d.ori.tiltLR >= 50 ){
// 左右傾きが 50 度以上になったら右
keyPress( "right" );
render();
}else if( sensorData.d.ori.tiltLR <= -50 ){
// 左右傾きが -50 度以下になったら左
keyPress( "left" );
render();
}else if( sensorData.d.ori.tiltFB >= 0 && sensorData.d.ori.tiltFB <= 30 ){
// 前後傾きが 0 度以上 30 度以下になったら回転
keyPress( "rotate" );
render();
:
(改めて)全体像
MQTT
ブローカー
GET /publish
GET /tetris
MQTT サブスクライバー
HTTP(S)
MQTT
WebSocket
(JavaScript で)
傾き検知
左右傾き > 横移動
前後傾き > 回転
IBM Cloud 上の
Node-RED
IBM Cloud 上の
MQTT ブローカー
まとめ
• IBM Cloud で Node-RED 環境を作ると、MQTT に便利な ibmiot
ノードや MQTT ブローカーを簡単に使うことができる
• スマートフォンのブラウザで使える JavaScript は(ジャイロセン
サー搭載機種であれば)スマートフォンの傾きを検知することがで
きる
• この傾き情報を使ってスマートフォンをゲームコントローラーのように扱う
ことができる
• MQTT や WebSocket を利用することで物理的に離れた場所から画
面をコントロールすることができる
• Node-RED だけで HTTP, MQTT, WebSocket など多くのプロトコ
ルに対応したデータフローを定義でき、HTML5 ベースの(ゲー
ム)アプリケーションに対するメッセージ処理含めて実装できる
6-A
IBM Watson IoT を用いた遠隔ゲームコントローラーと
Node-RED による簡易カスタマイズによる実現

Más contenido relacionado

La actualidad más candente

C99 因果堂typeiotラズベリーパイドライブレコーダー_監視カメラキット
C99 因果堂typeiotラズベリーパイドライブレコーダー_監視カメラキットC99 因果堂typeiotラズベリーパイドライブレコーダー_監視カメラキット
C99 因果堂typeiotラズベリーパイドライブレコーダー_監視カメラキットIngaSakimori
 
【C96】Inga-Do Type-IoT ラズベリーパイドライブレコーダー Ver.1.1の説明資料
【C96】Inga-Do Type-IoT ラズベリーパイドライブレコーダー Ver.1.1の説明資料【C96】Inga-Do Type-IoT ラズベリーパイドライブレコーダー Ver.1.1の説明資料
【C96】Inga-Do Type-IoT ラズベリーパイドライブレコーダー Ver.1.1の説明資料IngaSakimori
 
【C96】Inga-Do Type-IoT ラズベリーパイドライブレコーダー Ver.1.1説明資料
【C96】Inga-Do Type-IoT ラズベリーパイドライブレコーダー Ver.1.1説明資料【C96】Inga-Do Type-IoT ラズベリーパイドライブレコーダー Ver.1.1説明資料
【C96】Inga-Do Type-IoT ラズベリーパイドライブレコーダー Ver.1.1説明資料IngaSakimori
 
新型Happy Miniの発表 @ RoboCup 2017 NVIDIA 展示ブース
新型Happy Miniの発表 @ RoboCup 2017 NVIDIA 展示ブース新型Happy Miniの発表 @ RoboCup 2017 NVIDIA 展示ブース
新型Happy Miniの発表 @ RoboCup 2017 NVIDIA 展示ブースKensei Demura
 
Old computers and C programming.
Old computers and C programming.Old computers and C programming.
Old computers and C programming.Atomu Hidaka
 
Node-RED x Lazurite 3分で作るIoTシステム
Node-RED x Lazurite 3分で作るIoTシステムNode-RED x Lazurite 3分で作るIoTシステム
Node-RED x Lazurite 3分で作るIoTシステムNaotaka Saito
 
PSoC4 BLEで作る簡単無線センサーユニット
PSoC4 BLEで作る簡単無線センサーユニットPSoC4 BLEで作る簡単無線センサーユニット
PSoC4 BLEで作る簡単無線センサーユニットKenta IDA
 
SORACOM Device Meetup #1
SORACOM Device Meetup #1SORACOM Device Meetup #1
SORACOM Device Meetup #1minolutakeuchi
 
Sony Spresense #Edge computing device with ultra low power
Sony Spresense #Edge computing device with ultra low powerSony Spresense #Edge computing device with ultra low power
Sony Spresense #Edge computing device with ultra low power義則 太田
 
2020年10月29日 Jetson Nano 2GBで始めるAI x Robotics教育
2020年10月29日 Jetson Nano 2GBで始めるAI x Robotics教育2020年10月29日 Jetson Nano 2GBで始めるAI x Robotics教育
2020年10月29日 Jetson Nano 2GBで始めるAI x Robotics教育NVIDIA Japan
 
mbedでIoTデバイス
mbedでIoTデバイスmbedでIoTデバイス
mbedでIoTデバイスJunichi Katsu
 
第2回IoT勉強会 in 岡山 | 2部 IoTデバイスを触ってみよう!
第2回IoT勉強会 in 岡山 | 2部 IoTデバイスを触ってみよう!第2回IoT勉強会 in 岡山 | 2部 IoTデバイスを触ってみよう!
第2回IoT勉強会 in 岡山 | 2部 IoTデバイスを触ってみよう!NISHIMOTO Keisuke
 

La actualidad más candente (13)

C99 因果堂typeiotラズベリーパイドライブレコーダー_監視カメラキット
C99 因果堂typeiotラズベリーパイドライブレコーダー_監視カメラキットC99 因果堂typeiotラズベリーパイドライブレコーダー_監視カメラキット
C99 因果堂typeiotラズベリーパイドライブレコーダー_監視カメラキット
 
【C96】Inga-Do Type-IoT ラズベリーパイドライブレコーダー Ver.1.1の説明資料
【C96】Inga-Do Type-IoT ラズベリーパイドライブレコーダー Ver.1.1の説明資料【C96】Inga-Do Type-IoT ラズベリーパイドライブレコーダー Ver.1.1の説明資料
【C96】Inga-Do Type-IoT ラズベリーパイドライブレコーダー Ver.1.1の説明資料
 
【C96】Inga-Do Type-IoT ラズベリーパイドライブレコーダー Ver.1.1説明資料
【C96】Inga-Do Type-IoT ラズベリーパイドライブレコーダー Ver.1.1説明資料【C96】Inga-Do Type-IoT ラズベリーパイドライブレコーダー Ver.1.1説明資料
【C96】Inga-Do Type-IoT ラズベリーパイドライブレコーダー Ver.1.1説明資料
 
新型Happy Miniの発表 @ RoboCup 2017 NVIDIA 展示ブース
新型Happy Miniの発表 @ RoboCup 2017 NVIDIA 展示ブース新型Happy Miniの発表 @ RoboCup 2017 NVIDIA 展示ブース
新型Happy Miniの発表 @ RoboCup 2017 NVIDIA 展示ブース
 
IoT鳥瞰図
IoT鳥瞰図IoT鳥瞰図
IoT鳥瞰図
 
Old computers and C programming.
Old computers and C programming.Old computers and C programming.
Old computers and C programming.
 
Node-RED x Lazurite 3分で作るIoTシステム
Node-RED x Lazurite 3分で作るIoTシステムNode-RED x Lazurite 3分で作るIoTシステム
Node-RED x Lazurite 3分で作るIoTシステム
 
PSoC4 BLEで作る簡単無線センサーユニット
PSoC4 BLEで作る簡単無線センサーユニットPSoC4 BLEで作る簡単無線センサーユニット
PSoC4 BLEで作る簡単無線センサーユニット
 
SORACOM Device Meetup #1
SORACOM Device Meetup #1SORACOM Device Meetup #1
SORACOM Device Meetup #1
 
Sony Spresense #Edge computing device with ultra low power
Sony Spresense #Edge computing device with ultra low powerSony Spresense #Edge computing device with ultra low power
Sony Spresense #Edge computing device with ultra low power
 
2020年10月29日 Jetson Nano 2GBで始めるAI x Robotics教育
2020年10月29日 Jetson Nano 2GBで始めるAI x Robotics教育2020年10月29日 Jetson Nano 2GBで始めるAI x Robotics教育
2020年10月29日 Jetson Nano 2GBで始めるAI x Robotics教育
 
mbedでIoTデバイス
mbedでIoTデバイスmbedでIoTデバイス
mbedでIoTデバイス
 
第2回IoT勉強会 in 岡山 | 2部 IoTデバイスを触ってみよう!
第2回IoT勉強会 in 岡山 | 2部 IoTデバイスを触ってみよう!第2回IoT勉強会 in 岡山 | 2部 IoTデバイスを触ってみよう!
第2回IoT勉強会 in 岡山 | 2部 IoTデバイスを触ってみよう!
 

Similar a IBM Watson IoT を用いた遠隔ゲームコントローラーと Node-RED による簡易カスタマイズによる実現

"クラウド × IoT 勉強会" Bluemix とスマホでゲームを作ろう!ハンズオン
"クラウド × IoT 勉強会" Bluemix とスマホでゲームを作ろう!ハンズオン"クラウド × IoT 勉強会" Bluemix とスマホでゲームを作ろう!ハンズオン
"クラウド × IoT 勉強会" Bluemix とスマホでゲームを作ろう!ハンズオンsoftlayerjp
 
改めて注目される2D アニメーションツール SpriteStudio ~国産2Dツールが(舶来ゲームエンジンの力を借りながら)世界へ~
改めて注目される2D アニメーションツール SpriteStudio ~国産2Dツールが(舶来ゲームエンジンの力を借りながら)世界へ~改めて注目される2D アニメーションツール SpriteStudio ~国産2Dツールが(舶来ゲームエンジンの力を借りながら)世界へ~
改めて注目される2D アニメーションツール SpriteStudio ~国産2Dツールが(舶来ゲームエンジンの力を借りながら)世界へ~Web Technology Corp.
 
Let’s play windows 10 io t on raspberry pi !
Let’s play windows 10 io t on raspberry pi !Let’s play windows 10 io t on raspberry pi !
Let’s play windows 10 io t on raspberry pi !Masuda Tomoaki
 
Microsoft Copilot Studio.pdf
Microsoft Copilot Studio.pdfMicrosoft Copilot Studio.pdf
Microsoft Copilot Studio.pdfTomokazu Kizawa
 
WWCT ラズパイ Bluemix 講習資料
WWCT ラズパイ Bluemix 講習資料WWCT ラズパイ Bluemix 講習資料
WWCT ラズパイ Bluemix 講習資料Masaya Fujita
 
ハンズオン:Bluemix とスマホでゲームを作ろう!
ハンズオン:Bluemix とスマホでゲームを作ろう! ハンズオン:Bluemix とスマホでゲームを作ろう!
ハンズオン:Bluemix とスマホでゲームを作ろう! softlayerjp
 
これから始める Windows io t core
これから始める Windows io t coreこれから始める Windows io t core
これから始める Windows io t coreMasuda Tomoaki
 
Androidでロボットを動かそう・すまべん関西201003
Androidでロボットを動かそう・すまべん関西201003Androidでロボットを動かそう・すまべん関西201003
Androidでロボットを動かそう・すまべん関西201003cat sin
 
Web socketドロンくん その後-
Web socketドロンくん その後-Web socketドロンくん その後-
Web socketドロンくん その後-Yuuichi Akagawa
 
Windows io t core on raspberry pi meets ロボットアーム
Windows io t core on raspberry pi meets ロボットアームWindows io t core on raspberry pi meets ロボットアーム
Windows io t core on raspberry pi meets ロボットアームMasuda Tomoaki
 
mbedとwindows 8.1
mbedとwindows 8.1mbedとwindows 8.1
mbedとwindows 8.1Nobuaki Aoki
 
Windows IoT Core and Robot Arm
Windows IoT Core and Robot ArmWindows IoT Core and Robot Arm
Windows IoT Core and Robot ArmMasuda Tomoaki
 
HTML5-pronama-study
HTML5-pronama-studyHTML5-pronama-study
HTML5-pronama-studyNaoya Inada
 
IoT と Watson と クラウドが出会ったら、そこは Bluemix だった!
IoT と Watson と クラウドが出会ったら、そこは Bluemix だった!IoT と Watson と クラウドが出会ったら、そこは Bluemix だった!
IoT と Watson と クラウドが出会ったら、そこは Bluemix だった!softlayerjp
 
Creating the Future with Firefox OS
Creating the Future with Firefox OSCreating the Future with Firefox OS
Creating the Future with Firefox OSdynamis
 

Similar a IBM Watson IoT を用いた遠隔ゲームコントローラーと Node-RED による簡易カスタマイズによる実現 (20)

"クラウド × IoT 勉強会" Bluemix とスマホでゲームを作ろう!ハンズオン
"クラウド × IoT 勉強会" Bluemix とスマホでゲームを作ろう!ハンズオン"クラウド × IoT 勉強会" Bluemix とスマホでゲームを作ろう!ハンズオン
"クラウド × IoT 勉強会" Bluemix とスマホでゲームを作ろう!ハンズオン
 
Homekit 20140730
Homekit 20140730Homekit 20140730
Homekit 20140730
 
改めて注目される2D アニメーションツール SpriteStudio ~国産2Dツールが(舶来ゲームエンジンの力を借りながら)世界へ~
改めて注目される2D アニメーションツール SpriteStudio ~国産2Dツールが(舶来ゲームエンジンの力を借りながら)世界へ~改めて注目される2D アニメーションツール SpriteStudio ~国産2Dツールが(舶来ゲームエンジンの力を借りながら)世界へ~
改めて注目される2D アニメーションツール SpriteStudio ~国産2Dツールが(舶来ゲームエンジンの力を借りながら)世界へ~
 
Let’s play windows 10 io t on raspberry pi !
Let’s play windows 10 io t on raspberry pi !Let’s play windows 10 io t on raspberry pi !
Let’s play windows 10 io t on raspberry pi !
 
Win IoT on RPi デモ
Win IoT on RPi デモWin IoT on RPi デモ
Win IoT on RPi デモ
 
Microsoft Copilot Studio.pdf
Microsoft Copilot Studio.pdfMicrosoft Copilot Studio.pdf
Microsoft Copilot Studio.pdf
 
WWCT ラズパイ Bluemix 講習資料
WWCT ラズパイ Bluemix 講習資料WWCT ラズパイ Bluemix 講習資料
WWCT ラズパイ Bluemix 講習資料
 
ハンズオン:Bluemix とスマホでゲームを作ろう!
ハンズオン:Bluemix とスマホでゲームを作ろう! ハンズオン:Bluemix とスマホでゲームを作ろう!
ハンズオン:Bluemix とスマホでゲームを作ろう!
 
これから始める Windows io t core
これから始める Windows io t coreこれから始める Windows io t core
これから始める Windows io t core
 
Androidでロボットを動かそう・すまべん関西201003
Androidでロボットを動かそう・すまべん関西201003Androidでロボットを動かそう・すまべん関西201003
Androidでロボットを動かそう・すまべん関西201003
 
Introduction of Bridging IMS and Internet Identity
Introduction of Bridging IMS and Internet IdentityIntroduction of Bridging IMS and Internet Identity
Introduction of Bridging IMS and Internet Identity
 
Web socketドロンくん その後-
Web socketドロンくん その後-Web socketドロンくん その後-
Web socketドロンくん その後-
 
Windows io t core on raspberry pi meets ロボットアーム
Windows io t core on raspberry pi meets ロボットアームWindows io t core on raspberry pi meets ロボットアーム
Windows io t core on raspberry pi meets ロボットアーム
 
mbedとwindows 8.1
mbedとwindows 8.1mbedとwindows 8.1
mbedとwindows 8.1
 
Node-RED v1.3新機能紹介
Node-RED v1.3新機能紹介Node-RED v1.3新機能紹介
Node-RED v1.3新機能紹介
 
Ma8 Caravan 大阪 rev1
Ma8 Caravan 大阪 rev1Ma8 Caravan 大阪 rev1
Ma8 Caravan 大阪 rev1
 
Windows IoT Core and Robot Arm
Windows IoT Core and Robot ArmWindows IoT Core and Robot Arm
Windows IoT Core and Robot Arm
 
HTML5-pronama-study
HTML5-pronama-studyHTML5-pronama-study
HTML5-pronama-study
 
IoT と Watson と クラウドが出会ったら、そこは Bluemix だった!
IoT と Watson と クラウドが出会ったら、そこは Bluemix だった!IoT と Watson と クラウドが出会ったら、そこは Bluemix だった!
IoT と Watson と クラウドが出会ったら、そこは Bluemix だった!
 
Creating the Future with Firefox OS
Creating the Future with Firefox OSCreating the Future with Firefox OS
Creating the Future with Firefox OS
 

Más de K Kimura

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

Más de K Kimura (20)

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

Último

ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdf
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdfストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdf
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdfmasakisaito12
 
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチUP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチユニパー株式会社
 
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)KayaSuetake1
 
Service-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadershipService-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadershipYasuyoshi Minehisa
 
20240427 zaim academy counseling lesson .pdf
20240427 zaim academy counseling lesson .pdf20240427 zaim academy counseling lesson .pdf
20240427 zaim academy counseling lesson .pdfssuser80a51f
 
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料シンフォニティ 株式会社
 

Último (6)

ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdf
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdfストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdf
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdf
 
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチUP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
 
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
 
Service-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadershipService-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadership
 
20240427 zaim academy counseling lesson .pdf
20240427 zaim academy counseling lesson .pdf20240427 zaim academy counseling lesson .pdf
20240427 zaim academy counseling lesson .pdf
 
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
 

IBM Watson IoT を用いた遠隔ゲームコントローラーと Node-RED による簡易カスタマイズによる実現

  • 1. 6-A IBM Watson IoT を用いた遠隔ゲームコントローラーと Node-RED による簡易カスタマイズによる実現
  • 6. IoT(Internet of Things) パブリッシャー ブローカー サブスクライバー 7.13 復習
  • 7. Node-RED フローの完成形 http リクエスト(GET /tetris) http リクエスト(GET /publish) 謎フロー テトリスゲーム画面 スマホ画面 入力は ibmiot ノード、 出力は WebSocket ノード (と debug ノード)
  • 8. フロー構成とデータの流れ MQTT ブローカー GET /publish GET /tetris MQTT サブスクライバー HTTP(S) MQTT WebSocket (JavaScript で) 傾き検知 傾き情報 左右傾き > 横移動 前後傾き > 回転 Node-RED
  • 9. JavaScript による傾き検知 : if( window.DeviceOrientationEvent ){ // システムが DeviceOrientation イベントに対応している場合、傾き検知時のイベントハンドラを定義 window.addEventListener( "deviceorientation" , deviceOrientation ); } : function deviceOrientaion( e ){ var dir = e.alpha; // 向いている方角 var tiltFB = e.beta; // 左右の傾き var tiltLR = e.gamma; // 前後の傾き var ori = { tiltLR: tiltLD, tiltFB: tiltFB, dir: dir }; : }
  • 10. JavaScript による MQTT パブリッシュ : <script src="/mqttws31.js"></script> <!– Paho --> : var pubTopic = "iot-2/evt/status/fmt/json"; // MQTT のトピック var clientID = "d:quickstart:MyDevice:(Device ID)"; // MQTT のクライアントID // MQTT ブローカーを指定 var client = new Messaging.Client( "quickstart.messaging.internetofthings.ibmcloud.com", 443, clientID ); : phoneData.publish = function(){ // JSON データを MQTT ブローカーへ送信 var message = new Messaging.Message( phoneData.toJson() ); message.destinationName = pubTopic; client.send( message ); } :
  • 11. IBM Cloud の MQTT ブローカー IBM Cloud 内で Node-RED を作成した時に標準で使える ibmiot ノードと連携するための MQTT ブ ローカー IBM Watson IoT サービスの一部として無料で利用可能 ホスト: quickstart.messaging.internetofthings.ibmcloud.com:443 トピック: "iot-2/evt/status/fmt/json" クライアントID: "d:quickstart:(デバイス名):(デバイスID)" で MQTT パブリッシュすると、Node-RED 内の ibmiot in ノードの Device ID に同じものを指定する だけで簡単に MQTT サブスクライブできる。 MQTT ブローカー
  • 12. MQTT データを WebSocket へ MQTT サブスクライバーで受け取り、 (オプション) 全ての傾き情報を送るのは意味ないの で、1秒に2つだけにフィルタリング 受け取った傾き情報を /ws/sensor へ WebSocket で送信
  • 13. JavaScript による WebSocket 監視 : var socket; var wsUrl = "wss://" + location.hostname + "/ws/sensor"; // 監視先 function connect(){ socket = new WebSocket(wsUrl); socket.onmessage = function(e) { // WebSocket イベントを監視 var sensorData = JSON.parse(e.data); if( sensorData.d.ori.tiltLR >= 50 ){ // 左右傾きが 50 度以上になったら右 keyPress( "right" ); render(); }else if( sensorData.d.ori.tiltLR <= -50 ){ // 左右傾きが -50 度以下になったら左 keyPress( "left" ); render(); }else if( sensorData.d.ori.tiltFB >= 0 && sensorData.d.ori.tiltFB <= 30 ){ // 前後傾きが 0 度以上 30 度以下になったら回転 keyPress( "rotate" ); render(); :
  • 14. (改めて)全体像 MQTT ブローカー GET /publish GET /tetris MQTT サブスクライバー HTTP(S) MQTT WebSocket (JavaScript で) 傾き検知 左右傾き > 横移動 前後傾き > 回転 IBM Cloud 上の Node-RED IBM Cloud 上の MQTT ブローカー
  • 15. まとめ • IBM Cloud で Node-RED 環境を作ると、MQTT に便利な ibmiot ノードや MQTT ブローカーを簡単に使うことができる • スマートフォンのブラウザで使える JavaScript は(ジャイロセン サー搭載機種であれば)スマートフォンの傾きを検知することがで きる • この傾き情報を使ってスマートフォンをゲームコントローラーのように扱う ことができる • MQTT や WebSocket を利用することで物理的に離れた場所から画 面をコントロールすることができる • Node-RED だけで HTTP, MQTT, WebSocket など多くのプロトコ ルに対応したデータフローを定義でき、HTML5 ベースの(ゲー ム)アプリケーションに対するメッセージ処理含めて実装できる
  • 16. 6-A IBM Watson IoT を用いた遠隔ゲームコントローラーと Node-RED による簡易カスタマイズによる実現