Close

Hardware Updates

A project log for Persistence of Vision LED Matrix

Because every project needs a twist.

Matthew James BellafaireMatthew James Bellafaire 01/20/2019 at 23:020 Comments

Now we’re back in my realm of competency, so let’s get going! The biggest issue I was encountering in this project was that the image would rotate slowly but never remain stable. With this behavior it would have been impossible to display 3D animations, which was the ultimate goal of this project. To eliminate this problem two hardware changes had to be made, and both of those are feedback.

Previously I had used a crude feedback system on the motor controller that would give the ATtiny85 controlling the ESC some information about how fast it was spinning. As to why I had to do that given that I’m using a brushless motor with an ESC is a whole other issue. However, previously the feedback was accomplished by a limit switch which would be pressed every time a rotation had been complete. This solution worked but was far from ideal, there were significant wear issues with the arrangement and I ended up replacing the limit switch twice. Now the motor gets its feedback from a more useful opto-interrupter circuit, since the main gear and this opto-interrupter never come in contact they should never wear out. The opto-interrupt in question is the EE-SX4070, which had a sufficiently wide opening to be useful for my application. The schematic used for the entire sensor module is fairly simple (shown below). Whenever the opto-interrupter is triggered it sends a high signal to the ATtiny85 which is counted and used to measure/adjust the speed of the motor.

For the spinning portion of the project however I had to be more creative. Since the top part still has some wobble to it (about 3mm of play) the EE-SX4070 (with it's 8mm deep slot) was the more difficult option for that portion since putting something in to trigger it could easily end up with it being destroyed. Because of that issue I decided to just make my own opto-interrupter, for this I utilized what I had on hand:

I used some 2.2k resistors, a GM5539 Photo-resistor, and a MCP6241 rail-to-rail opamp. The resistors and photoresistor create a wheat-stone bridge which when lit creates a voltage potential across the bridge (left center being ground on my multimeter) of -.9v, when the LED is blocked the potential goes to about 1.2v. For this circuit the opamp is just used as a comparator, but it does its job nicely. Whenever the light from the LED is blocked a 5v signal is sent out to the matrix driver board and when it is unblocked the out-line goes to 0v. The main advantage to doing this myself was that I could create a wide and tall component to the exact size requirements I needed. The body of the part was modeled in google SketchUp and 3d printed, all components were then built onto protoboard then the power, ground, and signal wires were bodged into the main board. Which isn't ideal, especially because I originally planned to have this as an option but failed to leave any pads on the PCB to accommodate it. 

Custom Opto-interrupter installed on main platform (upper left)
bodge wires on main board, green wire for signal.

Discussions