The basic idea of this project is to scan a laser dot under computer control to interact with feline “test subjects”. Later I plan to vision and internet enable this system, but this initial version just has a variety of random scans that are motion-triggered.
All in the name of science, of course. Also just an excuse to try out interfacing a bunch of things to the Galileo board and put it through its paces.
The system consists of a Galileo board with an Arduino Makershield on top that mostly just has some wiring to adapt the I/Os from the Galileo board to the various sensors. There are also things like pull-up resistors for buttons. Sensors and effectors include a button (GPIO input; for selecting a scan mode and manually turning on the laser scan), a heartbeat LED that blinks with the scan rate (GPIO output), a potentiometer (analog input) to dial the scan rate up and down, an IR proximity motion sensor (GPIO input), another LED to provide feedback when the proximity sensor is on or the button is pressed, two servos (PWM outputs) turning mirrors to actually do the scan, and a web cam (not yet plugged in, but will go into the USB host input).
Eventually, I plan attempt things like image capture for web upload and vision… although the Quark may not be capable of the latter performance-wise, so I may offload such processing to a separate computer (cloud or basestation). The green paddles are WiFi antennas using a PCIe wifi card on the bottom of the board. I also want to use the WiFi eventually to add a remote-control capability from a phone or the web. I'm also considering adding a few other things later, like a joystick control to record motions for later playback, a power transistor to turn the laser on and off, and an ultrasonic range finder to better detect the positions of "test subjects" without heavy vision processing. Heck, you could even use the laser and camera to create a 3D scan of the room and avoid furniture!
Physically, the pop-bottle shield is there to keep the cats from gnawing on the sensors and wires, which they like to do (I need to shield the base, too). The frame is aluminum OpenBeam extrusions with 3D printed brackets to hold the various bits. The board is just on nylon standoffs from the extrusion base.
This is a work in progress. The servo control needs more work and I also have not yet gotten the camera or WiFi working, but it should be mostly a matter of installing a better linux image on the SD card. I will keep posting updates here as I go, and eventually will document the entire project so people can reproduce it if they want.
This project took me about four days altogether to put together, so far. Of course there's a lot more to do yet.