Calgary/constructing printer


back to U of C Homepage Check out evoGEM

In conjunction with the wetlab component our project also requires a mechanical component. This is both the physical printer system and the software that allows our printer to draw images from the computer. The plotter is operated by two stepper motors, one composing its x axis and the other its y axis. A laser diode is mounted on the x axis severl inches above an area at least the width and height of a standard petri dish. This mechanism allows for very finely controlled and reliable movements that allow our laser to trace very precise shapes. Further the printer is capable of retracing its path in a completely reliable manner as this may be necessary to induce enough agarase expression to see produce the image.

The Printer System works as follows...

Video of Us Beta Testing The Printer

lenna 1

Meet Lenna. This is a picture that has classically been used in computer graphics studies and it is the benchmark for our system. This is what we will be trying to draw on to our bacteria using the printer system.

Lenna after edge detection 2

As much as a shame as it was to take away all that beautiful color this is the next step in how our picture gets from the computer screen to the E. coli. What we are looking at now is the picture after is has been run through the edge detection algorithm provided by Inkscape. Inkscape is an Open Source vector graphics editor, with capabilities similar to Illustrator, CorelDraw, or Xara X, using the W3C standard Scalable Vector Graphics (SVG) file format.

lenna in svg format 3

After the edge detection software from Inkscape has finished the resulting file is saved as a scalable vector graphic(SVG). Which results in the less than lovely image to the left. This is an xml file that describes the entire picture.

NS - Bezier Path of Lenna 4

Next we designed a custom software application to a parse the SVG into an NS-Bezier description. The NS-Bezier description of the image is interpreted by three types of objective C objects: lineTo, moveTo and curveTo. Each of these objects are interpreted by another application we designed, PlotterPilot.

Picture of Printer 5

PlotterPilot is responsible for ineracting with our physical printer. The printer will move in the path defined by the image and draw with the laser on the bacteria in the petri dish. After that the rest is up to the bacteria.