研究室の工房(勉強会)向けメモ。
どうもFlashとかArduinoとか、インタフェースのプロトタイピングをちゃっちゃっと作れるのに特化した環境ばっかり整えてる気がするので、C#とかJavaとかC++みたいなOSに近いレベルの開発も研究室内に広めた方がいい気がする。
PSoCやMoxaやProcessingとかが、FlashやArduinoの勉強の次はこれだぜってのもわかるけど、インタフェース技術ばっかり増えてそいつらを連動させられないと意味がないのでVisual C# 2005 Express Edition使って、「糊」のように色んなデバイスとデータ形式とサービスをFlashやArduinoにくっつけたり、「司令塔」のようにそれらの実行手順や連動の条件を記述する方法を後生に残したい。
・C#(糊と司令塔として使いこなせるようにする)
ひとつひとつ重要な機能を解説すると同時に、そこそこ面白いアプリが動いて楽しいねとなるようにする。
とにかく何にでも接続できるようにする。
1.SerialPortクラスを使ってArduinoと連動させよう
Formへのアイテムの追加、VisualStudioでのEvent登録
2.マウスとキーボードを乗っ取ろう(SendKeysとMouseクラスの使い方)
たいていのアプリを自動操縦できるようになる。GoogleMapとか
3.AxShockwaveFlashクラスを使ってFlashと連動させよう
ActiveX Objectの登録と呼び出し方、System.Collections.*の扱い方
4.GPSを使おう
このblogにある GpsConnector.cs をダウンロードしてきて自分のプロジェクトに取り込む
5.GoogleEarth COM APIで地球を回してみよう
COMの登録と呼び出し方、GPSと連動
6.Flickr.NETとWebClientでFlickrAPIを使ってみよう
COMの登録と呼び出し方、HTTPでのアクセス、できればWSDLとかの話も
7.FileSystemWatcher、Timer、BackgroundWorker、ThreadとDelegateの使い方
マルチスレッドのイベント処理をさばく方法について
8.キーボードイベントを受け取ろう
hotkey, 低レベルキーボードフックでhack
9.ManagedDirectXでジョイスティックを使う
ジョイスティックは分解すると楽しい
10.Win32APIを.NET環境から呼び出してみよう(DllInport、WndProc、WindowMessage、MarshalAs)
スキャナの制御、SkypeのコントロールなどWindowsの事なら何でもできる
その他:
Phidget.NET(RFIDリーダーなど)、テキサスのRFIDリーダ、WindowsMediaPlayerを使う
目標は、合宿でよく4,5人のチームに分かれて新しい技術を開拓してまとめて発表するというのをやるんだけど、そこで文書でまとめるだけじゃなくてラッパークラスを書いて提供するぐらいにみんながなる程度。