1. ünite / 10 · yaklaşık 3 saat
Tek kartlı bilgisayar ve mikrodenetleyici
Raspberry Pi bir bilgisayardır, Arduino ve STM32 birer mikrodenetleyici: hangisi ne zaman, ikisi birlikte nasıl?
Bu ünitenin sonunda
- Tek kartlı bilgisayar (SBC) ile mikrodenetleyiciyi (MCU) mimari, güç ve zamanlama açısından karşılaştırmak
- Bir robot projesinin gereksinimlerinden kart seçmek ve gerekçesini yazmak
- Pi + MCU birlikte mimarisinde görev paylaşımını çizmek
- Pi 5, Pi 4, Zero 2 W ve Pico'yu ayırt etmek
Ders notları
Raspberry Pi 5 dört çekirdekli 64 bit ARM Cortex-A76 işlemcili, gigabaytlarca RAM'i olan, Linux çalıştıran gerçek bir bilgisayardır. Arduino Uno, Raspberry Pi Pico ya da STM32 ise mikrodenetleyicidir: işlemci, flash ve RAM tek yongada, işletim sistemi yok, program elektrik gelir gelmez çalışır.
Fark zamanlamada
Linux çok görevli bir işletim sistemidir: Python programın her an başka bir süreç, bir kesme ya da bellek yönetimi yüzünden birkaç milisaniye bekletilebilir. Bir LED'i yakmak için sorun değildir; ama 20 kHz motor PWM'i ya da saniyede binlerce enkoder darbesini kaçırmamak için bir mikrodenetleyicinin donanım zamanlayıcısı gerekir. Buna kesin (hard) gerçek zaman denir.
- Pi: kamera, OpenCV, yapay zekâ modeli, Wi-Fi, web sunucusu, ROS 2, dosya sistemi.
- MCU: mikrosaniye zamanlama, analog giriş (ADC), pille aylarca çalışma, 1 saniyeden kısa açılış.
- İkisi birlikte: Pi düşünür (görüntü, plan), MCU kas gibi çalışır (PWM, enkoder); aralarında UART ya da I²C.
GPIO gerilimi
Pi'nin GPIO pinleri 3,3 V'tur ve 5 V'a dayanmaz; analog girişi yoktur. Uno 5 V'tur. İkisini doğrudan bağlamak için seviye dönüştürücü (BSS138) gerekir. Bu dersin her ünitesinde bu sınırı hatırlayacağız.
Simülasyon
Kart seçici: tek kartlı bilgisayar mı, mikrodenetleyici mi?
Projenin gereksinimlerini işaretle; her kart için puanı ve gerekçesini gör. Puanlar ders içi kurallardır: gerçek seçimde veri sayfası, fiyat ve bulunabilirlik de bakılır.
Projenin gereksinimleri:
Kendin dene
Kart seçicide üç proje dene: (1) okul bahçesinde güneş panelli hava istasyonu, (2) kameralı ve web panelli keşif robotu, (3) 20 kHz PWM'li ve enkoderli denge robotu. Her biri için önerilen kartı ve en çok puan kaybettiren gereksinimi not et. Üçüncüde kombinasyon neden kazanıyor?
Kod
# --- Raspberry Pi 5: Linux üstünde bir süreç; zamanlama işletim sistemine bağlı
from gpiozero import LED
from time import sleep
led = LED(17) # BCM 17 = fiziksel pin 11
while True:
led.toggle()
sleep(0.5) # ±birkaç ms sapabilir: zamanlayıcı başka süreçleri de çalıştırır
# --- Raspberry Pi Pico: işletim sistemi yok, kod doğrudan donanımda
from machine import Pin, Timer
led = Pin(25, Pin.OUT)
Timer(freq=2, mode=Timer.PERIODIC, callback=lambda t: led.toggle()) # donanım zamanlayıcısı: titreşimsizSık yapılan hatalar
- Pi'nin GPIO'suna 5 V sensör çıkışı bağlamak: pin kalıcı olarak bozulabilir. Seviye dönüştürücü ya da gerilim bölücü kullan.
- Pi'yi "hızlı Arduino" sanmak: işlemci hızlıdır ama zamanlama garantisi yoktur.
- Pi'yi zayıf bir USB adaptörüyle beslemek: Pi 5 için 5 V 5 A önerilir, düşük gerilimde rastgele çöker ve SD kart bozulabilir.
- Fişi çekerek kapatmak: SD kart yazma sırasında bozulabilir; sudo shutdown -h now kullan.
Yazılım mühendisliği bağlantısı
Kart seçimi bir mimari karardır ve kaydı tutulmalıdır. Kısa bir ADR (Architecture Decision Record) yaz:
- Bağlam: gereksinimler ve kısıtlar (pil, maliyet, zamanlama).
- Karar: seçilen kart ya da kombinasyon.
- Sonuçlar: neyi kazandık, neyi kaybettik, ne zaman yeniden düşünürüz.
Kendini sına
Kameradan görüntü işleyip web panelinde gösterecek bir robot için hangi kart daha uygundur?
Pi'nin GPIO pinleri hangi mantık gerilimiyle çalışır?
Linux üstündeki bir Python döngüsü neden 20 kHz PWM üretmek için uygun değildir?
Pi + MCU mimarisinde tipik iş bölümü hangisidir?
