As someone who gets ideas for things to build on a regular basis, I have to really evaluate what is worth it to build, and what I need to perhaps write down and come back to later, if at all. If I had an unlimited amount of money, I would hire a few people to help me make more of them a reality. Until then, I get to do my own dirty work, which in many cases requires a broad cross-disciplinary knowledge.
One project that I conceived of a few years ago was an automatic light graffiti device that traced a pattern with a laser. Using a camera set up to take a long exposure shot, these laser marks would, in theory, combine to form some sort of image. But how to do this? As with most of my projects, an engineering education and years of making prepared me to attempt something that I had only a vague idea of how to accomplish.
The device I conceived of used a laser placed on top of a servo fixture that tilted up and down, and panned to the left and right. This meant that I could draw anything in an X-Y plane with this laser. Accurate control, however, would take some work.
Physically, the build wasn’t too hard since the servo fixture was purchased and the laser simply had to be turned on and off. I made the laser holder out of wood, which took a little bit of skill, but it probably could have been simply taped there for a successful result.
What took some thinking was how to translate an image into coordinated pulses to the servo motors as well as the laser. In my case, this meant using the Python programming language to first scale the image to a size that my servos could handle, then converting it to black and white, so the laser would either be “off” or “on” to represent the image more simply than an analog value. From there, the program scanned this simplified image’s pixels, commanding the laser to either shine or stay off, depending on the result.
The best way to do this would be to angle the laser based on trigonometric values, but the resolution of these hobby servos was low enough (1.5 degrees per step) that this was impractical for an image drawing, so I simply used one 1.5 degree step for each pixel, then restricted it to a range of only 30 degrees, or 20 steps. Over this small range, things didn’t get stretched out noticeably on the outer image edges.
I did, however, use these ratios to draw a circle in one of my earliest experiments, though a simple geometric image isn’t as much fun as faces or robots.
Initially, this device was not much fun–or at least confusing–to watch in person. It simply looked like a series of random laser dots. Upon a suggestion by a friend that I knew from a maker group (Makerspaces can be great resources), I decided to use a “Glow Crazy” toy, which glows when light is shined on it, to allow people to see this residual image in person. It made for a neat Maker Faire display, and something that perhaps I will revisit later.
I certainly used a wide array of skills to build this. Trigonometry was used in the first circle experiment to get the necessary lighting points. A basic understanding of programming was needed to control the lasers and servos, as well as translate the pictures. I also needed some electronics knowledge to hook everything up, and certainly some photography knowledge to work with this concept in general.
What is interesting is that some of the more important facets weren’t in careful scientific analysis, but in compromises and creative sourcing. Because of the limitations of the servos, the range of motion was kept to plus or minus 15 degrees, or 20 steps. Additionally, the Glow Crazy board was a great find, and I wouldn’t have thought of it without help.
Though it’s great to specialize, sometimes a little bit of knowledge in many areas outside of your core competence – or even knowing the right people – can go a long way as a MakerPro!