107 lines
5.3 KiB
Markdown
107 lines
5.3 KiB
Markdown
# 🦾 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)
|