Skip to content

FatihAksoyEEE/RoboArm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

STM32 Blackpill 6-Eksen Robot Kol Kontrol Sistemi

STM32 Blackpill F411CE mikrodenetleyicisi üzerinde çalışan, USB-CDC seri haberleşme protokolü ile Python PyQt6 arayüzünden kontrol edilebilen 6 eksenli robot kol yazılımı.


İçindekiler


Gerekli Bileşenler

Donanım

Bileşen Adet Açıklama
STM32 Blackpill F411CE 1 Ana mikrodenetleyici
Servo Motor 6 PWM kontrollü (50Hz)
5V / 10A Güç Kaynağı 1 Servo motorlar için
USB-A to USB-C Kablo 1 STM32 bağlantısı ve programlama
Jumper Kablo - Sinyal ve GND bağlantıları

Yazılım

Yazılım Sürüm Amaç
VSCode Güncel IDE
PlatformIO Extension Güncel Firmware build & upload
Python 3.8+ GUI çalıştırma
PyQt6 6.6+ GUI framework
PySerial 3.5+ Seri port haberleşmesi

Kurulum

1. Firmware Kurulumu

Gereksinimler: VSCode + PlatformIO Extension

# Projeyi aç
cd firmware/

# Bağımlılıkları indir ve derle
pio run

# STM32'yi USB'ye bağla (DFU modunda)
# Firmware'i yükle
pio run --target upload

DFU Modu: STM32'yi DFU modunda başlatmak için BOOT0 pinini 3.3V'a bağlarken RESET butonuna bas, sonra BOOT0'ı bırak.

2. Python GUI Kurulumu

cd gui/

# Sanal ortam oluştur
python3 -m venv venv
source venv/bin/activate       # macOS / Linux
# venv\Scripts\activate        # Windows

# Bağımlılıkları yükle
pip install -r requirements.txt

# GUI'yi başlat
python3 robot_arm_controller.py

3. macOS .app Bundle (Opsiyonel)

cd gui/
source venv/bin/activate
python3 setup.py py2app
# → dist/RoboArmController.app

Kullanım

GUI ile Kullanım

  1. python3 robot_arm_controller.py komutunu çalıştır
  2. Sol panelden USB seri portunu seç (macOS: /dev/cu.usbmodem...)
  3. Yenile (↻) butonuyla portları tara
  4. Bağlan butonuna tıkla
  5. S1–S6 slider'larını kullanarak servo açılarını ayarla
  6. Her kart altındaki Min / Max kutuları ile açı limitlerini belirle

Kontrol Butonları

Buton İşlev
⌂ HOME (90°) Tüm servoları 90°'ye (merkez) getirir
↺ RESET STM32'ye RESET komutu gönderir
◈ STATUS Tüm servo açılarını STM32'den okur ve ekrana yansıtır
Bağlantıyı Kes Seri bağlantıyı kapatır

Terminal ile Manuel Kullanım

# macOS/Linux — minicom veya screen ile
screen /dev/cu.usbmodem1101 115200

# Windows — PuTTY ile bağlan (COM port, 115200 baud)

Komut sonuna Enter tuşuna bas. Detaylı komut listesi için Komut Referansı bölümüne bak.


Komut Referansı

Komut Açıklama Örnek
S<n>:<açı> n. servoyu belirtilen açıya ayarla S1:90
ALL:<açı> Tüm servoları aynı açıya ayarla ALL:90
STATUS Tüm servo açılarını raporla STATUS
RESET Tüm servoları 90°'ye döndür RESET

Parametre aralıkları:

  • n → 1 ile 6 arasında (servo numarası)
  • açı → 0 ile 180 arasında (derece)

Yanıt formatları:

OK              → Komut başarıyla işlendi
S1:90,S2:45,... → STATUS yanıtı
ERROR:Angle out of range       → Açı sınır dışı
ERROR:Servo ID out of range    → Geçersiz servo numarası
ERROR:Invalid command format   → Format hatası
ERROR:Unknown command          → Tanınmayan komut

Proje Yapısı

Robo_Arm/
├── firmware/                  # STM32 PlatformIO projesi
│   ├── platformio.ini
│   ├── src/
│   │   ├── main.cpp           # setup() / loop()
│   │   └── servo_control.cpp  # Servo + UART mantığı
│   ├── include/
│   │   └── servo_control.h    # API tanımları
│   └── docs/
│       └── Robot_Arm_Roadmap.pdf
├── gui/                       # Python PyQt6 arayüzü
│   ├── robot_arm_controller.py
│   ├── serial_handler.py
│   ├── setup.py               # py2app .app bundle
│   └── requirements.txt
├── docs/                      # Dokümantasyon
│   ├── README.md
│   ├── HARDWARE.md
│   ├── API_REFERENCE.md
│   └── TROUBLESHOOTING.md
└── .gitignore

Troubleshooting

Sorun giderme için TROUBLESHOOTING.md dosyasına bak.

About

STM32 Blackpill 6-axis robot arm controller with PyQt6 GUI

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors