Top Banner
Arduino × Unity 2013 4 27 さいたま勉強会 1354日土曜日
56

20130427 さいたま勉強会

Jul 13, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 20130427 さいたま勉強会

Arduino × Unity2013年4月27日

さいたま勉強会

13年5月4日土曜日

Page 2: 20130427 さいたま勉強会

Arduinoとは

13年5月4日土曜日

Page 3: 20130427 さいたま勉強会

イタリア製マイコンチップ入出力ポートを備えた基板、C言語風のArduino言語とそれの統合開発環境から構成されるシステム。Arduino はスタンドアロン型のインタラクティブデバイス開発だけでなく、ホストコンピュータ上のソフトウェア(例えば、Adobe Flash、Processing、Max/MSP、Pure Data、SuperCollider)で制御することもできる。組み立て済みの基板を購入することもできるが、オープンソースハードウェアであり、ハードウェア設計情報のEAGLEファイルは無料で公開されており、誰でも自分の手で Arduino を組み立てることができる。(Wikiより抜粋)

13年5月4日土曜日

Page 4: 20130427 さいたま勉強会

イタリア製マイコンチップ入出力ポートを備えた基板、C言語風のArduino言語とそれの統合開発環境から構成されるシステム。Arduino はスタンドアロン型のインタラクティブデバイス開発だけでなく、ホストコンピュータ上のソフトウェア(例えば、Adobe Flash、Processing、Max/MSP、Pure Data、SuperCollider)で制御することもできる。組み立て済みの基板を購入することもできるが、オープンソースハードウェアであり、ハードウェア設計情報のEAGLEファイルは無料で公開されており、誰でも自分の手で Arduino を組み立てることができる。(Wikiより抜粋)

13年5月4日土曜日

Page 5: 20130427 さいたま勉強会

電源 5V

デジタルIN~OUT (5Vの電流でHIGH、LOW)

アナログIN(入力された電圧に対し、値を返す)

PWM出力(パルス幅変調)

主な入出力

13年5月4日土曜日

Page 6: 20130427 さいたま勉強会

販売中のArduinoArduino UNO3

Arduino mini

Arduino Due

LilyPad Arduino USB

13年5月4日土曜日

Page 7: 20130427 さいたま勉強会

販売中のArduinoArduino UNO3

Arduino mini

Arduino Due

LilyPad Arduino USB

13年5月4日土曜日

Page 8: 20130427 さいたま勉強会

販売中のArduinoArduino UNO3

Arduino mini

Arduino Due

LilyPad Arduino USB

Arduino Esplora New!

13年5月4日土曜日

Page 9: 20130427 さいたま勉強会

送料180円、3000円以上無料

支払いは各種クレジットカード、PayPal、振込、代引き

13年5月4日土曜日

Page 10: 20130427 さいたま勉強会

送料180円、3000円以上無料

支払いは各種クレジットカード、PayPal、振込、代引き

13年5月4日土曜日

Page 11: 20130427 さいたま勉強会

シールド、Gloove

ピン配列を考慮した、カセットのような回路基板。

GROVEは配線済みみの電子パーツがそのまま使用できるシールド。はんだ付け不要。

13年5月4日土曜日

Page 12: 20130427 さいたま勉強会

シールド、Gloove

ピン配列を考慮した、カセットのような回路基板。

GROVEは配線済みみの電子パーツがそのまま使用できるシールド。はんだ付け不要。

13年5月4日土曜日

Page 13: 20130427 さいたま勉強会

Make−Arduino

13年5月4日土曜日

Page 14: 20130427 さいたま勉強会

Arduinoでゲーム用コントローラーを作るハードとソフトをセットにする

13年5月4日土曜日

Page 15: 20130427 さいたま勉強会

ソフト専用コントローラーファミコンであった「ハイパーオリンピック」のような専用コントローラーをArduinoで作る

ゲームの設定のチューニングに外部コントローラーを使用する

13年5月4日土曜日

Page 16: 20130427 さいたま勉強会

ソフト専用コントローラーファミコンであった「ハイパーオリンピック」のような専用コントローラーをArduinoで作る

ゲームの設定のチューニングに外部コントローラーを使用する

13年5月4日土曜日

Page 17: 20130427 さいたま勉強会

市販のコントローラーと連動

WiiヌンチャクをArduinoを介してゲームに使用(I2C)

Kinectをハッキングし連動

13年5月4日土曜日

Page 18: 20130427 さいたま勉強会

市販のコントローラーと連動

WiiヌンチャクをArduinoを介してゲームに使用(I2C)

Kinectをハッキングし連動

13年5月4日土曜日

Page 19: 20130427 さいたま勉強会

ゲーム設定のチューニング用コントローラー

ゲーム内の設定(ジャンプの高さ、動くスピードなど)をゲーム実行中にリアルタイムで設定を変更させる。

