ServVIEW Motor Control LabVIEW

0

Estoy en el proceso de construir un controlador de motor en tiempo real utilizando LabVIEW. Tengo un código IDE de Arduino en funcionamiento, ahora necesito hacer este código en LabVIEW. El Arduino está configurado en Hardware serie con la placa del motor (la placa del motor utiliza stm32 ARM).

Sé que para controlar Arduino a través de la serie, se necesitan LabVIEW VISA y LINX. Así que eso es lo que he usado en mis VIs. Pero por alguna razón, no puedo obtener ninguna respuesta del motor cuando utilicé el VI (ningún error ni nada).

¿Le importaría hacerme saber la forma correcta de enviar los comandos a la placa del motor? Se adjunta el PDF del protocolo de comunicación en serie para la placa del motor, pero no estoy familiarizado con los protocolos de comunicación en serie (encabezados, longitud, byte, dirección, etc.). ¿Me puede dar un ejemplo básico paso a paso de cómo debo enviar estos códigos?

(lo siento, soy nuevo en estas publicaciones seriadas, materiales de comunicación I2C)

Adjunto: Dos LabVIEW VI (ambos no funcionan), Capturas de pantalla de LabVIEW VI, Código IDE de Arduino (funciona bien), un Pdf para el protocolo de comunicación en serie

Muchas gracias! :)

Código Arduino:

#include <LobotServoController.h>

LobotServoController myse(Serial);

void setup() {
  pinMode(13,OUTPUT);
  Serial.begin(9600);
  while(!Serial);
  digitalWrite(13,HIGH);
}

void loop() {

myse.moveServo(1,2500,1000); //move No.1 Servo in 1000ms to 2500 position
delay(2000);
myse.moveServo(1,500,1000); //move No.1 Servo in 1000ms to 500 position
delay(2000);

myse.moveServo(2,2500,1000); //move No.2 Servo in 1000ms to 2500 position
delay(2000);
myse.moveServo(2,500,1000); //move No.2 Servo in 1000ms to 500 position
delay(2000);

//  LobotServo servos[2];   //an array of struct LobotServo
//  servos[0].ID = 1;       //No.1 servo
//  servos[0].Position = 1500;  //1500 position
//  servos[1].ID = 2;       //No.2 servo
//  servos[1].Position = 1500;  //1500 position
//  myse.moveServos(servos,2,1000);  //control 2 servos, action time is 
 1000ms, ID and position are specified by the structure array "servos"
//  delay(2000);
//  
//  servos[0].ID = 1;       //No.1 servo
//  servos[0].Position = 500;  //500 position
//  servos[1].ID = 2;       //No.2 servo
//  servos[1].Position = 500;  //500 position
//  myse.moveServos(servos,2,1000);

myse.moveServo(3,2500,1000); //move No.3 Servo in 1000ms to 2500 position
delay(2000);
myse.moveServo(3,500,1000); //move No.3 Servo in 1000ms to 500 position
delay(2000);

myse.moveServo(4,2500,1000); //move No.4 Servo in 1000ms to 2500 position
delay(2000);
myse.moveServo(4,500,1000); //move No.4 Servo in 1000ms to 500 position
delay(2000);

myse.moveServo(5,2500,1000); //move No.5 Servo in 1000ms to 2500 position
delay(2000);
myse.moveServo(5,500,1000); //move No.5 Servo in 1000ms to 500 position
delay(2000);

LobotServo servos[5];   //an array of struct LobotServo
servos[0].ID = 1;       //No.1 servo
servos[0].Position = 2500;  //2500 position
servos[1].ID = 2;       //No.2 servo
servos[1].Position = 2500;  //2500 position
servos[2].ID = 3;       //No.3 servo
servos[2].Position = 2500;  //2500 position
servos[3].ID = 4;       //No.4 servo
servos[3].Position = 2500;  //2500 position
servos[4].ID = 5;       //No.5 servo
servos[4].Position = 2500;  //2500 position
myse.moveServos(servos,5,1000);  //control 5 servos, action time is 1000ms, 
ID and position are specified by the structure array "servos"
delay(2000);

servos[0].ID = 1;       //No.1 servo
servos[0].Position = 500;  //500 position
servos[1].ID = 2;       //No.2 servo
servos[1].Position = 500;  //500 position
servos[2].ID = 3;       //No.3 servo
servos[2].Position = 500;  //500 position
servos[3].ID = 4;       //No.4 servo
servos[3].Position = 500;  //500 position
servos[4].ID = 5;       //No.5 servo
servos[4].Position = 500;  //500 position
myse.moveServos(servos,5,1000);  //control 5 servos, action time is 1000ms, 
ID and position are specified by the structure array "servos"
delay(2000);

}

Guías:

    
pregunta bagbaggins

0 respuestas

Lea otras preguntas en las etiquetas