http://www.acroname.com/robotics/info/articles/sharp/sharp.html