def spoondrift_effect(self): self.clear_flag = False light = 1.5 for index in range(24): for count in range(8): led_matrix_o.set_single_led(((index + 4) + count) % 12, 10, 20, 120) led_matrix_o.set_single_led((index + 0) % 12, int(10 * light), int(20 * light), 120) led_matrix_o.set_single_led((index + 1) % 12, int(10 * light), int(20 * light), 120) led_matrix_o.set_single_led((index + 2) % 12, int(10 * (3.67 * (light - 1) + 1)), int(20 * (1.67 * (light - 1) + 1)), 120) led_matrix_o.set_single_led((index + 3) % 12, int(10 * (3.67 * (light - 1) + 1)), int(20 * (1.67 * (light - 1) + 1)), 120) light = math.sin((index / 24) * math.pi) * 3 + 1.5 time.sleep(0.2) if self.clear_flag: led_matrix_o.clear() break
def rainbow_effect(self): self.clear_flag = False red = 0 green = 0 blue = 0 for i in range(1001): red = int((math.sin(0.36 * i / 180.0 * math.pi) + 1) * 100) green = int((math.sin(0.72 * i / 180.0 * math.pi) + 1) * 100) blue = int((math.sin(1.08 * i / 180.0 * math.pi) + 1) * 100) led_matrix_o.set_all_led(red, green, blue) time.sleep(0.002) if self.clear_flag: led_matrix_o.clear() break
def meteor_effect(self): self.clear_flag = False for index in range(12): for count in range(8): led_matrix_o.set_single_led(((index + 4) + count) % 12, 1, 0, 6) led_matrix_o.set_single_led((index + 0) % 12, 10, 10, 10) led_matrix_o.set_single_led((index + 1) % 12, 20, 20, 20) led_matrix_o.set_single_led((index + 2) % 12, 30, 30, 30) led_matrix_o.set_single_led((index + 3) % 12, 120, 120, 120) time.sleep(0.05) if self.clear_flag: led_matrix_o.clear() break
def firefly_effect(self): global firefly_table self.clear_flag = False count = 0 # here off all led is necessary led_matrix_o.set_all_led(0, 0, 0) while True: for i in range(len(firefly_table)): led_matrix_o.set_single_led(firefly_table[i][0], 0, firefly_table[i][1], 0) if firefly_table[i][3] == True: firefly_table[i][1] += 1 if firefly_table[i][1] >= firefly_table[i][2]: firefly_table[i][3] = False else: firefly_table[i][1] -= 1 if firefly_table[i][1] == 0: firefly_table[i][4] += 1 if firefly_table[i][4] == 3: led_matrix_o.set_single_led( firefly_table[i][0], 0, 0, 0) # create new one firefly_id = random.randint(-4, 16) step = random.randint(10, 25) firefly_table[i][0] = firefly_id firefly_table[i][1] = 1 firefly_table[i][2] = step firefly_table[i][3] = True firefly_table[i][4] = 0 else: firefly_table[i][3] = True time.sleep(0.003) time.sleep(0.02) count += 1 if count > 250: break if self.clear_flag: led_matrix_o.clear() break
def clear(self): self.clear_flag = True led_matrix_o.clear()
def off_all(self): led_matrix_o.clear()