Introduction: Robotic Cat Toy
My family has two cats, and one of them really likes to play with string. Unfortunately, being a cat, she likes to ask for it at inconvenient times, such as during meals, or when I'm doing school. For that reason, I designed a robotic cat toy that pulls string for her. The robot is a simple obstacle avoiding robot, based on an Arduino.
Materials:
- Arduino Uno
- Hc-sr04 Ultrasonic Rangefinder
- L298N motor driver
- 8 x 12 cm Acrylic Sheet
- Geared DC Motors with Wheels
- 9v Battery
- 9v Battery Clip
- Jumper Wires
- Soft Waste Plastic
- Piece of String
- Tape
Tools:
- Hacksaw
- Fine-Tipped Marker
- Soldering Iron
- Computer
- Drill
Step 1: Mounting the Motors
Test fit your motors on the sheet of acrylic, as shown in the main photo. Trace along the side of the motor using a fine-tipped marker. Use a saw to cut along the lines you marked(middle right photo). Once you have cut along the lines, fit the motors on and wrap tape around the motor and the section of acrylic underneath it. Be careful not to let the tape obstruct the movement of the motor shaft. Mount the wheels on the motor shafts(bottom right photo).
Step 2: Mounting the Front Slider
In this step, you will be mounting the slider that is mounted on the front of the robot's chassis to keep it balanced. Cut a soft piece of waste plastic, such as one from a water water, into the shape shown in the picture on the right. Use a marker to mark a short line in the middle of the front of the acrylic sheet that makes up the robot chassis, as shown in the middle photo. Use a hacksaw to cut along this line marked. Slide the piece of plastic you cut into to the groove you made with the hacksaw, as shown in the photo on the left.
Step 3: Mounting the Motor Driver
Solder short hookup wires to the motors. Connect the motors to the screw terminals on the sides of the motor drivers, as shown in the picture on the right. Only the connect the motor driver to the motors, not any of the other connections. Slide the motor driver between the motors.
Step 4: Mounting the Ultrasonic Sensor
Mount the ultrasonic rangefinder on the Arduino. The ultrasonic sensor can be mounted directly onto the pins of the Arduino, as shown in the pictures.
Step 5: Mounting the Arduino
Test-fit the Arduino on the robot frame. Mark where the holes on the Arduino meet the frame with a marker, as shown in the main photo. Drill holes in the places marked. Fit the Arduino on the chassis in the same position as before. Run bolts through both the holes in the Arduino circuit board and the holes in the frame. Screw nuts onto the ends of the bolts. The Arduino should now be firmly mounted on the chassis. Connect the motor driver board to the Arduino, as shown in the diagram. Ignore the red, black, dark blue, and green wires in the diagram.
Step 6: Mounting the Nine-volt Battery Clip
Make the connections according to the diagram, but don't connect the nine-volt battery, only the clip. Connect a jumper wire between the screw block terminal on the motor driver that is marked +5v and the five-volt pin on the Arduino.
Step 7: Programming the Arduino
Open Arduino IDE on your computer. If you don't already have Arduino IDE installed on your computer, you can download it here. Plug the Arduino on the robot into your computer with a USB A to USB B cable. Copy the code included here and paste it into Arduino IDE. Upload the code onto the Arduino.
int trigPin =9;<br>int echoPin = 10; const int gndPin = 11; const int plusPin = 8; int revright = 4; int fwdleft = 7; int revleft= 6; int fwdright= 5; int c = 0; void setup() { pinMode(5, OUTPUT); pinMode(gndPin, OUTPUT); digitalWrite(gndPin, LOW); pinMode(plusPin, OUTPUT); digitalWrite(plusPin, HIGH); pinMode(6, OUTPUT); pinMode(4, OUTPUT); pinMode(7, OUTPUT); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); } void loop() { long duration, distance; digitalWrite(trigPin,HIGH); delayMicroseconds(1000); digitalWrite(trigPin, LOW); duration=pulseIn(echoPin, HIGH); distance =(duration/2)/29.1; //Serial.print(distance); //Serial.println("CM"); delay(10); if((distance>20)) { digitalWrite(5,HIGH); digitalWrite(4,LOW); digitalWrite(6,LOW); digitalWrite(7,HIGH); } else if(distance<20) { digitalWrite(5,HIGH); digitalWrite(4,LOW); digitalWrite(6,HIGH); digitalWrite(7,LOW); } }
Step 8: Mounting the Cat Toy
Use tape to stick a piece of string to the back of the robot chassis. Make sure that the string is firmly attached, or a cat could pull it off.
Step 9: Conclusion
To use the robot, connect the nine-volt battery to the nine-volt battery clip. The robot will pull the string behind it. If there is an obstacle, the robot will change direction, avoiding the obstacle.