|Yay! Some parts have arrived.
||[Jan. 4th, 2009|11:26 pm]
I've got some of my Yule present in the post.|
It's comprised of some LED's, little programmable chips, a prototyping board, things like that.
The programmer that connects my PC to the little chips haven't arrived yet, so I made do sorting them out with my partner into little boxes on a table in the study.
I also got the soldering iron out to remove some bits from an old circuit board.
I quickly discovered it's impossible to de-solder anything with more than 3 pins.
I read up online about it, and found some articles - the hard way is teasing each one in turn, and the easy way is to get heat distribution tools to de-solder them all at once.
I came up with a cunning plan - as the board wasn't going to be used, I got some wire clippers and clipped upto the pins of the display, then popped it off. Yay! That's 1 £6 LCD module for free.
I also discovered chip holders aren't all the same - all the ones we ordered are cheap and nasty - they don't go into the prototyping board... the 'pins' are flat and pointy bits of metal, and it doesn't like them.
There was one on the old circuit board - a really nice one, with round pins.
My clip and wiggle technique broke it. =(
I've realised if I get a little saw, I can saw between the pins, and then desolder each one at a time. =)
Hopefully I'll be programming the little chips this weekend. =) I'm going to start on a candle simulator, and an LED firefly. (Once I get an LED to flash via the chip)
The flickering candle is one of the realist I've found - and the way it works is simple, and the program for the little chip is short - but surprisingly complex!
I had to Google what the program does, as the author doesn't explain what's going on. It uses "Galois LFSRs", which from the flickering looks a fast and efficient way of making "random" events happen...
What you're looking at in the video is 5 pins from the chip adding power to the LED. The more pins are on, the brighter it gets.
The program that controls the pins appears to be working randomly, but as you can see in this C program - it's entirely deterministic:
unsigned int lfsr = 1;
unsigned int period = 0;
lfsr = (lfsr >> 1) ^ (-(lfsr & 1u) & 0xd0000001u); /* taps: 32 31 29 1; characteristic polynomial: x^32 + x^31 + x^29 + x + 1 */
} while(lfsr != 1u);
It's back to work tomorrow. Gnight!