This circuit is designed to control a quadruped spider robot with multiple servo motors, using an Arduino UNO as the main microcontroller. The Arduino UNO receives commands from an IR receiver and drives twelve Tower Pro SG90 servos to move the robot in various directions or perform actions such as saying hello. The servos are powered by a 5V supply from a buck converter, which steps down the voltage from a 9V battery. The Arduino Sensor Shield v5.0 is used to facilitate easy connections between the Arduino UNO and the servos.
/*
* 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 be uploaded to the Arduino UNO microcontroller. It initializes an array of Servo
objects and an IR receiver. In the setup
function, it attaches the servos to the corresponding pins and enables the IR receiver. The loop
function listens for IR commands and calls the appropriate movement functions: moveForward
, moveLeft
, moveRight
, or sayHello
. Each function controls the servos to perform the desired action.