Laser Cat Toy

Table of Contents

Background

This project was inspired by my cat Tommy. The idea came to me while I was at the store trying to pick out a new cat toy. I thought of many variations of toys with laser pointers and strings, but I decided that the main focus would be a single spinning axle that a toy would be attached to. I would consider this my 3rd big project which is based around a microcontroller which means that I had a good deal of experience in some areas starting off. Over the years I have gained experience with using various sensors and modules so I knew that working with those wouldn't cause too many problems. I knew that I wanted to base a project around 3d printed gears, but I had to learn to design my own parts to be 3d printed which was one of the main challenges going into this project.

Design

The device that I have constructed is meant to be used as a cat toy. The toy's frame is made from various pieces of cardboard held together by hot glue. It has an axle shooting upwards from the base that spins with the help of a gear reduction powered by a toy dc brushed motor. The brains of the project is an Arduino Nano which is used to drive the motor through a seperate motor driver breakout. The electronics at the top of the spinning shaft which are a servo motor, a laser diode, and an IMU all take instructions from the Arduino. These electronics use a slip ring to avoid getting tangled by the spinning shaft. The Arduino allows me to coordinate movement and sensor data in order to create any pre-programmed paths that I want. I can use the Arduino's internal timer to alternate the direction of the servo and dc motor. All of the electronics are powered by a 2s LI-ION battery pack. I also added a button and a few indicator LEDs to allow greater ease of use. I usually write button debouncing in the software, but this time I created a debouncing circuit using some, resistors, a capacitor, and a diode.

Specifications

  • Base Length: 144.5 mm
  • Base Width: 115 mm
  • Base Height: 70 mm
  • Total Height: 280 mm
  • Axle Diameter: 1/4 inch
  • 3d printed gear material: PLA
  • Individual Gear Reduction: 46:11 = 4.18:1
  • Total Gear Reduction(3 compound gears): 73.12998:1
  • Power: 7.4 V, 1800 mAh pack
  • Mass: 343 g

Component List


Arduino Nano
TB9051FTG Single Brushed DC Motor Driver Carrier
DC Brushed Toy Motor
1/4 inch Aluminum Rod
3d printed bevel and spur gears
Slip Ring with Flange
Tower Pro SG90 Analog Mirco Servo
Laser Diode
Adafruit LSM6DS33(Accel/Gyro)+LIS3MDL(Magnetometer) IMU
Push Button
Red and Green LEDs
2x 18650 Li-Ion Batteries
Slide Switch

Block Diagram

Schematic

GitHub Code

Photos & Videos

Motor Driver Test Circuit
Cat Toy Gears
Gears In Motion
Continuous Motion Test
Alternating Motion Test
Bevel Gear Test
Gear & Winch Test

Testing

Before starting this project, I created several prototype gear systems in order to test my first 3d printed gears. I mainly held all of the axles down with hot glue which led to many problems because the axles were not held down strongly enough. Because the frame of the device is made out of cardboard I felt as though my options were limited. To adress this I redesigned my 3d printed parts to be thicker to better withstand the forces of the gears. I also epoxied some pieces that were especially troubling. I found that running the motor at a high speed increases the chances of a piece unsticking, so I try to use lower voltages.

Ongoing Issues

  • Vertical axle is not perfectly perpendicular to ground
  • Vibration of servo messes with IMU values
  • The motor and gear noises make the device very noisy while on
  • Servo motor is pulling too much current from Arduino 5v pin, causing constant reset when connected