This circuit is designed to control a quadruped spider robot using an Arduino UNO microcontroller. The robot features multiple servo motors for leg movement and an IR receiver for remote control operation. The Arduino UNO is interfaced with an Arduino Sensor Shield v5.0 to simplify the connection of servos and sensors. Power is managed by two sets of 18650 Li-ion batteries connected to an LM2956 Buck Converter DC-DC to regulate the voltage supplied to the components. The IR receiver allows the robot to interpret commands from a remote control, enabling it to move forward, sideways, or perform a greeting action.
/*
* This Arduino sketch controls a quadruped spider robot with 3 servo motors
* per leg, using an IR receiver to interpret commands from a remote control.
* The robot moves forward if the up arrow is pressed, sideways if the left or
* right arrow is pressed, and says hello with one leg if the number 1 is
* pressed.
*/
#include <Servo.h>
#include <IRremote.h>
#define FORWARD 0xFF629D
#define LEFT 0xFF22DD
#define RIGHT 0xFFC23D
#define HELLO 0xFF6897
const int RECV_PIN = 12;
IRrecv irrecv(RECV_PIN);
decode_results results;
Servo servos[12];
void setup() {
irrecv.enableIRIn();
for (int i = 0; i < 12; i++) {
servos[i].attach(i);
}
}
void loop() {
if (irrecv.decode(&results)) {
switch (results.value) {
case FORWARD:
moveForward();
break;
case LEFT:
moveLeft();
break;
case RIGHT:
moveRight();
break;
case HELLO:
sayHello();
break;
}
irrecv.resume();
}
}
void moveForward() {
for (int i = 0; i < 12; i++) {
servos[i].write(90);
}
delay(1000);
for (int i = 0; i < 12; i++) {
servos[i].write(0);
}
delay(1000);
}
void moveLeft() {
for (int i = 0; i < 6; i++) {
servos[i].write(90);
}
delay(1000);
for (int i = 0; i < 6; i++) {
servos[i].write(0);
}
delay(1000);
}
void moveRight() {
for (int i = 6; i < 12; i++) {
servos[i].write(90);
}
delay(1000);
for (int i = 6; i < 12; i++) {
servos[i].write(0);
}
delay(1000);
}
void sayHello() {
servos[0].write(90);
delay(1000);
servos[0].write(0);
delay(1000);
}
This code is designed to run on the Arduino UNO microcontroller. It initializes an array of 12 servo objects and an IR receiver. The setup()
function configures the IR receiver and attaches the servo objects to their respective pins. The loop()
function listens for IR signals and calls the appropriate movement functions based on the received command. The movement functions moveForward()
, moveLeft()
, moveRight()
, and sayHello()
control the servos to perform the robot's movements.