ROBOTKODLA
ROBOTKODLA Genç Mucit

Eğlen, Kodla, Geleceği Tasarla

🐍 Python ve Programlama 20 Ekim 2026

Python ile Robotik Kodlama: Temel Komutlar ve Uygulamalar

Python ile donanım ve robot kontrolü nasıl yapılır? Raspberry Pi, GPIO pinleri, MicroPython ve kamera ile renk takibi yapan otonom robot rehberi.

Python ile Robotik Kodlama: Temel Komutlar ve Uygulamalar

Yapay zeka, makine öğrenimi ve veri biliminin tartışmasız lider dili olan Python, modern robotik dünyasında da çığır açmaktadır. Geçmişte mikrodenetleyici programlama neredeyse tamamen C ve C++ dillerinin tekelindeyken; işlemcilerin güçlenmesi, tek kartlı mini bilgisayarların (Raspberry Pi) yaygınlaşması ve MicroPython / CircuitPython projelerinin olgunlaşması sayesinde Python fiziksel bilişimin kalbine yerleşmiştir.

NASA'nın Mars gezginlerinden Tesla'nın otonom sürüş algoritmalarına, insansı robotlardan akıllı fabrika kollarında çalışan ROS (Robot Operating System) mimarilerine kadar üst düzey robotik sistemlerin tamamında Python ana omurgayı oluşturur.

Bu kapsamlı rehberde; Python dilinin robotikteki yerini, donanım kontrol kütüphanelerini, temel GPIO komutlarını, çoklu iş parçacığı (multithreading) yönetimini ve çalışan örnek uygulamaları adım adım keşfedeceksiniz.

⚖️ Robotikte C++ mı Python mı? Karşılaştırma Tablosu

Değerlendirme KriteriC / C++ (Arduino Standardı)Python (Raspberry Pi & MicroPython)
Çalışma Hızı & BellekÇok hızlı, derlenen (Compiled) makine kodu, düşük RAM kullanımıYorumlanan (Interpreted) dil, C++'a göre daha yavaş fakat işlemciler için yeterli
Öğrenme KolaylığıNoktalı virgüller, parantezler, katı veri tipleri (Öğrenmesi zor)Temiz, okunabilir, girintilere (indentation) dayalı sade sözdizimi
Yapay Zeka & Görüntü İşlemeKütüphaneler karmaşık ve entegrasyonu zordurOpenCV, TensorFlow, PyTorch ve MediaPipe ile kusursuz uyum
Kullanım AlanıDüşük seviyeli motor PWM sürücüleri, anlık mikrosaniye sensör okumalarıYüksek seviyeli karar algoritmaları, kamera takibi, web arayüzleri, otonom rota planlama
En İyi KombinasyonHibrit Model: Motorları ve sensörleri Arduino (C++) yönetir; kararları ve kamerayı Raspberry Pi (Python) yönetir.

🛠️ Python ile Donanım Kontrol Kütüphaneleri

