DOCS/Kompendium Wiedzy
|

Rozdział 2: Hardware, Okablowanie i Schematy Połączeń

Rozdział ten zawiera kompletny, zweryfikowany z kodem źródłowym podręcznik montażu elektroniki pokładowej, magistrali I2C oraz zasilania.


🔌 1. Zrozumieć Magistralę I2C (Proste Wyjaśnienie dla Każdego)

Magistrala I2C (Inter-Integrated Circuit) to cyfrowa sieć łącząca Raspberry Pi lub ESP32 z czujnikami (IMU) i sterownikiem serw (PCA9685) za pomocą tylko dwóch kabli sygnałowych:

  • SDA (Serial Data – Dane): Linia, po której przesyłane są cyfrowe rozkazy (np. "skręć koła o 15 stopni", "odczytaj kąt pochylenia").
  • SCL (Serial Clock – Zegar): Linia taktująca, która ustala tempo przesyłania bitów (zwykle 100 kHz lub 400 kHz).

Jak to działa w praktyce?

Wszystkie urządzenia I2C łączy się równolegle do tej samej szyny (jedno za drugim). Każde urządzenie ma wbudowany unikalny adres sprzętowy:

  • 0x40 – 16-kanałowy sterownik PWM PCA9685 (serwa i gaz)
  • 0x68 – Czujnik inercyjny IMU MPU6050 / ICM-42688-P (żyroskop i przeciążenia)
  • 0x42 lub 0x43 – Monitor zasilania INA219 (napięcie i prąd baterii)
  • 0x29 – Opcjonalny laserowy czujnik odległości VL53L1X ToF
 [ Raspberry Pi 5 ] ─── Pin 3 (SDA: GPIO 2) ──────┬─────────────────┬──────────────┐
                    ─── Pin 5 (SCL: GPIO 3) ──────┼──────────┐      │              │
                    ─── Pin 1 (3.3V Logika) ──────┼────┐     │      │              │
                    ─── Pin 6 (Masa - GND)  ───┐  │    │     │      │              │
                                               │  │    │     │      │              │
                                               ▼  ▼    ▼     ▼      ▼              ▼
                                           [ PCA9685 PWM ]  [ Czujnik IMU 6050 ]  [ INA219 Power ]
                                           (GND,VCC,SDA,SCL) (GND,VCC,SDA,SCL)   (GND,VCC,SDA,SCL)

[!CAUTION] KRYTYCZNA ZASADA NAPIĘCIA I2C: Linie I2C na Raspberry Pi 5 oraz ESP32 pracują w standardzie 3.3V. Zasilanie układów scalonych czujników (pin VCC) należy ZAWSZE podłączać do szyny 3.3V, a NIE do 5V! Podanie napięcia 5V na linie SDA/SCL trwale uszkodzi procesor główny.


⚡ 2. Architektura Zasilania: Złota Zasada Wspólnej Masy i Unikanie Brownoutów

Najczęstszą przyczyną problemów w modelach RC (restarty komputera, drżenie kół, zawieszanie systemu) są błędy zasilania i brak wspólnej masy.

       ┌────────────────────────┐
       │   Pakiet Główny LiPo   │ (np. 2S 7.4V lub 3S 11.1V)
       └───────────┬────────────┘
                   │
         ┌─────────┴──────────────────────────────┐
         │                                        │
         ▼                                        ▼
 ┌──────────────────────┐              ┌──────────────────────┐
 │ Przetwornica UBEC 5V │ (5A)         │ Regulator ESC Silnika│ (lub osobny BEC 5-6V)
 └──────────┬───────────┘              └──────────┬───────────┘
            │                                     │
   (Czyste Zasilanie 5V)                (Mocowe Zasilanie Serw)
            │                                     │
            ▼                                     ▼
 ┌──────────────────────┐              ┌──────────────────────┐
 │    Raspberry Pi 5    │              │   PCA9685 (Zacisk V+)│
 └──────────┬───────────┘              └──────────┬───────────┘
            │                                     │
            └──────────► WSPÓLNA MASA (GND) ◄─────┘ (Kluczowe!)

