Water Vapor Display

In early 2013 I discovered pico-projectors. I picked up a relatively inexpensive one (Microvision SHOWWX+ with HDMI input), which sadly can no longer be purchased! It was an incredible piece of technology, which is/was ahead of its time. The first application I came up with it was to create a water vapor display. Basically, generate water vapor (fog), blow it into a curtain with laminar flow, and project an image on it. I created a manifold of about 20 channels, with two plastic bag air-resevoirs (to 'still' the air), pressurized by 2 CPU fans. The manifold had a gap at the based through which water vapor could be sucked up and lifted into a curtain. After building the whole thing, well, it didn't really work. I couldn't get enough fog up into a curtain.

My Unsuccessful Vapor Display

Successful Vapor Displays

ELEX 4315 Term Project

The end of term is around the corner for 2014 and the ELEX 4315 students have done an amazing job on their term project. ELEX 4315 is an Embedded Systems course in C++, which I’ve updated to cover real-time systems and machine vision. This year the course labs added up to an automated Blueberry Sorting Machine. The system the students created¬†used machine vision to identify ‘blue’ berries (ping-pong balls) and sort these into one bin while rejecting all other colored balls to the reject bin. Students developed the machine vision algorithm, microcontroller firmware, C++ control, and electro-mechanical sorting system including:

  • An arduino microcontroller system with custom communications protocol to accept inputs (switches / pushbuttons) and control actuators (servos) and indicators (LEDs).
  • C++ class to manage serial communication from microcontroller to PC
  • C++ class to capture webcam images and perform the decision making on accept or reject of the berries
  • C++ TCP/IP server to allow remote control of system (via another similar custom communication protocol)
  • C++ client application for remote control – modified to run as CGI
  • Web interface to C++ CGI client to control system
  • All objects multi-threaded for optimized real-time performance

Two of the fastest systems are shown below. These systems were able to sort balls at a rate of about 2 per second with in the best run, one error in 45 balls.