13年5月4日土曜日

Page 20: 20130427 さいたま勉強会

Unityとの連動方法(シリアル通信)コントローラーからの信号

13年5月4日土曜日

Page 21: 20130427 さいたま勉強会

Arduino側設定

13年5月4日土曜日

Page 22: 20130427 さいたま勉強会

シリアル通信命令一覧Serial.begin(通信速度)    void setup()に記載。初期化と通信速度設定。

変数 = Serial.read()      受信済みの1バイトを読込む(int型)

Serial.print(データ)      文字列・数値を出力(整数のみ)

Serial.println(データ)  Serial.print+改行

変数 = Serial.available()    バッファ中のバイト数(int型)

Serial.flush()         読み込みバッファのフラッシュ

]

13年5月4日土曜日

Page 23: 20130427 さいたま勉強会

シリアル通信命令一覧Serial.begin(通信速度)    void setup()に記載。初期化と通信速度設定。

変数 = Serial.read()      受信済みの1バイトを読込む(int型)

Serial.print(データ)      文字列・数値を出力(整数のみ)

Serial.println(データ)  Serial.print+改行

変数 = Serial.available()    バッファ中のバイト数(int型)

Serial.flush()         読み込みバッファのフラッシュ

]

13年5月4日土曜日

Page 24: 20130427 さいたま勉強会

シリアル通信命令一覧Serial.begin(通信速度)    void setup()に記載。初期化と通信速度設定。

変数 = Serial.read()      受信済みの1バイトを読込む(int型)

Serial.print(データ)      文字列・数値を出力(整数のみ)

Serial.println(データ)  Serial.print+改行

変数 = Serial.available()    バッファ中のバイト数(int型)

Serial.flush()         読み込みバッファのフラッシュ

]

13年5月4日土曜日

Page 25: 20130427 さいたま勉強会

スケッチサンプルスケッチのAnalog Inputを呼び出す

Serial.beginとSerial.printlnを追記

int sensorPin = A0; //ボリュームint ledPin = 13; //LEDint sensorValue = 0; //ボリュームから読み取った値

void setup() { pinMode(ledPin, OUTPUT); //LEDの出力設定 Serial.begin(9600); //シリアルポート設定

}

