İki Android telefonun jiroskop (ivmeölçer) verilerini kullanarak, bilgisayarda sanal Xbox 360 gamepad (gaz/fren pedalı + direksiyon) oluşturan entegre bir sürücü sistemidir.
Telefonları yere/sürüş standına sabitleyip eğerek gaz ve fren pedallarını kontrol eder, fiziksel bir direksiyon simidini ise X ekseni olarak oyuna yansıtır. Bağlantı WiFi, USB (ADB) veya Bluetooth Classic (Serial SPP) üzerinden kurulabilir.
- Çift telefon desteği — bir telefon gaz, diğeri fren pedalı olarak atanır.
- Üç bağlantı yöntemi
- WiFi — telefon ve bilgisayar aynı ağda.
- USB (ADB) —
adb reverseile düşük gecikme. - Bluetooth Classic (Serial SPP) — Windows "Gelen COM Portu" üzerinden kablosuz.
- Fiziksel güç tuşu (ekran kapatma) desteği — Android Foreground Service + Partial Wake Lock sayesinde ekran kapalıyken bile sensör okuma ve veri iletimi kesintisiz sürer.
- Uzaktan kalibrasyon (Sıfır Noktası Ayarla) — WebUI üzerinden pedalları tek tıkla sıfırla.
- Ölü bölge (deadzone), hassasiyet (sensitivity), aktivasyon noktası, eğim yönü ayarları — gaz ve fren için ayrı ayrı.
- Direksiyon ölü bölgesi ve yumuşak (smooth) ölçekleme.
- Canlı WebUI kontrol paneli — pedal/direksiyon durumu, eksen değerleri, kalibrasyon.
| Katman | Teknoloji |
|---|---|
| Mobil uygulama | Flutter (Dart) |
| Sensör okuma | sensors_plus (ivmeölçer) |
| Arka plan servisi | flutter_background + wakelock_plus |
| Bluetooth | flutter_blue_classic (RFCOMM/SPP) |
| Ağ | web_socket_channel (WebSocket) |
| Sunucu | Python + FastAPI + Uvicorn |
| Sanal gamepad | vgamepad (ViGEm) |
| Seri port (Bluetooth) | pyserial |
| Fiziksel direksiyon okuma | ctypes + Win32 winmm.dll |
.
├── backend_app.py # FastAPI sunucusu (gamepad + WebSocket + serial)
├── run_backend.bat # Windows başlatma betiği
├── build_apk.bat # Flutter APK derleme betiği
├── settings.json # Çalışma zamanı ayarları
├── requirements.txt # Python bağımlılıkları
├── templates/
│ ├── dashboard.html # WebUI kontrol paneli
│ └── pedal.html # Telefon web istemcisi (opsiyonel)
└── gyro_pedal_app/ # Flutter mobil uygulaması
├── lib/main.dart # Ana uygulama kodu
├── pubspec.yaml
└── android/ # Android platform dosyaları
Gereksinimler:
- Windows 10/11
- Python 3.9+
- ViGEmBus sürücüsü (sanal gamepad için): https://github.com/nefarius/ViGEmBus/releases
pip install -r requirements.txtSunucuyu başlat:
run_backend.batArdından tarayıcıdan kontrol paneline erişin: http://localhost:8000
cd gyro_pedal_app
flutter pub get
flutter build apk --releaseÜretilen APK: gyro_pedal_app/build/app/outputs/flutter-apk/app-release.apk
Hazır APK'yı backend çalışırken doğrudan indirebilirsiniz: http://localhost:8000/download/gyro-pedal.apk
- Telefon ve bilgisayarı aynı ağa bağlayın.
- Uygulamada WiFi seçip bilgisayarın yerel IP'sini girin (örn.
192.168.1.100). - Bağlan deyin ve pedalları atayın.
- Telefonda USB Hata Ayıklama'yı açın.
run_backend.batçalışırkenadb reverse tcp:8000 tcp:8000otomatik kurulur.- Uygulamada USB modunu seçin.
- Telefonu bilgisayarla Bluetooth üzerinden eşleştirin.
- Windows'ta: Bluetooth Ayarları → Diğer Bluetooth Seçenekleri → COM Bağlantı Noktaları → Ekle → "Gelen" ile bir COM portu oluşturun (örn.
COM3). - WebUI'deki Bluetooth COM Portu alanına bu portu yazın.
- Uygulamada Bluetooth seçip bilgisayarınızı listeden seçin.
Bu proje tamamen yerel çalışır; üçüncü taraf bir API'ye bağımlı değildir. Tüm sensör verileri kullanıcının kendi telefonlarından gelir ve yerel ağ içinde kalır. Sanal gamepad emülasyonu ViGEmBus sürücüsü üzerinden yapılır; kullanım yalnızca yasal simülasyon/oyun amaçlıdır.
Bu proje MIT Lisansı ile lisanslanmıştır.
Ayrıntılı sürüm geçmişi için CHANGELOG.md dosyasına bakın.




