Arduino - Brazo robotico con 4 servos

 
Vista:
sin imagen de perfil
Val: 1
Ha aumentado su posición en 9 puestos en Arduino (en relación al último mes)
Gráfica de Arduino

Brazo robotico con 4 servos

Publicado por Sergio (1 intervención) el 21/11/2018 04:17:10
Hola a todos espero que me puedan ayudar compre una maqueta de un brazo robotico controlado con 4 servos, tengo que hacer que funcione por bluetooth con la app desde mi celular.

Hice el programa hago las conexiones como deberían de estar pero al momento de probarlo mi brazo robotico empieza a moverse por cuenta sola, empieza a temblar y se va a cualquier dirección menos a donde yo le pido cuando estoy dentro de la app y le doy indicaciones no las sigue como yo quiero, he comprobado el programa y no encuentro errores, tambien revise las conexciones y veo que todo esta bien, tambien lo alimente con una bateria de 9V conectado al arduino y nada, espero que puedan ayudarme les adjunto el codigo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#include 
<Servo.h>
 
Servo servo1;
Servo servo2;
Servo servo3;
Servo servo4;
char a;
String readString;
void setup() {
  pinMode(13,OUTPUT);
  servo1.attach(8);
  servo2.attach(9);
  servo3.attach(10);
  servo4.attach(11);
  Serial.begin(9600);
servo1.write(8);
servo2.write(100);
servo3.write(164);
servo4.write(90);
delay(10);
}
 
void loop() {
 if (Serial.available()) {
    a = Serial.read();
 
    if(a=='A'){
      motor1();
    }
 
    if(a=='B'){
      motor2();
    }
 
    if(a=='C'){
      motor3();
    }
     if(a=='D'){
      motor4();
    }
     if(a=='E'){
     digitalWrite(13,HIGH);
     delay(10);
    }
      if(a=='F'){
     digitalWrite(13,LOW);
     delay(10);
    }
  }
}
 
void motor1(){
        delay(10);
        while (Serial.available()) {
 
          char b = Serial.read();
          readString += b;
        }
        if (readString.length() >0) {
          Serial.println(readString.toInt());
          servo1.write(readString.toInt());
          readString=""; // Clear string
        }
}
 
void motor2(){
        delay(10);
        while (Serial.available()) {
          char b = Serial.read();
          readString += b;
        }
        if (readString.length() >0) {
          Serial.println(readString.toInt());
          servo2.write(readString.toInt());
          readString="";
        }
}
 
void motor3(){
        delay(10);
        while (Serial.available()) {
          char b = Serial.read();
          readString += b;
        }
        if (readString.length() >0) {
          Serial.println(readString.toInt());
          servo3.write(readString.toInt());
          readString="";
        }
}
void motor4(){
        delay(10);
        while (Serial.available()) {
          char b = Serial.read();
          readString += b;
        }
        if (readString.length() >0) {
          Serial.println(readString.toInt());
          servo4.write(readString.toInt());
          readString="";
        }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 40
Ha mantenido su posición en Arduino (en relación al último mes)
Gráfica de Arduino

Brazo robotico con 4 servos

Publicado por foroplus (18 intervenciones) el 21/11/2018 21:48:00
En este caso la programación ya es un poco compleja y por los datos que das, parece que no se sabe en qué sistema o parte de la programación podría estar el problema.
Así las cosas, yo te recomendaría que vayas haciendo pruebas de partes más simples del programa hasta que veas donde está el problema, para después meterle mano y solucionarlo.
¿puede ser que la aplicacion android que no envíe las cadenas correctas de ordenes?
¿puede ser en la programación del sistema serial bluetooth?que por cierto no la veo. Entiendo que te refieres a que conectas el tlf por bluetooth y desde ahí das las órdenes. Solo veo la programacion del puerto serie normal.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Brazo robotico con 4 servos

Publicado por sergio Carrillo (1 intervención) el 22/08/2019 18:45:05
amigo lo mas probable es q tiene que darle al brazo un punto de referencia para q parta de un cero en posición y hacerle una matriz de la cinemática q maneja en este caso podría darle unas medidas en longitud para q le genere un angulo en su posición y guardar estas posiciones en diferentes direcciones de memoria en la eeprom del arduino o en sus bancos de memoria creando asi una trayectoria o bueno un movimiento
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar