Hola amigos!
Estoy haciendo un proyecto de robotica, por lo que vi con arduino parecia ser mas fácil ya que necesito mover 6 servomotores, por lo cual me aventure a usar arduino Mega 2650 y estoy aprendiendo a programar, sin embargo tengo un problema, ya que eh podido mover los servos con for, pero no pude hacerlo con 4 servos a la vez(que es lo que necesito para que camine), asi que lo hice con if, y usando do while, de lo cual logre que el bipedo diera el primer paso, movimiento de los dos servos de los pies y luego los servos de las rodillas y caderas.
El problema es que no puedo salir del do while para seguir programando y asi camine el robot :/
Ojala me puedan ayudar, muchas gracias!
el robot bipedo ya esta armado y listo para moverse. De hecho lo eh hecho caminar, pero queda inestable ya que use servo.write(grado) por lo que arduino determina la velocidad y el robot necesita caminar con menos velocidad.///
nota:no pude subir imagenes, lo hare mas adelante ya que no me lo permite el foro. ...
Estoy haciendo un proyecto de robotica, por lo que vi con arduino parecia ser mas fácil ya que necesito mover 6 servomotores, por lo cual me aventure a usar arduino Mega 2650 y estoy aprendiendo a programar, sin embargo tengo un problema, ya que eh podido mover los servos con for, pero no pude hacerlo con 4 servos a la vez(que es lo que necesito para que camine), asi que lo hice con if, y usando do while, de lo cual logre que el bipedo diera el primer paso, movimiento de los dos servos de los pies y luego los servos de las rodillas y caderas.
El problema es que no puedo salir del do while para seguir programando y asi camine el robot :/
Ojala me puedan ayudar, muchas gracias!
Código:
#include <Servo.h>
Servo pieizq;Servo pieder;Servo rodillaizq;Servo rodillader;Servo caderaizq;Servo caderader;
int uno=90;int dos=90;int tres=90;int cuatro=96;int cinco=95;int seis=86;
void setup(){
pieizq.attach(2); pieder.attach(3); rodillaizq.attach(7); rodillader.attach(5); caderaizq.attach(6); caderader.attach(4);
pieizq.write(90); pieder.write(90); rodillaizq.write(90); rodillader.write(96); caderaizq.write(95); caderader.write(86);//posicion del robot para que quede parado derecho
}
void loop(){
if(uno>70){
do{
if(uno<=100){pieizq.write(uno);delay(30);uno++;}//movimiento de pie
if(dos<=120){pieder.write(dos);delay(30);dos++;}//movimiento de pie
}
while(dos<121);
if(tres>70){rodillaizq.write(tres);delay(10);tres--;}
if(cuatro>76){rodillader.write(cuatro);delay(10);cuatro--;}
if(cinco>75){caderaizq.write(cinco);delay(10);cinco--;}
if(seis>66){caderader.write(seis);delay(10);seis--;}
}
}
/////
el robot bipedo ya esta armado y listo para moverse. De hecho lo eh hecho caminar, pero queda inestable ya que use servo.write(grado) por lo que arduino determina la velocidad y el robot necesita caminar con menos velocidad.///
nota:no pude subir imagenes, lo hare mas adelante ya que no me lo permite el foro. ...
Adjuntos
Última edición por un moderador: