Macademia'nın robotik ve mühendislik programı · ücretsiz seviye tespiti ve kişisel öğrenme yolu

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.

Raspberry Pi 5 / 4BLinux çalıştıran tek kartlı bilgisayar+6
Raspberry Pi Zero 2 WKüçük ve az güç çeken Linux kartı+4
Pi + MCUPi düşünür, MCU zamanlamayı tutar (UART/I²C ile)+4
Raspberry Pi Pico (RP2040)Mikrodenetleyici, MicroPython/C-3
STM32 (Cortex-M)Mikrodenetleyici, C ve gerçek zamanlı-4
Öneri: Raspberry Pi 5 / 4B +3 Kamera ve görüntü işleme (OpenCV) +3 Wi-Fi, web paneli, SSH

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

Aynı LED, iki dünya: Pi (Linux, Python) ve Pico (MicroPython)
# --- 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şimsiz

Sı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

  1. Kameradan görüntü işleyip web panelinde gösterecek bir robot için hangi kart daha uygundur?

  2. Pi'nin GPIO pinleri hangi mantık gerilimiyle çalışır?

  3. Linux üstündeki bir Python döngüsü neden 20 kHz PWM üretmek için uygun değildir?

  4. Pi + MCU mimarisinde tipik iş bölümü hangisidir?

Gerçek parçalar (Hyvex, 3B modelli)

Esc
  • PanelAna sayfaSayfa
  • ModüllerTüm modüllerSayfa
  • ParçalarParça ansiklopedisiSayfa
  • Mühendislik yoluBüyükler için robotik: 128 parça, 7 seviyeSayfa
  • Robotik dersi (ESOF 323)Üniversite robotik dersi, 14 haftaSayfa
  • Drone dersiBüyükler için: parça, simülasyon, yazılım; 10 üniteSayfa
  • Blok atölyesiSerbest blok programlamaAraç
  • Devre laboratuvarıSanal Arduino ve devreAraç
  • Robot arenasıSanal robot sürüşüAraç
  • OyunlarBloklarla 8 öğretici oyunAraç
  • Mikro Kart atölyesiSanal LED kartı bloklarla programlaAraç
  • Robot atölyesiMikro Kart'ı robota tak, bloklarla görev yapAraç