Python'un fiziksel dünyayla konuşmasını sağlayan standart kütüphaneler:

  • gpiozero (En Kolay Raspberry Pi Kütüphanesi): LED, buton, motor ve mesafe sensörünü nesne yönelimli olarak tek satırda tanımlamanızı sağlar.
  • RPi.GPIO: Geleneksel Raspberry Pi pin kontrol kütüphanesidir.
  • machine (MicroPython Kartları İçin): Raspberry Pi Pico ve ESP32 kartlarında pin, PWM, ADC ve I2C hatlarını doğrudan mikrodenetleyici üzerinde çalıştırmak için kullanılır.
  • time: Gecikme (sleep) ve zaman ölçümü için standart kütüphanedir.
  • cv2 (OpenCV): Kameradan gelen canlı video karelerini işleyerek renk, yüz ve nesne takibi yapmayı sağlar.
  • pyserial: Arduino ile Raspberry Pi arasında USB seri port üzerinden iki yönlü veri haberleşmesi kurar.
  • 💻 1. Uygulama: Python ile LED Yakıp Söndürme (Blink)

    Raspberry Pi (Python 3 & gpiozero)

    from gpiozero import LED
    from time import sleep
    
    # GPIO 17 pinine bağlı LED'i tanımla
    led = LED(17)
    
    print("Robotik LED döngüsü başlatıldı. Durdurmak için Ctrl+C yapın.")
    
    try:
        while True:
            led.on()       # 3.3V elektrik ver (YAK)
            sleep(1.0)     # 1 saniye bekle
            led.off()      # Elektriği kes (SÖNDÜR)
            sleep(1.0)     # 1 saniye bekle
    except KeyboardInterrupt:
        print("Program kullanıcı tarafından durduruldu.")

    MicroPython (Raspberry Pi Pico / ESP32)

    from machine import Pin
    import time
    
    # Kart üzerindeki 25. pindeki LED'i çıkış olarak ayarla
    led = Pin(25, Pin.OUT)
    
    while True:
        led.toggle()      # Durumu tersine çevir (Açıksa kapat, kapalıysa aç)
        time.sleep(0.5)   # Yarım saniye bekle

    🔘 2. Uygulama: Buton ile Olay Güdümlü Kontrol

    Geleneksel dillerde butonun basılıp basılmadığını anlamak için sürekli bir while döngüsünde sorgu yapmak gerekir. Python'un gpiozero kütüphanesi ise arka planda kesme (interrupt) kullanarak işlemciyi yormadan çalışır:

    from gpiozero import Button, LED
    from signal import pause
    
    led = LED(17)
    buton = Button(2) # GPIO 2'ye bağlı buton
    
    # Olay dinleyicileri (Event Listeners)
    buton.when_pressed = led.on   # Butona basıldığı an LED yansın
    buton.when_released = led.off # Buton bırakıldığı an sönsün
    
    print("Sistem hazır. Butona basılmasını bekliyor...")
    pause() # Programın kapanmasını önle ve dinlemede kal

    🚗 3. Uygulama: DC Motor Sürücü ve PWM Hız Kontrolü

    L298N motor sürücüsüyle 2 tekerlekli bir robot arabayı Python ile ileri, geri ve viraj döndürme:

    from gpiozero import Motor
    from time import sleep
    
    # Sol motor pinleri: İleri pini, Geri pini, PWM hız pini
    sol_motor = Motor(forward=24, backward=23, enable=25)
    # Sağ motor pinleri
    sag_motor = Motor(forward=22, backward=27, enable=18)
    
    def ileri(hiz=0.8):
        sol_motor.forward(hiz)
        sag_motor.forward(hiz)
    
    def dur():
        sol_motor.stop()
        sag_motor.stop()
    
    def saga_don(hiz=0.6):
        sol_motor.forward(hiz)
        sag_motor.backward(hiz)
    
    # Test sürüşü
    print("Robot 2 saniye ileri gidiyor...")
    ileri(0.8)
    sleep(2)
    
    print("Sağa dönüş yapılıyor...")
    saga_don(0.7)
    sleep(1)
    
    dur()
    print("Robot durdu.")

    👁️ 4. İleri Seviye: OpenCV ile Renk Takip Eden Kamera Algoritması

    Bir robotun önüne takılan USB kamera veya Raspberry Pi Kamera Modülü ile ortamdaki sarı bir tenis topunu algılayıp takip etme mantığı:

    import cv2
    import numpy as np
    
    # Kamerayı başlat (0 = Dahili / USB web cam)
    kamera = cv2.VideoCapture(0)
    
    # Takip edilecek rengin HSV formatındaki alt ve üst sınırları (Sarı renk)
    sari_alt = np.array([20, 100, 100])
    sari_ust = np.array([30, 255, 255])
    
    while True:
        ret, kare = kamera.read()
        if not ret:
            break
        
        # Görüntüyü BGR'dan HSV renk uzayına çevir
        hsv = cv2.cvtColor(kare, cv2.COLOR_BGR2HSV)
        
        # Sarı rengi filtrele (Sarı yerler beyaz, diğer yerler siyah maske olur)
        maske = cv2.inRange(hsv, sari_alt, sari_ust)
        
        # Konturları (nesne sınırlarını) bul
        konturlar, _ = cv2.findContours(maske, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
        
        if konturlar:
            en_buyuk_kontur = max(konturlar, key=cv2.contourArea)
            alan = cv2.contourArea(en_buyuk_kontur)
            
            if alan > 500: # Gürültüleri engelle
                x, y, w, h = cv2.boundingRect(en_buyuk_kontur)
                merkez_x = x + w // 2
                
                # Ekran genişliği 640 pikseldir. Merkez 320'dir.
                if merkez_x < 280:
                    print("Nesne solda -> Robota SOLA DÖN komutu gönder")
                elif merkez_x > 360:
                    print("Nesne sağda -> Robota SAĞA DÖN komutu gönder")
                else:
                    print("Nesne ortalandı -> Robota İLERİ GİT komutu gönder")
        
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    
    kamera.release()
    cv2.destroyAllWindows()

    🌐 5. Uygulama: Flask ile Web Arayüzünden Kontrol Edilen Robot

    Python'un mikro web framework'ü Flask sayesinde yalnızca 15 satır kodla robotunuz için cep telefonunuzdan yönetilebilen bir web paneli oluşturabilirsiniz:

    from flask import Flask
    from gpiozero import Motor
    
    app = Flask(__name__)
    motorlar = Motor(forward=24, backward=23)
    
    @app.route('/ileri')
    def ileri_git():
        motorlar.forward(0.8)
        return "Robot İleri Gidiyor"
    
    @app.route('/dur')
    def robot_dur():
        motorlar.stop()
        return "Robot Durdu"
    
    if __name__ == '__main__':
        # Robotun IP adresi üzerinden 5000 portunda yayına başla
        app.run(host='0.0.0.0', port=5000)

    💡 Python ile Robot Geliştirirken 3 Hayati Kural

  • İşletim Sistemi Çökmesini Engelleyin: Raspberry Pi bir mikrodenetleyici değil, Linux işletim sistemidir. Fişini aniden çekmek hafıza kartını (SD Card) bozabilir. Her zaman terminalden sudo halt veya sudo shutdown now komutuyla kapatın.
  • Ortak Topraklama (GND): Raspberry Pi ile harici motor sürücünün GND hatları mutlaka birbirine bağlanmalıdır; aksi takdirde sinyaller referans noktası bulamaz.
  • Mantıksal Seviye Uyarısı (3.3V vs 5V): Raspberry Pi pinleri en fazla 3.3V tolere eder. 5V ile çalışan bir Arduino veya sensör sinyalini doğrudan bağlarsanız Pi'nin GPIO işlemcisi yanar! Araya dirençlerle voltaj bölücü veya mantıksal seviye dönüştürücü koyun.
  • ❓ Sıkça Sorulan Sorular (SSS)

    Arduino üzerinde doğrudan Python çalıştırılabilir mi?

    Standart Arduino Uno'nun hafızası (32 KB Flash, 2 KB RAM) bir Python yorumlayıcısını çalıştırmak için çok düşüktür. Ancak Arduino ile bilgisayar seri port üzerinden haberleştirilerek (PySerial kütüphanesi) Python komutları Arduino'ya gönderilebilir. Doğrudan kart üzerinde Python çalıştırmak için Raspberry Pi Pico, ESP32 veya BBC micro:bit tercih edilmelidir.

    Raspberry Pi olmadan MicroPython öğrenebilir miyim?

    Evet. Yalnızca 4-5 dolar fiyatındaki Raspberry Pi Pico veya ESP32 kartını bilgisayarınıza takarak Thonny IDE üzerinden saniyeler içinde MicroPython ile donanım kodlamaya başlayabilirsiniz.

    Doğrulanmış Rehber İçeriği Son Revizyon: Ekim 2026

    RobotKodla STEM & Teknoloji Editör Heyeti

    Bu rehber; bilişim eğitimcileri ve gömülü sistem mühendisleri tarafından pedagojik doğruluk, güncel teknoloji standartları ve tarafsızlık ilkelerine uygun şekilde kaleme alınmıştır.

    Pedagojik Rehber
    Tarafsız Kıyaslama
    Uzman Onaylı
    Herkese Açık Kaynak
    💡

    Python ile Robotik Kodlama: Temel Komutlar ve Uygulamalar Hakkında Merak Edilenler

    Bu konuyla ilgili öğrencilerin ve velilerin en çok sorduğu soruların yanıtları

    Bu rehber yazıda anlatılan yöntemleri uygulamak için neler gereklidir?▼
    İçerikte belirtilen açık kaynaklı yazılım araçlarını ve temel donanım bileşenlerini temin etmeniz yeterlidir. Tüm adımlar pratik uygulamalarla desteklenmiştir.
    Bu uygulamada devre bağlantısı yaparken en çok yapılan hata nedir?▼
    Ortak toprak (GND) hattının bağlanmaması, LED ve sensör bacaklarının ters kutupla takılması ya da pin numaralarının koddaki dijital/analog tanımlarla uyuşmaması en sık karşılaşılan durumlardır. Şemadaki pin numaralarını iki kez kontrol etmek sorunu çözer.
    Python ile Robotik Kodlama: Temel Komutlar ve Uygulamalar çalışmasını tamamladıktan sonra nasıl daha ileri bir seviyeye taşıyabilirim?▼
    Bu çalışmaya ek sensörler (kablosuz Bluetooth/Wi-Fi modülü, OLED ekran veya sesli buzzer uyarısı) entegre edebilir; verileri internet ortamına aktararak Nesnelerin İnterneti (IoT) tabanlı akıllı bir sisteme dönüştürebilirsiniz.