F#で動かすRaspberry
PI+LEGO Mindstorms
増田 智明(@moonmile)
.NET ラボ Micorosft MVP C#
Moonmile Solutions
自己紹介
 増田 智明 masdua@moonmile.net
 執筆業&プログラマ
 C#によるiOS, Android, Windowsアプリケーション開発入門
 逆引き大全 Visual C# 2013, Visual Basic 2013
 逆引き大全 iPhone/iPad アプリ開発
 作って覚える iPhone/iPad アプリ入門
「ハルロック」西餅 著
http://www.moae.jp/comic/harurock/1/1
 つい最近知った。
 電子工作の基礎な話が出てきます。
 PIC
 Raspberry Pi
 Arduino
 .NET Micro は、まだ出てきてない
 モーニング連載
プレゼンの目的
F# は何処で使えるのか?
いきなり、結論
.NET Framework があれば何処でも使えます
ロボット制御に使おう
Raspberry Pi
Linux/Mono
Camera
OpenCV
DualSock3
Bluetooth
GPIO/I2C
Robot
Protocol
WiFi
HTTP
XAML
Xamarin.Forms
Rasbpery Pi に F# を入れる
Raspberry Pi
Linux/Mono
LinuxなのでMonoが
入る。
F#をビルド
→ 10時間かかる
インタプリタが動く
→ 遅いが
Rasbpery Pi に F# を入れる
簡易 C/S を作る
HttpListener
HttpClient
適当なRESTful
WiFi
HTTP
Rasbpery Pi に F# を入れる
スマートフォンのクライアント
Xamarin.iOS/Android
Xamarin.Forms
Windows Store 8.1 作成中
Windows Phone 8.1 作成中
Windows 8.1 WPF
XAML
Xamarin.Forms
Rasbpery Pi に F# を入れる
画像解析
OpenCVのC#版(opencvsharp)で
実験する予定
Camera
OpenCV
Rasbpery Pi に F# を入れる
Bluetooth コントローラ
/dev/input/js0 を BinaryReader
で扱えばOK
DualSock3
Bluetooth
Rasbpery Pi に F# を入れる
シリアルポートを叩く
実験中。
現在はCからインポートする方式
GPIO/I2C
Rasbpery Pi に F# を入れる
 ロボット制御ロジック
パターンマッチとか諸々は F# の得
意なところ
センサーが受信したデータを解析
Robot
Protocol
ロボットのアームを制御する
 RasPi からアームを動かす
 BrickPi -> LEGO でもアームが動くが、ここでは RasPi から直接行う。
 RasPi -> I2C モジュール → サーボモータ
 で動作させるのだが、I2C モジュールを買い忘れてた orz
 購入済み。プログラミング途中
ロボットからセンサーのフィードバックを受
ける
 BrickPi 経由で超音波センサーを使う
 変換器が必要なのが分かって、現在購入中。
参考文献
 Rasberry Pi http://www.raspberrypi.org/
 BrickPi http://www.dexterindustries.com/BrickPi/
 LEGO Mindstorms EV3 http://education.lego.com/ja-jp/preschool-and-
school/secondary/mindstorms-education-ev3
 Arduiono http://www.arduino.cc/
 meArm http://www.phenoptix.com/products/mearm-pocket-sized-robot-arm
 FEZ Spider https://www.ghielectronics.com/docs/170/fez-spider
 「ハルロック」http://www.moae.jp/comic/harurock/1/1
自前のライブラリ
 BrickPiNet BrickPi を扱う C#/F# ライブラリ
https://github.com/moonmile/BrickPiNet
 XFormsPreviewer Xamarin.Forms Previewer(パース部分がF#)
https://github.com/moonmile/XFormsPreviewer
Xamarin.Forms Xaml を動的にロードするライブラリ
https://www.nuget.org/packages/Xamarin.Forms.XamlProvider/
 WinXamlProiver Windows Store 8.1 Xaml 用の TypeProvider もどき
https://github.com/moonmile/WinXamlProvider
 D4Reflection リフレクションを使って Xamarin.Forms, Windows.UI.Xaml 等を
一括に扱う試作ライブラリ
https://github.com/moonmile/D4Reflection

F#で動かすraspberry pi+lego mindstorms