|

Rozdział 4: Autonomia, Failsafe i Bezpieczeństwo

Część 1: Przyjazna Encyklopedia (Dla Każdego)

Bezpieczeństwo modelu o dużej mocy jest priorytetem. MCS posiada potrójny system zabezpieczeń przed ucieczką pojazdu (Fly-away).

🚨 1. Zabezpieczenie przed utratą sygnału (Failsafe)

  • Failsafe WebUI (Wi-Fi): Jeśli sterujesz modelem za pomocą wirtualnego pada na telefonie i stracisz zasięg Wi-Fi na dłużej niż 0.5 sekundy, auto automatycznie wyłączy silnik i zahamuje.
  • Failsafe Kierownicy USB: Jeśli odepnie się kabel kierownicy od Raspberry Pi 5 podczas jazdy, auto natychmiast zatrzyma się w miejscu.

🔋 2. Ochrona Baterii LiPo

Wbudowany czujnik napięcia monitoruje stan akumulatora napędowego.

  • Jeśli napięcie spadnie poniżej 7.2V (ostrzeżenie), w WebUI na telefonie pojawi się komunikat, a system ograniczy maksymalną moc silnika o 30%.
  • Jeśli napięcie spadnie poniżej 6.8V (próg krytyczny), auto automatycznie rozbroi silnik (DISARM), chroniąc ogniwa LiPo przed trwałym zniszczeniem.

Część 2: Inżynieryjny Deep Dive (Dla Specjalistów)

Warstwa bezpieczeństwa w trybie MCS jest zrealizowana na poziomie maszyny stanów w safety_supervisor.py oraz mikrokodu czasu rzeczywistego na RP2350.

1. Maszyna Stanów SafetyState

Moduł SafetySupervisor bezustannie aktualizuje stany bezpieczeństwa:

class SafetyState(Enum):
    NORMAL = "NORMAL"
    AVOID = "AVOID"
    STOP = "STOP"
    RTH = "RTH"
    CRITICAL = "CRITICAL"
    BATTERY_LIMIT = "BATTERY_LIMIT"

Reakcja na krytyczne stany akumulatora:

  • Próg ostrzegawczy (warning_battery_v = 7.2V): Aktywacja BATTERY_LIMIT – maksymalny sygnał gazu (PWM) zostaje ograniczony do wartości battery_throttle_limit_us (domyślnie 1750µs, co odpowiada redukcji o ok. 50% zakresu powyżej neutralnego 1500µs).
  • Próg krytyczny (critical_battery_v = 6.8V): Jeśli reakcja jest ustawiona na stop, system wymusza przejście do stanu STOP, wysyłając komendę rozbrojenia.

2. Sprzętowy Watchdog (RP2350 OE Pin)

Zabezpieczenie przed zawieszeniem systemu operacyjnego Linux na RPi 5:

  • RP2350 oczekuje regularnych pakietów Heartbeat z RPi 5 co najmniej raz na 250 ms.
  • W przypadku braku ramki, timer watchdog na RP2350 przepełnia się i wyzwala przerwanie sprzętowe.
  • Stan pinu GPIO połączonego z linią Output Enable (OE) sterownika PWM zostaje natychmiast zmieniony na stan niski/wysoki (w zależności od logiki), co wprowadza wyjścia PWM w stan wysokiej impedancji (High-Z). ESC traktuje to jako utratę sygnału odbiornika i natychmiast odcina zasilanie silnika trójfazowego.