20130427 さいたま勉強会

2,880 views
2,814 views

Published on

0 Comments
7 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,880
On SlideShare
0
From Embeds
0
Number of Embeds
170
Actions
Shares
0
Downloads
6
Comments
0
Likes
7
Embeds 0
No embeds

No notes for slide

20130427 さいたま勉強会

  1. 1. Arduino × Unity2013年4月27日さいたま勉強会13年5月4日土曜日
  2. 2. Arduinoとは13年5月4日土曜日
  3. 3. イタリア製マイコンチップ入出力ポートを備えた基板、C言語風のArduino言語とそれの統合開発環境から構成されるシステム。Arduino はスタンドアロン型のインタラクティブデバイス開発だけでなく、ホストコンピュータ上のソフトウェア(例えば、Adobe Flash、Processing、Max/MSP、Pure Data、SuperCollider)で制御することもできる。組み立て済みの基板を購入することもできるが、オープンソースハードウェアであり、ハードウェア設計情報のEAGLEファイルは無料で公開されており、誰でも自分の手で Arduino を組み立てることができる。(Wikiより抜粋)13年5月4日土曜日
  4. 4. イタリア製マイコンチップ入出力ポートを備えた基板、C言語風のArduino言語とそれの統合開発環境から構成されるシステム。Arduino はスタンドアロン型のインタラクティブデバイス開発だけでなく、ホストコンピュータ上のソフトウェア(例えば、Adobe Flash、Processing、Max/MSP、Pure Data、SuperCollider)で制御することもできる。組み立て済みの基板を購入することもできるが、オープンソースハードウェアであり、ハードウェア設計情報のEAGLEファイルは無料で公開されており、誰でも自分の手で Arduino を組み立てることができる。(Wikiより抜粋)13年5月4日土曜日
  5. 5. 電源 5VデジタルIN∼OUT (5Vの電流でHIGH、LOW)アナログIN(入力された電圧に対し、値を返す)PWM出力(パルス幅変調)主な入出力13年5月4日土曜日
  6. 6. 販売中のArduinoArduino UNO3Arduino miniArduino DueLilyPad Arduino USB13年5月4日土曜日
  7. 7. 販売中のArduinoArduino UNO3Arduino miniArduino DueLilyPad Arduino USB13年5月4日土曜日
  8. 8. 販売中のArduinoArduino UNO3Arduino miniArduino DueLilyPad Arduino USBArduino Esplora New!13年5月4日土曜日
  9. 9. 送料180円、3000円以上無料支払いは各種クレジットカード、PayPal、振込、代引き13年5月4日土曜日
  10. 10. 送料180円、3000円以上無料支払いは各種クレジットカード、PayPal、振込、代引き13年5月4日土曜日
  11. 11. シールド、Glooveピン配列を考慮した、カセットのような回路基板。GROVEは配線済みみの電子パーツがそのまま使用できるシールド。はんだ付け不要。13年5月4日土曜日
  12. 12. シールド、Glooveピン配列を考慮した、カセットのような回路基板。GROVEは配線済みみの電子パーツがそのまま使用できるシールド。はんだ付け不要。13年5月4日土曜日
  13. 13. Make−Arduino13年5月4日土曜日
  14. 14. Arduinoでゲーム用コントローラーを作るハードとソフトをセットにする13年5月4日土曜日
  15. 15. ソフト専用コントローラーファミコンであった「ハイパーオリンピック」のような専用コントローラーをArduinoで作るゲームの設定のチューニングに外部コントローラーを使用する13年5月4日土曜日
  16. 16. ソフト専用コントローラーファミコンであった「ハイパーオリンピック」のような専用コントローラーをArduinoで作るゲームの設定のチューニングに外部コントローラーを使用する13年5月4日土曜日
  17. 17. 市販のコントローラーと連動WiiヌンチャクをArduinoを介してゲームに使用(I2C)Kinectをハッキングし連動13年5月4日土曜日
  18. 18. 市販のコントローラーと連動WiiヌンチャクをArduinoを介してゲームに使用(I2C)Kinectをハッキングし連動13年5月4日土曜日
  19. 19. ゲーム設定のチューニング用コントローラーゲーム内の設定(ジャンプの高さ、動くスピードなど)をゲーム実行中にリアルタイムで設定を変更させる。13年5月4日土曜日
  20. 20. Unityとの連動方法(シリアル通信)コントローラーからの信号13年5月4日土曜日
  21. 21. Arduino側設定13年5月4日土曜日
  22. 22. シリアル通信命令一覧Serial.begin(通信速度)    void setup()に記載。初期化と通信速度設定。変数 = Serial.read()      受信済みの1バイトを読込む(int型)Serial.print(データ)      文字列・数値を出力(整数のみ)Serial.println(データ)  Serial.print+改行変数 = Serial.available()    バッファ中のバイト数(int型)Serial.flush()         読み込みバッファのフラッシュ]13年5月4日土曜日
  23. 23. シリアル通信命令一覧Serial.begin(通信速度)    void setup()に記載。初期化と通信速度設定。変数 = Serial.read()      受信済みの1バイトを読込む(int型)Serial.print(データ)      文字列・数値を出力(整数のみ)Serial.println(データ)  Serial.print+改行変数 = Serial.available()    バッファ中のバイト数(int型)Serial.flush()         読み込みバッファのフラッシュ]13年5月4日土曜日
  24. 24. シリアル通信命令一覧Serial.begin(通信速度)    void setup()に記載。初期化と通信速度設定。変数 = Serial.read()      受信済みの1バイトを読込む(int型)Serial.print(データ)      文字列・数値を出力(整数のみ)Serial.println(データ)  Serial.print+改行変数 = Serial.available()    バッファ中のバイト数(int型)Serial.flush()         読み込みバッファのフラッシュ]13年5月4日土曜日
  25. 25. スケッチサンプルスケッチの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日土曜日
  26. 26. スケッチサンプルスケッチの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日土曜日
  27. 27. スケッチサンプルスケッチの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日土曜日
  28. 28. 配線通常のAnalogInputと同様A0とD13ポートを使用ボリュームのどちらでもいいので、両端のピンを+とーに接続、真ん中のピンをA0に接続13年5月4日土曜日
  29. 29. 配線通常のAnalogInputと同様A0とD13ポートを使用ボリュームのどちらでもいいので、両端のピンを+とーに接続、真ん中のピンをA0に接続13年5月4日土曜日
  30. 30. 書き込んだ後シリアルモニターを起動IDEの右上、虫眼鏡のボタンをクリックのような画面が出てきてArduinoからの値が書き出されていく13年5月4日土曜日
  31. 31. 書き込んだ後シリアルモニターを起動IDEの右上、虫眼鏡のボタンをクリックのような画面が出てきてArduinoからの値が書き出されていく13年5月4日土曜日
  32. 32. Unity側設定13年5月4日土曜日
  33. 33. 注意事項C#のSerialPortのイベントハンドラが使えないシリアルポートにSystem.IO.Portsを使用しているが、Unity標準の.NET 2.0 Subsetには含まれていない13年5月4日土曜日
  34. 34. System.IO.Ports設定Edit->Project Settings->Playerを開きますOptimization- > Api Compatible Levelを .NET 2.0にします13年5月4日土曜日
  35. 35. System.IO.Ports設定Edit->Project Settings->Playerを開きますOptimization- > Api Compatible Levelを .NET 2.0にします13年5月4日土曜日
  36. 36. コーディング(C#)13年5月4日土曜日
  37. 37. コーディング(C#)編集中13年5月4日土曜日
  38. 38. UniduinoAssettStore13年5月4日土曜日
  39. 39. Uniduinoとは13年5月4日土曜日
  40. 40. 13年5月4日土曜日
  41. 41. UnityとArduinoを簡単に接続!シリアル値でのやり取りが安定しない中、アセットを介す事で手軽に接続が可能!名古屋に出現した4D映画館がゲームで再現!13年5月4日土曜日
  42. 42. Uniduinoでの利便性13年5月4日土曜日
  43. 43. Uniduinoでの利便性Firmataを書き込んでしまうのでArduinoで処理させたい事がオブジェクトの仕様に依存する既存のArduinoライブラリが使用出来ない13年5月4日土曜日
  44. 44. Uniduinoデモ映像13年5月4日土曜日
  45. 45. Uniduinoデモ映像13年5月4日土曜日
  46. 46. それではUniduino実装ここでもLチカ!13年5月4日土曜日
  47. 47. 注意事項アセットストアからリソースを全てダウンロードSystem.IO.Portsの設定はこちらでも必要イベントハンドラの問題もあるので、Arduinoへの命令はコルーチンでコルーチン内でコーディングするので、Arduinoのスケッチとは形式が異なるArduinoへはStanderdFirmataを書き込むので、Arduino側で設定したい内容はC#でコーディングが必要。(Arduino標準のライブラリは使えない?)13年5月4日土曜日
  48. 48. Uniduinoの設定UniduinoAssett内の、プレハブをヒエラルキーへドラッグ&ドロップ空のオブジェクトを配置し、C#スクリプト作成の後オブジェクトへ実装13年5月4日土曜日
  49. 49. コーディング3行目でUniduinoを使用する宣言11行目でコルーチンの設定Arduinoへの命令は18行目以降の内容になります。13年5月4日土曜日
  50. 50. 実行通常の実行として、再生ボタンを押します例によって13番ポートに直結した表面実装のLEDが光りだします13年5月4日土曜日
  51. 51. Getting StartedDemo Scene13年5月4日土曜日
  52. 52. Getting StartedEDWONで用意されたテスト用シーンUniduino UniduinoTestPanel UniduinoTestPanel.unityを開く実行ボタン押下13年5月4日土曜日
  53. 53. Pin設定、配線今回もAnarogInputの配線を使用アナログ0番ピンでボリュームの値を取得実行したUniduinoTestPanel画面のD14/A0ピンのANALOG、Analogボタンを押下取得した値が表示13年5月4日土曜日
  54. 54. 今後の課題13年5月4日土曜日
  55. 55. 不安定な部分の検証、利便性向上シリアルポートの仕様を引き続き調査Firmataを使用してもArduino側でのライブラリ実装の仕様を確立画面上からは読み取れない情報をLCDディスプレイに表示ゲーム内の設定を左右するスイッチ(レースゲームだとブーストなど)を設定しゲーム制作ゲーム内の環境が肌で感じられるハード制作(4Dゲーム)13年5月4日土曜日
  56. 56. ご清聴、有り難うございました!13年5月4日土曜日

×