Files
RobotKolProjesi/README.md
T

107 lines
5.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🦾 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).
---
## 🛠️ Geliştirme, Derleme ve Yükleme (Build & Upload)
Bu proje **PlatformIO** altyapısını kullanmaktadır. Kod üzerinde değişiklik yaptıktan sonra projeyi derlemek ve ESP32'ye yüklemek için aşağıdaki yöntemleri kullanabilirsiniz:
### Yöntem A: VS Code Arayüzü ile (Önerilen)
* **Derleme (Build):** VS Code'un en altındaki mavi barda bulunan **✓ (Kene)** simgesine tıklayın.
* **Yükleme (Upload):** ESP32'yi bilgisayarınıza USB ile bağlayın ve mavi bardaki **→ (Sağ Ok)** simgesine tıklayın.
* **Seri Monitör (Monitor):** Mavi bardaki **🔌 (Fiş)** simgesine tıklayarak terminal çıktılarını izleyin.
### Yöntem B: Terminal / Komut Satırı ile (CLI)
VS Code entegre terminalini açıp proje ana dizinindeyken aşağıdaki PlatformIO (PIO Core) komutlarını çalıştırabilirsiniz:
1. **Projeyi Derlemek İçin:**
```bash
pio run
```
2. **Kodu ESP32'ye Yüklemek İçin:**
```bash
pio run -t upload
```
3. **Seri Monitörü Başlatmak İçin:**
```bash
pio device monitor
```
---
## 🛠️ 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)