SlideShare a Scribd company logo
Windows10とRaspberryPiで
MakerFaireTokyoに参加
1
Yuki Ando
Microsoft Student partners
自己紹介
2
• 安藤 祐貴 (@ycnyuki)
• 0x13歳(19歳)
• サレジオ工業高等専門学校
• 所属
• Microsoft Student Partner
• Focus
• Web
• Game Programming
What’s MSP?
3
• マイクロソフトが展開する学生向けパートナープログラム
• MS製品や技術の素晴らしさを学生に伝えていく
• 世界各国に存在
Agenda
4
• Maker Faire とは
• 作ったものについて
• 出展するまでの苦労
• 実際にあった5つの壁
• 出展当日! 起こってしまった問題
Attention
5
• 情報は8/1時点の物です
• 変わっている箇所があるかもしれません
• 主観で捉えている部分が多数あります
Maker Faire Tokyo 2015
6
- with Windows 10 IoT Core -
Maker Faireとは
7
• Makerムーブメントのお祭り
• ユニークな発想
• 新しいテクノロジー
• これらを組み合わせてあっと驚く物を作ろう!
Maker Faire Tokyo 2015 HomePage
http://makezine.jp/event/mft2015/
いきさつ
8
• MSPとしてMakerFaireTokyoのMSブース出展
• Windows 10 IoT CoreとRaspberry Pi 2で作品を作ろう
• MSPでチームを作って参加
• 私も一員として参加しました
• 6月半ばから約1ヶ月半で制作
何を作ろうか
9
• ゲームのような楽しめる要素を含んでいる
• 誰でもわかりやすいように見た目の変化を多めに
• Windows 10 IoT Core とRaspberry Pi 2を使う
こんなものになりました
10
「みんな」で「光」や「色」を使った
体験を楽しむゲームガジェット
Colors of msp
11
• 帽子型ガジェットをかぶって霧吹き型ガジェットで撃ちあう
• うまく狙うと帽子型ガジェットの色が変化!
展示を振り返る
12
展示を振り返る
13
• 大勢の方に見てもらえた
• 実際に手にとってもらえた
• 特にお子さんに人気
完成品
14
• 霧吹き型ガジェット
• (略称:霧吹き)
• 帽子型ガジェット
• (略称:帽子)
• データ&APIサーバ
• 霧吹きの初期設定アプリ
• vvvvによるゲーム画面
• 結果が見れるWeb初期化アプリ
ゲーム画面
霧吹き型ガジェット
15
• 使用ボード
• Arduino pro mini
• 使用言語
• Arduino用 c/c++言語
• c言語の機能といくつかのc++の機能を保持
• 主な役割
• 帽子に向けて発射する赤外線の制御
• 発射するデータの設定
Arduino HomePage
https://www.arduino.cc/
帽子型ガジェット
16
• 使用ボード
• Arduino pro mini
• Raspberry Pi 2
• 使用言語
• Arduino用 c/c++言語
• C#
RaspberryPi HomePage
https://www.raspberrypi.org/
帽子型ガジェット
17
• Arduino pro miniの役割
• 霧吹き型ガジェットの発射した赤外線の取得
• 赤外線受信モジュールを使用
• Raspberry Pi 2に取得したデータを渡す
RaspberryPi HomePage
https://www.raspberrypi.org/
帽子型ガジェット
18
• Raspberry Pi 2の役割
• 帽子の光の色の制御
• サーバへのデータ送信
RaspberryPi HomePage
https://www.raspberrypi.org/
サーバ
19
• 使用したサービス
• Azure Web Apps
• Azure Blob Storage
• Azure Storage Table
• 使用した言語
• Python
• Flask
• Python用の軽量なフレームワーク
Flask HomePage
http://flask.pocoo.org/
サーバ
20
• 主な役割
• 帽子から送られてくるデータを保持
• ゲーム画面で必要なデータの提供
• Webで表示するデータの提供
Microsoft Azure HomePage
https://azure.microsoft.com/ja-jp/
初期設定アプリ
21
• 使用したボード
• Arduino nano
• 使用した言語
• Arduino用 c/c++言語
• C#
• Windows Presentation Foundation
初期設定アプリ
22
• 主な役割
• 霧吹き型ガジェットの初期化
• 霧吹き認識用のIDを設定
• 霧吹きの色を設定
ゲーム画面
23
• 使用した言語
• vvvv
• ビジュアルプログラミング言語
• 音や映像と連携して動く映像を作れる
• 主な役割
• どの霧吹きがどの帽子を撃ったかを映像で表示
• 各帽子が今現在何色なのかを表示
vvvv HomePage
http://vvvv.org/
結果が見れるWeb
24
• 使用した言語
• HTML+CSS
• D3.js
• データを元にHTMLドキュメントを変更
• 主な役割
• サーバのデータを使用し結果を見やすくする
• 誰が何回撃たれているか etc
D3.js HomePage
http://d3js.org/
言語・ボードがいっぱい
25
• 使用言語がバラバラ
• ボードごとに言語が決まっていた
• チームメンバーのスキルセット
• 現在の形になるまでに問題がたくさん発生
第1の課題
26
Arduino間の通信
Arduino間の通信
27
• 帽子と霧吹きの通信
• 霧吹きと初期化アプリとの通信
初期化アプリ
ゲーム画面
今回使用した仕組み
28
• 赤外線の点灯→消灯→再点灯を使用
• 点灯から再点灯までの時間によって値を定義する
• 再点灯まで560μsなら0として扱う
• それ以外の時間の場合は1として扱う
• 受信側で時間を計測することで値を獲得する
• 取得した値は0/1のbit列として扱う
仕組みを使って
29
• 初期化アプリにつながっているArduinoから霧吹きへ
• 霧吹きの新しいデータをbitで表現し送信
• 霧吹きから帽子へ
• 霧吹きが持つデータをbitで表現し送信
• 帽子はデータを解釈し色の変更,サーバへ送信
問題発生
30
• 複数の霧吹きがタイミングよく送信すると混線してしまう
• 受信側Arduinoは常時受信待機状態
• どこまでが送信されたデータか判別出来ない
回避するために
31
• 固定長のパリティデータを送信データに付与した
• 今回は30bit分のパリティを用意
• 混線,データの判別が問題なく出来るように
第2の課題
32
Raspberry Pi 2の赤外線送受信速度
当初の予定
33
シンプルな構成
実際にやってみると
34
何が起こったか
35
• Arduinoの制御はμs単位で行える
• Raspberry Pi 2の制御は100ms程度の単位でしか行えない
• 複数の霧吹きから赤外線が飛んでくると処理が追いつかない
• データが混ざってしまいどちらも取得できない
• 1つ受信すると次の受信までに時間がかかる
打開策
36
Arduinoを追加
どのようになったか
37
• 霧吹きの赤外線送信・帽子の赤外線受信の制御が変わった
• どちらもμs単位で制御できるように
• 送受信処理が素早く行えるように
• 複数の霧吹きから赤外線が飛んできても処理出来る可能性が
向上
第3の課題
38
Universal Windows Appsによるシリアル通信
当初の予定
39
Universal Windows Platform
シリアル通信
• 霧吹きが送信する値の初期化が必要
• PCのUniversal Windows Platform(UWP)と
シリアル接続したArduinoからデータを送信
問題発生
40
• UWPではシリアル通信についてのAPIが提供されていない
• 方法はあるものの時間的猶予がない
初期化アプリを変更
41
Windows Presentation Foundation
シリアル通信
シリアル通信が簡単に行える
Windows Presentation Foundationに変更
第4の課題
42
サーバのテーブル構成
元々のゲームの内容
43
• 元々は1回30分のゲームとして制作していた
• MSPが帽子をかぶり参加者が霧吹きを持つ
• 帽子を狙って参加者が霧吹きでMSPを撃つ
• 色を塗り替えた回数等で点数を競う
内容の変化
44
• ブースの都合上実行出来ないことが判明
• 30分1回のゲームではなくゲームのデモをベースに展示
データ管理方法の変更
45
• 元々の設計
• 各ゲームごとにデータを管理
• Web,vvvvに提供するデータもゲームごと
• 変更後の設計
• ゲームごとの管理を廃止
• 霧吹きと帽子ごとに管理するように
第5の課題
46
vvvvによるvisualize
Visualizeの仕様
47
展示用PC
Web vvvv
展示用PC
起こった問題
48
• vvvvの動作が遅くなる
• サーバから取得したデータが多いと特に
• エフェクトが出ない
• エフェクトが溢れる
未解決
49
• エフェクトが止まる・溢れる現象
• ネットワークが不安定な場合に多い
• 溜まってしまったデータを一気に取得してしまう為?
様々な問題
50
• 色々な問題と遭遇した
• なんとか完成!
• 頭を捻ったり
• ゴリ押ししたり
出展当日の問題①
51
回線が届かない
会場での回線は・・・
52
• 備え付けの有線回線は混雑のためか接続できず
• 自前のモバイルルータも接続できず
• 無線が非常に混み合っていた
回線がない
53
• 回線が必要な処理に致命的なダメージ
• 帽子からサーバへの通信
• サーバからWeb,vvvvへの通信
最終的には
54
• なんとか接続出来るようになった有線に接続
• ほぼ全ての機器を有線で無理やり
• 大量のハブに救われました
出展当日の問題②
55
展示用PCの熱
会場の温度
56
• 夏なので非常に暑かった
• 大盛況のため会場内が非常に混雑していた
• 非常に高温
展示用PC
57
• PCは2台使用
• 初期化アプリ用
• Web,vvvv用
• Web,vvvv用が暑くなってしまった
• 冷却手段を用意していなかった
• vvvvの動作に更に悪影響
展示用PC
出展当日の問題③
58
展示したガジェットの不具合
霧吹き型ガジェットに問題が
59
• 霧吹きは最終的に電池駆動に
• 電池の不用意な接触で火花が
• 応急処置はしたもののその後不調に
無事出展終了!
60
振り返って
61
• 問題も多く開発が難航することも多かった
• 出展当日もバタバタしていてあっという間に終わってしまった
• チームで開発するということは非常に難しかった
厳しいこともあったけど
62
• 出来上がった時,展示仕切った時の感動は凄まじいものでした
• 問題を解決出来た時の喜びは最高でした
• “モノを作る”ことはやっぱり最高に楽しかったです
最後に
63
• 一緒に作り上げたMSPの皆さん
• このような機会を下さった岩永さん
• 聞いていただいた皆さん
ありがとうございました!

