FLL/batteria.py
2025-10-06 09:25:52 +02:00

53 lines
1.2 KiB
Python

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()