ESP32 tabanlı, iki ayrı yöntemle kontrol edilebilen robot araç:
- Wi-Fi (UDP) + Android uygulaması (CaYa Car Controller) — tank sürüş, esnek kumanda, yazılımsal motor kalibrasyonu ve pil telemetrisi.
- PS5 DualSense kumandası — doğrudan Bluetooth, yarış tipi gaz/fren tetikleri, gerçek adaptive trigger + haptik "motor sesi".
cayadev.com tarafından geliştirildi.
- Tank tipi diferansiyel sürüş (TB6612FNG + 2 DC motor)
- NeoPixel LED ile durum göstergesi (ileri / geri / dönüş / dur / boost)
- 📶 Wi-Fi (UDP) kontrol — ESP32 bir erişim noktası açar, telefon doğrudan bağlanır (40 ms'de bir komut).
- 🎮 Esnek kumanda — sol ve sağ taraf bağımsız: Joystick, Oklu (D-pad) ve sağda Her Yön (tek çubukla ileri/geri + dönüş). Karışık kullanılabilir.
- ⚙️ Hız ayarı — Max Hız ve Dönüş Hızı kaydırıcıları.
- 🧭 Düz gitme (Trim) — zayıf/güçlü tarafı yazılımla eşitleme.
- 🛑 Aktif fren — durunca eşzamanlı kısa-devre fren (sürüklenmeyi azaltır).
- 🚀 Yumuşak başlangıç (soft-start) — kalkışta akım sıçramasını ve brownout/reset riskini düşürür.
- 🔋 Pil telemetrisi — ADC + voltaj bölücü ile voltaj/yüzde (isteğe bağlı).
- 💾 Kalıcı ayarlar — motor pinleri, yön ve pil ayarları NVS'ye yazılır; uygulamadan değiştirilebilir.
- 🛡️ Failsafe — 1 sn komut gelmezse motorlar durur.
- 🎮 Doğrudan kablosuz bağlantı (Bluepad32) — Wi-Fi/uygulama gerektirmez.
- 🏎️ Yarış kontrolü: R2 = gaz, L2 = geri/fren, sol çubuk X = direksiyon.
- ⭕ ○ (yuvarlak) = turbo boost; D-pad ↑↓ hız limiti, ←→ dönüş limiti.
- ✊ Gerçek adaptive trigger + haptikle "motor sesi" simülasyonu.
- 💡 DualSense lightbar ↔ araç LED senkron; 🔊 buzzer (korna/siren/melodi/bip, ✕ ile çalar, R1/L1 mod), mute = sessiz mod.
RoboCar/
├── Android/ # CaYa Car Controller (saf Java, tek Activity)
│ ├── app/src/main/java/com/cayadev/carcontroller/MainActivity.java
│ └── build_apk.ps1 # Gradle'sız manuel APK derleme scripti
└── RoboHockeyRobot/
├── RobotCode/RobotCode.ino # Wi-Fi (UDP) firmware — Android app ile çalışır
└── RoboHockeyCarCodeDualsense/
└── RoboHockeyCarCodeDualsense.ino # PS5 DualSense (Bluetooth) firmware
Wi-Fi sürümü:
- ESP32 kartı (geliştirme ESP32-C6 ile yapıldı; pinler ayarlanabilir)
- TB6612FNG çift DC motor sürücü, 2 × DC motor
- 2S Li-ion/LiPo pil (+ ESP için uygun 5V regülatör/buck)
- 3 × WS2812 / NeoPixel LED
- (Opsiyonel) pil ölçümü için voltaj bölücü → boş bir ADC pini
DualSense sürümü:
- Klasik ESP32 (Bluetooth Classic gerekir; ESP32-C3/C6/S2 uymaz)
- TB6612FNG + 2 × DC motor, 3 × NeoPixel, (ops.) buzzer
- PS5 DualSense kumanda
Wi-Fi (RobotCode.ino):
| İşlev | Pin |
|---|---|
| Sol PWMA | 7 |
| Sol AIN1 / AIN2 | 6 / 4 |
| Sağ PWMB | 0 |
| Sağ BIN1 / BIN2 | 1 / 2 |
| STBY | 3 |
| NeoPixel LED | 8 |
| Pil ADC (ops.) | 5 |
Pinler uygulamadaki Motor menüsünden değiştirilip araca kalıcı kaydedilebilir.
DualSense (RoboHockeyCarCodeDualsense.ino):
| İşlev | Pin |
|---|---|
| Sol AIN1 / AIN2 / PWM | 14 / 12 / 13 |
| Sağ BIN1 / BIN2 / PWM | 27 / 26 / 25 |
| NeoPixel LED | 4 |
| Buzzer | 32 |
- Arduino IDE'ye ESP32 kart paketini kur.
- Adafruit NeoPixel kütüphanesini ekle.
RoboHockeyRobot/RobotCode/RobotCode.inodosyasını kartına yükle.
- esp32_bluepad32 kart paketini kur (Bluepad32).
- Adafruit NeoPixel kütüphanesini ekle.
RoboHockeyRobot/RoboHockeyCarCodeDualsense/RoboHockeyCarCodeDualsense.inodosyasını kartına yükle.
Gradle gerektirmeyen manuel script ile derlenir (Android SDK + JDK gerekli):
cd Android
./build_apk.ps1Çıktı: Android/app/build/outputs/apk/debug/CaYaCar-debug.apk — telefona kurun.
(minSdk 23, compileSdk 35)
- Telefonu robotun yaydığı Wi-Fi ağına bağla (varsayılan
CaYaDev_Robot/ şifre123456789). - Android "internet yok, bağlı kalınsın mı?" sorarsa bağlı kal de (yoksa komutlar mobil veriye kaçar).
- Uygulamada Ayarlar → Robot IP
192.168.4.1, UDP Port8888. - Sür! Araç düz gitmiyorsa Motor → Trim, pili görmek için Motor → Pil alanlarını ayarla.
- DualSense firmware'ini yükle; ESP açılınca kumandayı eşleştirme moduna al (Create + PS tuşlarını ışık hızlı yanıp sönene kadar basılı tut), otomatik bağlanır.
- R2 ileri, L2 geri/fren, sol çubuk direksiyon. ○ turbo. D-pad ile hız/dönüş limiti. ✕ korna (R1/L1 ile mod). Mute = sessiz mod.
| Mesaj | Yön | Açıklama |
|---|---|---|
x,y |
App → ESP | Sürüş komutu (ham joystick, -950..950) |
CFG? / CFG,... |
App ↔ ESP | Motor ayarlarını oku / yaz |
BATT? / BATT,mv,yüzde |
App ↔ ESP | Pil durumu sorgusu / yanıtı |
BCFG,pin,bölücü,min,max |
App → ESP | Pil ölçüm ayarı |
RobotCode.ino içindeki erişim noktası SSID ve şifresini (ssid, password) kendine göre değiştirmen önerilir.
MIT © 2026 ÇAĞAN TURGUT — cayadev.com
