The hardware contains 3 basic parts:
- 5×7 laser matrix
- 5 8-bit D-type latches (SN74LVTH573PW) to control the total 35 laser pointers
- Microcontroller (PIC16F722) to control the decoder and manage the serial communication with iPhone – grab the code.
The laser modules can emit 650nm red laser light, with power consumption of 2~5 mW. Since the laser light is very narrow, any tiny movement is misalignment alters the matrix. So the tricky part is how to position the total 35 laser lights in parallel. I drilled the holes in a plain PCB board, and placed our lasers into the holes.
The micro-controller software is fairly strait forward, it just waiting for command sent by iPhone via the serial port, and execute the command by controlling the 5 latches. It’s that simple and could be done with the Arduino if you wanted.
The iPhone side software is a bit more complex. Apple just added the serial port support in its iPhone SDK 3.0 beta. However, I’m still using the old iPhone 2.2 firmware and haven’t bothered to upgrade yet. So I used an unorthodox way to implement the serial port communication. Basically, I grabbed the IOKit framework from iPhone and load it into Xcode, so that the program no is able to access the /dev/tty.iap. Looking back on it, it’s probably better to use the built in 3.0 SDK serial.After establishing serial communication, the rest is fairly easy, just send out the commands to eLaser hardware and illuminate the laser lights.
Learn more about this project, get codes and all sorts of crazy stuff here