Outer view of mouse - fabric covered top shell with head/tail/legs made out of fabric.
Inner view of mouse - kibble container in the under belly, with side bumpers. Top shell depresses "pounce" button
Screen cap of the proof-of-concept Serial monitor output
Flipper - the cat who refuses to eat out of a bowl - trying to get at an errant piece of kibble he batted under the furniture
Hide and Squeak
The robotic mouse feeder is device is designed to help promote physical and mental health in indoor cats, by providing a way to hunt to kill - by pouncing or attacking the robotic mouse, the device will release some "random" amount of kibble (from a pre-determined set) for the cat to eat after successfully "catching" it's prey.
What it does
Right now it it a proof of concept; the pounce sensor (a button) will trigger a stop in the motion and prints to the Serial monitor when the kibble would be released using a servo motor. The commands to a stepper motor (that acts as one of the two wheels on the mouse), will be printed to the Serial monitor. After a "random" time, the device chooses a new "random" speed and direction (CW or CCW) for the wheel. A "random" direction for the mouse itself would be achieved in that both wheels would be turning independently, each with a different speed. When the bumper button is hit (indicates running into an object in the environment) - the direction sent to the motors is reversed and runs at the same speed as before. This will need testing with an actual motor to see if it is sufficient to remove the robot from an obstacle.
Challenges I ran into
The hardware lab had no wires that would connect to the stepper motor shield, so there was no way to debug or test the code with the motor itself. There is output to the Serial monitor in lieu of controlling the actual motor, which is mediocre at best for testing the parameters chosen to be the range for both speed and time.
- Attaching the stepper motor to see if the code functions properly with an actual motor; and testing the speed min and max (too slow? too fast?)
- Programming with a second stepper motor to see how the code handles running two steppers at once;
- Structural and mechanical design - designing the gears, wheels, casing, kibble pinwheel, etc., needed to bring the code to life.
- Adding a remote feature so you can interact with your cat
- Adding a camera and connecting to the home's WiFI so you can watch your cat play remotely
- Adding an internal timer to turn on/off at specified times during the day
- The ability to change the speeds, time until switching directions, or to pre-program a route