from pybricks.hubs import PrimeHub hub = PrimeHub() class Colors: RED: str = "\033[0;31m" GRE: str = "\033[0;32m" YEL: str = "\033[0;33m" BLU: str = "\033[0;34m" MAG: str = "\033[0;35m" CYA: str = "\033[0;36m" WHI: str = "\033[0;37m" NC: str = "\033[0m" def calcola_carica(v_mv: float) -> str: v: float = v_mv / 1000 carica = "" if v >= 8.4: carica = f"{Colors.BLU}CARICA" elif v >= 7.4: carica = f"{Colors.GRE}MEDIA" elif v > 6.8: carica = f"{Colors.YEL}QUASI SCARICA" else: carica = f"{Colors.RED}SCARICA" return carica + Colors.NC def calcola_perc(v_mv: float) -> float: v: float = v_mv / 1000.0 v_min: float = 6.8 v_max: float = 8.5 perc: float = (v - v_min) / (v_max - v_min) * 100.0 if perc < 0.0: return 0.0 if perc > 100.0: return 100.0 return perc def print_carica(): v_mv = hub.battery.voltage() # millivolt i_ma = hub.battery.current() # milliampere (corrente assorbita) print(f"Voltage: {v_mv} mV | Current: {i_ma} mA") # print(f"Caricatore: {}") print(f"Batteria: {calcola_carica(v_mv)} ({calcola_perc(v_mv)}%)") print_carica() # if __name__ == "__main__": # print_carica()