We've got this cat, who has a ridiculous amount of energy. We spend a decent amount of time with him, but he's the needy sort for whom evidently nothing short of 24/7 attention will do. So when we learned about the Intel® IoT Invitational, and the opportunity for some robotics kits, the first project that came to mind was something that might have the endurance of that cat!
Robotic Cat Enrichment
Our original idea was to create a robotic enrichment toy for the cat - basically a stalking toy, that would sense the cat's approach and take off in random directions, avoiding walls and other pitfalls in a game of cat and robotic mouse. As we worked with the Intel IoT kit, though, we learned that it takes a lot more power to operate the board than we expected, which complicated our original project idea beyond what we had time for. (Although we fully plan to come back to that one!)
Laser Platform System
So we retooled our idea to create a platform based robotic laser system to entertain the cat, something that could be operated remotely, by us and ultimately anyone else who wanted to play with the cat from afar. 'Cause face it, cat videos are fun, and playing with a cat in real time is fun and if you combine the two in a digital real time platform, it's fun for all!
However and of course we ran into some challenges. The Intel IoT requires a delicate hand, and required a couple of flash sessions to get things on track, and then communications with the mirror servos got a little squirrely. The servos won't shut off at the end of the program, leading to the servos nearly overheating. With the fussy servos we can currently only aim the laser at the ceiling - the cat's good, but he's not that good!
But we got our device to about 75% of where we want it to be, which is what you see here.
Step 1: Materials
- Intel Edison
- Intel Edison Arduino Breakout Board
- Three mirrors
- Small laser pointer
- Vex or similar construction kit for 2 servo powered gear mechanisms
- Duct tape
- A Cat
Sourced one of the mirrors from an old compact and two others and the laser at the local Dollar Tree for a whopping $2 and repurposed the old VEX kit for the platform base. The cat was just hanging out.
Step 2: Build Your Laser Platform
Nothing fancy here - we built about an 8"x 8" frame to mount gear mechanisms for the two main mirrors, and mounting platforms for the third mirror and for the laser. One gear mechanism is for mounting a mirror upright, and the other gear mechanism is set perpendicular to the upright one. We set a 25:1 gear ratio on our version of our robotic laser device.
Step 3: Attach Main Mirrors
We affixed one mirror to each gear shaft, and set them about about 45 degree angles. We used duct tape to attache the mirrors for our prototype,.
Step 4: Prepare and Attach Laser
Strip a 5 volt power wire, remove the batteries from the laser and push the stripped end into the laser so it makes contact with the battery springs. We just duct taped the laser's power button down, then attached it with zip ties, and aimed it at the upright mirror.
Step 5: Attach Third Mirror
We attached a bar about 3" above the main platform and then used Gorilla tape to attach the third mirror right above the other two mirrors, also at a 45 degree angle.
Step 6: Wire It Up
Assuming you're using Vex servos, we
- wired 5 volts to the orange middle wire of the servos
- then ground to the black wire of the servos
- then connected the white signal pin of 1st servo to pin 3 of the Intel Edison
- then the second signal was wired to pin 5
The laser proved challenging to wire, but we ultimately used an alligator clip on the rim of the laser as signal and connected the middle spring to ground.
We built a nice little insulated platform for the Intel board, too.
Step 7: Program Your Board
We spent a lot of time rebooting and flashing the Intel Edison board, and the remaining 25% of our project rests pretty squarely on programming. But here's where we've gotten so far - recommendations welcome!
The repository will eventually contain code to easily control the laser's position on the ground from a web page but currently contains a small program that runs a simple web server, sets both servo axes to zero and blinks the laser on and off in one second intervals.
If any one knows the frequency range, or pulse width and period, that a Vex servo should actually run on, please feel free to share here! ('cause currently we're getting a horrible high pitched squealing sound!)
Step 8: Find Something Else for the Cat to Do
In our case, the cat can often be found trying to goad our poor patient dog into paying attention to him, or stalking squirrels on the screened patio, who know full well he can't get them, and so spend considerable parts of their day taunting him. The laser won't be a much different experience for him, so he'll have plenty to do until we get the RC laser operational for him - hopefully by the end of the week!
Step 9: Next Steps
To complete this project the way we'd like, we need to:
- Work out the servo issue
- Finish the code
- Add a webcam feature
- Have a happy cat
Once we get the laser system reliably working, we think it would be really fun to have a live webstream where folks could remotely operate the laser to crowd entertain our cat!
Our goal is to at least have iCED working in house by the end of the week.
In the meantime, we have a nice entry for the Epic Fail contest, and we're hopeful that it will ultimately be an awesome Animal Innovations Contest entry, not to mention a pretty decent Tech Contest project.
At Eureka Factory, we're ever the optimists! We may fail but it's usually forward!