Tanıtım videosu yakında eklenecek

Garaj Simülasyonu

Seviye: 6/10
Garaj Simülasyonu
Hızlı Başlangıç
  1. UDUSimp programını indirip kurun ve hesabınızla giriş yapın.
  2. Bir çalışma alanı (workspace) klasörü seçin; kütüphaneler ve başlangıç kodları c_… / py_… klasörlerine iner.
  3. Simülasyonu başlatın, kodunuzu çalışma alanında yazıp çalıştırın.

Fonksiyon Listesi

FonksiyonAçıklama
sim_connect() Simülasyona Bağlan
sim_disconnect() Simülasyon Bağlantısını Kes
door_motor(int yon) Garaj Kapı Motoru
garage_lamp(int acKapa) Garaj Lambası
warning_light(int r, int g, int b, int acKapa) Uyarı Lambası (RGB)
warning_light_on() Uyarı Lambası Aç (Renksiz)
warning_light_off() Uyarı Lambası Kapat
int k = key_read(int tus) Tuş Takımı Oku
int p = door_pos_read() Kapı Konum Sensörü Oku
int dm = door_motor_read() Kapı Motoru Durumu Oku
int gl = garage_lamp_read() Garaj Lambası Durumu Oku
int wl = warning_light_read() Uyarı Lambası Durumu Oku

Simülasyonun Amacı

C, C++ ve Python gibi programlama dillerinin başlangıç eğitimi genellikle konsol uygulamaları üzerinden anlatılmaktadır. Dolayısıyla, geliştirilen kodun çıktıları konsol üzerinden gösterilmektedir. Bu durum öğrencinin program akışını hayal edememe ve davranışını tam olarak anlayamamasına neden olur.

Bu simülasyonun amacı öğrencinin geliştirdiği kodun nasıl çalıştığını simüle edebileceği bir ortam sağlamaktır. Gerçekçiliği arttırmak için kapı motoru, lambalar, RGB uyarı ışığı, tuş takımı ve kapı konum sensörü ayrı ayrı kontrol edilebilir ve her bileşenin durumu okunabilir.

UDUSimp programını indirip kurduktan sonra istediğiniz simülasyonu çalıştırıp tercih ettiğiniz bir editörü kullanarak kod geliştirmeye başlayabilirsiniz. Tavsiye edilen editör: Visual Studio Code.

Garaj simülasyonunun zorluk derecesi 10 üzerinde 6 olarak değerlendirilmiştir.

Genel Bilgi

1 – Özellikler
• Yukarı / Aşağı / Dur kontrollü garaj kapı motoru
• Açılır / Kapanır garaj iç lambası
• RGB renk değişimli uyarı lambası *
• 0-9, # ve X tuşlu sayısal tuş takımı *
• Kapı konum sensörü (0-100 % kapalılık) *
• Tüm bileşenler için durum okuma fonksiyonları *

2 – Görev ve Tanım
Günlük hayatta kullanılan akıllı garaj sistemlerini ve çalışma mantığını inceleyin. Tuş takımından girilen şifreye göre kapının açılması, sensör verisiyle motorun otomatik durması ve durumların RGB lambayla bildirilmesi için gereken kodu geliştirin.
Örnek senaryolar:
1- Tuş takımından doğru şifre girilirse kapının yukarı hareket etmesi
2- Kapı tam açıldığında (pozisyon 0) motorun otomatik durması ve uyarı lambasının yeşil yanması
3- Yanlış şifre denemesinde uyarı lambasının kırmızı yanması ve X tuşu ile sıfırlanması
Gerekir.

Not: door_motor() ile başlatılan hareket, door_pos_read() değeri istenen konuma ulaştığında durdurulmazsa motor son limit anahtarına çarpana kadar çalışır. Konum kontrolünü her döngüde tekrar okuyarak yapın.

Simülasyona Bağlan

sim_connect()

Simülasyon ile kod ortamı arasında bağlantı kurar.

#include "garage.h"
int main() {
    sim_connect();
    return 0;
}
from garage import *

sim_connect()

Simülasyon Bağlantısını Kes

sim_disconnect()

Simülasyon ile kod ortamı arasındaki bağlantıyı sonlandırır.

#include "garage.h"
int main() {
    sim_connect();
    sim_disconnect();
    return 0;
}
from garage import *

sim_connect()
sim_disconnect()

Garaj Kapı Motoru

door_motor(int yon)

Garaj kapısının motorunu çalıştırır.
1. parametre:
DOOR_UP (1) = Yukarı (kapı açılır)
DOOR_DOWN (2) = Aşağı (kapı kapanır)
DOOR_STOP (0) = Dur

Örnek:
door_motor(DOOR_UP) → kapı açılmaya başlar
door_motor(DOOR_DOWN) → kapı kapanmaya başlar
door_motor(DOOR_STOP) → motor durur

#include "garage.h"
int main() {
    sim_connect();
    door_motor(DOOR_UP);    // ac
    door_motor(DOOR_DOWN);  // kapat
    door_motor(DOOR_STOP);  // dur
    return 0;
}
from garage import *

sim_connect()
door_motor(DOOR_UP)     # ac
door_motor(DOOR_DOWN)   # kapat
door_motor(DOOR_STOP)   # dur

Garaj Lambası

garage_lamp(int acKapa)

Garajın iç lambasını açar veya kapatır.
1. parametre: LAMP_ON (1) = Aç, LAMP_OFF (0) = Kapat

