Not your ordinary cat

roboCat was made during the MakeUofT 2023 hackathon - a 24-hour hackathon centered around hardware and physical projects. The hackathon theme we decided to follow for our project was 'useless inventions'. Check out the Devpost hackathon submission link and the source code for the project.

When brainstorming, we decided that making an imitation of a pet would allow for a lot of creativity in terms of what features we could add. We ultimately decided to make an autonomous pet distracter. For the hardware aspect, we decided to use Arduino as the central controller of the project as the software to run the Arduino was fairly simple.

This project was created in collaboration with Tyler Yan and two other hackathon team members.

Tech Stack:
C++ Arduino

Feature Planning

A large amount of time went into what we believed was possible to create with Arduino and whether we could physically manifest these ideas in a short amount of time given the materials we had. By evaluating the materials we had available, we eventually decided on these core functions that would serve as distractions:

  • A wheel base with sensors to perform autonomous movement on land (avoiding obstacles)
  • A laser 'eye' that would move at random
  • A speaker that would emit 'meow'-like sounds
  • A wagging tail
  • An LED display showing various messages

A base to work from

I spent the majority of the time working on the physical structure and the autonomous driving. A big challenge was making a structure that could house all the hardware and electrical components while still keeping the core functionality in the right places of the 'cat'. Additionally, we had to balance weight with sturdiness - the more components we added, the less maneuverable it would be.

For the autonomous driving, we used an ultrasonic sensor (seen at the bottom of the right image). We used a TT motor to constantly drive and supply power to both rear wheels, and cut off power to one of the wheels when we detected there was an obstacle using the sensor. Due to a lack of materials, we only had one ultrasonic sensor, one TT motor, and two large wheels which could connect to the motor,so we decided to only allow forward motion using rear-wheel drive.

A cat in motion

The assembly of the 'cat' was not difficult, but due to the aforementioned lack of materials in terms of the wheels, motor, and sensors, we faced difficulties with the autonomous driving aspect of the project. Because we only had one motor, as we added more mass to the top of the physical structure, the wheels struggled to turn due to the weight from above. When all components were added, our motor was only able to overcome kinetic friction but could not overcome static friction, leading to the phenomenom where our project could not start moving from standstill, but once moving it could stay moving for a while.

Regardless, the autonomous driving aspect worked in the sense that it would drive and avoid obstacles if there were any detected. The fully finished roboCat project with all active components (driving, laser eye, wagging tail, sound noises, and LED display) can be seen in the video to the left.

Future Development Steps

While we did the best with the materials we had regarding the driving aspect, the physical structure could have been improved by streamlining the different aspects of our project together. During development, we used one Arduino for either one or two abilities (driving, sounds, laser, etc.), and as a result, the wiring and circuitry was needlessly complex. This also may have contributed to an increased weight when, if everything was planned meticulously from the start, we could have ommitted one or two Arduino boards to reduce weight. If the project had to be made again, I would probably put a greater focus on the Arduino connections to reduce redundancies in hardware and improve the physical structure and driving as a whole.