RITZ

by prottoyratulsarker in Circuits > Arduino

108 Views, 1 Favorites, 0 Comments

RITZ

IMG_20240322_180446_269.jpg
8bae68cb-4f5c-4841-b208-75ea431a1ebf.jpeg
IMG_20240322_180208_254.jpg
IMG_20240322_175436_167.png
IMG_20240322_180028_318.jpg
IMG_20240322_175441_520.jpg

RITZ

RITZ IS ADVANCED ALL IN ONE ROBOT / OMNIDIRECTIONAL ROVER / POLYMORPHIC DEVICE. IT'S HAVE MANY USAGE LIKE ROVER - MOVING, LIKE ROBOT - PROCESSING & MICRO CONTROLLING CAPACITY & LIKE DEVICE - CUSTOMIZE ALL FEATURE.

Supplies

7e77d71c-f36f-4029-8fa7-55fbc0852856.jpeg
Screenshot_2024-03-19-15-31-55-747-edit_com.microsoft.office.officehubrow.jpg

IT'S HAVE TWO IR SENSORS, ONE ULTRASONIC SENSOR, ONE BLUETOOTH SENSOR, ONE LCD DISPLAY. IT'S POWERED BY FOUR POWERFUL ⚙️ GEAR DC MOTOR & HAVE ONE SERVO MOTOR. IT'S REQUIRED 7.5 V DC SUPPLY TO RUN SEAMLESSLY.

HARDWARE BUILDING / CIRCUIT CONNECTION

7e77d71c-f36f-4029-8fa7-55fbc0852856.jpeg
8bae68cb-4f5c-4841-b208-75ea431a1ebf.jpeg
  • FIRST OF ALL NEED TO FOLLOW THIS CIRCUIT DIAGRAM ENTIRELY. ATTACHED ARDUINO_UNO_R3 BOARD WITH MOTOR DRIVER SHIELD. THAN CONNECT PROPERLY ALL GEAR MOTOR, SERVO MOTOR, DISPLAY AND ALL SENSORS CABLE TO ARDUINO SURFACED MOTOR DRIVER SHIELD. REMEMBER TO REMOVE MOTOR DRIVER SHIELD JUMPER CONNECTION AT CODE UPLOADING TIME, IT'S MANDATORY. THEN UPLOAD GIVEN CODE / SKETCH IN ARDUINO_UNO_R3 BOARD. AFTER ALL CONNECT POWER SUPPLY ( DC 7.5 V).

CODE / SKETCH UPLOAD

AFTER COMPLETING THE HARDWARE PART THEN UPLOAD THIS CODE / SKETCH ( OMNI_ROBOT___ROVER_POLYMORPHIC_ROBOT______PROTTOY.ino ) FILE TO ARDUINO_UNO_R3 BOARD.


ALL IN ONE ROBOT / ROVER OMNIDIRECTIONAL ROBOT / POLYMORPHIC ROVER


//----------------------------ALL IN ONE ROBOT / ROVERS---------------------------------------//
//~~~~~~~~~~~~~~~~~~~~~~~~OMNIDIRECTIONAL ROBOT CAR / ROVER//
//https://prottoy7.wordpress.com/
//https://www.instructables.com/member/prottoyratulsarker/
//https://sites.google.com/view/theprottoy/

#include <Servo.h>
#include <AFMotor.h>
//-----------------------B------------------------------//
char value;
int speedCar=255;
boolean lightFront = false;
boolean lightBack = false;
boolean S_light = false;

//------------------------O-----------------------------//
int distance;
int Left;
int Right;
int L = 0;
int R = 0;
int L1 = 0;
int R1 = 0;

//----------Defines----------------//

#define Echo A0
#define Trig A1
#define S_motor 10
#define F_LED A4
#define B_LED A5
#define SL_LED A2
#define SR_LED A3
#define spoint 90

//-----------Motors-----------------//

Servo servo;
AF_DCMotor motor1(1);
AF_DCMotor motor2(2);
AF_DCMotor motor3(3);
AF_DCMotor motor4(4);


