Mechanical simulations: for wheel assembly bracket.
For 1.5mm stainless steel plate
For 1mm thick stainless steel plate
For 1.5mm stainless steel
By comparing the factor of safeties 1.5 mm plate is sufficient for the application.
Circuit Diagram:
ARDUINO Code:
#include <Servo.h>
#define lmf 3
#define lmb 5
#define rmf 6
#define rmb 11
const int s1 = A0;
const int s2 = A1;
Servo s, t;
int d,s1v,s2v,r=1;
void setup() {
pinMode(lmf, OUTPUT);
pinMode(lmb, OUTPUT);
pinMode(rmf, OUTPUT);
pinMode(rmb, OUTPUT);
pinMode(s1, INPUT);
pinMode(s2, INPUT);
s.attach(9);
t.attach(10);
Serial.begin(9600);
}
void loop() {
Read();
if(s1v>300 && s2v<300 && r%2!=0)
{
while(true)
{
right();
delay(10);
Read();
if(s1v>300 && s2v>300){
stp();
break;}
}
}
if(s1v>300 && s2v>300)
{
if(r%2!=0)
{right();
delay(250);}
if(r%2==0)
{left();
delay(250);
}
while(true)
{
foreward();
delay(10);
Read();
if(s1v>300 && s2v<300){
foreward();
delay(100);
stp();
r=r+1;
break;}
}
}
if(s1v>300 && s2v<300 && r%2==0)
{
while(true)
{
left();
delay(10);
Read();
if(s1v>300 && s2v>300){
stp();
break;}
}
}
}
void foreward()
{
s.write(0);
t.write(180);
delay(500);
digitalWrite(lmf, HIGH);
digitalWrite(rmf, HIGH);
digitalWrite(lmb, LOW);
digitalWrite(rmb, LOW);
Serial.println("foreward");
}
void right()
{
s.write(90);
t.write(90);
delay(1000);
digitalWrite(lmf, HIGH);
digitalWrite(rmf, LOW);
digitalWrite(lmb, LOW);
digitalWrite(rmb, HIGH);
Serial.println("right");
}
void left()
{
s.write(90);
t.write(90);
delay(1000);
digitalWrite(lmf, LOW);
digitalWrite(rmf, HIGH);
digitalWrite(lmb, HIGH);
digitalWrite(rmb, LOW);
Serial.println("left");
}
void stp()
{
digitalWrite(lmf,LOW);
digitalWrite(rmf, LOW);
digitalWrite(lmb, LOW);
digitalWrite(rmb, LOW);
Serial.println("stop");
}
void Read(){
s1v=analogRead(s1);
s2v=analogRead(s2);
Serial.print("s1=");
Serial.print(s1v);
Serial.print(" s2=");
Serial.print(s2v);
Serial.print("dist is");
Serial.print(d);
Serial.println();
}
working video:
"https://drive.google.com/file/d/1JzpjektmzkNhA9jZ9zHVrbcd5np5-kgN/view?usp=sharing"