Tüm simülasyonlar
Dersin tüm simülasyonları tek sayfada; her biri kendi ünitesinde de var.
1. ünite: Tek kartlı bilgisayar ve mikrodenetleyici
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:
2. ünite: Raspberry Pi OS ve Linux komut satırı
Raspberry Pi OS terminali (benzetim)
Küçük bir sanal dosya sistemi üzerinde gerçek komutlar: ls, cd, cat, nano, chmod, sudo, apt, systemctl, journalctl, i2cdetect. Ağ, paket kurulumu ve ssh benzetimdir; hiçbir şey indirilmez. Görev listesi durumu denetleyerek işaretlenir.
Görevler · 0/5
- ~/robot/logs klasörünü oluştur (mkdir)
- echo ile ~/robot/logs/ilk.txt dosyasına bir satır yaz
- start.sh betiğini çalıştırılabilir yap (chmod +x)
- i2c-tools paketini kur (sudo apt install)
- python3-opencv paketini de kur
Hızlı komutlar (dokun, Enter'a bas):
4. ünite: GPIO: LED, buton, buzzer ve servo
40 pinli GPIO başlığı: LED, buton, buzzer, servo
Her cihazın sinyal ucunu bir fiziksel pine bağla: kablolama denetimi 5 V, GND, veri yolu ve donanım PWM hatalarını yakalar. Bir program seç, butona bas ve gpiozero kodunun pin numaralarıyla birlikte değiştiğini gör.
from gpiozero import LED, Button, Buzzer
from signal import pause
led, buzzer = LED(17), Buzzer(22)
button = Button(27, bounce_time=0.05)
def toggle():
if led.is_lit:
led.off(); buzzer.off()
else:
led.on(); buzzer.beep(on_time=0.2, off_time=0.2)
button.when_pressed = toggle
pause()LED (220 Ω) GPIO17 (fiziksel 11) uygun.
Buton GPIO27 (fiziksel 13) uygun.
Aktif buzzer GPIO22: aktif buzzer küçük bir akım çeker; büyük buzzer için transistör kullan.
Servo (SG90) GPIO18 (fiziksel 12) uygun.
5. ünite: Sensörler ve veri yolları: 1-Wire, I²C, SPI
Sensör veri yolları: 1-Wire, I²C ve SPI
DS18B20'nin w1_slave dosyasını CRC ile çözümle, I²C yoluna cihaz ekleyip adres çakışmasını gör, MCP3008'e SPI ile giden ve gelen baytları izle.
$ cat /sys/bus/w1/devices/28-0316a2794c5f/w1_slave
4b 01 4b 46 7f ff 05 10 e1 : crc=e1 YES 4b 01 4b 46 7f ff 05 10 e1 t=20687
6. ünite: Kamera ve OpenCV: renkli hedef bulma
Kamera → OpenCV boru hattı: renkli top bulma
Yapay bir kamera karesinde HSV eşikleme, açma (aşındır + genişlet), momentlerle ağırlık merkezi ve dönüş komutu. Gürültüyü, ışığı ve eşikleri değiştir; boru hattının hangi adımda bozulduğunu gör.
HSV lo [170, 120, 70] hi [10, 255, 255]
7. ünite: Motorlar: L298N, enkoder ve hız denetimi
L298N, DC motor ve dörtlü enkoder
IN1/IN2/EN ile ileri, geri, fren ve serbest; birinci dereceden motor modeli; enkoderin A/B kanallarından yön ve hız. PI denetimini açıp yük altında hızın nasıl tutulduğunu izle.
8. ünite: Diferansiyel sürüşlü robot ve odometri
Diferansiyel sürüşlü robot ve odometri
Klavye (W A S D) ya da düğmelerle sür. Gerçek poz yeşil, enkoderden hesaplanan odometri turuncu: tekerlek çapı hatası ve kaymayla zamanla ayrılırlar.
9. ünite: Flask ile web kontrol paneli
Flask kontrol paneli ve bekçi (watchdog)
Tarayıcıdaki panelden Pi'deki küçük HTTP sunucusuna istek gönder. Yanıt kodlarını (200, 400, 401, 405), belirteç denetimini ve bağlantı kesilince robotu durduran bekçiyi dene.
Robot: stop · hız 0,00
10. ünite: ROS 2 temelleri ve systemd ile otomatik başlatma
ROS 2 düğüm ve konu grafiği
Keşif robotunun düğümlerini aç/kapat; rqt_graph benzeri grafik, ros2 topic list çıktısı ve sorunlar (yayıncısız abonelik, /cmd_vel'de iki yayıncı) anında güncellenir.
Çalışan düğümler:
8. ünite: Diferansiyel sürüşlü robot ve odometri
3B kameralı keşif robotu
Diferansiyel sürüşlü robotu 3B sahada GPIO pinleriyle (L298N IN1–IN4, ENA/ENB) sür ya da izle kipini aç: kamera görüş konisi topu görünce yeşile döner, robot topa yaklaşır. Sahneyi sürükleyerek döndür, iki parmakla yakınlaştır. Sahne durumu testli saf mantıktan gelir; 3B yalnız görselleştirmedir.
Ya da pinleri elle sür (L298N):