More Related Content

PDF
Introduction to application architecture on asp.net mvc
PDF
20210828_win32_windows11
PDF
20200429 algyan lt
PDF
20200523 冴えないソフトの育てかた
PPTX
.NET Micro Framework is my spirit.
PDF
20190706 PO 2019 Summer
PDF
.NET Coreとツール類の今
PDF
はじめての UWP アプリ開発
Introduction to application architecture on asp.net mvc
20210828_win32_windows11
20200429 algyan lt
20200523 冴えないソフトの育てかた
.NET Micro Framework is my spirit.
20190706 PO 2019 Summer
.NET Coreとツール類の今
はじめての UWP アプリ開発

What's hot (20)

PDF
.NET の今 ~ 最新アップデートと 2019 年の展望
PDF
Visual Studio 2015 リリース記念 勉強会 universal windows platform app
PDF
世界中のユーザーに愛される ソフトウェアを作りたい!!
PDF
Visual Studio 拡張機能の作り方
PPTX
20150926 uwpストア攻略
PPTX
Azure Machine Leaning Workbench の使い方
PDF
第二世代MDD(萌え駆動開発)によるプログラミングWin32 #CLRH89
PPTX
Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!
PDF
初めての拡張機能リリースまでの歩み / Road to publishing extension for the first time
PDF
開発支援ツールとは?
PDF
めとべや東京10 Universal Windows Platform appの新しいバインディング
PDF
ユーザーに愛されるソフトを作りたい!!
PPTX
社内の遊休PCをAzurePipelinesでCICDに活用しよう
PPTX
WindowsにおけるUIスレッドの基礎
PDF
Adaptive Cardのデザインツール
PDF
【de:code 2020】 Microsoft 自身の事例から学ぶクラウド移行の価値
PDF
.NET Core 3.0 で見る Client Apps #BuriKaigi #BuriKaigi2019
PDF
Bot Framework 最新情報 2017
PDF
Skype for Business + Bot + Graph API
PPTX
あなたもできる!GASで勤怠入力Slack App構築【WESEEK Tech Conf #14】 (pert1)
.NET の今 ~ 最新アップデートと 2019 年の展望
Visual Studio 2015 リリース記念 勉強会 universal windows platform app
世界中のユーザーに愛される ソフトウェアを作りたい!!
Visual Studio 拡張機能の作り方
20150926 uwpストア攻略
Azure Machine Leaning Workbench の使い方
第二世代MDD(萌え駆動開発)によるプログラミングWin32 #CLRH89
Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!
初めての拡張機能リリースまでの歩み / Road to publishing extension for the first time
開発支援ツールとは?
めとべや東京10 Universal Windows Platform appの新しいバインディング
ユーザーに愛されるソフトを作りたい!!
社内の遊休PCをAzurePipelinesでCICDに活用しよう
WindowsにおけるUIスレッドの基礎
Adaptive Cardのデザインツール
【de:code 2020】 Microsoft 自身の事例から学ぶクラウド移行の価値
.NET Core 3.0 で見る Client Apps #BuriKaigi #BuriKaigi2019
Bot Framework 最新情報 2017
Skype for Business + Bot + Graph API
あなたもできる!GASで勤怠入力Slack App構築【WESEEK Tech Conf #14】 (pert1)
Ad

