Mit Unity einen Servo ansteuern


hey-ho,

ich sitze schon seid vielen stunden daran: von unity aus daten arduino zu schicken. arduino erkennt auch, dass da kommt, kann die zeichen aber nicht unterscheiden.

board: esp32

unity:
code: [select]
using system.collections;
using system.collections.generic;
using unityengine;
using system.io.ports;

public class controller : monobehaviour {

    bool b = true;
    public static serialport sp = new serialport("com4", 9600);

    void start() {
        openconnection();

    }

    private void update() {
        vector3 pos = this.transform.position;
     
        print(pos);

        if(pos.x>0.8 && pos.x < 1.3) {           
            print("1");
            sp.write("1"); 
          }

        else {         
            print("2");
            sp.write("2");         
        }
    }
    public steamvr_controller.device controller
    {
        get
        {
            return steamvr_controller.input((int)getcomponent<steamvr_trackedobject>().index);
        }
    }

    public void openconnection() {
        if (sp != null) {
            if (sp.isopen) {
                sp.close();
                print("com-port schliessen, weil er bereits geoeffnet war!");
            } else {
                sp.open(); // com-port verbindung öffnen
                sp.readtimeout = 1;
                  print("com-port geoeffnet!");
            }
        } else {
            if (sp.isopen)
                print("com-port ist bereits geoeffnet!");
            else
                print("port == null");
        }
    }
}


arduino:
code: [select]
#include <esp32_servo.h>

int fromunity = 0;
static const int servopin = 23;
servo myservo;

void setup() {
    serial.begin(9600);
    myservo.attach(servopin);
}

void loop() {
 
  fromunity = serial.read();
   
  if (serial.available() > 0){
   
    switch (fromunity){
      case 1:
        myservo.write(180);
        delay(500);   
      break;
    case 2:
      myservo.write(10);
      delay(500);
    break;
   }
  }
}


hat jemand eine idee, wie das funktionieren könnte?

hey-ho,

ich sitze schon seid stunden dran: unity mit arduino zu verbinden. arduino empfängt zwar daten, kann aber nicht erkennen ob es eine "a" oder ein "b" ist.

arduino:
code: [select]
#include <esp32_servo.h>

int fromunity = 0;
static const int servopin = 23;
servo myservo;

void setup() {
    serial.begin(9600);
    myservo.attach(servopin);
}

void loop() {
 
  fromunity = serial.read();
   
  if (serial.available() > 0){
   
    switch (fromunity){
      case 1:
        myservo.write(180);
        delay(500);   
      break;
    case 2:
      myservo.write(10);
      delay(500);
    break;
   }
  }
}



unity:
code: [select]
using system.collections;
using system.collections.generic;
using unityengine;
using system.io.ports;

public class controller : monobehaviour {

    bool b = true;
    public static serialport sp = new serialport("com4", 9600);

    void start() {
        openconnection();

    }

    private void update() {
        vector3 pos = this.transform.position;
     
        print(pos);

        if(pos.x>0.8 && pos.x < 1.3) {           
            print("1");
            sp.write("1"); 
          }

        else {         
            print("2");
            sp.write("2");         
        }
    }
    public steamvr_controller.device controller
    {
        get
        {
            return steamvr_controller.input((int)getcomponent<steamvr_trackedobject>().index);
        }
    }

    public void openconnection() {
        if (sp != null) {
            if (sp.isopen) {
                sp.close();
                print("com-port schliessen, weil er bereits geoeffnet war!");
            } else {
                sp.open(); // com-port verbindung öffnen
                sp.readtimeout = 1;
                  print("com-port geoeffnet!");
            }
        } else {
            if (sp.isopen)
                print("com-port ist bereits geoeffnet!");
            else
                print("port == null");
        }
    }
}


hat jemand irgendeine idee, woran das liegen könnte?


Arduino Forum > International > Deutsch (Moderator: uwefed) > Mit Unity einen Servo ansteuern


arduino

Comments

Popular posts from this blog

Error compiling for board Arduino/Genuino Uno.

Installation database is corrupt

esp8266 (nodemcu 0.9) client.write très lent ???