I got the code working when I push the joystick in desired direction, waiting until the robot moves, and releasing the joystick. Now, if I want to hold the joystick in desired direction as long as I want, the robot has a pause in the walking cycle. I want to use do/while loop but how can I do that?
#include <Esplora.h>
int walkflag;
void setup()
{
Serial1.begin(115200);
robotstand01();
delay(500);
}
void loop()
{
if((Esplora.readButton(JOYSTICK_UP)==HIGH) && (Esplora.readButton(JOYSTICK_DOWN)==HIGH) && (Esplora.readButton(JOYSTICK_LEFT)==HIGH) && (Esplora.readButton(JOYSTICK_RIGHT)==HIGH))
{
walkflag = 0;
robotstand01();
}
if((Esplora.readButton(JOYSTICK_UP)==LOW) && (Esplora.readButton(JOYSTICK_DOWN)==HIGH) && (Esplora.readButton(JOYSTICK_LEFT)==HIGH) && (Esplora.readButton(JOYSTICK_RIGHT)==HIGH))
{
walkflag = 1;
robotwalk01();
robotwalk02();
robotwalk03();
robotwalk04();
robotwalk05();
robotwalk06();
robotwalk07();
robotwalk08();
robotwalk09();
}
if((Esplora.readButton(JOYSTICK_UP)==HIGH) && (Esplora.readButton(JOYSTICK_DOWN)==LOW) && (Esplora.readButton(JOYSTICK_LEFT)==HIGH) && (Esplora.readButton(JOYSTICK_RIGHT)==HIGH))
{
walkflag = 2;
robotwalk01();
robotwalk07();
robotwalk06();
robotwalk05();
robotwalk04();
robotwalk03();
robotwalk02();
robotwalk08();
robotwalk09();
}
if((Esplora.readButton(JOYSTICK_UP)==LOW) && (Esplora.readButton(JOYSTICK_DOWN)==HIGH) && (Esplora.readButton(JOYSTICK_LEFT)==LOW) && (Esplora.readButton(JOYSTICK_RIGHT)==HIGH))
{
walkflag = 3;
robotwalk10();
robotwalk11();
robotwalk12();
robotwalk13();
robotwalk14();
robotwalk15();
robotwalk16();
robotwalk17();
robotwalk09();
}
if((Esplora.readButton(JOYSTICK_UP)==LOW) && (Esplora.readButton(JOYSTICK_DOWN)==HIGH) && (Esplora.readButton(JOYSTICK_LEFT)==HIGH) && (Esplora.readButton(JOYSTICK_RIGHT)==LOW))
{
walkflag = 4;
robotwalk18();
robotwalk19();
robotwalk20();
robotwalk21();
robotwalk22();
robotwalk23();
robotwalk24();
robotwalk25();
robotwalk09();
}
if((Esplora.readButton(JOYSTICK_UP)==HIGH) && (Esplora.readButton(JOYSTICK_DOWN)==LOW) && (Esplora.readButton(JOYSTICK_LEFT)==LOW) && (Esplora.readButton(JOYSTICK_RIGHT)==HIGH))
{
walkflag = 5;
robotwalk17();
robotwalk16();
robotwalk15();
robotwalk14();
robotwalk13();
robotwalk12();
robotwalk11();
robotwalk10();
robotwalk09();
}
if((Esplora.readButton(JOYSTICK_UP)==HIGH) && (Esplora.readButton(JOYSTICK_DOWN)==LOW) && (Esplora.readButton(JOYSTICK_LEFT)==HIGH) && (Esplora.readButton(JOYSTICK_RIGHT)==LOW))
{
walkflag = 6;
robotwalk18();
robotwalk24();
robotwalk23();
robotwalk22();
robotwalk21();
robotwalk20();
robotwalk19();
robotwalk18();
robotwalk09();
}
}
void robotstand01()
{
Serial1.print("#0 P1500 T500 \r ");
Serial1.print("#1 P1500 T500 \r ");
Serial1.print("#2 P1500 T500 \r ");
Serial1.print("#4 P1500 T500 \r ");
Serial1.print("#5 P1500 T500 \r ");
Serial1.print("#6 P1500 T500 \r ");
Serial1.print("#8 P1500 T500 \r ");
Serial1.print("#9 P1500 T500 \r ");
Serial1.print("#10 P1500 T500 \r ");
Serial1.print("#16 P1500 T500 \r ");
Serial1.print("#17 P1500 T500 \r ");
Serial1.print("#18 P1500 T500 \r ");
Serial1.print("#20 P1500 T500 \r ");
Serial1.print("#21 P1500 T500 \r ");
Serial1.print("#22 P1500 T500 \r ");
Serial1.print("#24 P1500 T500 \r ");
Serial1.print("#25 P1500 T500 \r ");
Serial1.print("#26 P1500 T500 \r ");
delay(500);
}