Здравей hunter,
Електрониката и схеми на механиката съм дал по-нагоре. Май остана само сорса да пусна. Иначе ако решиш да си правиш някакъв паяк внимаваи най-много за ЦЕНТЪРА НА ТЕЖЕСТА! При мен идеята беше батериите да са отпред кадето е по-широко и точно заради тежеста ги преместих отзад. Програмата е наи-елементарната. Целта беше колкото да подкара механиката. Ето и кода:
byte lefts=8; //lqvo servo
byte centers=7; //centralno servo
byte rights=9; //dqsno servo
void setup ()
{
pinMode (centers, OUTPUT);
pinMode (lefts, OUTPUT);
pinMode (rights, OUTPUT);
servomove(lefts,57);
servomove(centers,90);
servomove(rights,90);
}
void servomove(byte s, byte a) //s - servo, a - angle
{
int pulseWidth;
pulseWidth = (a * 10) + 600;
for (byte i=0; i<20; i++)
{
digitalWrite (s, HIGH);
delayMicroseconds (pulseWidth);
digitalWrite (s, LOW);
delay(20);
}
}
int forward()
{
servomove(centers,120);
servomove(lefts,37);
servomove(centers,60);
servomove(rights,110);
servomove(centers,90);
servomove(lefts,77);
servomove(rights,70);
return 0;
}
int backward()
{
servomove(centers,120);
servomove(lefts,77);
servomove(centers,60);
servomove(rights,70);
servomove(centers,90);
servomove(lefts,37);
servomove(rights,110);
return 0;
}
int left()
{
servomove(centers,120);
servomove(lefts,77);
servomove(centers,60);
servomove(rights,110);
servomove(centers,90);
servomove(lefts,37);
servomove(rights,70);
return 0;
}
int right()
{
servomove(centers,120);
servomove(lefts,37);
servomove(centers,60);
servomove(rights,70);
servomove(centers,90);
servomove(lefts,77);
servomove(rights,110);
return 0;
}
void loop ()
{
for (int a=0; a<10; a++)
{
forward();
}
left();
left();
left();
for (int a=0; a<10; a++)
{
forward();
}
right();
right();
right();
}