Kurs içeriği (1 / 10)
  1. 1 Raspberry Pi ile Tanışma ve Kurulum 80 dk
  2. 2 Makine Öğrenmesi Nedir? İlk Modelimiz 80 dk
  3. 3 Kamera ve Görüntü İşlemenin Temelleri 80 dk
  4. 4 Görüntü Veri Seti Hazırlama 80 dk
  5. 5 Görüntü Tanıma Modeli Eğitip Pi’de Çalıştırma 120 dk
  6. 6 Mikrofon ve Sesin Temelleri 80 dk
  7. 7 Ses Veri Seti Hazırlama 80 dk
  8. 8 Ses Tanıma Modeli ile Sesli Komutlar 120 dk
  9. 9 Yapay Zekâyı Donanıma Bağlama: LED, Buzzer ve Servo 80 dk
  10. 10 Mini Proje: Akıllı Geri Dönüşüm Kutusu 160 dk

Raspberry Pi ile Makine Öğrenmesi: Görüntü ve Ses Tanıma · Ders 1 / 10

Raspberry Pi ile Tanışma ve Kurulum

Konu anlatımı ⏱ 80 dk

Raspberry Pi 5’i tanıyor, Raspberry Pi OS (64-bit, Bookworm) kurulumunu yapıyoruz. Bookworm’daki “externally-managed-environment” uyarısının nedenini öğreniyor, sanal ortam (venv) kurup kurs boyunca kullanacağımız kütüphaneleri yüklüyor ve Thonny’yi bu ortama bağlıyoruz.

Bu derste

  • Raspberry Pi 5’in temel bileşenlerini ve bağlantı noktalarını tanır.
  • Raspberry Pi Imager ile microSD karta Raspberry Pi OS (64-bit, Bookworm) yazar.
  • Bookworm’daki externally-managed-environment uyarısının nedenini açıklar ve sanal ortam (venv) oluşturur.
  • Kurs için gereken kütüphaneleri apt ve pip ile doğru yerden kurar.
  • Thonny’yi sanal ortamdaki Python yorumlayıcısıyla çalışacak şekilde ayarlar.

Malzemeler

  • Raspberry Pi 5 (Raspberry Pi 4 de olur)
  • Resmî USB-C güç adaptörü
  • En az 32 GB microSD kart
  • Monitör, micro-HDMI kablo, klavye ve fare
  • İnternet bağlantısı
  • Kurulum için ikinci bir bilgisayar

Bu kursta küçük ama güçlü bir bilgisayar olan Raspberry Pi’ye görmeyi ve duymayı öğreteceğiz. Kursun sonunda bir kamerayla atıkları tanıyan, sesli komutla kapağını açan bir geri dönüşüm kutusu yapmış olacaksınız. İlk dersimizde bu yolculuk için gereken her şeyi kuruyoruz.

Dersin Amacı ve Kazanımlar

Bu dersin sonunda:

  1. Raspberry Pi 5’in temel bileşenlerini ve bağlantı noktalarını tanıyabileceksiniz.
  2. Raspberry Pi Imager ile microSD karta Raspberry Pi OS (64-bit, Bookworm) yazabileceksiniz.
  3. Bookworm’daki externally-managed-environment uyarısının nedenini açıklayabilecek ve sanal ortam (venv) oluşturabileceksiniz.
  4. Kurs için gereken kütüphaneleri apt ve pip ile doğru yerden kurabileceksiniz.
  5. Thonny’yi sanal ortamdaki Python ile çalışacak şekilde ayarlayabileceksiniz.

Gerekli Malzemeler

Malzeme Açıklama
Raspberry Pi 5 (4 GB veya 8 GB) Kursun ana bilgisayarı. Raspberry Pi 4 (4 GB) de kullanılabilir; yalnızca model çalıştırma biraz daha yavaş olur.
Güç adaptörü Pi 5 için resmî 27 W USB-C adaptör, Pi 4 için 15 W USB-C adaptör
microSD kart En az 32 GB, tercihen A1/A2 sınıfı hızlı bir kart
Aktif soğutucu (önerilir) Pi 5 model çalıştırırken ısınır; resmî aktif soğutucu performans düşüşünü önler.
Monitör ve kablo Pi 5 ve Pi 4’te micro-HDMI giriş vardır; micro-HDMI → HDMI kablo gerekir.
Klavye ve fare USB veya kablosuz
İkinci bilgisayar Raspberry Pi Imager ile microSD karta işletim sistemi yazmak için

