USE a BASIC STAMP TO RUN AN RGB BRICK
by iceng in Circuits > Microcontrollers
3259 Views, 6 Favorites, 0 Comments
USE a BASIC STAMP TO RUN AN RGB BRICK
This project displays four moving images :
Men's Jewelry and Toy.
Because we (Men) will wear Jewelry and because we (Men) Toy with almost anything. Here presented is a programable LED RGB UFO graphic COMmunicator. The MJT composed of a Stamp micro-controller, a 5x7 matrix RGB LED 'brick' and some switches to operate this Ible contraption.
- A US FLAG
- A Purple/Red Throbbing Heart
- A Yellow Eye Opens a Blue Iris Looks Left & Right then Closes
- A slowing Flasher of three colored Letters 'M' , 'J' , 'T'
Men's Jewelry and Toy.
Because we (Men) will wear Jewelry and because we (Men) Toy with almost anything. Here presented is a programable LED RGB UFO graphic COMmunicator. The MJT composed of a Stamp micro-controller, a 5x7 matrix RGB LED 'brick' and some switches to operate this Ible contraption.
Simple SCHEMATIC
Circuit Description
This is a micro-controller Stamp operating a 5_column by 7_row by 3_LED_per_cell matrix RGB display. The Stamp uses a simple basic program running fast enough to multiplex red green and blue individual LEDs to create color images on the 5 x 7 display area. A 74HC4017 IC_U1 is clocked by line P0 (pin5) of the Stamp to sequentially multiplex the seven rows. U1 is wired to self reset on every 8th rising clock pulse. U1 can also be forced to reset sync by holding the clock line high for a time.
Parts List
BS2 Stamp from Parallax.
U1 a 16pin 74HC4017 IC
U2 actually an MC7805 a TO-220 5V regulator
D1 & D2 signal diodes
R1 actually a 33K resistor
R2 100K resistor
DIP1 & 2 actually 100 ohm resistors
RGB LED matrix
SW1 & 2 momentary push buttons
Wire-wrap IC sockets Jameco
See the thin plastic shirt pocket support for wearing the finished MJT display.
Short VIDEO
DETAILS COMPONENT SIDE
Good views of component layout.
WIREWRAP SIDE DETAILS
Note the wire-wrap pins are cut short for reducing thickness of the circuit board and some are soldered and bent over to hold the wiring together.
SOFTWARE
Parallax the maker of the Stamp micro-controllers provides a very good and FREE windows editor. Just down load the editor and with the following text cut and pasted into it. You will with a simple RS232 or USB to 4 pin cable ( Construct it yourself or buy from Parallax site ) be communicating with aliens soon.
A text file of this basic program ( S.BS2 ) is also included.
-----------------------------------------------------------------------------------------------------------------------------------
'
'FLAG-FLICKER & HEART-THROB & EYE-OPEN-LEFT-RIGHT-CLOSE & M-J-T
'
'Scans from Left to Right
'
' 1 2 3 4 5 6 7
' .---------------.
'1 | o o o o o o o |
'2 | o o o o o o o |
'3 | o o o o o o o |
'4 | o o o o o o o |
'5 | o o o o o o o |
' `---------------@
I VAR NIB
RED VAR NIB
BLU VAR NIB
PTR VAR NIB
LOP VAR NIB
DAT VAR NIB(15)
TABLE1 DATA (1)
FAT VAR BYTE
TIME VAR WORD
DIRS=-1 'All Outputs
LOP=3 'DO ANY FOUR
READ 0,I:BRANCH I,[FLAG,HEART,EYE,MJT,FINI]
'========================= FLAG ==============================
FLAG
WRITE 0,1 'EEPROM=0 NEXT=1
TIME=9000
' 12345 12345 show LED
' BBBBBgggggRRRRR during
FOR FAT=0 TO 80 'RED/WHT/BLU
OUTS=%1111111111011111:PAUSE 4
OUTS=%1011110111111111:PAUSE 4
OUTS=%1011111111111111:PAUSE 4
OUTS=%1101111111111111:PAUSE 4
NEXT
GOTO LOOP_F
LOOP_F
FOR I=1 TO 4
' 12345 12345 DRIVE 15 LEDS
' BBBBBgggggRRRRR COLLUMN by COLLUMN
OUTS=%0001111111111111
OUTS=%0011111111111110:GOSUB P
OUTS=%1001111111111110:GOSUB P
OUTS=%0101111111111110:GOSUB P
OUTS=%1110111101111110:GOSUB P
OUTS=%1110111111111100:GOSUB P
NEXT
FOR I=1 TO 3
' 12345 12345 DRIVE 15 LEDS
' BBBBBgggggRRRRR COLLUMN by COLLUMN
OUTS=%1010111111111101
OUTS=%1010111111111110:GOSUB P
OUTS=%1111110101111110:GOSUB P
OUTS=%1111111111010100:GOSUB P
NEXT
TIME=TIME-1:IF TIME>1 THEN LOOP_F
LOP=LOP-1:IF LOP = 0 THEN FINI
'========================= HEART ==============================
HEART
WRITE 0,2 'EEPROM=1 NEXT=2
TIME=9000
'~~~~~~~~~~~~~~~~~~~~Clock
' :
' 12345 12345: show LED
' BBBBBgggggRRRRR: during
OUTS=%1001111111100111 ' wait
PAUSE 900 'Reset Scanner to Collumn 1
OUTS=%1111111111111110
DAT(0) =0 'BLUE THROB SEQUENCE
DAT(1) =0
DAT(2) =1
DAT(3) =1
DAT(4) =2
DAT(5) =3
DAT(6) =4
DAT(7) =5
DAT(8) =5
DAT(9) =5
DAT(10)=4
DAT(11)=3
DAT(11)=2
DAT(12)=1
DAT(13)=1
DAT(14)=0
DAT(15)=0
LOOP_H
PTR=PTR+1:BLU=DAT(PTR):RED=5-BLU
FOR I=0 TO RED '12345 12345
' BBBBBgggggRRRRR BBBBBgggggRRRRR
OUTS=%1111111111100110:OUTS=OUTS:OUTS=%1111111111100111
OUTS=%1111111111000010:OUTS=OUTS:OUTS=%1111111111000011
OUTS=%1111111111000000:OUTS=OUTS:OUTS=%1111111111100001
OUTS=%1111111111100000:OUTS=OUTS:OUTS=%1111111111100001
OUTS=%1111111111000000:OUTS=OUTS:OUTS=%1111111111000011
OUTS=%1111111111000010:OUTS=OUTS:OUTS=%1111111111100111
OUTS=%1111111111100110:OUTS=OUTS:OUTS=%1111111111111111
NEXT
TIME=TIME-1
FOR I=0 TO BLU '12345 12345
' BBBBBgggggRRRRR BBBBBgggggRRRRR
OUTS=%1001111111111110:OUTS=OUTS:OUTS=%1001111111111111
OUTS=%0000111111111110:OUTS=OUTS:OUTS=%0000111111111111
OUTS=%0000011111111110:OUTS=OUTS:OUTS=%1000011111111111
OUTS=%1000011111111110:OUTS=OUTS:OUTS=%1000011111111111
OUTS=%0000011111111110:OUTS=OUTS:OUTS=%0000111111111111
OUTS=%0000111111111110:OUTS=OUTS:OUTS=%1001111111111111
OUTS=%1001111111111110:OUTS=OUTS:OUTS=%1111111111111111
NEXT
IF TIME>1 THEN LOOP_H
LOP=LOP-1:IF LOP = 0 THEN FINI
'========================= EYE ==============================
EYE
WRITE 0,3 'EEPROM=2 NEXT=3
TIME=9000
'EYE LOOKS LEFT & RIGHT
'
'~~~~~~~~~~~~~~~~~~~~Clock
' :
' 12345 12345: show LED
' BBBBBgggggRRRRR: during
OUTS=%1111111011110111 ' wait
PAUSE 900 'Reset Scanner to Collumn 1
PTR=0 'SPCLCRCPS 0123456789
FAT=200
LOOP_E
FAT=FAT-1:IF FAT>0 THEN E_BALL
FAT=35:PTR=PTR+1:IF PTR<9 THEN E_BALL
PTR=0
E_BALL
TIME=TIME-1:IF TIME<2 THEN EYE_TEST
BRANCH PTR,[SHUT,PEEK,CENTER,LEFT,CENTER,RIGHT,CENTER,PEEK,SHUT]
CENTER ' 12345 12345 12345
' BBBBBgggggRRRRR BBBBBgggggRRRRR
GOSUB DSPL 'Leader
GOSUB DSPM 'Middle
GOSUB DSPE 'Ender
' BBBBBgggggRRRRR BBBBBgggggRRRRR
OUTS=%1111111111111111:OUTS=%1111111111111110
HIGH 0:LOW 0
GOSUB PUPIL
OUTS=%1111111111111111:OUTS=%1111111111111110
HIGH 0:LOW 0:GOTO LOOP_E
RIGHT 'BBBBgggggRRRRR BBBBBgggggRRRRR
GOSUB DSPL 'Leader
GOSUB DSPM 'Middle
OUTS=%1111101110011101:PAUSE 1:LOW 0
OUTS=%1111110001100011:PAUSE 1:LOW 0
' BBBBBgggggRRRRR BBBBBgggggRRRRR
GOSUB DARK3
GOSUB PUPIL
OUTS=%1111111111111111:OUTS=%1111111111111110
GOTO LOOP_E
LEFT 'BBBBBgggggRRRRR BBBBBgggggRRRRR
OUTS=%1111110001100011:PAUSE 1:LOW 0
OUTS=%1111101110011101:PAUSE 1:LOW 0
GOSUB DSPM 'Middle
GOSUB DSPE 'Ender
'OUTS=%1111111111111110
' BBBBBgggggRRRRR BBBBBgggggRRRRR
OUTS=%1111111111111111:OUTS=%1111111111111110
GOSUB PUPIL
GOSUB DARK3
GOTO LOOP_E
DSPL
OUTS=%1111111011110111:PAUSE 1:LOW 0
OUTS=%1111110101101011:PAUSE 1:LOW 0
RETURN
DSPM
OUTS=%1111101110011101:PAUSE 1:LOW 0
OUTS=%1111101110011101:PAUSE 1:LOW 0
OUTS=%1111101110011101:PAUSE 1:LOW 0
RETURN
DSPE
OUTS=%1111110101101011:PAUSE 1:LOW 0
OUTS=%1111111011110111:PAUSE 1:LOW 0
RETURN
PUPIL
OUTS=%1000111111111111:PAUSE 0:OUTS=%1101111111111110:PAUSE 1
OUTS=%1000111011111111:PAUSE 0:OUTS=%1000111111111110:PAUSE 1
OUTS=%1000111111111111:PAUSE 0:OUTS=%1101111111111110:PAUSE 1
RETURN
DARK3
OUTS=%1111111111111111:LOW 0
HIGH 0:LOW 0
HIGH 0:LOW 0
RETURN
PEEK
OUTS=%1111111011110111:PAUSE 1:LOW 0
OUTS=%1111111011110111:PAUSE 1:LOW 0
OUTS=%1111110101101011:PAUSE 1:LOW 0
OUTS=%1111110101101011:PAUSE 1:LOW 0
OUTS=%1111110101101011:PAUSE 1:LOW 0
OUTS=%1111111011110111:PAUSE 1:LOW 0
OUTS=%1111111011110111:PAUSE 1:LOW 0
OUTS=%1111111111111111:PAUSE 1:LOW 0
OUTS=%1111111111111111:PAUSE 1:LOW 0
OUTS=%1101111111111111:PAUSE 0:OUTS=%1101111111111110:PAUSE 1
OUTS=%1101111111111111:PAUSE 0:OUTS=%1101111011111110:PAUSE 1
OUTS=%1101111111111111:PAUSE 0:OUTS=%1101111111111110:PAUSE 1
OUTS=%1111111111111111:PAUSE 1:LOW 0
OUTS=%1111111111111111:PAUSE 1:LOW 0
GOTO LOOP_E
SHUT
OUTS=%1111111011110111:PAUSE 1:LOW 0
OUTS=%1111111011110111:PAUSE 1:LOW 0
OUTS=%1111111011110111:PAUSE 1:LOW 0
OUTS=%1111111011110111:PAUSE 1:LOW 0
OUTS=%1111111011110111:PAUSE 1:LOW 0
OUTS=%1111111011110111:PAUSE 1:LOW 0
OUTS=%1111111011110111:PAUSE 1:OUTS=%1111111111111110
GOTO LOOP_E
EYE_TEST
LOP=LOP-1:IF LOP = 0 THEN FINI
'============ Men's Jewelry & TOY ==============================
MJT
WRITE 0,4 'EEPROM=3 NEXT=4
FOR FAT=0 TO 80
OUTS=%1110111101111111:PAUSE 4
OUTS=%1110111111111111:PAUSE 4
OUTS=%1111111110111101:PAUSE 4
OUTS=%1111111111110111:PAUSE 4
NEXT
TIME=2
LOOP_T
FOR FAT=1 TO TIME ' M
' BBBBBgggggRRRRR BBBBBgggggRRRRR
OUTS=%1111111111111111:OUTS=%1111111111111110
OUTS=%1111111111000111:pause 1:OUTS=%1111111111111000:pause 1
OUTS=%1111111111101111:pause 1:OUTS=%1111111111111110
OUTS=%1111111111110111:pause 1:OUTS=%1111111111111110
OUTS=%1111111111101111:pause 1:OUTS=%1111111111111110
OUTS=%1111111111000111:pause 1:OUTS=%1111111111111000:pause 1
OUTS=%1111111111111111:OUTS=%1111111111111110
pause 1:NEXT
FOR FAT=1 TO TIME ' J
' BBBBBgggggRRRRR BBBBBgggggRRRRR
OUTS=%1111111111111111:OUTS=%1111111111111110
OUTS=%1100111001111111:pause 1:OUTS=%1100111111111110:pause 1
OUTS=%0111001110111111:pause 1:OUTS=%0111011111111110:pause 1
OUTS=%0111001110111111:pause 1:OUTS=%0111011111111110:pause 1
OUTS=%0111101111111111:pause 1:OUTS=%1011110111111110:pause 1
OUTS=%1101111011111110:pause 1:OUTS=%1110111101111110:pause 1
OUTS=%0011111111111110:pause 1:OUTS=%1100111111111110:pause 1
OUTS=%0111101111111111:pause 1:OUTS=%0111111111111110:pause 1
OUTS=%1111111111111111:OUTS=%1111111111111110
pause 1:NEXT
'goto JJ
FOR FAT=1 TO TIME ' T
' BBBBBgggggRRRRR BBBBBgggggRRRRR
OUTS=%1111111111111111:OUTS=%1111111111111110
OUTS=%1111101111111111:pause 1:OUTS=%1111111111011110:pause 1
OUTS=%1111101111111111:pause 1:OUTS=%1111111111011110:pause 1
OUTS=%1111101111111111:pause 1:OUTS=%1111111111011110:pause 1
OUTS=%1111110011111110:pause 1:OUTS=%1111111111100110:pause 1
OUTS=%1111111100111110:pause 1:OUTS=%1111111111111000:pause 1
OUTS=%1111101111111111:pause 1:OUTS=%1111111111011110:pause 1
OUTS=%1111101111111111:pause 1:OUTS=%1111111111011110:pause 1
OUTS=%1111111111111111:OUTS=%1111111111111110
NEXT
FOR FAT=1 TO TIME
PAUSE 14:NEXT
TIME=TIME+2:IF TIME<80 THEN LOOP_T
LOP=LOP-1:IF LOP = 0 THEN FINI
GOTO FLAG
P:RETURN
'==================== FINISHED ==============
FINI
OUTS=%1111111111111111
WRITE 0,0 'EEPROM=3 NEXT=1
END
Downloads
Author Note
The Parallax BSX is faster then the older BS2 Basic Stamp. It should make a brighter display, pin out is the same.