The control system for the lights on LEGO’s Spinax has been prototyped and programed for a simple sequence. If your only interest is to see it in operation, check out the link to the YOUTUBE video. If you want more information read on.
Spinax has 8 lights along its back. I wanted to be able to program the on/off cycles for each light. This could be done using the 8 digital outputs of the joystick ports but left little room for future expansion. Instead three digital output pins were used to send data to a shift register chip, leaving the other 5 free for future additions.
This method of serial data transfer is described well in Your Atari 8-bit Comes Alive by Richard C. Leineker. You can obtain a copy at atarimania.com. The book uses chip 74164 which is referred to as an 8-Bit Parallel-Out Serial Shift Register in Texas Instrument Data Book. The chip requires a clock line and data line for the data transfer and will set the outputs as the data is received and shifted.
Previous experience with the 74LS595 (8BIT Shit Registers With Output Latches) made this my chip of choice. The chip uses a third line to strobe the latch. This chip keeps the outputs the same as edata is being sent using the clock and data lines. Once all the bits are set in a buffer(of sorts) the Latch line is pulsed and the outputs are set all at once.
Both shift register chips have an overflow pin that can be hooked to the data pin of another shift register. You can keep adding chips until data transfer rates are too long to be of use. Now you can control 8, 16, 24, 32…. LEDs with the two or three digital output pins.
The Atari is hooked up to a device driver circuit that will provide enough power to the optocoupler IR side to produce a strong signal on the receiver side. This device driver circuit is from the Comes Alive book on page 136.
The output side of the optocoupler pulses input lines on the shift register chip. The entire circuit seems to draws less power than the Atari 5V pin could provide but an external power supply for the LEDs was used in preparation of future expansion. (Motors or Memory Wire for some animation?) The eyes and head lights are on whenever the circuit is powered up.
To test the circuit a simple program in BASIC was written to send one off bit and 7 on bits to the shift register. After each bit was sent the data, the latch was set making the off led move down the line of 8LEDs.
Where to go from here? The possibilities seem endless.