void setup() {
Serial.begin(9600);

pinMode(Trig,OUTPUT);//Trig A1
pinMode(Echo,INPUT);//Echo A0
pinMode(F_LED,OUTPUT);//F_LED A4 pin
pinMode(B_LED,OUTPUT);//B_LED A5 pin
pinMode(SL_LED,OUTPUT);//SL_LED A2 pin
pinMode(SR_LED,OUTPUT);//SR_LED A3 pin
servo.attach(S_motor);

}

void loop() {

//-----------------Change_Mode----------------//

blutooth_mode();
//obstacle_mode();
//voice_control();


}


//---------------------------Blutooth_Mode---------------------------//
void blutooth_mode(){

if (Serial.available() > 0) {
value = Serial.read();
Stop(); //Initialize with motors stopped.

if (lightFront) {digitalWrite(F_LED, HIGH);
}
if (!lightFront) {digitalWrite(F_LED, LOW);
}
if (lightBack) {digitalWrite(B_LED, HIGH);
}
if (!lightBack) {digitalWrite(B_LED, LOW);
}
if (S_light) {digitalWrite(SL_LED, HIGH);
digitalWrite(SR_LED, HIGH);
}
if (!S_light) {digitalWrite(SL_LED, LOW);
digitalWrite(SR_LED, LOW);
}


switch (value) {
case 'F':forward();break;
case 'B':backward();break;
case 'L':left();break;
case 'R':right();break;
case 'I':forwardRight();break;
case 'G':forwardLeft();break;
case 'J':backwardRight();break;
case 'H':backwardLeft();break;
case 'S':Stop();break;
case '0':speedCar = 75;break;
case '1':speedCar = 100;break;
case '2':speedCar = 125;break;
case '3':speedCar = 150;break;
case '4':speedCar = 175;break;
case '5':speedCar = 200;break;
case '6':speedCar = 220;break;
case '7':speedCar = 230;break;
case '8':speedCar = 240;break;
case '9':speedCar = 250;break;
case 'q':speedCar = 255;break;
case 'W':lightFront = true;break;
case 'w':lightFront = false;break;
case 'U':lightBack = true;break;
case 'u':lightBack = false;break;
case 'X':S_light = true;break;
case 'x':S_light = false;break;
}}



}

//------------------------Obstacle_Mode------------------------------//

void obstacle_mode(){

distance = ultrasonic();
if (distance <= 12) {
Stop();
backward();
delay(100);
Stop();
L = leftsee();
servo.write(spoint);
delay(200);
R = rightsee();
servo.write(spoint);
if (L < R) {
O_right();
delay(200);
Stop();
delay(200);
} else if (L > R) {
O_left();
delay(500);
Stop();
delay(200);
}
} else {
forward();
}

}

//-------------------------Voice_Control-----------------------------//

void voice_control(){

if (Serial.available() > 0) {
value = Serial.read();
Serial.println(value);
if (value == '^') {
forward();
digitalWrite(SL_LED, HIGH);
digitalWrite(SR_LED, HIGH);
} else if (value == '-') {
backward();
} else if (value == '<') {
L = leftsee();
servo.write(spoint);
if (L >= 10 ) {
O_left();
delay(500);
Stop();
} else if (L < 10) {
Stop();
}
} else if (value == '>') {
R = rightsee();
servo.write(spoint);
if (R >= 10 ) {
O_right();
delay(500);
Stop();
} else if (R < 10) {
Stop();
}
} else if (value == '*') {
Stop();
}
} else if (value == '!') {
{digitalWrite(F_LED, HIGH);
}
} else if (value == '@') {
{digitalWrite(F_LED, LOW);
}
} else if (value == '+') {
{digitalWrite(B_LED, HIGH);
}
} else if (value == '_') {
{digitalWrite(B_LED, LOW);
}
}

}

