Arduino Pro Mini optical flow sensor

3689384408?profile=original

This is a follow-on to an earlier post about an Arduino-based optical flow sensor prototype. Here I actually constructed a complete sensor that could actually be integrated into a robotic platform. To achieve a smaller size, I used an Arduino Pro Mini board from Sparkfun, and added a "shield" to interface that with a Centeye image sensor and optics. The breakout of parts is shown above- The complete sensor is shown next to a US Quarter. You can also see the individual blue Arduino board and the green "shield" board. On the right are individual "sensor heads" which are basically small PCBs holding the image sensor chip (here the "FireflySmall"), optional optics, and two capacitors. The sensor head plugs into the green shield board via a Hirose DF30 board to board connector. Three sensor heads are shown- on top is a sensor head with optics, in the middle the board-to-board connector side, and on the bottom the image sensor chip side.

 

I wrote a simple Arduino script to grab pixels from the vision chip (configuring it to grab rectangular pixels), compute 1D optical flow using a variation of Srinivasan's "image interpolation algorithm", and dump a display of the optical flow to the serial monitor. (Some of you may know Professor Mandyam Srinivasan as the Australian biologist who has studied honey bee navigation, in particular how honey bees use optical flow to close control loops using simple but elegant heuristics.) A simple video of the sensor is shown below. I've also attached the Arduino script code, in case anyone is interested.

 

 

PIO12Firefly_ProMini_LinearOF.pde

E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones

Comments

  • Hi Geoffrey, any progress with your optical flow sensor since 2011?

  • Ravi- For that one we used a UV curable optical adhesive. That is what I happened to have on hand.
  • I noticed you didnt use JBWeld to cover the wirebonds. Did you use some sort of silicone?
  • Definitvely great +++ I am very interested about these :-))
  • @Ravi- For this one I used the press-molded optics discussed in my last post. The shape and design is essentially the same as the injection molded version. The LED could be for either illumination or indication, and could be visible or near-infrared (since the chip is silicon).
  • Great! I'd love to see those sensors in shops!
  • Looks Great! Are you using pinhole optics, or the injection molded ones in the video? Is the LED simply an indicator, or does it provide illumination, infrared or otherwise?
  • Actually at some point I'd like to start a discussion about open optical flow / vision sensors. As of now we have two versions- this one based on an Arduino, and the CYE8 (Google Code site) based on an ATmega644P processor. The Arduino one is easier to program, but the CYE8 is slightly faster (20MHz vs 8MHz) and has more memory. We may also kick off more powerful version based on an AVR32 (60MHz) or a full DSP.

     

    There are lots of issues surrounding the development and manufacture of such a sensor, in particular one using our own chips. Benefits- we design the silicon, so we can reveal as much about the insides as we like, allowing everyone to hack it to their heart's content. We can also design a chip specifically for an Arduino! (know any chip companies that do that???) Disadvantages- we get the chips in bare die form, thus have to package them or wire bond them to a board, and then apply optics.

     

    (BTW- we did get back the injection molded optics- they look great! I'll make another post as soon as we test them...)

  • Developer

    yeah that looks great. what is the range it can detect movement with your optics?

    one word: i want (ok two words) :)

  • Very nice! With this, the Ladar and Kinect hacking going on, we are going to be spoilt for obstacle avoidance technologies!

This reply was deleted.