Örnek:
garage_lamp(LAMP_ON) → lamba yanar
garage_lamp(LAMP_OFF) → lamba söner

#include "garage.h"
int main() {
    sim_connect();
    garage_lamp(LAMP_ON);  // yak
    garage_lamp(LAMP_OFF); // sondur
    return 0;
}
from garage import *

sim_connect()
garage_lamp(LAMP_ON)   # yak
garage_lamp(LAMP_OFF)  # sondur

Uyarı Lambası (RGB)

warning_light(int r, int g, int b, int acKapa)

Uyarı lambasını istenen renkte açar veya kapatır.
Parametreler:
r,g,b → 0-255 arası RGB renk değerleri
acKapa → WARN_ON (1) = Aç, WARN_OFF (0) = Kapat

Örnek:
warning_light(255,0,0, WARN_ON) → kırmızı yanar
warning_light(0,255,0, WARN_ON) → yeşil yanar
warning_light(0,0,0, WARN_OFF) → söner

#include "garage.h"
int main() {
    sim_connect();
    warning_light(255, 0, 0, WARN_ON); // kirmizi
    warning_light(0, 255, 0, WARN_ON); // yesil
    warning_light(0, 0, 0, WARN_OFF);  // sondur
    return 0;
}
from garage import *

sim_connect()
warning_light(255, 0, 0, WARN_ON)  # kirmizi
warning_light(0, 255, 0, WARN_ON)  # yesil
warning_light(0, 0, 0, WARN_OFF)   # sondur

Uyarı Lambası Aç (Renksiz)

warning_light_on()

Uyarı lambasını mevcut renginde açar. Renk değerlerini değiştirmez.
Daha önce warning_light() ile ayarlanmış son renk kullanılır.

#include "garage.h"
int main() {
    sim_connect();
    warning_light(0, 0, 255, WARN_ON); // once mavi ayarla
    warning_light_off();
    warning_light_on();                // tekrar mavi yan
    return 0;
}
from garage import *

sim_connect()
warning_light(0, 0, 255, WARN_ON)  # once mavi ayarla
warning_light_off()
warning_light_on()                 # tekrar mavi yan

Uyarı Lambası Kapat

warning_light_off()

Uyarı lambasını söndürür. Renk ayarlarını silmez; tekrar warning_light_on() çağrılırsa aynı renkle yanar.

#include "garage.h"
int main() {
    sim_connect();
    warning_light_off();
    return 0;
}
from garage import *

sim_connect()
warning_light_off()

Tuş Takımı Oku

int k = key_read(int tus)

Tuş takımındaki belirtilen tuşun basılı olup olmadığını okur.
1. parametre:
0-9 → rakam tuşları
10 → # tuşu
11 → X (iptal) tuşu
Dönen değer 1 → tuşa basılı, 0 → basılı değil

Örnek:
key_read(5) → 5 tuşuna basıldı mı?
key_read(10) → # tuşuna basıldı mı?
key_read(11) → X tuşuna basıldı mı?

#include "garage.h"
int main() {
    sim_connect();
    int k = key_read(5);
    if(k == 1)
        printf("5 tusuna basildi");
    return 0;
}
from garage import *

sim_connect()
k = key_read(5)
if k == 1:
    print("5 tusuna basildi")

Kapı Konum Sensörü Oku

int p = door_pos_read()

Garaj kapısının ne kadar kapalı olduğunu yüzde olarak okur.
Dönen değer 0-100 arası:
0 → kapı tam açık
100 → kapı tam kapalı
50 → kapı yarı kapalı

Örnek:
int p = door_pos_read() → p = 100 (kapı tamamen kapalı)

#include "garage.h"
int main() {
    sim_connect();
    int p = door_pos_read();
    if(p >= 100)
        door_motor(DOOR_STOP);  // tam kapali, motoru durdur
    return 0;
}
from garage import *

sim_connect()
p = door_pos_read()
if p >= 100:
    door_motor(DOOR_STOP)   # tam kapali, motoru durdur

Kapı Motoru Durumu Oku

int dm = door_motor_read()

Garaj kapı motorunun anlık durumunu okur.
Dönen değer:
0 → motor duruyor
1 → kapı yukarı hareket ediyor
2 → kapı aşağı hareket ediyor

#include "garage.h"
int main() {
    sim_connect();
    int dm = door_motor_read();
    if(dm == 0)
        printf("Kapi durdu");
    return 0;
}
from garage import *

sim_connect()
dm = door_motor_read()
if dm == 0:
    print("Kapi durdu")

Garaj Lambası Durumu Oku

int gl = garage_lamp_read()

Garaj iç lambasının anlık durumunu okur.
Dönen değer 1 → lamba açık
Dönen değer 0 → lamba kapalı

#include "garage.h"
int main() {
    sim_connect();
    int gl = garage_lamp_read();
    if(gl == 1)
        printf("Garaj lambasi acik");
    return 0;
}
from garage import *

sim_connect()
gl = garage_lamp_read()
if gl == 1:
    print("Garaj lambasi acik")

Uyarı Lambası Durumu Oku

int wl = warning_light_read()

Uyarı lambasının anlık durumunu okur.
Dönen değer 1 → lamba açık
Dönen değer 0 → lamba kapalı

#include "garage.h"
int main() {
    sim_connect();
    int wl = warning_light_read();
    if(wl == 1)
        printf("Uyari lambasi acik");
    return 0;
}
from garage import *

sim_connect()
wl = warning_light_read()
if wl == 1:
    print("Uyari lambasi acik")