#include <ESP32Servo.h>
#include "deneyap.h"
#define swpin D9
#define X_pin A0
#define Y_pin A1
#define LEFTLEG D12
#define RIGHTLEG D13
#define LEFTFOOT D14
#define RIGHTFOOT D15
#define MAX_DISTANCE 200
Servo Lleg;
Servo Rleg;
Servo Lfoot;
Servo Rfoot;
int v1, v2;
int jystp=20;
int RLcenter = 100;
int RFcenter = 65;
int join1[50];
int join2[50];
int LLcenter = 90;
int LFcenter = 75;
int tAngle = 30;
int uAngle = 35;
int sAngle = 35;
void setup() {
Lleg.attach(LEFTLEG);
Rleg.attach(RIGHTLEG);
Lfoot.attach(LEFTFOOT);
Rfoot.attach(RIGHTFOOT);
pinMode(swpin, INPUT_PULLUP);
pinMode(X_pin,INPUT);
pinMode(Y_pin,INPUT);
}
void Forward(byte Steps, byte Speed){
TiltRightUp(tAngle, Speed);
for (byte j=0; jystp; ++j){
SwingRight(sAngle, Speed);
TiltRightDown(tAngle, Speed);
TiltLeftUp(tAngle, Speed);
SwingRcenter(sAngle, Speed);
SwingLeft(sAngle, Speed);
TiltLeftDown(tAngle, Speed);
TiltRightUp(tAngle, Speed);
SwingLcenter(sAngle, Speed);
}
TiltRightDown(tAngle, Speed);
}
void TurnLeft(byte Steps, byte Speed){
TiltLeftUp(uAngle, Speed);
delay(20);
for (byte j=0; jystp; ++j){
LeftLegIn(sAngle, Speed);
TiltLeftDown(uAngle, Speed);
TiltRightUp(uAngle, Speed);
delay(20);
LeftLegIcenter(sAngle, Speed);
RightLegOut(sAngle, Speed);
TiltRightDown(uAngle, Speed);
TiltLeftUp(uAngle, Speed);
delay(20);
RightLegOcenter(sAngle, Speed);
}
TiltLeftDown(uAngle, Speed);
}
void TurnRight(byte Stps, byte Speed){
TiltRightUp(uAngle, Speed);
delay(20);
for (byte f=0; f=Stps; ++f){
RightLegIn(sAngle, Speed);
TiltRightDown(uAngle, Speed);
TiltLeftUp(uAngle, Speed);
delay(20);
RightLegIcenter(sAngle, Speed);
LeftLegOut(sAngle, Speed);
TiltLeftDown(uAngle, Speed);
TiltRightUp(uAngle, Speed);
delay(20);
LeftLegOcenter(sAngle, Speed);
}
TiltRightDown(uAngle, Speed);
}
void TiltRightUp(byte ang, byte sp){
tilt right up
for (int i=0; i=ang; i+=5){
Lfoot.write(LFcenter+i);
Rfoot.write(RFcenter+i);
delay(sp);
}
}
void TiltRightDown(byte ang, byte sp){
tilt right down
for (int i=ang; i0; i-=5){
Lfoot.write(LFcenter+i);
Rfoot.write(RFcenter+i);
delay(sp);
}
}
void TiltLeftUp(byte ang, byte sp){
tilt left up
for (int i=0; i=ang; i+=5){
Lfoot.write(LFcenter-i);
Rfoot.write(RFcenter-i);
delay(sp);
}
}
void TiltLeftDown(byte ang, byte sp){
tilt left down
for (int i=ang; i0; i-=5){
Lfoot.write(LFcenter-i);
Rfoot.write(RFcenter-i);
delay(sp);
}
}
void LeftFootUp(char ang, byte sp){
tilt left up ;
for (int i=0; i=ang; i+=5){
Lfoot.write(LFcenter-i);
delay(sp);
}
}
void LeftFootDown(byte ang, byte sp){
tilt left down ;
for (int i=ang; i0; i-=5){
Lfoot.write(LFcenter-i);
delay(sp);
}
}
void RightFootDown(byte ang, byte sp){
tilt right down ;
for (int i=ang; i0; i-=5){
Rfoot.write(RFcenter+i);
delay(sp);
}
}
void RightFootUp(byte ang, byte sp){
tilt right up ;
for (int i=0; i=ang; i+=5){
Rfoot.write(RFcenter+i);
delay(sp);
}
}
void SwingRight(byte ang, byte sp){
swing right ;
for (int i=0; i=ang; i+=5){
Lleg.write(LLcenter-i);
Rleg.write(RLcenter-i);
delay(sp);
}
}
void SwingRcenter(byte ang, byte sp){
swing r-center ;
for (int i=ang; i0; i-=5){
Lleg.write(LLcenter-i);
Rleg.write(RLcenter-i);
delay(sp);
}
}
void SwingLeft(byte ang, byte sp){
swing left ;
for (byte i=0; i=ang; i=i+5){
Lleg.write(LLcenter+i);
Rleg.write(RLcenter+i);
delay(sp);
}
}
void SwingLcenter(byte ang, byte sp){
swing l-center ;
for (byte i=ang; i0; i=i-5){
Lleg.write(LLcenter+i);
Rleg.write(RLcenter+i);
delay(sp);
}
}
void RightLegIn(byte ang, byte sp){
swing right ;
for (int i=0; i=ang; i+=5){
Rleg.write(RLcenter-i);
delay(sp);
}
}
void RightLegIcenter(byte ang, byte sp){
swing r-center ;
for (int i=ang; i0; i-=5){
Rleg.write(RLcenter-i);
delay(sp);
}
}
void RightLegOut(byte ang, byte sp){
swing right ;
for (int i=0; i=ang; i+=5){
Rleg.write(RLcenter+i);
delay(sp);
}
}
void RightLegOcenter(byte ang, byte sp){
swing r-center ;
for (int i=ang; i0; i-=5){
Rleg.write(RLcenter+i);
delay(sp);
}
}
void LeftLegIn(byte ang, byte sp){
swing left ;
for (byte i=0; i=ang; i=i+5){
Lleg.write(LLcenter+i);
delay(sp);
}
}
void LeftLegIcenter(byte ang, byte sp){
swing l-center ;
for (byte i=ang; i0; i=i-5){
Lleg.write(LLcenter+i);
delay(sp);
}
}
void LeftLegOcenter(byte ang, byte sp){
for (byte i=ang; i0; i=i-5){
Lleg.write(LLcenter-i);
delay(sp);
}
}
void LeftLegOut(byte ang, byte sp){
swing left ;
for (byte i=0; i=ang; i=i+5){
Lleg.write(LLcenter-i);
delay(sp);
}
}
void loop() {
unsigned int cmCenter = MAX_DISTANCE;
unsigned int cmLeft = MAX_DISTANCE;
unsigned int cmRight = MAX_DISTANCE;
v1=analogRead(X_pin);
v2=analogRead(Y_pin);
if (v13000 && 15003000) 1500+=jystp;
if (v11000 && 15000) 1500-=jystp;
if (v11000 && 15000) 1500-=jystp;
if (v13000 && 15003000) 1500+=jystp;
if (v21000 && 20000) 2000-=jystp;
if (v23000 && 20003000) 2000+=jystp;
if (v21000 && 20000) 2000-=jystp;
if (v23000 && 20003000) 2000=2000+20;
} loop()
void CenterServos() {
Lleg.write(LLcenter); tell servo to go to position in variable 'center'
Rleg.write(RLcenter); tell servo to go to position in variable 'center'
Lfoot.write(LFcenter); tell servo to go to position in variable 'center'
Rfoot.write(RFcenter); tell servo to go to position in variable 'center'
delay(1000); waits 100ms for the servos to reach the position
} CenterServos()
yardım edermisiniz
hatalarımı bana söylerimsiniz bu kod yürüyen 4 servolu bir robotun deneyap karta
joystick ile kontrolu sağlanmasına uyarlanmaya çalışılmış haldir ben yapmaya çalıştım