Light Graffiti With Servos And Python


Light Graffiti is can be lots of fun if you have a decent amount of artistic ability, and a keen sense of timing. If you don’t have the necessary skills, you can always compensate by using Python-controlled servos to move everything automatically. The Python code can be found here, and makes use of the Python Image Library to process the images into a “drawable” form. A [pyMCU] with firmware capable of simultaneous servo control was used to move the laser fixture around.

One of the more difficult aspects of this experiment was getting the timing correct between each laser pulse. The timing routine involes a bit of geometry, calculating the distance between each using trig. As explained in the article, this may be a bit of overkill.  It still didn’t compare to the trig involved in a previous experiment drawing a circle with this laser-servo fixture.  Be sure to check out the video of this laser-setup in action after the break.  I’ve been quite pleased with the results, and look forward to what can be done with it in the future!

Thanks to [pyMCU] for letting me have a few of these boards to play with!

12 thoughts on “Light Graffiti With Servos And Python

  1. If he’ed slap some phosphorescent paint on the hunk of wood he’s using as a display he’ed probably get a better final image. (And if he could get his hands on a UV laser all the better.)

  2. This homebrew servo version is cool, but if you want to do some serious laser projection get a set of galvos! They use special motors that run at insane speeds. A set on the cheaper end would be 20kpps (20 thousand points per second). They usually make vector displays, but you could use them like this if you wanted.

      1. Galvanomoters. They’re very fast/sensitive but inertia and/or friction can quickly overcome them, so they’re not really suited for heavy loads, but they work nicely for moving a light little mirror.

  3. I did this a few years back and learned some interesting things in the process…

    – Some lasers are really great for PWM intensity modulation and others refuse to cooperate unless driven from a fixed voltage.

    – RC car/plane servos don’t have reliable “end stops”. Thus repeatability is almost impossible without adding sensors (galvos don’t have this problem).

    Here’s my best effort at drawing the arduino logo with my laser…

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.