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:
arduino:
hat jemand eine idee, wie das funktionieren könnte?
 							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:
unity:
hat jemand irgendeine idee, woran das liegen könnte?
 							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
Post a Comment