WALLE Robot Guide
WALLE Robot Guide
1. Connection Table
------------------|------------------------
IR Sensor | A0
Flame Sensor | A1
Servo Motor | D9
L298N Motor Driver| IN1 -> D2, IN2 -> D3, IN3 -> D4, IN4 -> D5, ENA & ENB -> 5V (or PWM pins D6/D7)
Emergency LED | D8
#include <Servo.h>
#include <SoftwareSerial.h>
// Pins
#define TRIG_PIN 12
#define ECHO_PIN 13
#define IR_PIN A0
#define FLAME_PIN A1
#define EMERGENCY_LED 8
#define SERVO_PIN 9
// Variables
long duration;
int distance;
int flameVal;
int irVal;
void setup() {
Serial.begin(9600);
bluetooth.begin(9600);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(EMERGENCY_LED, OUTPUT);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
armServo.attach(SERVO_PIN);
armServo.write(90); // Start position
Serial.println("Robot Initialized");
bluetooth.println("Robot Ready");
}
int getDistance() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
void moveForward() {
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
void moveBackward() {
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}
void turnLeft() {
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
void turnRight() {
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}
void stopMotors() {
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}
void loop() {
// Read sensors
distance = getDistance();
flameVal = analogRead(FLAME_PIN);
irVal = analogRead(IR_PIN);
import speech_recognition as sr
import pyttsx3
import serial
import time
def listen():
with mic as source:
print("Listening...")
audio = recognizer.listen(source)
try:
command = recognizer.recognize_google(audio).lower()
print(f"Recognized: {command}")
return command
except sr.UnknownValueError:
return ""
except sr.RequestError:
return ""
def send_command(cmd):
arduino.write(cmd.encode())
while True:
command = listen()
if command:
if "forward" in command:
send_command('F')
speak("Moving forward")
elif "backward" in command:
send_command('B')
speak("Moving backward")
elif "left" in command:
send_command('L')
speak("Turning left")
elif "right" in command:
send_command('R')
speak("Turning right")
elif "stop" in command:
send_command('S')
speak("Stopping")
elif "arm up" in command or "raise arm" in command:
send_command('A')
speak("Arm raised")
elif "arm down" in command or "lower arm" in command:
send_command('D')
speak("Arm lowered")
elif "emergency light on" in command:
send_command('E')
speak("Emergency light on")
elif "emergency light off" in command:
send_command('e')
speak("Emergency light off")
elif "exit" in command or "quit" in command:
speak("Goodbye!")
break