Examples#
Example: Display a single image.#
import Luxbeam
from Luxbeam.sample import number_image
# This is the equivalent example of displaying non-scrolling images in the LB 4600 user guide.
# Connect to the Luxbeam
luxbeam = Luxbeam.Luxbeam("192.168.0.10", timeout=1) # modify the ip address if required.
# Prepare the image (display 123 on the DMD)
image = number_image(123, luxbeam.cols, luxbeam.rows)
# Set image type to 1 (binary). (One-time Operation)
luxbeam.set_image_type(1)
# Set inum size to 1080. (One-time Operation)
luxbeam.set_inum_size(luxbeam.rows)
# Disable the sequencer.
luxbeam.set_sequencer_state(Luxbeam.SEQ_CMD_RUN, Luxbeam.DISABLE)
# Set sequencer in reset-state
luxbeam.set_sequencer_state(Luxbeam.SEQ_CMD_RESET, Luxbeam.ENABLE)
# Load the image to inum = 0.
luxbeam.load_image(0, image)
# Compose the sequencer file.
seq = Luxbeam.LuxbeamSequencer()
for _ in seq.jump_loop_iter(): # A while-true loop
seq.load_global(0, 400) # Load data from Inum (0) to DMD
seq.trig(Luxbeam.TRIG_MODE_NEGATIVE_EDGE, Luxbeam.TRIG_SOURCE_INTERNAL, 0) # Neg. edge internal trigger
seq.reset_global(40) # Display contents on DMD
# View the generated sequence file
print(seq.dumps())
# Send sequence file.
luxbeam.load_sequence(seq.dumps())
# Take sequencer out of reset-state
luxbeam.set_sequencer_state(Luxbeam.SEQ_CMD_RESET, Luxbeam.DISABLE)
# Start the sequencer
luxbeam.set_sequencer_state(Luxbeam.SEQ_CMD_RUN, Luxbeam.ENABLE)
Example: Compose the sequncer code with python#
import Luxbeam
# This example shows how one can use LuxbeamSequencer to program the LuxBeam sequencer code with python.
seq = Luxbeam.LuxbeamSequencer()
reg0 = seq.assign_var_reg(regno=0) # Assign register 0
for _ in seq.jump_loop_iter(): # While-True loop
seq.load_global(0, 400) # Load the image 0
for _, inum in seq.range_loop_iter(0, reg0): # inum changes from 0 to register_0
seq.reset_global(40) # Display the image
seq.load_global(inum + 1, 400) # Load the image inum+1
seq.trig(Luxbeam.TRIG_MODE_NEGATIVE_EDGE, Luxbeam.TRIG_SOURCE_SOFTWARE + Luxbeam.TRIG_SOURCE_ELECTRICAL,
0) # Waiting for negative software or electrical trigger
print(seq.dumps())
"""
Generated sequencer code:
AssignVar ConstVar0 0 1
AssignVarReg Var0 0 1
Label Loop0 1
LoadGlobal ConstVar0 400
AssignVar Var1 0 1
Label Loop_1 1
ResetGlobal 40
AssignVar Var2 1 1
Add Var2 Var1 1
LoadGlobal Var2 400
Trig 1 9 0
Add Var1 1 1
JumpIf Var1 < Var0 Loop_1 1
Jump Loop0 1
"""