zaterdag 4 juli 2009

More animations

I finally settled into my new place in Sunnyvale, so you can expect more posts here. I added some animations to the LED cube: a heart beat, an elevator, a cube drawing and a slow glow effect. Especially the glow effect is impressive (you can't see the LED blink) and only possible due to the way the cube was wired. Other effects are trickier, though, hopefully I can define one of the trickier ones tomorrow.

zondag 26 april 2009

LED cube video



And here is the video showing the result.

Source code for LED cube control

The source code for the LED cube control is now available. Basically PORTB and PORTC of the PIC16F57 (which is actually a low end device) are used to control the output. I'm looping one bit through PORTB and one bit through PORTC to address all LED.

Fourth layer picture

This is the LED cube with the fourth layer completed. It worked immediately: I wrote a small program to test individual control of the LED and was succesful at lighting each one individually. Now it is time for the hard part: creating animations.

zaterdag 25 april 2009

Fourth layer

The fourth layer is finished, but not attached yet. Hopefully that will happen tomorrow, together with my first animation. Video should be provided.

zondag 12 april 2009

Third layer

And here is the third layer of the cube. I also rewired the connections so the cathodes and the anodes are each on their own port. One more layer, which doesn't need any more connections, and the circuit is finished.

maandag 30 maart 2009

Pattern


I succeeded in creating a two part pattern loop. An issue was that blanking the image in between each shift caused the LED to be less bright. By adding a delay the impact of the blank could be reduced, however, initially there was too much delay and the pattern seemed to be blinking. The correct code is as follows:


PatternDelay
call Blank
movf p1,w
movwf PORTC
movf p1+1,w
movwf PORTB
call SmallDelay
call Blank
movf p2,w
movwf PORTC
movf p2+1,w
movwf PORTB
call SmallDelay
decfsz delay+1,f
goto PatternDelay
decfsz howlong,f
goto PatternDelay
retlw 0


Here the two patterns are in p1 and p2. As you can see it is relatively easy to extend to more patterns. The next step would be to write an application that can find the minimum sets needed to display a certain pattern.