.NET Gadgeteer で
組み込み開発の第一歩
瀬尾佳隆 (@seosoft) / 技術ひろば.net
Microsoft MVP for Visual C#
Windows女子部 第16回 勉強会
2013年6月
自己紹介
瀬尾 佳隆 (せお よしたか)
MVP for Visual C# (Jan 2009 – Dec 2013)
実は、組み込みは素人です。すみません
ブログ・・・http://yseosoft.wordpress.com/
Twitter ・・・@seosoft
AKB48 と劇団四季とディズニーリゾートが好き
アジェンダ
組み込み開発の可能性
.NET Gadgeteer のすすめ
.NET Gadgeteer 開発の実際
組み込み開発の可能性
組み込みの市場規模
http://idc.cycloneinteractive.net/microsoft-intelligent-systems-iview/Final-iView-content_Intelligent_Systems.pdf
組み込み市場
Intelligent Systems ?
http://idc.cycloneinteractive.net/microsoft-intelligent-systems-iview/Final-iView-content_Intelligent_Systems.pdf
Intelligent
Systems
Intelligent Systems !
Source: Microsoft, 2012
http://idc.cycloneinteractive.net/microsoft-intelligent-systems-iview/Final-iView-content_Intelligent_Systems.pdf
Intelligent Systems
Source: Microsoft, 2012
http://idc.cycloneinteractive.net/microsoft-intelligent-systems-iview/Final-iView-content_Intelligent_Systems.pdf
この議論は活発組み込みがあって
はじめて生態系が
完成する!
組み込み開発のすすめ
ならば、組み込みを「かじって」みませんか?
大きな市場 = ビジネスチャンス
あらゆるものがクラウドに繋がる時代
人ではなく “場所” に紐付くデバイスが増える
実務で組み込みをやらないとしても
知識はプラスになるはず
.NET Gadgeteer のすすめ
組み込み開発のハードルが驚くほど低い
Visual Studio が使えます
インテリセンス
デバッグ機能
C# / VB
.NET で身につけたネットワークとクラウドの
知識が役に立ちます
.NET Gadgeteer のすすめ
.NET Micro Framework
MS の組み込み技術の中で最小のファーム
http://www.microsoft.com/ja-jp/dev/embedded/default.aspx
.NET Gadgeteer
Visual Studio のデザイナー画面を使う
組み込みの世界の “Visual Basic 的” 発想
直感的な開発
Form にコントロールを置くのと同じ感覚
.NET Gadgeteer が適する場面
プロトタイピング時
開発効率が要求される時
組み込みのノウハウが少ない時
1個~数個程度のデバイスが必要な時
趣味や楽しみとして
.NET Gadgeteer 開発の実際
組み込みの基本的な考え方
※基本的にコンピューターは全て同じですけどね
入力値の
取得
値の変化
に応じて
出力する
繰り返し
センサー
モジュール
ディスプレイ /
SD カード /
ネットワーク
入力値の取得
モジュール側から変化を教えてくれるか、
自分からデータをもらいに行くか
モジュールから
変化を教えてくれる
データをもらいに行く
入力値の取得
イベントハンドラ / Thread / Timer を
使いこなすのがポイント
モジュールから
変化を教えてくれる
データをもらいに行く
イベントハンドラ
Thread.Start と
while (true)
Timer.Tick
お待たせしました!
そろそろデモを見たい頃ですよね
プログラミングのスタートは “Hello, World”
組み込みのスタートは “L チカ”
LED
初めての組み込み開発
LED
“タイマー” で L チカ
“スレッドでポーリング” で L チカ
“イベントハンドラー” で L チカ
ボタン
センサーデバイスの入力値取得(1)
照度センサー
センサーから値を取得する
センサーデバイスの第一歩
照度センサーを使って
“暗くなったらライトを付ける”
ディスプレイ
照度センサー
ボリューム
(感度調節)
LED
(ライト)
照度センサーの値 / ボリュームの値
センサーデバイスの入力値取得(2)
深度センサー/カメラ
センサーから値を取得する(2)
深度センサーで接近をチェック
誰か(何か)が近づいたらカメラで撮影
深度センサー
CCD カメラ
LCD
深度センサーの値 / カメラ撮影
ネットワーク接続
イーサネット
ネットワーク接続
環境センサーで気温・気圧をチェック
Web サーバーでセンサー値を返す
環境センサー
LED
ディスプレイ
環境センサーの値
Web サーバー
イーサネットモジュールの初期化
まとめ
NETMF / Gadgeteer のすすめ
あらゆるものがクラウドに繋がる時代
スマホより “シンプルな” デバイスが必要
人ではなく “場所” に紐付くデバイスが増える
.NET Micro Framework なら組み込みも簡単
Gadgeteer ならもっと簡単
その先を目指すなら
 デバイス個数が多ければハード設計も
 高いリアルタイム性(1ms 未満程度)が
必要ならば C 言語なども検討
ハードルは高いです
開発環境も貧弱
 ネットワーク/クラウドの知識は必要
参考
開発環境
Visual Studio 2012 or 2010
Express Edition でも OK
SDK / Package
FEZ シリーズの場合
http://www.ghielectronics.com/support/dotnet-micro-
framework
デバイスの購入
FEZ シリーズ (.NET Gadgeteer)
http://www.ghielectronics.com/
http://tinyclr.jp/
他にも・・・
The Mountaineer Group
http://www.mountaineer.org/
Love Electronics
http://www.loveelectronics.co.uk/
情報源
 GHI Electronics Support Page
 https://www.ghielectronics.com/support/.net-micro-framework
 SDK, パッケージのダウンロード
 NETMF & Gadgeteer Tutorial
 https://www.ghielectronics.com/docs/37/netmf-and-gadgeteer-
tutorial-index
 デバイスと IT の架け橋 (MS 太田さんブログ)
 http://blogs.msdn.com/b/hirosho/archive/tags/-
net+micro+framework/
 技術との戯れ (瀬尾のブログ)
 http://yseosoft.wordpress.com/pages/netmf/

.NET Gadgeteerで組み込み開発の第一歩