feat: initialize PlatformIO project and implement robotic arm controller using Bluepad32 and servos

This commit is contained in:
Ümit Tunç
2026-05-23 18:27:48 +03:00
commit 2158454ba0
7 changed files with 444 additions and 0 deletions
+79
View File
@@ -0,0 +1,79 @@
# 🦾 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)