Dlaczego serwa NIE MOGĄ być zasilane z pinu 5V Raspberry Pi? (Problem Brownout)

  1. Typowe serwo modelarskie przy szybkim ruchu pobiera w impulsie od 1.0A do nawet 3.0A prądu.
  2. Szyna 5V w Raspberry Pi / ESP32 nie posiada wydajności do zasilania silników serwomechanizmów.
  3. Pobór prądu przez serwo powoduje natychmiastowy spadek napięcia poniżej 4.6V (tzw. Brownout), co skutkuje nagłym restartem systemu Linux w trakcie jazdy.
  4. Prawidłowe rozwiązanie: Sterownik PCA9685 ma dwa osobne wejścia zasilania:
    • VCC (Logika): Podłącz do pinu 3.3V w Raspberry Pi (pobór kilku miliamperów).
    • V+ (Zacisk śrubowy dla serw): Podłącz do zewnętrznego BEC 5V-6V (minimum 3A-5A) lub szyny BEC z regulatora ESC.

Złota Zasada Wspólnej Masy (Common GND)

Wszystkie komponenty pojazdu (bateria, UBEC, regulator ESC, serwa, Raspberry Pi, ESP32, PCA9685 i sensory) MUSZĄ mieć połączone linie masy (GND).

  • Masa to punkt odniesienia (0 Voltów) dla wszystkich sygnałów cyfrowych.
  • Jeśli masa serwa nie jest połączona z masą procesora, sygnał sterujący PWM nie ma punktu odniesienia i serwo będzie szarpać lub nie zareaguje wcale.

📋 3. Tabela Połączeń "Kabel do Kabla" (Pinout Matrix)

Poniższa tabela stanowi ostateczną ściągawkę montażową dla każdego wariantu sprzętowego:

Płytka / Moduł Pin Źródłowy Pin Docelowy Typ Sygnału / Napięcie Uwagi i Bezpieczeństwo
Tier 1 (RP2350) Pin D8 (GPIO 2) Jack 3.5mm Tip (Grot) Sygnał PPM (3.3V) Połączenie bezpośrednie (bez rezystorów)
Tier 1 (RP2350) Pin GND Jack 3.5mm Sleeve (Masa) Masa 0V Wspólna masa z aparaturą
Tier 1 (Arduino) Pin D10 Jack 3.5mm Tip (Grot) Sygnał PPM (5V/3.3V) Połączenie bezpośrednie z portem DSC
Tier 2 (ESP32-WROVER) GPIO 13 PCA9685 SDA I2C Data (3.3V) Przesunięcie pinów (unika konfliktu z kamerą)
Tier 2 (ESP32-WROVER) GPIO 14 PCA9685 SCL I2C Clock (3.3V) Przesunięcie pinów (unika konfliktu z kamerą)
Tier 2 (ESP32) GPIO 12 PCA9685 PWM 15 Autokalibracja Zworka kalibracji częstotliwości kwarcu
Tier 4 (RPi 5) Pin 3 (GPIO 2) PCA9685 & IMU SDA I2C Data (3.3V) Szyna I2C-1 wspólna dla wszystkich czujników
Tier 4 (RPi 5) Pin 5 (GPIO 3) PCA9685 & IMU SCL I2C Clock (3.3V) Szyna I2C-1 wspólna dla wszystkich czujników
Tier 4 (RPi 5) Pin 1 (3.3V) PCA9685 VCC & IMU VCC Zasilanie Logiki 3.3V Tylko zasilanie układów scalonych!
Tier 4 (RPi 5) Pin 11 (GPIO 17) PCA9685 PWM 15 Autokalibracja Pomiar oscylatora zegara PCA9685
Tier 4 (RPi 5) Pin 13 (GPIO 27) PCA9685 OE Output Enable (Failsafe) Stan LOW = aktywne wyjścia, HIGH = odcięcie
Zasilanie Serw Zewnętrzny BEC 5V-6V PCA9685 Zacisk V+ Zasilanie Mocowe 5V-6V Zasila wyłącznie silniki serw i ESC
Wspólna Masa RPi GND / BEC GND PCA9685 GND & IMU GND Wspólna Masa (0V) Wszystkie masy połączone razem