Upload
c-mitsuba
View
713
Download
3
Embed Size (px)
DESCRIPTION
VSUG_LT Silverlight&Arduino
Citation preview
Silverlight にマイコンをつないでみよう
蜜葉 優
Profile
H.N. :蜜葉 優
本名:泉本 優輝
職種:関西大学総合情報学部 4 回生
Twitter : mitsuba_tan
Blog : 蜜葉の日記
http://d.hatena.ne.jp/c-mitsuba/
SL4 の OOB で COM が叩けるようになりました
ね!
Windows7 からセンサの API が使えるとか、
センサ・フィジカルが流行ってますね。
マイコンを持ってきました
Japanino大人の科学 No27 の付
録
センサー API に対応してないので強引にやってみました。
マイコンのコード
単語4つをランダムでシリアル通信で送信するコードを書いています。
void loop() { key = random(4); switch(key%4){ case 0: Serial.println(".net4"); break; case 1: Serial.println("Silverlight"); break; case 2: Serial.println("WPF"); break; case 3: Serial.println("Azure"); break; } key++;}
C#
dynamic com; private void button2_Click(object sender, RoutedEventArgs e) { com = AutomationFactory.CreateObject("ActiveXperts.ComPort"); dynamic count = com.GetDeviceCount(); StringBuilder sb = new StringBuilder(); List<dynamic> devices = new List<dynamic>(); for (int i = 1; i <= 9; i++) { devices.Add("COM" + i); } for (int i = 0; i < count; i++) { devices.Add(com.GetDevice(i)); } devicelst.ItemsSource = devices; }
Beta 版からの変更点
beta 版からの変更
ComAutomationFactory Class 名前空間: System.Windows.Interop ↓ AutomationFactory Class 名前空間: System.Runtime.InteropServices.Automation
マイコンから値取ってくる
private void Storyboard1_Completed(object sender, EventArgs e) { com.Sleep(200); buffer = com.ReadString(); if (buffer == "") { com.Close(); return; }
tb.Dispatcher.BeginInvoke(delegate() { tb.Text += "\r\n" + com.ReadString(); });
Storyboard1.Begin(); }
DEMO
さいごに
こんな風にセンサー API に対応しなくてもSL で強引にマイコンを扱えます。(めんどいけど。。。
このマイコンにセンサーやスイッチを指せば、センサープログラミングやフィジカルコンピューティングができます
SL は RIA や業務だけじゃなく、メディアアートにも使えそうだね!
ご清聴ありがとうございました。