SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Raspberry Pi+Mono を
使ってLEGOを制御
増田 智明(@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
 モーニング連載
目的
 Mono(.NET Framwork)を使っても、機器制御が簡単にできるよ
 組み込みはC言語のイメージが強いが、今となっては手軽とはいえない。
 C言語のライブラリを Python を使う例が多い。
 日本では Python をあつかう人が少ないのが難点
 C# でもよいのでは?
 画像解析とロボット制御の組み合わせをやってみたい
 ロボット制御を C# から
 画像解析 OpenCV + .NET Framework
機器の組み合わせパターン
 機器の直接制御
 自走型のロボットを直接制御
 自走型のロボットを自律制御
直結
Wi-Fi/Bluetooth
Wi-Fi/Bluetooth 直結
具体的な機器
 ノートPCの利用
 スマートフォンの利用
 自律パターン Raspberry Pi
 シリアル制御 Arduino
 LEGO Mindstorms EV3
 コントローラーの利用
機器からフィードバックが必要か?
 温度センサーの解析の仕組み
 温度センサーの値を取得するのみ
 ロボットアームの制御の仕組み
 アームの位置を誰が検知するのか?
 サーボの位置だけで決められる?
 ロボットが移動したとき
 誰がロボット位置を知るのか?
 誰が次の位置を示せるのか?
 どうやって次の位置を示すのか?
機器を直接制御
 PICプログラミング(ROMに書き込み)
 どれもチップと制御機器(センサーなど)が直結している。
 チップとPCが近い場所にある
 基盤設計により小さくできる
 小さな箱に組み入れる
 回路を組む必要があるので、私には手におえない。
汎用プログラムで制御
 Arduinoでプログラミング
 .NET Micro frameworkでプログラミング
 LEGO Mindstorems
 開発環境が、CやC#で用意されている。
 PICよりも簡単にできる
汎用OSで制御
 Raspberry Pi
 ミニPC
 Android pc
 実行環境にOSが入っているので、実は言語を問わない。
 OS特有の機能を使える
 機器が大き目になる
自走型ロボットを制御を考える
 ロボットとPCは無線で接続
 無線LAN, Bluetooth制御
 無線先を機器そのものにする。機器にWi-Fiなどが必要
 制御するのは、コントローラで。
 ロボットが視界から外れると動けない
自走型ロボットにカメラを付ける
 自走型ロボットにカメラを付ける
 各種センサーを付けた自走型ロボット
 制御は人間がリアルタイムでやる
 Wi-Fiが届かなかったどきはどうする?
 有線LANによるマニピュレータ方式
 遠隔操作などはこれ
自走&自立型ロボットを制御
 ロボット自身がセンサーを判断する
 ラインを動くロボットなどがそれ
 同時に遠隔操作を可能にする
 ロボットの位置情報
 ロボットの視界カメラ
Raspberry Pi – Model B
Wi-Fi
Bluetooth
専用カメラ
モジュール
BrickPi
I2C接続
専用液晶
ディスプレイ
Linux/Raspbian
Debian互換
CPU ARM
700MHz 512MB
私のは初期ロットなので256MB
Raspberry Piでロボット制御をやる意味
 自走&自立型のロボットの構築
 センサーは、Arduinoを通して制御可能?
 LEGO Mindstorms EV3 のセンサーを利用
 赤外線センサー、3軸センサー、 超音波センサーなど
 センサーによるフィードバックを Raspberry Pi 内で判断する
 自己制御プログラム
 C#やF#を使ってロジックを組む
 TDD、Visual Studio、Xamarin Studio の利用
 母艦PCと通信する
 Raspberry Piと母艦PCで通信する(Wi-Fi)
 通信量を制限できる
 前処理済みのカメラデータなど
Raspberry Pi でロボット制御をやる準備
 Raspberry Pi
 Linux(Debian)
 Mono(.net framework)
 モーター制御
 自走は車で行う(二足歩行は別に)
 I2Cモジュールでサーボ制御
 センサー制御
 Arduino経由でシリアル制御?
 LEGO Mindstorms EV3 のセンサーを
流用
 コントローラー
 PS3 Dualstock 3 コントローラー
 Wii コントローラー?
 Arduinoのコントローラー?
 スマートフォン
 ノートPCなど
制御するプログラム言語
 Linux 上で、Mono を動かす
 apt-get install mono-complete で、簡単インストール
 シリアルポートへの読み書き(C言語経由)
 Bluetoothの読み込み(ファイルストリーム経由)
 センサー読み取りを制御する → C#
 通信は HTTP → 簡易 HTTP サーバを作成
 クライアント
 ノートPC -> C#
 スマートフォン -> Xamarin.iOS/Android で C# を使う
Raspberry Pi - BrickPi で LEGO のモーターを
制御
 Raspberry Pi に差し込むだけで動作する。
 http://www.dexterindustries.com/BrickPi/
 BrickPi のサンプルは C, Python なので、C# で使えるようにした。
 https://github.com/moonmile/BrickPiNet
Raspberry Pi で Bluetooth コントローラを使
う
 標準で /dev/input/js がある。
 これを System.IO.BinaryStream で読み込んで、モーターを制御している
 PS3 Dualstock を使ってロボット制御ができる。
 http://github.com/moonmile/BrickPiNet/blob/master/src/BrickPiNet/BPiJoystick.
cs
 Welcome to QtSixA!
 DualShock3コントローラー
 http://qtsixa.sourceforge.net/
ロボットを遠隔操作する
 HTTP経由で BrickPiNet を制御すればOK
 簡易 HTTP サーバー
 https://github.com/moonmile/BrickPiNet/tree/master/example/WebBrick
 iPhone/Android用クライアント
 https://github.com/moonmile/BrickPiNet/tree/master/example/WebBrickClient
ロボットのアームを制御する
 RasPi からアームを動かす
 BrickPi -> LEGO でもアームが動くが、ここでは RasPi から直接行う。
 RasPi -> I2C モジュール → サーボモータ
 で動作させるのだが、I2C モジュールを買い忘れてた orz
 購入済み。プログラミング途中
ロボットからセンサーのフィードバックを受
ける
 BrickPi 経由で超音波センサーを使う
 変換器が必要なのが分かって、現在購入中。
自走&自立型のロボットを作れると工作の幅
が広がる
 ロボットからモーターを制御する
 ロボットからアーム(サーボ)を制御する
 ロボット付属のセンサーからフィードバックを受ける
 ★ロボット内で、フィードバックを前処理できる
 ★ロボット内で、フィードバックを内部処理して、モーターを制御する
 ロボットから母艦へ通信(Wi-Fi)する
 ★母艦からロボットへ指令(HTTP経由)を出せる
 ソフトウェア開発者(私)としては、★部分が重要
参考文献
 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

Weitere ähnliche Inhalte

Was ist angesagt?

【C96】Inga-Do Type-IoT ラズベリーパイドライブレコーダー Ver.1.1の説明資料
【C96】Inga-Do Type-IoT ラズベリーパイドライブレコーダー Ver.1.1の説明資料【C96】Inga-Do Type-IoT ラズベリーパイドライブレコーダー Ver.1.1の説明資料
【C96】Inga-Do Type-IoT ラズベリーパイドライブレコーダー Ver.1.1の説明資料IngaSakimori
 
【C96】Inga-Do Type-IoT ラズベリーパイドライブレコーダー Ver.1.1説明資料
【C96】Inga-Do Type-IoT ラズベリーパイドライブレコーダー Ver.1.1説明資料【C96】Inga-Do Type-IoT ラズベリーパイドライブレコーダー Ver.1.1説明資料
【C96】Inga-Do Type-IoT ラズベリーパイドライブレコーダー Ver.1.1説明資料IngaSakimori
 
JavaScriptで簡単IoT! RasPiをインターネットから制御するプラットフォームを作ったよ!
JavaScriptで簡単IoT! RasPiをインターネットから制御するプラットフォームを作ったよ!JavaScriptで簡単IoT! RasPiをインターネットから制御するプラットフォームを作ったよ!
JavaScriptで簡単IoT! RasPiをインターネットから制御するプラットフォームを作ったよ!Masaki Yamamoto
 
GR-KURUMIでミニ四駆をラジコン化
GR-KURUMIでミニ四駆をラジコン化GR-KURUMIでミニ四駆をラジコン化
GR-KURUMIでミニ四駆をラジコン化Bizan Nishimura
 
nfcpy 0.10.0 でハマった話
nfcpy 0.10.0 でハマった話nfcpy 0.10.0 でハマった話
nfcpy 0.10.0 でハマった話Masaki Yamamoto
 
【C95】Raspberry pi zero wを使ったドライブレコーダーの説明資料
【C95】Raspberry pi zero wを使ったドライブレコーダーの説明資料【C95】Raspberry pi zero wを使ったドライブレコーダーの説明資料
【C95】Raspberry pi zero wを使ったドライブレコーダーの説明資料IngaSakimori
 
SAKURAボードでお手軽マルチタスク環境
SAKURAボードでお手軽マルチタスク環境SAKURAボードでお手軽マルチタスク環境
SAKURAボードでお手軽マルチタスク環境Bizan Nishimura
 
ロボット用マイコンボードを 設計してみた
ロボット用マイコンボードを設計してみたロボット用マイコンボードを設計してみた
ロボット用マイコンボードを 設計してみたBizan Nishimura
 
ピコもんのログ収集基板について
ピコもんのログ収集基板についてピコもんのログ収集基板について
ピコもんのログ収集基板についてairtoxin Ishii
 
C#からSORACOMを管理できるようにした話(SoraCommonNet)
C#からSORACOMを管理できるようにした話(SoraCommonNet)C#からSORACOMを管理できるようにした話(SoraCommonNet)
C#からSORACOMを管理できるようにした話(SoraCommonNet)Kei Nakazawa
 
Webな技術でIoT自販機を作って運用している話 -ポケットチェンジでのものづくり-
Webな技術でIoT自販機を作って運用している話 -ポケットチェンジでのものづくり-Webな技術でIoT自販機を作って運用している話 -ポケットチェンジでのものづくり-
Webな技術でIoT自販機を作って運用している話 -ポケットチェンジでのものづくり-Masato Igeta
 
Arduino、Raspberry Pi、PIC 入門以前(NSEG 2014-04-19)
Arduino、Raspberry Pi、PIC 入門以前(NSEG 2014-04-19)Arduino、Raspberry Pi、PIC 入門以前(NSEG 2014-04-19)
Arduino、Raspberry Pi、PIC 入門以前(NSEG 2014-04-19)hiro345
 
楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~
楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~
楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~Hideki Aoshima
 
技術勉強会20150916
技術勉強会20150916技術勉強会20150916
技術勉強会20150916Shugo Numano
 
Action Cableで簡易チャットを作ってみた
Action Cableで簡易チャットを作ってみたAction Cableで簡易チャットを作ってみた
Action Cableで簡易チャットを作ってみたKazuhiro Nishiyama
 
20151219 MT TOKYO 「伝える力」の磨き方 LT
20151219 MT TOKYO 「伝える力」の磨き方 LT20151219 MT TOKYO 「伝える力」の磨き方 LT
20151219 MT TOKYO 「伝える力」の磨き方 LTFujio Suzuki
 
CPythonを読もう
CPythonを読もうCPythonを読もう
CPythonを読もうAkira Nonaka
 

Was ist angesagt? (18)

【C96】Inga-Do Type-IoT ラズベリーパイドライブレコーダー Ver.1.1の説明資料
【C96】Inga-Do Type-IoT ラズベリーパイドライブレコーダー Ver.1.1の説明資料【C96】Inga-Do Type-IoT ラズベリーパイドライブレコーダー Ver.1.1の説明資料
【C96】Inga-Do Type-IoT ラズベリーパイドライブレコーダー Ver.1.1の説明資料
 
【C96】Inga-Do Type-IoT ラズベリーパイドライブレコーダー Ver.1.1説明資料
【C96】Inga-Do Type-IoT ラズベリーパイドライブレコーダー Ver.1.1説明資料【C96】Inga-Do Type-IoT ラズベリーパイドライブレコーダー Ver.1.1説明資料
【C96】Inga-Do Type-IoT ラズベリーパイドライブレコーダー Ver.1.1説明資料
 
JavaScriptで簡単IoT! RasPiをインターネットから制御するプラットフォームを作ったよ!
JavaScriptで簡単IoT! RasPiをインターネットから制御するプラットフォームを作ったよ!JavaScriptで簡単IoT! RasPiをインターネットから制御するプラットフォームを作ったよ!
JavaScriptで簡単IoT! RasPiをインターネットから制御するプラットフォームを作ったよ!
 
GR-KURUMIでミニ四駆をラジコン化
GR-KURUMIでミニ四駆をラジコン化GR-KURUMIでミニ四駆をラジコン化
GR-KURUMIでミニ四駆をラジコン化
 
nfcpy 0.10.0 でハマった話
nfcpy 0.10.0 でハマった話nfcpy 0.10.0 でハマった話
nfcpy 0.10.0 でハマった話
 
IoT ChatOps #IoTLT
IoT ChatOps #IoTLTIoT ChatOps #IoTLT
IoT ChatOps #IoTLT
 
【C95】Raspberry pi zero wを使ったドライブレコーダーの説明資料
【C95】Raspberry pi zero wを使ったドライブレコーダーの説明資料【C95】Raspberry pi zero wを使ったドライブレコーダーの説明資料
【C95】Raspberry pi zero wを使ったドライブレコーダーの説明資料
 
SAKURAボードでお手軽マルチタスク環境
SAKURAボードでお手軽マルチタスク環境SAKURAボードでお手軽マルチタスク環境
SAKURAボードでお手軽マルチタスク環境
 
ロボット用マイコンボードを 設計してみた
ロボット用マイコンボードを設計してみたロボット用マイコンボードを設計してみた
ロボット用マイコンボードを 設計してみた
 
ピコもんのログ収集基板について
ピコもんのログ収集基板についてピコもんのログ収集基板について
ピコもんのログ収集基板について
 
C#からSORACOMを管理できるようにした話(SoraCommonNet)
C#からSORACOMを管理できるようにした話(SoraCommonNet)C#からSORACOMを管理できるようにした話(SoraCommonNet)
C#からSORACOMを管理できるようにした話(SoraCommonNet)
 
Webな技術でIoT自販機を作って運用している話 -ポケットチェンジでのものづくり-
Webな技術でIoT自販機を作って運用している話 -ポケットチェンジでのものづくり-Webな技術でIoT自販機を作って運用している話 -ポケットチェンジでのものづくり-
Webな技術でIoT自販機を作って運用している話 -ポケットチェンジでのものづくり-
 
Arduino、Raspberry Pi、PIC 入門以前(NSEG 2014-04-19)
Arduino、Raspberry Pi、PIC 入門以前(NSEG 2014-04-19)Arduino、Raspberry Pi、PIC 入門以前(NSEG 2014-04-19)
Arduino、Raspberry Pi、PIC 入門以前(NSEG 2014-04-19)
 
楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~
楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~
楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~
 
技術勉強会20150916
技術勉強会20150916技術勉強会20150916
技術勉強会20150916
 
Action Cableで簡易チャットを作ってみた
Action Cableで簡易チャットを作ってみたAction Cableで簡易チャットを作ってみた
Action Cableで簡易チャットを作ってみた
 
20151219 MT TOKYO 「伝える力」の磨き方 LT
20151219 MT TOKYO 「伝える力」の磨き方 LT20151219 MT TOKYO 「伝える力」の磨き方 LT
20151219 MT TOKYO 「伝える力」の磨き方 LT
 
CPythonを読もう
CPythonを読もうCPythonを読もう
CPythonを読もう
 

Ähnlich wie Raspberry pi+mono を使ってlegoを制御

F#で動かすraspberry pi+lego mindstorms
F#で動かすraspberry pi+lego mindstormsF#で動かすraspberry pi+lego mindstorms
F#で動かすraspberry pi+lego mindstormsMasuda Tomoaki
 
Let’s play windows 10 io t on raspberry pi !
Let’s play windows 10 io t on raspberry pi !Let’s play windows 10 io t on raspberry pi !
Let’s play windows 10 io t on raspberry pi !Masuda Tomoaki
 
Windows io t core on raspberry pi meets ロボットアーム
Windows io t core on raspberry pi meets ロボットアームWindows io t core on raspberry pi meets ロボットアーム
Windows io t core on raspberry pi meets ロボットアームMasuda Tomoaki
 
Abc発表資料(2012s)
Abc発表資料(2012s)  Abc発表資料(2012s)
Abc発表資料(2012s) Junichi Katsu
 
Windows IoT Core and Robot Arm
Windows IoT Core and Robot ArmWindows IoT Core and Robot Arm
Windows IoT Core and Robot ArmMasuda Tomoaki
 
Interactive Application using Kinect and Android
Interactive Application using Kinect and AndroidInteractive Application using Kinect and Android
Interactive Application using Kinect and AndroidHirotaka Niisato
 
How to MAKE HVC-C Protyping Application
How to MAKE HVC-C Protyping ApplicationHow to MAKE HVC-C Protyping Application
How to MAKE HVC-C Protyping ApplicationHirotaka Niisato
 
ABC 2012 Spring Robot Summit
ABC 2012 Spring Robot Summit ABC 2012 Spring Robot Summit
ABC 2012 Spring Robot Summit 三七男 山本
 
ソニーのディープラーニングツールで簡単エッジコンピューティング
ソニーのディープラーニングツールで簡単エッジコンピューティングソニーのディープラーニングツールで簡単エッジコンピューティング
ソニーのディープラーニングツールで簡単エッジコンピューティングRyohei Kamiya
 
デブサミ2013 【15-B-2】iOS/Android向け開発をビジュアルに!
デブサミ2013 【15-B-2】iOS/Android向け開発をビジュアルに!デブサミ2013 【15-B-2】iOS/Android向け開発をビジュアルに!
デブサミ2013 【15-B-2】iOS/Android向け開発をビジュアルに!hmimura_embarcadero
 
20110212 Silverlight から Bing Maps に触れる
20110212 Silverlight から Bing Maps に触れる20110212 Silverlight から Bing Maps に触れる
20110212 Silverlight から Bing Maps に触れるKenji Wada
 
Phone gap+javascriptスマホアプリ開発(入門編)
Phone gap+javascriptスマホアプリ開発(入門編)Phone gap+javascriptスマホアプリ開発(入門編)
Phone gap+javascriptスマホアプリ開発(入門編)Monaca
 
Firefox OS カスタム ROM の作成
Firefox OS カスタム ROM の作成Firefox OS カスタム ROM の作成
Firefox OS カスタム ROM の作成Honma Masashi
 
mbedとwindows 8.1
mbedとwindows 8.1mbedとwindows 8.1
mbedとwindows 8.1Nobuaki Aoki
 
ラズパイ × Bluemix IoTハンズオンセミナー
ラズパイ × Bluemix IoTハンズオンセミナーラズパイ × Bluemix IoTハンズオンセミナー
ラズパイ × Bluemix IoTハンズオンセミナーsoftlayerjp
 

Ähnlich wie Raspberry pi+mono を使ってlegoを制御 (20)

F#で動かすraspberry pi+lego mindstorms
F#で動かすraspberry pi+lego mindstormsF#で動かすraspberry pi+lego mindstorms
F#で動かすraspberry pi+lego mindstorms
 
Let’s play windows 10 io t on raspberry pi !
Let’s play windows 10 io t on raspberry pi !Let’s play windows 10 io t on raspberry pi !
Let’s play windows 10 io t on raspberry pi !
 
Windows io t core on raspberry pi meets ロボットアーム
Windows io t core on raspberry pi meets ロボットアームWindows io t core on raspberry pi meets ロボットアーム
Windows io t core on raspberry pi meets ロボットアーム
 
Abc発表資料(2012s)
Abc発表資料(2012s)  Abc発表資料(2012s)
Abc発表資料(2012s)
 
Win IoT on RPi デモ
Win IoT on RPi デモWin IoT on RPi デモ
Win IoT on RPi デモ
 
Windows IoT Core and Robot Arm
Windows IoT Core and Robot ArmWindows IoT Core and Robot Arm
Windows IoT Core and Robot Arm
 
Elekijack 2012
Elekijack 2012Elekijack 2012
Elekijack 2012
 
Interactive Application using Kinect and Android
Interactive Application using Kinect and AndroidInteractive Application using Kinect and Android
Interactive Application using Kinect and Android
 
How to MAKE HVC-C Protyping Application
How to MAKE HVC-C Protyping ApplicationHow to MAKE HVC-C Protyping Application
How to MAKE HVC-C Protyping Application
 
rpi_handson_2
rpi_handson_2rpi_handson_2
rpi_handson_2
 
ABC 2012 Spring Robot Summit
ABC 2012 Spring Robot Summit ABC 2012 Spring Robot Summit
ABC 2012 Spring Robot Summit
 
ソニーのディープラーニングツールで簡単エッジコンピューティング
ソニーのディープラーニングツールで簡単エッジコンピューティングソニーのディープラーニングツールで簡単エッジコンピューティング
ソニーのディープラーニングツールで簡単エッジコンピューティング
 
デブサミ2013 【15-B-2】iOS/Android向け開発をビジュアルに!
デブサミ2013 【15-B-2】iOS/Android向け開発をビジュアルに!デブサミ2013 【15-B-2】iOS/Android向け開発をビジュアルに!
デブサミ2013 【15-B-2】iOS/Android向け開発をビジュアルに!
 
【Web es sense】MultipeerConnectivityについて
【Web es sense】MultipeerConnectivityについて【Web es sense】MultipeerConnectivityについて
【Web es sense】MultipeerConnectivityについて
 
20110212 Silverlight から Bing Maps に触れる
20110212 Silverlight から Bing Maps に触れる20110212 Silverlight から Bing Maps に触れる
20110212 Silverlight から Bing Maps に触れる
 
Hacking Robotics
Hacking RoboticsHacking Robotics
Hacking Robotics
 
Phone gap+javascriptスマホアプリ開発(入門編)
Phone gap+javascriptスマホアプリ開発(入門編)Phone gap+javascriptスマホアプリ開発(入門編)
Phone gap+javascriptスマホアプリ開発(入門編)
 
Firefox OS カスタム ROM の作成
Firefox OS カスタム ROM の作成Firefox OS カスタム ROM の作成
Firefox OS カスタム ROM の作成
 
mbedとwindows 8.1
mbedとwindows 8.1mbedとwindows 8.1
mbedとwindows 8.1
 
ラズパイ × Bluemix IoTハンズオンセミナー
ラズパイ × Bluemix IoTハンズオンセミナーラズパイ × Bluemix IoTハンズオンセミナー
ラズパイ × Bluemix IoTハンズオンセミナー
 

Raspberry pi+mono を使ってlegoを制御