Viewers also liked (20)

PDF
.NET Micro Framework (プラレールと電子工作)
PDF
UnityでC#を勉強しはじめた私の主張
PDF
わかば向けAzure
PPTX
Voice of Customer and Beyond
PDF
Περί υδάτων, λίθων και μετοικεσίας. Εξερευνώντας τη γη της Αρκαδίας
PPT
родителям своим спасибо говорим
PDF
Il costo di realizzazione e gli aspetti commerciali
PPTX
Netforte Company Presentation
DOCX
Kata2 hikmat
PDF
Eric Chaney's Blue Book, June 17, 2014
PPTX
В сказке всё у нас цветёт
PDF
Madis Room: come funziona in caso di sisma
PPTX
ODP
Grand estela maría_unidad5y6
PDF
La Madis Room nasce dall’analisi dei dati sull’alta sismicità dell’Italia
PDF
La prevenzione nazionale è l’anello debole: dobbiamo farla da soli, in casa
PPT
презентация с днем рождения
PPT
детский сад волшебная страна
PPTX
παρουσιαση ανιματιον προσχεδιο
PDF
Apps multi os it for business n 2194 - avril 2015
.NET Micro Framework (プラレールと電子工作)
UnityでC#を勉強しはじめた私の主張
わかば向けAzure
Voice of Customer and Beyond
Περί υδάτων, λίθων και μετοικεσίας. Εξερευνώντας τη γη της Αρκαδίας
родителям своим спасибо говорим
Il costo di realizzazione e gli aspetti commerciali
Netforte Company Presentation
Kata2 hikmat
Eric Chaney's Blue Book, June 17, 2014
В сказке всё у нас цветёт
Madis Room: come funziona in caso di sisma
Grand estela maría_unidad5y6
La Madis Room nasce dall’analisi dei dati sull’alta sismicità dell’Italia
La prevenzione nazionale è l’anello debole: dobbiamo farla da soli, in casa
презентация с днем рождения
детский сад волшебная страна
παρουσιαση ανιματιον προσχεδιο
Apps multi os it for business n 2194 - avril 2015
Ad