void loop() { sensorValue = analogRead(sensorPin); Serial.println(sensorValue); //値を出力 digitalWrite(ledPin, HIGH); delay(sensorValue); digitalWrite(ledPin, LOW); delay(sensorValue); }

13年5月4日土曜日

Page 26: 20130427 さいたま勉強会

スケッチサンプルスケッチのAnalog Inputを呼び出す

Serial.beginとSerial.printlnを追記

int sensorPin = A0; //ボリュームint ledPin = 13; //LEDint sensorValue = 0; //ボリュームから読み取った値

void setup() { pinMode(ledPin, OUTPUT); //LEDの出力設定 Serial.begin(9600); //シリアルポート設定

}

void loop() { sensorValue = analogRead(sensorPin); Serial.println(sensorValue); //値を出力 digitalWrite(ledPin, HIGH); delay(sensorValue); digitalWrite(ledPin, LOW); delay(sensorValue); }

13年5月4日土曜日

Page 27: 20130427 さいたま勉強会

スケッチサンプルスケッチのAnalog Inputを呼び出す

Serial.beginとSerial.printlnを追記

int sensorPin = A0; //ボリュームint ledPin = 13; //LEDint sensorValue = 0; //ボリュームから読み取った値

void setup() { pinMode(ledPin, OUTPUT); //LEDの出力設定 Serial.begin(9600); //シリアルポート設定

}

void loop() { sensorValue = analogRead(sensorPin); Serial.println(sensorValue); //値を出力 digitalWrite(ledPin, HIGH); delay(sensorValue); digitalWrite(ledPin, LOW); delay(sensorValue); }

13年5月4日土曜日

Page 28: 20130427 さいたま勉強会

配線通常のAnalogInputと同様A0とD13ポートを使用

ボリュームのどちらでもいいので、両端のピンを+とーに接続、真ん中のピンをA0に接続

13年5月4日土曜日

Page 29: 20130427 さいたま勉強会

配線通常のAnalogInputと同様A0とD13ポートを使用

ボリュームのどちらでもいいので、両端のピンを+とーに接続、真ん中のピンをA0に接続

13年5月4日土曜日

Page 30: 20130427 さいたま勉強会

書き込んだ後シリアルモニターを起動

IDEの右上、虫眼鏡のボタンをクリック

⇒のような画面が出てきてArduinoからの値が書き出されていく

13年5月4日土曜日

Page 31: 20130427 さいたま勉強会

書き込んだ後シリアルモニターを起動

IDEの右上、虫眼鏡のボタンをクリック

⇒のような画面が出てきてArduinoからの値が書き出されていく

13年5月4日土曜日

Page 32: 20130427 さいたま勉強会

Unity側設定

13年5月4日土曜日

Page 33: 20130427 さいたま勉強会

注意事項C#のSerialPortのイベントハンドラが使えない

シリアルポートにSystem.IO.Portsを使用しているが、Unity標準の.NET 2.0 Subsetには含まれていない

13年5月4日土曜日

Page 34: 20130427 さいたま勉強会

System.IO.Ports設定Edit->Project Settings->Playerを開きます

Optimization- > Api Compatible Levelを .NET 2.0にします

13年5月4日土曜日

Page 35: 20130427 さいたま勉強会

System.IO.Ports設定Edit->Project Settings->Playerを開きます

Optimization- > Api Compatible Levelを .NET 2.0にします

13年5月4日土曜日

Page 36: 20130427 さいたま勉強会

コーディング(C#)

13年5月4日土曜日

Page 37: 20130427 さいたま勉強会

コーディング(C#)

編集中

13年5月4日土曜日

Page 38: 20130427 さいたま勉強会

UniduinoAssettStore

13年5月4日土曜日

Page 39: 20130427 さいたま勉強会

Uniduinoとは

13年5月4日土曜日

Page 40: 20130427 さいたま勉強会

13年5月4日土曜日

Page 41: 20130427 さいたま勉強会

UnityとArduinoを簡単に接続!シリアル値でのやり取りが安定しない中、アセットを介す事で手軽に接続が可能!

名古屋に出現した4D映画館がゲームで再現!

13年5月4日土曜日

Page 42: 20130427 さいたま勉強会

Uniduinoでの利便性

13年5月4日土曜日

Page 43: 20130427 さいたま勉強会

Uniduinoでの利便性Firmataを書き込んでしまうのでArduinoで処理させたい事がオブジェクトの仕様に依存する

既存のArduinoライブラリが使用出来ない

13年5月4日土曜日

Page 44: 20130427 さいたま勉強会

Uniduinoデモ映像

13年5月4日土曜日

Page 45: 20130427 さいたま勉強会

Uniduinoデモ映像

13年5月4日土曜日

Page 46: 20130427 さいたま勉強会

それではUniduino実装ここでもLチカ!

13年5月4日土曜日

Page 47: 20130427 さいたま勉強会

注意事項アセットストアからリソースを全てダウンロード

System.IO.Portsの設定はこちらでも必要

イベントハンドラの問題もあるので、Arduinoへの命令はコルーチンで

コルーチン内でコーディングするので、Arduinoのスケッチとは形式が異なる

ArduinoへはStanderdFirmataを書き込むので、Arduino側で設定したい内容はC#でコーディングが必要。(Arduino標準のライブラリは使えない?)

13年5月4日土曜日

Page 48: 20130427 さいたま勉強会

Uniduinoの設定UniduinoAssett内の、プレハブをヒエラルキーへドラッグ&ドロップ

空のオブジェクトを配置し、C#スクリプト作成の後オブジェクトへ実装

13年5月4日土曜日

Page 49: 20130427 さいたま勉強会

コーディング3行目でUniduinoを使用する宣言

11行目でコルーチンの設定

Arduinoへの命令は18行目以降の内容になります。

13年5月4日土曜日

Page 50: 20130427 さいたま勉強会

実行

通常の実行として、再生ボタンを押します

例によって13番ポートに直結した表面実装のLEDが光りだします

13年5月4日土曜日

Page 51: 20130427 さいたま勉強会

Getting StartedDemo Scene

13年5月4日土曜日

Page 52: 20130427 さいたま勉強会

Getting Started

EDWONで用意されたテスト用シーン

Uniduino⇒UniduinoTestPanel⇒UniduinoTestPanel.unityを開く

実行ボタン押下

13年5月4日土曜日

Page 53: 20130427 さいたま勉強会

Pin設定、配線今回もAnarogInputの配線を使用

アナログ0番ピンでボリュームの値を取得

実行したUniduinoTestPanel画面のD14/A0ピンのANALOG、Analogボタンを押下

取得した値が表示

13年5月4日土曜日

Page 54: 20130427 さいたま勉強会

今後の課題

13年5月4日土曜日

Page 55: 20130427 さいたま勉強会

不安定な部分の検証、利便性向上

シリアルポートの仕様を引き続き調査

Firmataを使用してもArduino側でのライブラリ実装の仕様を確立

画面上からは読み取れない情報をLCDディスプレイに表示

ゲーム内の設定を左右するスイッチ(レースゲームだとブーストなど)を設定しゲーム制作

ゲーム内の環境が肌で感じられるハード制作(4Dゲーム)

13年5月4日土曜日

Page 56: 20130427 さいたま勉強会

ご清聴、有り難うございました!

13年5月4日土曜日