GITHUB : https://github.com/vova641/SImracing
# π ΠΡΠΎΠ΅ΠΊΡ: Π‘ΠΈΠΌΡΠ΅ΠΉΡΠΈΠ½Π³ ΠΏΡΠΈΠ±ΠΎΡΠ½Π°Ρ ΠΏΠ°Π½Π΅Π»Ρ (Dash) Π½Π° ESP32-S3 ΠΈ Π΄ΠΈΡΠΏΠ»Π΅Π΅ GC9A01
## π ΠΠ±ΡΠ΅Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°
Π Π°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π° ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½Π°Ρ ΠΏΡΠΈΠ±ΠΎΡΠ½Π°Ρ ΠΏΠ°Π½Π΅Π»Ρ Π΄Π»Ρ Π³ΠΎΠ½ΠΎΡΠ½ΡΡ ΡΠΈΠΌΡΠ»ΡΡΠΎΡΠΎΠ² (Assetto Corsa ΠΈ Π΄ΡΡΠ³ΠΈΡ , ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ SimHub) Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° ESP32-S3 ΠΈ ΠΊΡΡΠ³Π»ΠΎΠ³ΠΎ TFT-Π΄ΠΈΡΠΏΠ»Π΅Ρ GC9A01 (ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ 240Γ240 ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ). Π£ΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠ΅Π»Π΅ΠΌΠ΅ΡΡΠΈΡ (ΡΠΊΠΎΡΠΎΡΡΡ, ΠΎΠ±ΠΎΡΠΎΡΡ, ΡΡΠΎΠ²Π΅Π½Ρ ΡΠΎΠΏΠ»ΠΈΠ²Π°) ΡΠ΅ΡΠ΅Π· USB-ΠΏΠΎΡΡ ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ SimHub, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½Π΅ Π² Π²ΠΈΠ΄Π΅ ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄Π½ΠΎΠΉ ΡΠΊΠ°Π»Ρ ΠΎΠ±ΠΎΡΠΎΡΠΎΠ² (10 ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ²), ΠΊΡΡΠΏΠ½ΡΡ ΡΠΈΡΡ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΈ ΠΏΡΠΎΡΠ΅Π½ΡΠ° ΡΠΎΠΏΠ»ΠΈΠ²Π°. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Button Box β 6 Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΈ 2 ΡΠ½ΠΊΠΎΠ΄Π΅ΡΠ° (Ρ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ), ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΊΠΎΡΠΎΡΡΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² SimHub Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ³ΡΠΎΠ²ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π²ΠΎΡΠ½ΠΈΠΊΠΈ, ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΆΠΈΠΌΠΎΠ², ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²ΠΊΠ° TC/ABS ΠΈ ΠΏΡ.).
---
## π§© ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
| ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ | ΠΠΎΠ΄Π΅Π»Ρ / Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ | ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ |
|-----------|------------------------|-------------|
| ΠΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ | ESP32-S3 (8 MB Flash, 2 MB PSRAM) | 1 |
| ΠΠΈΡΠΏΠ»Π΅ΠΉ | GC9A01 240Γ240, SPI | 1 |
| ΠΠ½ΠΎΠΏΠΊΠΈ | ΡΠ°ΠΊΡΠΎΠ²ΡΠ΅ (6 ΡΡ) | 6 |
| ΠΠ½ΠΊΠΎΠ΄Π΅ΡΡ | EC11 (Ρ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ) | 2 |
| Π Π΅Π·ΠΈΡΡΠΎΡΡ | 10 ΠΊΠΠΌ β Π½Π΅ ΡΡΠ΅Π±ΡΡΡΡΡ (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΡΡΠΆΠΊΠΈ) | β |
| ΠΠΈΡΠ°Π½ΠΈΠ΅ | ΠΎΡ USB ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° ΠΈΠ»ΠΈ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ 5V | β |
---
## π ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ (Arduino IDE)
| ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° | ΠΠ΅ΡΡΠΈΡ | ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ |
|------------|--------|-------------|
| TFT_eSPI | 2.5.2 | ΠΡΠ°ΠΉΠ²Π΅Ρ Π΄ΠΈΡΠΏΠ»Π΅Ρ GC9A01 |
| LVGL | 8.3.11 | ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° |
| ArduinoJson| 6.x | ΠΠ°ΡΡΠΈΠ½Π³ JSON-Π΄Π°Π½Π½ΡΡ ΠΎΡ SimHub |
| ESP32Encoder| 0.8.1 | Π Π°Π±ΠΎΡΠ° Ρ ΡΠ½ΠΊΠΎΠ΄Π΅ΡΠ°ΠΌΠΈ (Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΉ PCNT) |
ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ESP32Encoder ΡΡΠ΅Π±ΡΠ΅Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ PCNT, ΠΊΠΎΡΠΎΡΡΠΉ Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ ESP32 ΠΈ ESP32-S3 (Π½Π° ESP32-C3 Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ).
---
## π₯ ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° SimHub (ΠΠ)
### 1. Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΠ»Π°Π³ΠΈΠ½Π° Custom Serial Device
- Π SimHub: Settings β Plugins β Π²ΠΊΠ»ΡΡΠΈΡΡ Custom Serial Devices.
### 2. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°
- Arduino & Boards β My Hardware β Add new serial device.
- ΠΡΠ±ΡΠ°ΡΡ COM-ΠΏΠΎΡΡ ESP32, ΡΠΊΠΎΡΠΎΡΡΡ 115200, ΠΎΡΠΊΠ»ΡΡΠΈΡΡ RTS ΠΈ DTR.
- ΠΠΊΠ»ΡΡΠΈΡΡ Append newline character (\n).
### 3. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΈΡΡ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° (ΠΎΡ SimHub ΠΊ ESP32)
ΠΡΠ±ΡΠ°ΡΡ ΡΠΈΠΏ Javascript ΠΈ Π² ΠΏΠΎΠ»Π΅ Update messages Π²ΡΡΠ°Π²ΠΈΡΡ:
js
var speed = $prop('DataCorePlugin.GameData.NewData.SpeedKmh') ||
$prop('DataCorePlugin.GameData.NewData.Speed') || 0;
var rpm = $prop('DataCorePlugin.GameData.NewData.Rpms') || 0;
var fuel = $prop('DataCorePlugin.GameData.NewData.Fuel') || 0;
var maxRpm = $prop('DataCorePlugin.GameData.NewData.MaxRpm') || 10000;
return JSON.stringify({ Speed: speed, Rpms: rpm, Fuel: fuel, MaxRpm: maxRpm }) + "\n";
### 4. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π²Ρ ΠΎΠ΄ΡΡΠΈΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ (Π΄Π»Ρ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΈ ΡΠ½ΠΊΠΎΠ΄Π΅ΡΠΎΠ²)
ΠΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Incoming ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° (mappings):
| Π’ΡΠΈΠ³Π³Π΅Ρ (ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ ΠΎΡ ESP32) | ΠΠ΅ΠΉΡΡΠ²ΠΈΠ΅ (Action) |
|-----------------------------|-------------------|
| btn1 β¦ btn6 | Emulate Keyboard β Π½Π°Π·Π½Π°ΡΠΈΡΡ ΠΊΠ»Π°Π²ΠΈΡΡ ΠΈΠ»ΠΈ Simulator Action β ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠ³ΡΡ |
| Enc1Clk, Enc2Clk | Simulator Action β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Wipers Toggle |
| Enc1Value ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ 1 (ΠΈΠ»ΠΈ >0) | Increase Value (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, TC+) |
| Enc1Value ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ -1 (ΠΈΠ»ΠΈ <0) | Decrease Value (TC-) |
ΠΠ»Ρ ΡΠ½ΠΊΠΎΠ΄Π΅ΡΠΎΠ² ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ *ActionA / ActionB** ΠΈΠ»ΠΈ *Adjust Value**.
---
## π¨ ΠΠ½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°
- Π€ΠΎΠ½: ΡΡΡΠ½ΡΠΉ.
- 10 ΠΎΡΠ°Π½ΠΆΠ΅Π²ΡΡ ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄ΠΎΠ² ΠΏΠΎ ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΠΈ β Π·Π°Π³ΠΎΡΠ°ΡΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΈ ΡΠΎΡΡΠ΅ ΠΎΠ±ΠΎΡΠΎΡΠΎΠ² (ΠΊΠ°ΠΆΠ΄ΡΠ΅ 1000 ΠΎΠ±/ΠΌΠΈΠ½).
- Π¦ΠΈΡΡΠΎΠ²Π°Ρ ΡΠΊΠΎΡΠΎΡΡΡ: ΡΡΠΈΡΡ 48, Π±Π΅Π»ΡΠΉ ΡΠ²Π΅Ρ, ΠΏΠΎ ΡΠ΅Π½ΡΡΡ (Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΡΠ΅).
- ΠΠ΄ΠΈΠ½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ: "km/h" ΠΌΠ΅Π»ΠΊΠΈΠΌ ΡΡΠΈΡΡΠΎΠΌ ΠΏΠΎΠ΄ ΡΠΊΠΎΡΠΎΡΡΡΡ.
- Π’ΠΎΠΏΠ»ΠΈΠ²ΠΎ: ΡΠΈΠ½ΠΈΠΉ ΡΡΠΈΡΡ 20, Π·Π½Π°ΠΊ Π·Π°ΠΏΡΠ°Π²ΠΊΠΈ, ΠΏΡΠΎΡΠ΅Π½Ρ, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ Π½ΠΈΠΆΠ΅ ΡΠΊΠΎΡΠΎΡΡΠΈ.
- ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅: Π½Π° 2 ΡΠ΅ΠΊΡΠ½Π΄Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΡΠ°Π½ΠΆΠ΅Π²ΡΠΉ Π»ΠΎΠ³ΠΎΡΠΈΠΏ "SIM RACING" ΠΊΡΡΠΏΠ½ΡΠΌ ΡΡΠΈΡΡΠΎΠΌ.
---
## π§ ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π΄ΠΎΡΠ°Π±ΠΎΡΠΊΠΈ
- Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠΊΠΎΡΡΡΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠΈ ΡΠ΅ΡΠ΅Π· Π¨ΠΠ (ΠΏΠΈΠ½ BL ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΊ Π»ΡΠ±ΠΎΠΌΡ GPIO, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ 4, ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ledcWrite).
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΡΠ°ΡΠ½ΠΎΠΉ Π·ΠΎΠ½Ρ Π½Π° ΡΠ°Ρ ΠΎΠΌΠ΅ΡΡΠ΅ (ΠΏΡΠΈ 7000+ ΠΎΠ±/ΠΌΠΈΠ½ ΠΌΠ΅Π½ΡΡΡ ΡΠ²Π΅Ρ LED).
- ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° Π½ΠΎΠΌΠ΅ΡΠ° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ, ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ, Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΊΡΡΠ³Π° (Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠΎΠ»Ρ Π² JSON ΠΈ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅).
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ½ΠΊΠΎΠ΄Π΅ΡΠΎΠ² Π΄Π»Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ ΠΏΠΎ ΠΌΠ΅Π½Ρ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ (ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠ°Π½ΠΈΡ).
---
## β ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΡ
- ΠΠ»Ρ ESP32-S3 Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΠΏΠ»Π°ΡΡ Π² Arduino IDE Π²ΡΠ±Π΅ΡΠΈΡΠ΅ USB CDC On Boot: Enabled, ΠΈΠ½Π°ΡΠ΅ Serial ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
- ΠΠΈΠ½Ρ 35β40 Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΊΠ½ΠΎΠΏΠΎΠΊ β ΠΎΠ½ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ ΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΏΠΎΠ΄ΡΡΠΆΠΊΠΈ.
- ΠΡΠ»ΠΈ ΡΠ½ΠΊΠΎΠ΄Π΅ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎ, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ ΡΠ΅Π·ΠΈΡΡΠΎΡΡ 10 ΠΊΠΠΌ ΠΌΠ΅ΠΆΠ΄Ρ CLK/Dt ΠΈ 3.3V ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ setFilter(1023).
- Π§Π°ΡΡΠΎΡΠ° ΠΊΠ°Π΄ΡΠΎΠ² Π½Π° GC9A01 Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½Π°Ρ Π΄Π»Ρ ΠΏΠ»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΈ ΠΎΠ±ΠΎΡΠΎΡΠΎΠ² (Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΌΡ SPI ΠΈ LVGL).
---
## β ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΡΠΎΠ΅ΠΊΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΡ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ±ΠΎΡΠ½ΡΡ ΠΏΠ°Π½Π΅Π»Ρ Π΄Π»Ρ ΡΠΈΠΌΡΠ΅ΠΉΡΠΈΠ½Π³Π°, ΡΠΎΡΠ΅ΡΠ°ΡΡΡΡ ΠΊΡΠ°ΡΠΈΠ²ΡΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ (LVGL) ΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΡΠ³Π°Π½Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ (ΠΊΠ½ΠΎΠΏΠΊΠΈ + ΡΠ½ΠΊΠΎΠ΄Π΅ΡΡ). ΠΠ½ Π»Π΅Π³ΠΊΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΡΡΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π»ΡΠ±ΡΠ΅ ΠΈΠ³ΡΡ, ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠ΅ Ρ SimHub, ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ ΠΊΠ°ΠΊ DIY-Π΄Π΅Π²Π°ΠΉΡ Π΄Π»Ρ Π³ΠΎΠ½ΠΎΡΠ½ΡΡ ΡΠ²Π»Π΅ΡΠ΅Π½ΠΈΠΉ.
Model Source
