the code below is a moddiefied code I made from BOT Dan’s Digital clock
to work the display:
goto “Display Input Section”
In the code change “v = if( fake_z == 0, let_???, v );” to “v = if( fake_z == 0, let_a, v );” for the letter A
In the code change “v = if( fake_z == 0, let_???, v );” to “v = if( fake_z == 0, num_6, v );” for the number 6
due to the nature of the code some letters are unavailable they are (M, V, W, Z)
and you are limited to 6 letters per laser projector
[quote]
###########################################################
###########################################################
#LASER PROJECTOR #
DIGITAL Display
- Original code by BOT Dan - digital clock
- Altered code by Starcade - digital display
SETTINGS:
- Shape: Rectangular Grid
- Grid Size: 20 x 20
- Colour: White
Set the scale of the Display here
scale = 2;
#Set the distance between letters here #
gap = 8;
Colour settings can be found at the bottom
###########################################################
Make 7 (6x10) display squares ( Top-left = (0,0) )
fake_z = floor( index / 60 );
fake_y = floor( ( index - ( fake_z * 60 ) ) / 6 );
fake_x = ( index % 6 );
Place the lasers into the display squares
x’ = -( fake_x * scale + ( fake_z * ( 6 * scale + gap ) ) );
x’ = x’ + ( 20 * scale ) + ( 3 * gap );
y’ = ( fake_y * scale );
y’ = y’ - ( 5 * scale );
Break up the 7th display square into 2 colon columns
fake_x = if( ( index>=360 & index<=379 ),
( index % 2 ),
fake_x);
fake_y = if( ( index>=360 & index<=379 ),
floor( ( index - 360 ) / 2),
fake_y);
fake_x = if( ( index>=380 & index<=399 ),
( index % 2 ),
fake_x);
fake_y = if( ( index>=380 & index<=399 ),
floor( ( index - 380 ) / 2),
fake_y);
Position these 2 colon columns
x’ = if( ( index>=360 & index<=379 ),
-( fake_x * scale + ( 2 * ( 6 * scale + gap ) ) ) + ( 20 * scale ) + ( 3 * gap ),
x’ );
y’ = if( ( index>=360 & index<=379 ),
fake_y * scale - ( 5 * scale ),
y’ );
x’ = if( ( index>=380 & index<=399 ),
-( fake_x * scale + ( 4 * ( 6 * scale + gap ) ) ) + ( - floor( 3 / 2 ) * ( 2 * scale + gap ) ) + ( 20 * scale ) + ( 3 * gap ),
x’ );
y’ = if( ( index>=380 & index<=399 ),
fake_y * scale - ( 5 * scale ),
y’ );
Define the 7 segments of display grid and the “:”
seg_t = (fake_y<=1);
seg_t_l = ((fake_x<=1) & (fake_y<=4));
seg_t_r = ((fake_x>=4) & (fake_y<=4));
seg_m = ((fake_y>=4) & (fake_y<=5));
seg_m_t = ((fake_x>=2) & ((fake_x<=3)) & (fake_y<=4));
seg_m_b = ((fake_x>=2) & ((fake_x<=3)) & (fake_y>=5));
seg_b_l = ((fake_x<=1) & (fake_y>=5));
seg_b_r = ((fake_x>=4) & (fake_y>=5));
seg_b = (fake_y>=8);
seg_dot = ( fake_y >= 2 & fake_y <=3 ) | ( fake_y >= 6 & fake_y <= 7 );
Define 0 to 9 using the segments
num_0 = seg_t + seg_t_l + seg_t_r + seg_b_l + seg_b_r + seg_b;
num_1 = seg_m_t + seg_m_b;
num_2 = seg_t + seg_b_l + seg_t_r + seg_m + seg_b_l + seg_b;
num_3 = seg_t + seg_t_r + seg_m + seg_b_r + seg_b;
num_4 = seg_t_l + seg_t_r + seg_m + seg_b_r;
num_5 = seg_t + seg_t_l + seg_m + seg_b_r + seg_b;
num_6 = seg_t + seg_t_l + seg_m + seg_b_l + seg_b_r + seg_b;
num_7 = seg_t + seg_t_r + seg_b_r;
num_8 = seg_t + seg_t_l + seg_t_r + seg_m + seg_b_l + seg_b_r + seg_b;
num_9 = seg_t + seg_t_l + seg_t_r + seg_m + seg_b_r;
#Define letters
let_a = seg_m + seg_t + seg_t_l + seg_t_r + seg_b_l + seg_b_r;
let_b = seg_t + seg_t_l + seg_t_r + seg_m + seg_b_l + seg_b_r + seg_b;
let_c = seg_t + seg_t_l + seg_b_l + seg_b;
let_d = seg_t_r + seg_m + seg_b_l + seg_b_r + seg_b;
let_e = seg_t + seg_t_l + seg_m + seg_b_l + seg_b;
let_f = seg_t + seg_t_l + seg_m + seg_b_l;
let_g = seg_t + seg_t_l + seg_t_r + seg_m + seg_b_r + seg_b;
let_h = seg_t_l + seg_m + seg_b_l + seg_b_r;
let_i = seg_m_t + seg_m_b;
let_j = seg_t_r + seg_b_r + seg_b;
let_k = seg_t_l + seg_t_r + seg_m + seg_b_l + seg_b_r;
let_l = seg_t_l + seg_b_l + seg_b;
let_m = seg_m_b #no way to make an m
let_n = seg_m + seg_b_l + seg_b_r
let_o = seg_t + seg_t_l + seg_t_r + seg_b_l + seg_b_r + seg_b;
let_p = seg_t + seg_t_l + seg_t_r + seg_b_l + seg_m;
let_q = seg_t + seg_t_l + seg_t_r + seg_b_r + seg_m;
let_r = seg_b_l + seg_m;
let_s = seg_t + seg_t_l + seg_b_r + seg_b + seg_m;
let_t = seg_t + seg_m_t + seg_m_b;
let_u = seg_b_l + seg_b_r + seg_b;
let_v =#no way to make an v
let_w =#no way to make an w
let_x = seg_t_l + seg_t_r + seg_m + seg_b_l + seg_b_r;
let_y = seg_t_l + seg_t_r + seg_m + seg_m_b;
let_z =#no way to make an z
blank =#use this for spaceing
v = 0;
###########################################################
Display Input Section
change let_??? to the letter or number(num_1-0) you want
v = if( fake_z == 0, let_???, v );
v = if( fake_z == 1, let_???, v );
v = if( fake_z == 2, let_???, v );
v = if( fake_z == 3, let_???, v );
v = if( fake_z == 4, let_???, v );
v = if( fake_z == 5, let_???, v );
###########################################################
s = 1;
h = 0;
###########################################################
OTHER SETTINGS AT THE TOP
COLOUR SETTINGS:
- [1] Block Colour
- [2] Rainbow - Full
- [3] Rainbow - Horizontal
- [4] Rainbow - Vertical
Set this to one of the numbers above
colour_type = 4;
If using block colour, set your colour here (0-360)
colour_block = 245;
If using rainbow, change the cycle speed here
colour_speed = 39;
If using rainbow, change the stretch of colour
colour_stretch = 8;
###########################################################
h = if( colour_type == 1, colour_block, h );
h = if( colour_type == 2, timecolour_speed, h );
h = if( colour_type == 3, timecolour_speed + x’colour_stretch, h );
h = if( colour_type == 4, timecolour_speed + y’*colour_stretch, h );
###########################################################[/quote]