💡 İpucu

Kurulumu ders öncesinde bir kez yapıp microSD kartın yedeğini (imajını) alırsanız, sınıftaki diğer kartları aynı imajdan hızlıca çoğaltabilirsiniz. Böylece ders süresi kurulum yerine yapay zekâya kalır.

Raspberry Pi Nedir?

Raspberry Pi, kredi kartı büyüklüğünde, tek kartlı bir bilgisayardır. Üzerinde işlemci, bellek, USB girişleri, ağ bağlantısı ve en önemlisi dış dünyaya bağlanabileceğimiz GPIO pinleri bulunur. Bir masaüstü bilgisayar gibi monitör, klavye ve fareyle kullanılabilir; ama aynı zamanda bir LED’i yakabilir, bir motoru döndürebilir, kameradan görüntü alabilir.

Bu kursta Raspberry Pi 5 kullanıyoruz. Dört çekirdekli 2,4 GHz işlemcisi sayesinde küçük yapay zekâ modellerini gerçek zamanlı çalıştırabilir. Elinizde Raspberry Pi 4 varsa endişelenmeyin: Kurstaki bütün kodlar Pi 4’te de çalışır, yalnızca saniyedeki kare sayısı (FPS) biraz düşer.

Raspberry Pi 5 seti: kart, bağlantı noktaları ve yardımcı parçalar

Kartın üzerindeki önemli parçalar şunlardır:

  • USB-C güç girişi: Kartı besler. Pi 5 için 27 W’lık resmî adaptör önerilir; zayıf bir adaptör kullanırsanız ekranda düşük voltaj uyarısı görürsünüz.
  • İki micro-HDMI çıkışı: Monitör bağlamak için. Monitörü güç girişine en yakın olan HDMI0’a takın.
  • USB girişleri: Klavye, fare, USB mikrofon ve USB kamera buraya takılır. Mavi renkli olanlar daha hızlı USB 3.0 girişleridir.
  • MIPI konektörleri: Raspberry Pi kamera modülü bu ince şerit kabloyla bağlanır.
  • 40 pinli GPIO: LED, buzzer ve servo motoru bağlayacağımız pinler.
  • microSD yuvası: İşletim sistemi bu kartın üzerinde durur. Pi’nin sabit diski gibi düşünebilirsiniz.

Adım Adım Kurulum

Kurulum adımlarının akış şeması

1. İşletim Sistemini Karta Yazma

