# 🦾 4-Axis Robot Arm & Bluetooth Gamepad Control System Bu proje, **ESP32** geliştirme kartı kullanarak **Gen Game New S7 Bluetooth Gamepad** ile 4 servo motorlu bir robot kolun otonom ve hassas kontrolünü sağlar. Yazılım altyapısı kurulmuş, derlenmiş ve ESP32 kartınıza başarıyla yüklenmiştir. Projeyi hemen test etmek için aşağıdaki adımları sırasıyla uygulayabilirsiniz. --- ## 🚀 Şu Anda Yapmanız Gerekenler (Adım Adım) ### 1️⃣ Adım: Donanım Bağlantılarını Yapın (Wiring) Servo motorların sinyal kablolarını (genellikle turuncu veya sarı) ESP32'nin aşağıdaki ilgili GPIO pinlerine bağlayın: | Servo Motor | ESP32 GPIO Pini | Gamepad Kontrolü | | :--- | :---: | :--- | | **Taban (Base)** | **GPIO 13** | Sol Analog Çubuk (Sağ / Sol - X Ekseni) | | **Omuz (Shoulder)** | **GPIO 12** | Sol Analog Çubuk (Yukarı / Aşağı - Y Ekseni) | | **Dirsek (Elbow)** | **GPIO 14** | Sağ Analog Çubuk (Yukarı / Aşağı - Y Ekseni) | | **Kıskaç (Gripper)**| **GPIO 27** | **A Butonu** (Aç - 180°), **B Butonu** (Kapat - 0°) | > ⚠️ **ÖNEMLİ GÜÇ UYARISI:** > Servo motorlar yüksek akım çeker. ESP32'nin zarar görmemesi ve servoların titrememesi (jitter) için: > * Servoların **kırmızı (VCC)** ve **kahverengi/siyah (GND)** kablolarını harici bir **5V - 6V (en az 2A - 3A)** güç kaynağına bağlayın. > * **ÇOK ÖNEMLİ:** Harici güç kaynağının **GND (-)** kutbunu, ESP32'nin **GND** pinine mutlaka ortaklayın (birleştirin). --- ### 2️⃣ Adım: Seri Port Monitörünü Açın ESP32'nin durumunu izlemek ve bağlantıyı doğrulamak için PlatformIO Seri Monitörünü açın: 1. VS Code'da en alttaki mavi barda yer alan **Fiş (Serial Monitor)** ikonuna tıklayın veya terminale şu komutu yazın: ```bash python -m platformio device monitor ``` 2. Haberleşme hızı kodda **115200 baud** olarak ayarlanmıştır. Monitör açıldığında şu mesajı görmelisiniz: ```text Sistem Baslatildi. Gamepad baglantisi bekleniyor... ``` --- ### 3️⃣ Adım: Gamepad'i Eşleştirin (Pairing) **Gen Game New S7** gamepad'inizi ESP32 ile eşleştirmek oldukça basittir. ESP32 şu an sürekli Bluetooth taraması yapmaktadır: 1. Gamepad kapalıyken, eşleştirme moduna almak için: * **`X` + `HOME (GEN GAME)`** butonlarına aynı anda basın ve birkaç saniye basılı tutun. * Gamepad üzerindeki LED'ler hızlıca yanıp sönmeye başlayacaktır (bu, arama modunda olduğunu gösterir). 2. ESP32, gamepad'i algıladığında otomatik olarak eşleşecek ve bağlanacaktır. 3. Bağlantı kurulduğunda: * Gamepad'in üzerindeki LED **sabit yanmaya** başlayacaktır. * Seri Monitör ekranında **`Gamepad Baglandi`** yazısını göreceksiniz. --- ### 4️⃣ Adım: Robot Kolu Test Edin! Bağlantı kurulduktan sonra aşağıdaki kontrolleri kullanarak robot kolunuzu hareket ettirebilirsiniz: * 🕹️ **Sol Çubuğu Sola/Sağa itin:** Taban motoru döner. Bıraktığınızda motor o anki açısında kalır. * 🕹️ **Sol Çubuğu Yukarı/Aşağı itin:** Omuz motoru aşağı/yukarı hareket eder. * 🕹️ **Sağ Çubuğu Yukarı/Aşağı itin:** Dirsek motoru aşağı/yukarı hareket eder. * 🔴 **A Butonuna basın:** Kıskaç tamamen açılır (180 derece). * 🟢 **B Butonuna basın:** Kıskaç tamamen kapanır (0 derece). --- ## 🛠️ Olası Sorun Giderme (Troubleshooting) * **Servolar hiç hareket etmiyor veya titriyor:** * Harici güç kaynağınızın gücü yetersiz olabilir veya harici güç kaynağının GND kutbu ile ESP32'nin GND pini birleştirilmemiştir. Bağlantıları kontrol edin. * **Gamepad eşleşmiyor veya bağlanmıyor:** * Gamepad'i kapatıp tekrar `X + HOME` kombinasyonu ile açın. * ESP32'yi üzerindeki **EN (Reset)** butonuna basarak yeniden başlatın. * **Hareketler çok hızlı veya çok yavaş:** * `src/main.cpp` dosyasındaki `const float SPEED_SCALE = 0.3;` değerini değiştirerek hareket hızını hassas bir şekilde ayarlayabilirsiniz (Örn: daha yavaş ve hassas hareket için `0.1` yapın). --- ### 📂 Proje Dosyalarınızın Konumu * 📄 **PlatformIO Yapılandırması:** [platformio.ini](file:///d:/Works/2026/robotkol/platformio.ini) * 📄 **C++ Kod Dosyası:** [src/main.cpp](file:///d:/Works/2026/robotkol/src/main.cpp)