A coworker recently gave a talk on Enchanted Objects, a framework for designing objects that blend into an environment while also providing useful information through electrical components or a connection to the internet. Most devices we think of connecting to the internet use screens, but Enchanted Objects tend to be more grounded in familiar objects.
I was super inspired by the talk to build a thing that might fit this framework and this is what I came up with — the Peach Advocate.
The Peach Advocate was built to answer the question: did I change Peach’s litter today? Or was it yesterday? Or has it been multiple days??
Peach goes to the bathroom relatively infrequently, so we only scoop her litter every other day. Because it isn’t an everyday thing, often it is difficult to remember whether or not today is a litter scooping day. I wanted to build a thing that would help me remember at just a glance.
I drew inspiration from the Lucky Cats (招財貓) you often see in Asian restaurants, who always have one paw raised waving at you. I thought it’d be cool to have a little cat figurine which raised its paw when it was time to change the litter. I also liked the action of raising a paw as a continuous action, so that on the day between litter scooping days, I could see the paw was half raised and know today is not the day to scoop litter, but it almost is.
(Also we’ve taught Peach the “paw” trick and it is the cutest thing, other than maybe her “stand”.)
Sam, the coworker who gave the talk on Enchanted Objects, helped me take the idea one step further by asking if there could be a way to let the system know the litter has been done. That’s when I decided to make the Advocate not only have one paw which is always raising, but another paw as well which could hold a roll of litter bags.
The first step was to come up with a system diagram of how I wanted things to work. I imagined two paws attached to a cat.
- The first paw would have a proximity sensor in order to determine if a roll of litter bags was around.
- The second paw would have a motor which, as long as the roll of litter bags is on the left paw, would continue raising over the course of 2 days.
- Once the second paw is raised 90 degrees, the paw will stay raised, indicating that litter needs to be changed.
- At any time, if the roll of litter bags is removed and the proximity sensor no longer senses the bags, the second paw will begin to lower back to 0 degrees.
So the ideal user flow would be, after scooping the litter, I would place the roll of litter bags back onto the Advocate’s first paw. This would cause the second paw to begin raising over the course of 2 days. After 2 days, the second paw would be fully raised. I would see it and take the litter bag from the Advocate which would cause the second paw to lower back to the first position again. Once I am done scooping litter, I’d put the roll of bags back, and the process would begin again.
I focused on the electrical/software components first. I hadn’t used an Arduino too much before, but I found it very easy to learn and the code for this system ended up being pretty simple.
The components I used
- Arduino Uno development board
- Servo motor
- Motor arm
- 100UF capacitor
- Grove base shield for Arduino
- Grove Infrared Reflective Sensor
- Mini breadboard
Everything except for the Grove items came with the Arduino Starter Kit. The Grove base shield is a really easy way to tack on extra sensors/motors to your Arduino without having to solder anything. Once the base shield is attached, you can easily hook in other Grove sensors and read/write those values through your Arduino.
The Arduino project “Mood Cue” was a really good base for this project. Mood Cue also uses an Arduino to control a servo motor, though it controls it through a potentiometer instead of through a proximity sensor + time.
A lot of this code is taken straight from “Mood Cue”, though I had to do a bit more with counting time in order to get the motor to raise over the course of two days.
The physical circuit was very similar to mood cue, though I swapped out the potentiometer for my Grove board infrared sensor and read that value in through a digital pin rather than an analog pin.
Now that I had my electronics sorted out, I needed for it to go inside something that would make it look nice and more like what an Enchanted Object should look like. I was inspired by yet another friend, Lily, who was making awesome platters and door stops out of cereal boxes and paper mâché. I sent her my system diagram and she gave me some great advice on how to go about making the paper mâché cat of my dreams.
I started with some cardboard I cut out and taped together into the overall shape I wanted. I also used a paper towel roll to cut out two curved paws and molded them so they would fit a roll of litter bags.
I used masking tape liberally, knowing I was going to cover most of it up with paper mâché very soon.
Paper mâché is super forgiving and a lot of fun to work with. I covered both the base of the body and the two paw attachments, then let it dry overnight. By the next day, the flimsy structure was really solid and satisfying to hold.
If I were to do this again, I’d probably sand it down at this point, since the flour in the paper mâché resulted in a lot of small bumps. But I was eager to move on to the next step. Using another tip from Lily, I painted over the whole thing with white gesso so that the other paints would show up better later.
I then painted the cat orange since Peach is an orange cat. After the colored paints dried, I painted over the whole thing with Mod Podge for a more finished look.
Putting it all together
I was most nervous about this part. I had electronics that were working pretty well, and I had a container to put them in that was looking pretty good, but I had no idea how I’d go about putting it together in a way that wouldn’t ruin the look of the container.
I first had to fit the proximity sensor into the first paw. At first I thought I would put the sensor where the paw would attach to the body. But I soon realized that might not work out, since the roll of litter bags gets smaller, and once it is small enough, it might not reach the height of where the sensor is. So I ended up putting the sensor underneath the paw.
The sensor ended up working great underneath the paw. It came with a little red LED which indicates when it senses something. There was one catch though— apparently infrared sensors are very bad at detecting black plastic bags! So our black roll of litter bags didn’t work, but our blue ones worked great.
The hardest part was carving out a hole that would allow the sensor to attach to the paw. I used a small utility knife and hacked away at my now really solid paper mâché. But because I carved out a really small hole, I didn’t have to use any glue or screws to attach the sensor. It stuck into the hole I made and stayed there firmly.
The next task was to attach this working sensor-paw to the body of the container.
I went to the hardware store and asked for a really small screw. I was worried about the structural integrity of my paper mâché, but it turned out I really didn’t need to worry. The screw went in no problem and held the paw to the base of the body without any problem.
I thought I’d paint over the screw so it didn’t just stick out obviously, but the roll of litter bags actually covers up the screw most of the time, so I didn’t worry about it. The screw and paper mâché held the roll of bags great.
I then carved out another hole so that the wires of the sensor could go into the back of the cat container and attach to the Arduino back there. I still had no idea how I’d arrange the Arduino back there, but I figured I’d get both paws working first.
Next, I needed to attach the motor to the other paw. I got out my utility knife and carved out another motor shaped hole so that the bulk of the motor stayed behind the cat, but the arm of the motor could hang out in the front. Carving out the container was probably the hardest part of all of this— a lot of trial and error and slowly making the hole bigger.
I wasn’t sure how I was going to connect the motor arm to the paw. The motor arm had holes, but none big enough for even the smallest screw at the hardware store. I ended up using some Gorilla glue I had in my drawer. I attached another thin piece of cardboard to the back of the second paw which I could glue freely onto. This piece of cardboard was nice since I could replace it easily and not worry about ruining it with glue.
The paw, now that it has a motor arm attached to it, clips into the rest of the body easily!
Finally, I needed to put the Arduino board in the container. I thought about swapping out the dev board with something smaller, but I didn’t have a solder (the dev board allows for more plugging and playing, so without it I’d need to solder pieces together). I’d still like to do it some time so I can get my dev board back, but the whole board actually fit really nicely into the back of the Advocate. I got really lucky there— I hadn’t done any measurements, but everything fit pretty much perfectly.
I didn’t paint the inside, so you can still see a lot of the raw paper mâché. I attached the mini breadboard to the bottom of the Advocate using the little sticky paper that came with it. Both sensors attached to the paws in the front through the holes I carved out. The Arduino I placed vertically, so the base took care of holding most of the weight, but I used some poster putty to keep it attached at the top so it wouldn’t fall out horizontally.
I bought a 9v power supply to plug the Advocate into the wall. I thought about building a cover for the back, but I kind of like being able to see the internals. If one day I do get around to swapping out the dev board with a smaller microcontroller and soldered on attachments, it’ll also be easier to put in the new electronics.
And that’s it! The Advocate now advocates for all of Peach’s litter box cleaning needs, and has been surprisingly reliable. I put a buffer in just in case the sensor was finicky (resulting in the arm waiting a few seconds before actually lowering), but I don’t think I actually needed it since the sensor turned out to work quite well.
We’ve been using the Peach Advocate for three months now. Scooping litter has never been so delightful, and Peach is as clean and happy as could be!
Special thanks to Sam and Lily for all the help and advice along the way. Peach and I are very grateful!