Aşağıdaki adımlar Raspberry Pi Imager 2.x içindir. Imager 2’de eski sürümlerdeki üç düğmeli ana ekran yoktur; program sizi pencerenin solunda görünen Device → OS → Storage → Customisation → Writing → Done adımlarından sırayla geçirir. Her ekranda seçiminizi yapıp sağ alttaki Next düğmesine basarsınız. Imager Türkçe açılırsa adımlar Cihaz → İşletim Sistemi → Depolama → Özelleştirme → Yazılıyor → Bitti, düğme de İleri adını alır.

  1. İkinci bilgisayara Raspberry Pi Imager programını kurun (raspberrypi.com/software) ve açın. İlk açılışta bir dil seçimi ekranı gelirse dili seçip devam edin.
  2. Device (Cihaz) adımında listeden Raspberry Pi 5’i (Pi 4 kullanıyorsanız Raspberry Pi 4’ü) seçin ve Next’e basın.
  3. OS (İşletim Sistemi) adımında listenin en üstündeki Raspberry Pi OS (64-bit) seçeneğini seçmeyin; o, yeni sürüm Trixie’dir. Bunun yerine Raspberry Pi OS (other) kategorisine tıklayın ve açılan listeden Raspberry Pi OS (Legacy, 64-bit) seçeneğini seçin. Açıklamasında “A port of Debian Bookworm…” yazdığını kontrol edin: Kursun hazırlandığı Bookworm sürümü budur. Adı “Lite” ya da “Full” ile biten Legacy seçeneklerini değil, bu masaüstlü olanı seçip Next’e basın.
  4. microSD kartı bilgisayara takın. Storage (Depolama) adımında kartı seçin (boyutundan tanıyabilirsiniz) ve Next’e basın. Exclude system drives (Sistem sürücülerini hariç tut) kutusu işaretli kalsın; böylece yanlışlıkla bilgisayarınızın kendi diskini seçemezsiniz.
  5. Ardından Customisation (Özelleştirme) ekranları sırayla gelir. Her birini doldurup Next’e basın:
    • Hostname (Ana Makine Adı): Bilgisayar adı, ör. yzpi01. Yalnızca harf, rakam ve kısa çizgi kullanın.
    • Localisation (Yerelleştirme): Capital city olarak Ankara (Turkey) seçin. Time zone kendiliğinden Europe/Istanbul, Keyboard layout da tr olur.
    • User (Kullanıcı): Username (küçük harflerle) ve Password / Confirm password kutularına parolanızı girin. Raspberry Pi OS’ta hazır pi/raspberry kullanıcısı yoktur; kullanıcıyı burada siz oluşturursunuz. Kullanıcı adınızı not edin, 5. adımda gerekecek.
    • Wi‑Fi: Secure network seçili olsun. SSID kutusuna ağın adını, Password ve Confirm password kutularına Wi-Fi parolasını yazın. Imager çoğu zaman bağlı olduğunuz ağın bilgilerini kendisi doldurur.
    • Remote access (Uzaktan erişim): Pi’ye başka bir bilgisayardan bağlanmak isterseniz Enable SSH anahtarını açıp Use password authentication seçeneğini seçin. Pi’yi monitör ve klavyeyle kullanacaksanız SSH’ı kapalı bırakabilirsiniz.
    Legacy (Bookworm) imajında Raspberry Pi Connect ekranı çıkmaz; bu normaldir.
  6. Writing (Yazılıyor) adımında Summary (Özet) bölümündeki seçimleri kontrol edip Write (Yaz) düğmesine basın. Uyarı penceresinde I understand, erase and write (Anlıyorum, sil ve yaz) seçeneğini seçin; bilgisayarınız yönetici parolası isteyebilir. Yazma ve doğrulama birkaç dakika sürer. Done (Bitti) ekranı gelince, kart kendiliğinden çıkarılmadıysa Eject’e basın, kartı Pi’ye takın ve Finish (Bitir) ile Imager’ı kapatın.

Raspberry Pi Imager’da işletim sistemi seçimi

2. İlk Açılış ve Güncelleme

Pi açıldığında masaüstü gelir. Üst menüdeki terminal simgesine tıklayın ve sistemi güncelleyin:

sudo apt update
sudo apt full-upgrade -y
sudo reboot

sudo komutu “yönetici olarak çalıştır” anlamına gelir; sizden parolanızı isteyebilir. Güncelleme internet hızına göre birkaç dakika sürebilir.

3. “externally-managed-environment” Uyarısı

Eskiden Python paketlerini doğrudan pip ile kurardık. Bookworm’da bunu denerseniz:

pip install scikit-learn

şöyle bir hata alırsınız:

error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.

Bu bir arıza değil, bir korumadır. Raspberry Pi OS’un kendi programları da sistemdeki Python’u kullanır. pip ile sisteme rastgele paket kurmak, bu programların ihtiyaç duyduğu sürümleri bozabilir. Bu yüzden kural basittir:

  • Sistem deposunda bulunan paketleri apt ile kurarız (ör. python3-opencv).
  • Depoda olmayan paketleri bir sanal ortamın (venv) içine pip ile kurarız.