//-------------------------Ultrasonic----------------------------------//
int ultrasonic(){
digitalWrite(Trig,LOW);
delayMicroseconds(4);
digitalWrite(Trig,HIGH);
delayMicroseconds(10);
digitalWrite(Trig,LOW);
long t = pulseIn(Echo,HIGH);
long cm= t / 29/ 2;
return cm;
}
void forward()
{
motor1.run(FORWARD);
motor2.run(FORWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);

motor1.setSpeed(speedCar);
motor2.setSpeed(speedCar);
motor3.setSpeed(speedCar);
motor4.setSpeed(speedCar);

forwardview();

}
void backward()
{
motor1.run(BACKWARD);
motor2.run(BACKWARD);
motor3.run(BACKWARD);
motor4.run(BACKWARD);

motor1.setSpeed(speedCar);
motor2.setSpeed(speedCar);
motor3.setSpeed(speedCar);
motor4.setSpeed(speedCar);

digitalWrite(B_LED,HIGH);

}
void left()
{
motor1.run(BACKWARD);
motor2.run(BACKWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);
motor1.setSpeed(speedCar);
motor2.setSpeed(speedCar);
motor3.setSpeed(speedCar);
motor4.setSpeed(speedCar);

digitalWrite(SL_LED, HIGH);

leftview();


}
void O_left()
{
motor1.run(BACKWARD);
motor2.run(BACKWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);
motor1.setSpeed(speedCar);
motor2.setSpeed(speedCar);
motor3.setSpeed(speedCar);
motor4.setSpeed(speedCar);

digitalWrite(SL_LED, HIGH);

}

void right()
{
motor1.run(FORWARD);
motor2.run(FORWARD);
motor3.run(BACKWARD);
motor4.run(BACKWARD);
motor1.setSpeed(speedCar);
motor2.setSpeed(speedCar);
motor3.setSpeed(speedCar);
motor4.setSpeed(speedCar);

digitalWrite(SR_LED, HIGH);

rightview();

}
void O_right()
{
motor1.run(FORWARD);
motor2.run(FORWARD);
motor3.run(BACKWARD);
motor4.run(BACKWARD);
motor1.setSpeed(speedCar);
motor2.setSpeed(speedCar);
motor3.setSpeed(speedCar);
motor4.setSpeed(speedCar);

digitalWrite(SR_LED, HIGH);
}

void forwardRight()
{
motor1.run(FORWARD);
motor2.run(FORWARD);
motor3.run(FORWARD);
motor4.run(RELEASE);

motor1.setSpeed(speedCar);
motor2.setSpeed(speedCar);
motor3.setSpeed(speedCar);
}

void forwardLeft()
{
motor1.run(RELEASE);
motor2.run(FORWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);

motor1.setSpeed(speedCar);
motor2.setSpeed(speedCar);
motor4.setSpeed(speedCar);
}
void backwardRight()
{
motor1.run(BACKWARD);
motor2.run(BACKWARD);
motor3.run(RELEASE);
motor4.run(BACKWARD);
motor1.setSpeed(speedCar);
motor2.setSpeed(speedCar);
motor4.setSpeed(speedCar);

digitalWrite(B_LED,HIGH);

}
void backwardLeft()
{
motor1.run(BACKWARD);
motor2.run(RELEASE);
motor3.run(BACKWARD);
motor4.run(BACKWARD);
motor1.setSpeed(speedCar);
motor2.setSpeed(speedCar);
motor3.setSpeed(speedCar);

digitalWrite(B_LED,HIGH);

}
void Stop()
{
motor1.run(RELEASE);
motor2.run(RELEASE);
motor3.run(RELEASE);

motor4.run(RELEASE);
}

int rightsee(){
servo.write(20);
delay(500);
Left = ultrasonic();
return Left;
}

int leftsee(){
servo.write(180);
delay(500);
Right = ultrasonic();
return Right;
}

int leftview(){
servo.write(180);

}

int rightview(){
servo.write(20);
}

int forwardview(){
servo.write(spoint);
}