Michael,
I too am using the BeagleBone Black, and I have actually spent a lot of time working on this. A lot of what I have discovered is in this post https://groups.google.com/forum/#!topic/beagleboard/2NO62mGcSvA
To recap, you need to reduce the framerate using v4l2-ctl to no more than 15 FPS to capture at 640x480 using the PSEye. You can also do 320x240 at up to 60 FPS. It seems the PS3Eye transfers data in bulk mode putting a lot of data on the the bus. Once the amount of data reaches a certain limit, you will get select timeouts.
The PS3Eye sends uncompressed images, but if compressed images are acceptable for your application, you might want to look into a camera that supports MJPEG compression. Allowing the camera to compress the frames as jpegs greatly reduces the amount of data sent over usb as well as the cpu usage. I am currently capturing still images at 1920x1080 with the FPS set to 30 using the Logitech C920.
Today I am posting an article on thresholding colors using OpenCV on my blog at blog.lemoneerlabs.com and will document more on the webcams I have been working with as soon as I can.
As for the project I am working on, I am giving sight to an autonomous robot I am working on. I will post more on that as well… when I find the time. Please do let me know how you work goes, and I will do my best to help you.
Good luck!
Matthew Witherwax