Sanal ortam, projeye özel ayrı bir Python klasörüdür. İçine ne kurarsanız kurun, sistemdeki Python etkilenmez. Biz ortamı --system-site-packages seçeneğiyle oluşturacağız. Böylece ortam, apt ile kurulan picamera2, gpiozero ve OpenCV gibi paketleri de görebilir. picamera2 kamera donanımına çok bağlı olduğu için zaten pip ile değil apt ile kurulmalıdır.

4. Kütüphaneleri Kurma

# 1) Sistem paketleri (apt): OpenCV, scikit-learn, matplotlib, ses kütüphanesi
sudo apt install -y python3-opencv python3-sklearn python3-matplotlib python3-scipy \
                    python3-picamera2 python3-gpiozero libportaudio2

# 2) Sistem paketlerini de görebilen bir sanal ortam oluştur
python3 -m venv --system-site-packages ~/yzenv

# 3) Ortamı etkinleştir (komut satırının başında (yzenv) yazısı belirir)
source ~/yzenv/bin/activate

# 4) apt'te olmayan paketleri pip ile ortamın içine kur
pip install ai-edge-litert sounddevice "numpy<2"

Kurduğumuz paketlerin görevleri şöyle:

  • ai-edge-litert: Google’ın TensorFlow Lite çalışma ortamının yeni adı LiteRT’tir. Teachable Machine’den indireceğimiz .tflite modellerini bu paketle çalıştıracağız.
  • sounddevice: USB mikrofondan ses kaydetmemizi sağlar. Arka planda libportaudio2 kütüphanesini kullanır.
  • "numpy<2": Yeni bir paket değildir; pip’e “sistemdeki NumPy 1.24’ü değiştirme” der. Bu parça yazılmazsa pip, LiteRT’nin yan paketleri için ortamın içine NumPy 2 kurar. apt ile gelen OpenCV ve picamera2 NumPy 1 için derlendiğinden çalışmaz hâle gelir.

Eski kaynaklarda tflite-runtime paketini görebilirsiniz. Bookworm’daki Python 3.11 için hâlâ kurulabilir (pip install tflite-runtime) ama artık güncellenmiyor. Bu yüzden kursta yeni paket olan ai-edge-litert’i kullanıyoruz.

5. Thonny’yi Sanal Ortama Bağlama

Thonny, Raspberry Pi OS ile hazır gelir. Pi’de ilk açılışta menüsüz “basit modda” olabilir; sağ üstteki Switch to regular mode (Türkçe arayüzde Normal kipe geç) bağlantısına tıklayıp Thonny’yi kapatıp yeniden açın. Sonra:

  1. Tools → Options… menüsünü açın ve Interpreter sekmesine geçin. (Thonny Türkçe kullanılıyorsa: Araçlar → Seçenekler… → Yorumlayıcı.)
  2. “Which kind of interpreter should Thonny use for running your code?” sorusunun altındaki listede Local Python 3 seçili olsun. Bu sekmedeki yazılar Türkçe arayüzde de İngilizce görünür.
  3. Python executable kutusuna elle yazı yazılamaz. Kutunun yanındaki … düğmesine tıklayın, /home/KULLANICI_ADINIZ/yzenv/bin/ klasörüne gidip python3 dosyasını seçin. Kutuda /home/KULLANICI_ADINIZ/yzenv/bin/python3 yazdığını görünce OK (Tamam) deyin.

Aynı pencereye Thonny’nin sağ alt köşesindeki yorumlayıcı adına tıklayıp Configure interpreter… seçeneğiyle de ulaşabilirsiniz. Eski kaynaklarda geçen “Alternative Python 3 interpreter or virtual environment” seçeneği Thonny 3’e aittir; Thonny 4’te onun yerini Local Python 3 almıştır.

Artık Thonny’de çalıştırdığınız her program sanal ortamdaki paketleri kullanır. Kodları terminalden çalıştırmak isterseniz önce source ~/yzenv/bin/activate yazmayı unutmayın.

Thonny’de yorumlayıcı ayarı

Kurulumu Test Edelim

