53 lines
1.2 KiB
Python
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()
|