Summary of Drawing with a Laser – Hack-a-Day Logo
This article details a DIY project to draw the Hack A Day logo using a laser pointer and two servos. The creator modified a standard laser by soldering wires to bypass its switch and mounted it on a cardboard frame driven by servos. While the deadline was missed, the project served as an educational experience in prototyping with limited resources, resulting in open-source code released under the MIT license.
Parts used in the Laser Drawing Project:
- Laser pointer
- Two servos
- Cardboard
- Copper wire
- Hacksaw
- Masking tape
- Ninja knitting technique (for assembly)
Reading Hack a Day I found an interesting challenge: drawing their logo somewhere. And the fact that was even more interesting: “preference will be given to the largest and smallest submissions“.
I started figuring out how to do something like that with the things I had around, and settled for using a laser and two servos. Even though I missed the deadline for submissions, it became a very interesting project and I learned a lot.
See my project featured on Hack A Day and my personal blog post for full details!
Get the code!
I took the time to upload the code to my GitHub account. You can download the Arduino code, both Processing scripts and even the Python code I used previously from the laserdriver repository. It’s all released under the MIT license.
What I learned/what’s next
WHAT’S NEXT
I learned a lot by making this. These are some of the things I’d like to change in the future:
- The line algorithm must be enhanced in some way.
- I must redesign the frame to take advantage of the servos’ definition.
- The laser is weak. I should use something more powerful.
- I could store the canvas boundaries‘ variables using the EEPROMex library, so they don’t need to be entered at startup.
- The drawing array consists of 3 integers per point. It’s a huge waste of memory, given that the coordinate values are usually below 3000 and the laser status is just a binary value. Memory usage can be optimized.
- A physical button to start/stop drawing would be somewhat easy to add (to dispense serial communication)
- An automatic camera trigger would be helpful. I didn’t have an opto-isolator for that.
The Project
Here is an annotated version of how I built this:
GETTING STARTED
I built the structure using only what I had at home and because of that many design choices were governed by that. There are many ways to draw with a laser and I think the best one is using a moving mirror, but sadly I didn’t have a tiny mirror for this, so the next option was moving the laser directly. The main disadvantage of this design is that I can’t replace the laser easily, but I can live with that.
I started by cutting a piece of cardboard to fit the servo arm. Once that was done, I attached the second servo to that cardboard using a copper wire and some ninja knitting technique.
My laser pointer was convenient at pointing things but not so much at being an electronic part for my project. It was inside a large cylinder and it was necesary to push a button to turn it on. The solution: a hacksaw (a tool with a cool name, by the way).
After tearing open the laser pointer I soldered two cables to the laser (bypassing the switch) and it was ready to be used.
The second servo (which holds the laser) had a cardboard piece too, but it was bulky and (more importantly) useless, so I attached the laser to the arm with high technology (masking tape).
Read More: Drawing with a Laser – Hack-a-Day Logo
- What components were used to build the structure?
The structure was built using cardboard, two servos, a laser pointer, copper wire, masking tape, and a hacksaw. - How was the laser pointer modified for electronic use?
The creator tore open the laser pointer and soldered two cables to the laser to bypass the original button switch. - Why was moving the laser directly chosen over moving a mirror?
Moving the laser was chosen because the creator did not have a tiny mirror available for the alternative design. - Can I access the code for this project?
Yes, the Arduino code, Processing scripts, and Python code are available on GitHub under the MIT license. - What is the main disadvantage of moving the laser directly?
The main disadvantage is that the laser cannot be easily replaced once attached to the arm. - How was the second servo attached to the first one?
The second servo was attached to a cardboard piece using a copper wire and a ninja knitting technique. - What future improvement is suggested regarding the line algorithm?
The creator plans to enhance the line algorithm in some way for future iterations. - How can memory usage be optimized in the drawing array?
Memory can be optimized because coordinate values are usually below 3000 and laser status is binary, making the current three-integer format per point wasteful. - What feature could replace serial communication for starting and stopping?
A physical button to start or stop drawing would be easy to add to dispense with serial communication. - What component was missing for an automatic camera trigger?
The creator did not have an opto-isolator, which would have been helpful for an automatic camera trigger.