Similar to Windows10とRaspberryPiで MakerFaireTokyoに参加 (20)

PDF
UnityでつくるはじめてのPONG
PDF
N01_多様に活用可能なマイクロソフトのゲーム関連技術や開発の DX ~高品質リアルタイムビジュアライズのリモート活用からリアルタイムコラボレーションま...
PDF
速報!!Windows 11
PDF
Oculus 体験・勉強会「VRコンテンツ制作入門」 2015/05/13
PDF
誰でも今日から実践できるUnity x PlayFab(Demoパート)
PPTX
スマートフォン勉強会 関東 19
PDF
.NET 7におけるBlazorの新機能
PDF
勉強会・コミュニティ運営について語ろう Documentary of .NETラボ
PDF
「自分のとこでは動くけど…」を無くす devcontainer
PDF
Project 15 - Algyan May 2022.pdf
PDF
mmoの作り方
PDF
Cocos2d-x でのクラウドサービス活用方法 - 週刊アスキーセミナー
PDF
ゆうMUG講演「きれいなマイクロソフトは好きですか?」
PDF
ゲームエンジン導入セミナー【UDK編】
PDF
ユニバーサル Windowsプラットフォーム(UWP)アプリの開発と配布
PDF
DEV-022_これから始める Xamarin ~環境構築から iOS/Android/UWP アプリのビルドまで~
PDF
ニコニコ超開発
PDF
【Unite 2017 Tokyo】WebGL:ゲームプラットフォームとしてのWebと現在と未来
PDF
【Unite 2017 Tokyo】WebGL:ゲームプラットフォームとしてのWebと現在と未来
PDF
Kinect v2を通してMicrosoft技術を考える
UnityでつくるはじめてのPONG
N01_多様に活用可能なマイクロソフトのゲーム関連技術や開発の DX ~高品質リアルタイムビジュアライズのリモート活用からリアルタイムコラボレーションま...
速報!!Windows 11
Oculus 体験・勉強会「VRコンテンツ制作入門」 2015/05/13
誰でも今日から実践できるUnity x PlayFab(Demoパート)
スマートフォン勉強会 関東 19
.NET 7におけるBlazorの新機能
勉強会・コミュニティ運営について語ろう Documentary of .NETラボ
「自分のとこでは動くけど…」を無くす devcontainer
Project 15 - Algyan May 2022.pdf
mmoの作り方
Cocos2d-x でのクラウドサービス活用方法 - 週刊アスキーセミナー
ゆうMUG講演「きれいなマイクロソフトは好きですか?」
ゲームエンジン導入セミナー【UDK編】
ユニバーサル Windowsプラットフォーム(UWP)アプリの開発と配布
DEV-022_これから始める Xamarin ~環境構築から iOS/Android/UWP アプリのビルドまで~
ニコニコ超開発
【Unite 2017 Tokyo】WebGL:ゲームプラットフォームとしてのWebと現在と未来
【Unite 2017 Tokyo】WebGL:ゲームプラットフォームとしてのWebと現在と未来
Kinect v2を通してMicrosoft技術を考える

Windows10とRaspberryPiで MakerFaireTokyoに参加