Moo-Vacuum:A Remotely Controlled Desktop Sweeping Robot
by emilycanhelp in Circuits > Robots
69 Views, 2 Favorites, 0 Comments
Moo-Vacuum:A Remotely Controlled Desktop Sweeping Robot





This project is a remotely controlled desktop sweeping robot in the shape of a little cow eating grass, combining creativity with functionality. The robot is controlled by an UNO R3 microcontroller, and its body is made from cardboard to keep it lightweight and easy to assemble. The sweeping mechanism uses sticker film ("instant adhesive sheets") to pick up dust and small debris on a desktop surface. It offers a playful yet practical approach to robotics and home-made cleaning robots, ideal for educational purposes and hands-on learning.
Supplies

.jpg)
Arduino UNO R3
Motor driver module
2 DC motors
Cardboard (for body structure)
Instant adhesive sticker film (for sweeping wheel)
IR receiver module (for remote control)
Remote controller
Jumper wires, battery pack, and switch
Scissors,Hot Glue Gun,Marker Pen,Rubber Band,Bamboo Sticks (1/4" diameter) ,Craft Knife
Design the Body





Sketch the shape of a cute cow face and body with AutoCAD,print it.
Cut the body parts form cardboard
Leave space underneath for wheels and electronics.
Decorate the surface to look like a cow with ears, spots, and a smile.
Downloads
Build the Sweeping Mechanism



Wrap sticker film around the sticks with the adhesive side out.
Mount it underneath the body so that it rolls slightly along the surface when the robot moves.
Install Motors and Wheels







Attach the DC motors with wheels on both sides of the body.
Add the back wheels for balance.
Secure all parts using glue or tape.
Connect the Electronics




Connect the motors to the motor driver module.
Connect the motor driver and receiver module (IR) to the UNO R3.
Upload the control code to the UNO R3.
Power the board using a battery pack and add an on/off switch.
Code & Test


Use an infrared remote control to send commands.Use an infrared receiver to receive the commands and convert them into digital codes (hexadecimal).Control the motor driver module (L298N or similar) based on the codes corresponding to different buttons.Control the actions of the car.
(1),Code copy to Arduino Uno R3 :
#include <IRremote.h> //
const int RECV_PIN = 8; //
IRrecv irrecv(RECV_PIN); //
decode_results results; //
void setup() {
Serial.begin(9600); //
irrecv.enableIRIn(); //
}
void loop() {
if (irrecv.decode(&results)) { //
Serial.println(results.value, HEX); //
delay(200); //
irrecv.resume(); //
}
}
(2),IR receiver code:
#include <IRremote.h>
const int RECV_PIN = 8;
void setup() {
Serial.begin(9600);
IrReceiver.begin(RECV_PIN, ENABLE_LED_FEEDBACK);
Serial.println("Ready to receive IR signals");
}
void loop() {
if (IrReceiver.decode()) {
Serial.print("Received code: 0x");
Serial.println(IrReceiver.decodedIRData.command, HEX);
IrReceiver.resume(); //
}
}
(3)Read the display codes for the remote control's: Up, Down, Left, Right, and input them into the code below:
#include <IRremote.h>
const int RECV_PIN = 8;
const int IN1 = 3;
const int IN2 = 5;
const int IN3 = 6;
const int IN4 = 9;
void setup() {
Serial.begin(9600);
IrReceiver.begin(RECV_PIN, ENABLE_LED_FEEDBACK);
//
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
Serial.println("Ready");
}
void loop() {
if (IrReceiver.decode()) {
unsigned long command = IrReceiver.decodedIRData.command;
Serial.print("IR Code: ");
Serial.println(command, HEX);
switch (command) {
case 0x18: //
forward();
break;
case 0x52: //
backward();
break;
case 0x08: //
left();
break;
case 0x5A: //
right();
break;
case 0x1C: //
stop();
break;
default:
stop(); //
break;
}
IrReceiver.resume();
}
}
void forward() {
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
void backward() {
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}
void left() {
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
void right() {
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}
void stop() {
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}
Final Assembly and Decoration






Use the remote controller to move the robot forward, backward, left, and right.
Observe how the sweeping wheel collects dust as it moves.
Make sure all parts are secure, and wires are tucked inside.
Add final touches to the cow's face and body.