Thonny’de yeni bir dosya açın, aşağıdaki kodu yazıp kurulum_kontrol.py adıyla kaydedin ve çalıştırın:

# dosya: kurulum_kontrol.py
# Kurs boyunca kullanacağımız kütüphaneler yüklü mü?
import importlib

paketler = {
    "numpy": "numpy",
    "OpenCV": "cv2",
    "scikit-learn": "sklearn",
    "matplotlib": "matplotlib",
    "sounddevice": "sounddevice",
    "picamera2": "picamera2",
    "gpiozero": "gpiozero",
    "LiteRT (TensorFlow Lite)": "ai_edge_litert.interpreter",
}

eksik = 0
for ad, modul in paketler.items():
    try:
        m = importlib.import_module(modul)
        surum = getattr(m, "__version__", "")
        print(f"✓ {ad} {surum}")
    except ImportError:
        print(f"✗ {ad} bulunamadı")
        eksik += 1

if eksik == 0:
    print("Harika! Kurulum tamam.")
else:
    print(eksik, "paket eksik. Kurulum adımlarını tekrar kontrol edin.")

Örnek çıktı: (Raspberry Pi 5, Raspberry Pi OS Bookworm (64-bit) üzerinde örnek çıktı. Sürüm numaraları güncellemelere göre biraz farklı olabilir; önemli olan satırların başında ✓ görmektir.)

✓ numpy 1.24.2
✓ OpenCV 4.6.0
✓ scikit-learn 1.2.1
✓ matplotlib 3.6.3
✓ sounddevice 0.5.6
✓ picamera2 
✓ gpiozero 2.0.1
✓ LiteRT (TensorFlow Lite) 
Harika! Kurulum tamam.

Kod, her paketi importlib.import_module() ile yüklemeyi dener. Paket yoksa ImportError hatası oluşur ve except bloğu bunu yakalayıp “bulunamadı” yazar. Böylece program tek bir eksik pakette durmaz, hepsini kontrol eder.

⚠️ Önemli Not

Pi’yi kapatmadan önce mutlaka menüden Shutdown seçin ya da terminale sudo poweroff yazın. Fişi doğrudan çekmek microSD karttaki dosyaları bozabilir. Bir de şunu unutmayın: Bu kurs Bookworm için hazırlandı. Imager’ın varsayılan olarak önerdiği yeni sürüm Trixie (Python 3.13) ile adımlar neredeyse aynıdır; ancak Trixie’de pip komutundaki "numpy<2" parçasını yazmayın (orada sistem NumPy’ı zaten 2.x’tir) ve tflite-runtime yerine yalnızca ai-edge-litert kullanın.

Sıra Sizde

  1. Kolay: Terminalde uname -m ve python3 --version komutlarını çalıştırın. Çıktıları defterinize yazın. 64 bit bir sistemde aarch64 görmelisiniz.
  2. Orta: Sanal ortamı etkinleştirmeden ve etkinleştirdikten sonra which python3 komutunu çalıştırın. İki çıktı arasındaki farkı açıklayın.
  3. Zor: kurulum_kontrol.py programını, eksik paket bulduğunda o paketin kurulum komutunu da yazacak şekilde geliştirin. (İpucu: Sözlükte her paketin karşısına bir de kurulum komutu ekleyin.)

Kendini Dene

  1. Bookworm’da pip install komutu neden doğrudan çalışmıyor?
  2. Sanal ortamı neden --system-site-packages seçeneğiyle oluşturduk?
  3. Teachable Machine modellerini Pi’de çalıştırmak için hangi paketi kurduk?

Cevaplar

  1. Sistem Python’u işletim sistemi tarafından yönetilir. pip ile sisteme paket kurmak, işletim sisteminin kendi programlarının kullandığı paketleri bozabileceği için engellenir. Paketleri apt ile ya da bir sanal ortamın içine kurmamız gerekir.
  2. Böylece sanal ortam, apt ile kurulan picamera2, gpiozero ve OpenCV gibi sistem paketlerini de kullanabilir.
  3. ai-edge-litert (LiteRT, TensorFlow Lite’ın yeni adı).