In this post, I’m going to describe how to read a I2C sensor using a Raspberry Pi. The sensor I’m interested on reading/using is actually a InfraRed camera.
This camera comes (originally) from a Wiimote controller.
I spend this weekend developing a tiny python module that will interface to this wee camera.
What is a PixArt?
This device is a 128×96 monochrome camera with built-in image processing. The camera looks through an infrared pass filter in the remote’s plastic casing. The camera’s built-in image processing is capable of tracking up to 4 moving objects, and these data are the only data available to the host. Raw pixel data is not available to the host, so the camera cannot be used to take a conventional picture. The built-in processor uses 8x subpixel analysis to provide 1024×768 resolution for the tracked points.
The is lots of extra technical information about the Wiimote: http://wiibrew.org/wiki/Wiimote#IR_Camera
The sensor used for this library is a very good package made by DFRobot, important links:
- To buy it: http://www.dfrobot.com/index.php?route=product/product&product_id=1088#.VvlgYBIrKso
- Wiki: http://www.dfrobot.com/wiki/index.php/Positioning_ir_camera
The how-to for using the sensor, and the python module is on my github page, click here to go.
In the next image you can see the sensor picking the IR light coming from a Zippo:
The python module will report the X and Y from the center of the IR source, it actually read up to 4 IR sources at the same time.
If you are looking to build a “light tracker” robot, or perhaps a precision landing for a multirotor, this sensor is worth to consider! Why?? just because the computer vision is already done inside the camera and it can work up to 100hz tracking IR objects… so, is a super super fast sensor!
A video of this sensor in action can be seen here: