Firefly Environment - Journal
- Paul and I worked on finishing the wiring. We were up in Shift Space until 5 am. It was terrible. The wires were shorter than I expected so we had to add on more wires onto each end. At the end of the day, we were done. One of the chips had gone bad so I tossed it out. Let's just hope it doesnt happen again during showtime!
- I have completed writing the code that will be used for our final project. The code can be accessed here.
- I made use of all three drivers by linking them together. The ouput (Serial Data Out) from Chip1 goes to the input (Serial Data In) of the next, and so forth. That way, it extends to 48-bits.
- I have written a code that will randomly select any 30 LEDs to light at one time, and then flickers (by adjusting the duty cycle - see the code for more details) before lighting another 30.
- By having 30 at a time, some of the LEDs that were previously lit will be lit again (thirty is a big percentage of 48, about 60%, so it is likely to have the same LEDs blink again), while some that were previously lit would be blank. This will create an effect that the Fireflies are everywhere, without a distinguishable pattern to it.
- I had made a simple startup routine that will enable all of the LEDs. This way, we can check if there's an LED that is out. With another push of a button, it will enable the Firefly mode for display.
- Click here for the schematic.
- Time is running out. With only a few days left until Final Friday, things are starting to get really hectic. I have successfully figured out a way to play with those LED driver chips and can make a simple movement of LEDs moving across the entire board.
- We have decided to just use 48 LEDs (and save the other two just in case one of them burns out). That would mean just using three 16-bit LED drivers.
- Here is a pinout of the chip:
- The chip works this way:
- An output from the LogoChip (a pattern of on or off in any combination) is fed into the Serial Data In pin (PIN 2), one at a time (either on or off). This will represent a serial data input being fed to the chip.
- Then, another output from the LogoChip controls the clock (PIN 3).
After "data" has been delivered to PIN 2, a clock pulse will send the data in.
- The driver contains a shift register. Which means that after every clock, a new set of input will be accepted and the contents of the previous ones will be shifted.
- Say, I have a data to be transmitted in that is 0101. I will first need to send '1' and pulse/clock it. So the content of the register will now contain a '1'. It remembers there is a '1' in the register, but just moves it across the entire 16-bits. That way, we can keep on changing the input but still retain the previous inputs. All we need to do is to change the input on or off and pulse it. It reduces the number of input pins needed considerably.
- Once all the data that are in are loaded into the register, we need to LATCH it. This moves the data from the register to the output. An output from the LogoChip controls the Latch (PIN 4).
- The output can also be controlled to display or to blank. As it turns out, this is an excellent way of controlling the duty cycle or the brightness of the LEDs. This is great for mimicking the behavior of real fireflies.
- Keith Neufeld, our classmate, had suggested the idea of using a serial LED driver from Allegro (http://www.allegromicro.com). I checked the specifications of the chip and decided it was just the right driver needed for our project. Keith had given me a link showing an 8-bit driver, AE6275. With 50 leds, we would need about 6-7 of those chips. That would be highly unnecessary. Thankfully, Allegro has another chip in those series, AE6276, which is a 16-bit version. I went straight ahead and ordered 4 of them.Now it's just a matter of learning it!
- Paul had finished soldering every single LED onto 10-feet wires.He had carefully shrink-wrapped them as well. Check his page for pictures and notes on the process.
- LEDs are ready, now I need to work on how to drive them.
- Paul and I were discussing on how we should implement the firefly movement. We almos went ahead with the mechanized movement idea but instead changed our minds. The class did a wonderful job listening to our idea and contributed to the idea of having a horde of fireflies. This number will be in the range of 40-60 fireflies, all hanged from the ceiling but flickers in series creating some movement effect just like Christmas lights.
- We decided on 50 LEDs and Paul went a head and ordered them. The only problem now was how to light up 50 LEDs from the LogoChip? There were several options in doing this: First is to have some of the outputs tied together and "trimmed to fit" the number of outputs on the LogoChip. The disadvantage of this is that there will be an instantly recognizable pattern (in terms of which group of LEDs light or blank). We wanted something more random. Plus, there will also be current considereations that we need to address.
- Another idea is to use an external chip to drive the LED. As of this moment, I have not yet found an appropriate chip. We chose this idea and is highlighted as part of our Final project proposal.
- We first thought of an idea visualizing an environment. Paul had wanted to create an outdoor environment with fireflies. The fireflies will be hanged from a ceiling and made to show some movement. There will be a small fixture on the floor with sand and grass.
- Implementation: Our first idea is to have the fireflies linked to some sort of mechanical device, like a small rod, which would stir up the position of the fireflies, creating a "flying" effect. The fireflies were to be made using amber LEDs. The idea is still very vague but, it's a much more concrete compared to our previous ideas with the mason jars. We will stick to this.