3DCG屋さんの活動記録

PROFILE ★★こんな人です

映像制作会社でクリエイティブの修行中。日ごろはMaya&AEを中心にいろんなCGソフトを触りながら、TD寄りの作業が好きで、インタラクティブな体験型空間演出をやりたいと模索中。面白いこと新しいこと大好きな『素直』でいつづける

2017年12月25日月曜日

BlenderGame に ArduinoからSerialでボタン入力! その1


前回から時間が経ったので、まずは復習&確認から


⑴まず、ArduinoでボタンのONOFFチェック(Lチカ=LEDチカチカテスト)
  ・・・サンプルスケッチからテスト。ok。なんて基礎からするんだと、悲しいw
     ※参考




⑵次に、Blenderでpyserialがimportできるかチェック。
  ・・・lenderでpySerialが使える設定が完了
     



⑶次に、Blenderでpython使ったlogicの復習
   ・・・sensor Always,  controller Python,  actuator  Logic
                  実にシンプル





⑷上記の基礎の復習を終えて、ここからが今回の本題!
 Arduinoのボタン入力をSerialに送り、Blenderでpyserialから取得、Cubeを回す

まずは、Arduino、ボタン押したらserial出力するスケッチ↓


//Arduinoでボタン押すとシリアルそうしん &LEDテントウ


const int buttonPin = 2;
const int ledPin = 13;
int buttonState = 0;

void setup(){
  pinMode(buttonPin,INPUT);
  pinMode(ledPin,OUTPUT);
  Serial.begin(9600);
}


void loop(){
  buttonState = digitalRead(buttonPin);
  if (buttonState == HIGH){
    Serial.write("1");
    digitalWrite(ledPin,HIGH);
  }else{
  
    digitalWrite(ledPin,LOW);
  }
  delay(30);
  
}



次に、Blender python で serial通信を受信してfor文を実行するやつ

が、うまくいかず・・・

その前にまずは、pythonの関数を実行するテスト

Aキーを押してる間だけおサルが回転するLogic
のはずが、なぜか回転が止まらない
printはちゃんと押してる間だけ出力されてる。
理由は分からず、、、調べときます!

ちなみにPythonは作成したあと画面下パネルのTextから保存して、読み込んでます。
あと関数は()をつけないとだめ!



ちなみにこちらがpyserial with Blenderの参考



以上、続きは今度。

・Pyserialのreadを含む関数、を呼び出すPython作成










0 コメント:

コメントを投稿