implement leds

This commit is contained in:
Siwat Sirichai 2022-10-26 15:10:08 +07:00
parent c572956e27
commit e5864eeec5
5 changed files with 33 additions and 23 deletions

View File

@ -13,5 +13,5 @@ class collision:
def collision_handle(self, data):
val = data[2]
if val == 1:
self.leds.flash(r=255,g=0,b=0,duration_ms=250)
self.lcd.keke_hurt()
self.leds.__flasher__(r=255,g=0,b=0,duration=250)
self.lcd.play_video("keke_hurt")

View File

@ -18,14 +18,14 @@ class environment:
while True:
if self.sensors.get_temperature() > 38.0:
if not self.t_alerted:
lcd.keke_died()
lcd.play_video("keke_died")
self.t_alerted = True
else:
self.t_alerted = False
if self.sensors.get_humidity_pct() > 60.0:
if not self.h_alerted:
lcd.keke_cute_noise()
lcd.play_video("keke_cute_noise")
self.h_alerted = True
else:
self.h_alerted = False

View File

@ -4,21 +4,6 @@ class lcd:
self.nextion = kuukar_nextion.nextion()
self.nextion.send_command("page home")
def keke_uwu(self):
pass
def keke_cute_noise(self):
pass
def keke_hurt(self):
self.play_video("keke_hurt")
def keke_died(self):
pass
def takina_noise(self):
pass
def play_video(self,filename: str) -> None:
self.nextion.send_command("page video_player")
self.nextion.send_command("video.path=\"sd0/"+filename+".video\"")

View File

@ -1,12 +1,37 @@
import threading
from time import perf_counter
from telemetrix_rpi_pico import telemetrix_rpi_pico
import time
from kuukar_config import LEDS_DATA_PIN, LEDS_NUM
class leds:
flashing = False
start_time = perf_counter()
def __init__(self, aux_board: telemetrix_rpi_pico.TelemetrixRpiPico) -> None:
self.aux_board = aux_board
self.aux_board.set_pin_mode_neopixel(LEDS_DATA_PIN, LEDS_NUM)
def flash(self, r: int, g: int, b: int, duration_ms: int):
pass
def flash(self,r: int, g: int, b: int, duration: int):
if not self.flashing:
self.flashing = True
self.start_time = perf_counter()
threading.Thread(target=self.__flasher__,args=(r,g,b,duration))
@staticmethod
def __blink_func__(t: float,dur: float):
if t>dur:
return 0
return (-1/(dur/2.0)**2)*(t-dur/2.0)**2+1
def __get_time__(self) -> float:
return perf_counter()-self.start_time
def __flasher__(self, r: int, g: int, b: int, duration: int):
while True:
print(leds.__blink_func__(self.__get_time__(),duration))
time.sleep(0.05)
if self.__get_time__ > duration:
flashing = False
break

View File

@ -28,7 +28,7 @@ class sensors:
def __sonar_callback__(self, data):
pin = data[1]
distance = data[2]
sonar_id = self.sonar_pins.index(pin)
sonar_id = self.__sonar_trig_pins__.index(pin)
self.__sonar_distances__[sonar_id] = distance
def get_temperature(self) -> float: