Skip to main content

Koşullu Programlama - Python

Öğretmen Araç Kutusu simgesi Öğretmen Araç Kutusu - Bu Etkinliğin Amacı

Bu etkinlik öğrencilere, ekrana basılmadığı sürece robotun ileri gitmesini sağlamak için while ve if ifadelerini kullanmayı öğretecektir.

  • Bu etkinlik öğrencilere, ekrana basılmadığı takdirde robotun ileri hareket etmesini sağlayan koşullu ifadeleri ve talimatları tanıtacaktır.
  • Bu etkinlikte kullanılan if ve if-else ifadeleri veya diğer ifadeler hakkında daha fazla bilgi için VEXcode V5 içindeki yardım bilgilerini inceleyin. Bu yerleşik yardım aracı hakkında daha fazla bilgi için Pythonyardım hakkındaki makaleye göz atın.

Öğretmen Araç Kutusu simgesi Öğretmen Araç Kutusu

Bu bölüm için öğretim stratejilerine ilişkin öneriler için Yapılacaklar veya Yapılmayacaklar Tempo Rehberi'nin Sunum sütununu inceleyin! (Google Doküman / .docx / .pdf)

Clawbot karar vermeye hazır!

Bu keşif sizeif-elseifadelerini kullanan bazı harika projeler yaratmaya başlamanız için gereken araçları sağlayacaktır.

  • Bu araştırmada kullanılacak VEXcode V5 Python komutları: 
    • drivetrain.drive_for(İLERİ)
    • brain.screen.pressing()
    • drivetrain.stop()
    • eğer durum:
    • else:
    • Doğru olsa da:  
    • bekle(5, SANİYE)

Python komutlarını öğrenmek için VEXcode V5'in içindeki Yardım bilgisini kullanabilirsiniz.

VEXcode V5 ile komut sürücüsü soldaki çalışma alanına yazılır ve Yardım bilgileri sağda açılır. Yardım, komutun bir tanımını ve nasıl kullanıldığına ilişkin bilgileri gösterir.

Gerekli donanıma, mühendislik defterinize ve VEXcode V5 'e sahip olduğunuzdan emin olun.

Gerekli Malzemeler:
Adet Gerekli Malzemeler
1

VEX V5 Sınıf Başlangıç Kiti (güncel ürün yazılımı ile)

1

VEXcode V5 (en son sürüm, Windows, macOS)

1

Mühendislik Defteri

1

Clawbot (Drivetrain 2 - motor, No Gyro) Şablonu

Öğretmen İpuçları simgesi Öğretmen İpuçları

Eğer öğrenci VEXcode V5'i ilk kez kullanıyorsa, bu keşif sırasında istediği zaman Eğitimlere başvurabilir. Eğitimler araç çubuğunda yer almaktadır.

VEXcode V5 Araç Çubuğu, kırmızı kutuyla vurgulanan Eğitimlerle. Araç Çubuğu soldan sağa doğru V5 logosunu, bir küre simgesini, Dosya ve Eğitimler'i gösterir. Eğitimlerin sağında ek simgeler ve işlevler yer alır.

Adım 1: Koşullu ifadelerin anlaşılmasıyla başlayalım 

Koşullu programlamaya başlamadan önceif-elseifadelerini açıklayan makaleyi okuyun. Makaleye buradan (Google Doc / .docx / .pdf) ulaşılabilir.
Screenshot of the linked article titled Using If else statements in VEXcode V5 Python.
if-elseifadelerinde kullanılacak operatörlerin listesi için Boole'ları açıklayan makaleyi okuyun. Bu makaleye buradan ulaşabilirsiniz (GoogleDoc/.docx/.pdf).

VEXcode V5 Python'da Boolean Kullanımı başlıklı bağlantılı makalenin ekran görüntüsü.

Adım 2: Koşullu ifadelerle programlamaya başlayalım.

  • Clawbot (Drivetrain 2 - motor, No Gyro) şablon örnek projesini açın.

    Şablon filtresi ve Clawbot Drivetrain 2 motor no gyro simgesi ile VEXcode V5 'teki Örnek Projeler, hangi projenin açılacağını belirten kırmızı bir kutu ile vurgulanmıştır.

     

  • Projeyi aşağıda oluşturun.
# Proje kodunu Doğru
iken
    başlat: brain.screen.pressing
    (): drivetrain.stop ()
        while
        brain.screen.pressing ():
            wait(5, MSN)
    wait(5, MSN)

Mühendislik defterinizde aşağıdakileri yapın:

  • Projenin Clawbot'un ne yaptığını açıklayın. Bir durdurma düğmesi oluşturduğu gerçeğinden daha fazlasını açıklamanız gerekecektir. Hangi talimatların Clawbot'a ne yaptırdığını açıklayın.
  • Projenin ne yaptığını yakalayan tek cümlelik bir özet yazın.
  • Projenin Clawbot'un ne yaptığına dair tahmininizin doğru olup olmadığını görmek için test edin.
  • ProjeyeCreatingAStopButton adını verin. Projeyi indirin ve çalıştırın.
    VEXcode V5 Araç Çubuğundaki proje adı iletişim kutusunda bir Durdurma Düğmesi Oluşturma okunur ve Yuva 1 'in seçili olduğunu gösterir.
  • Projeyle ilgili açıklamalarınızı kontrol edin ve gerektiğinde düzeltmek için notlar ekleyin.

Öğretmen Araç Kutusu simgesi Öğretmen Araç Kutusu - Cevap

Bu projede robot sürekli ileriye doğru hareket ediyor ancak ekrana basıldığında duruyor. Bunu, sürekli olarak sürmek ve kontrol etmek için "sonsuza kadar" ifadesini (while True)kullanarak yapar. Ekrana basıldığında (True) Clawbot sürüşü durdurur.Stop veya Drive projesindeki komutların işlevleri etiketlenmiştir. If ifadesi Koşulun Doğru olup olmadığını kontrol eder - Ekrana basılıp basılmadığını kontrol eder. Altında girintili bloklar ise Eğer koşul True ise kod bloğunu çalıştırır etiketiyle etiketlenmiştir. Beyin ekranı basma komutu ise işlem hızını kontrol eder.

Öğrencilerin while brain.screen.pressing():ve wait(5, MSEC) komutlarının neden kullanıldığını anlamaları beklenmemektedir. Bu komutların robotun program akışının hızı nedeniyle gerekli olduğunu açıklayın. Eğer orada olmasaydı, Clawbot'un motorları, projede dolaşırken kullanıcı ekrana tekrar tekrar basıyormuş gibi davranırdı. Bunun yerine, bu talimatlar program akışını durdurur ve kullanıcı ekrana basmayı bırakana kadar projenin döngüyü tekrar başlatmasını sağlamaz.

Sahte kod satırı şu kadar basit olabilir: Ekran basılıncaya kadar ileri doğru sürün.

Öğrencilerin mühendislik not defterleri bireysel olarak (Google Doc / .docx / .pdf) veya ekip halinde (Google Doc / .docx / .pdf) tutulabilir ve puanlanabilir. Önceki bağlantılar her yaklaşım için farklı bir değerlendirme ölçütü sunmaktadır. Eğitim planlamasına bir değerlendirme ölçütü eklendiğinde, etkinlik başlamadan önce değerlendirme ölçütünün öğrencilere açıklanması veya en azından bir kopyasının öğrencilere verilmesi iyi bir uygulamadır.

Adım 3:whilevewait()ifadelerini anlamak.

Dikkat ederseniz Brain'in ekranına basıldığında projenin akışı hızlı bir şekilde ilerleyecek ve proje bir sonraki komut olan drivetrain.stop()komutuna geçecektir.

Bu nedenle, projenin Beyin ekranı serbest bırakılana kadar robota durmasını söyleyen while ve bekleme komutlarına ihtiyacı vardır. Aksi takdirde sonsuza kadarifadesi projenin yeniden başlamasına neden olurdu.

while brain.screen.pressing ():
	wait(5, MSN)

while ve waitkomutları projenin akış hızı nedeniyle gereklidir. Eğer orada olmasalardı, robotun cevap vermeye vakti olmadan önce proje bir sonraki talimata geçecekti.

Adım 4: Projeyi değiştirin.

Bir sonraki adımımızififadesiniif-else ifadesine değiştirmektir

  • CreatingAStopButtonyeni proje olarak kaydederek başlayın,StopOrDriveVEXcode V5 Araç Çubuğundaki Proje adı iletişim kutusunda Dur veya Sür okunur ve yuva 1 'in seçili olduğunu gösterir.
  • Bir projeyi kaydetme konusunda yardıma ihtiyacınız varsa, bu makaleleri görüntüleyin.
  • Daha sonra aşağıda gösterilenStopOrDriveprojesini oluşturun.
# Proje kodunu Doğru
iken başlat
    : brain.screen.pressing ():
        drivetrain.stop ()
        while brain.screen.pressing ():
            wait(5, MSN) else:drivetrain.drive
    (
        FORWARD)
    wait(5, MSN)
  • Clawbot'unuzdakiStopOrDriveSlot 2'ye indirin.

VEXcode V5 Araç Çubuğunda Slot seçim penceresi açılır ve slot 2 seçilir ve kırmızı bir kutu ile vurgulanır.

  • Bir projeyi indirme ve çalıştırma konusunda yardım için bu makaleye bakın
  • TestCreatingAStopButton(Yuva 1) ve ardından testStopOrDrive(Yuva 2) robotun davranışında herhangi bir fark olup olmadığını görmek için karşılaştırın. Mühendislik defterinizdeki farklılıkları not edin

Öğretmen Araç Kutusu simgesi Öğretmen Araç Kutusu - Cevap

Robotun davranışı açısındanCreatingAStopButtonveStopOrDriveprojeleri arasındadeğilfark olmalıdır.

Öğrencilerinif-elseifadelerini anlamada daha fazla yardıma ihtiyaçları varsa, bu makaleye bakın (Google Doc / .docx / .pdf).

İki proje de Clawbot'un aynı şekilde davranmasını sağlıyor. Tek fark, StopOrDrive projesinde if-else ifadesinin kullanılmasıdır.
if-else ifadesini kullanmak, yaklaşan aktivitelerde ekrana ek düğmeler eklemenize olanak tanır.

Öğrenmenizi Genişletin simgesi Öğrenmenizi Genişletin

Bu STEM Laboratuvarı ilerledikçe, öğrenciler Clawbot'un ekranının bir kullanıcı arayüzü olarak işlev görmesini sağlayan projeler geliştirecekler. Buna hazırlık olarak, öğrencilere ekranda düğme gibi işlev gören renkli bir dikdörtgenin nasıl çizileceğini bulmaları için meydan okuyun. Zira şu an ekranın herhangi bir yerine basmak şart olduğundan, butonun tüm ekranı kaplaması gerekiyor. Öğrenciler projenin başlatıldığında butonun çizilmesi için bir etkinlik yayınlamalıdır.

Öğrencilere öncelikle beynin ekranının nasıl bir koordinat sistemine göre düzenlendiğini öğretmelerini söyleyin. Kullanacakları komutlarda parametreleri ayarlayabilmek için bunu anlamaları gerekecektir. Kullanılan koordinatlar sütun veya satır sayısına değil piksel sayısına karşılık gelir. Ekranın düzeni şu şekildedir:V5 Brain ekranının piksel ızgarasında sol tarafta 12 adet numaralandırılmış satır bulunmaktadır. En üstteki satır 1. Satır, alttaki satır ise 12. Satır olarak etiketlenmiştir. Üstte 48 adet numaralı sütun bulunmaktadır; en solda 1. Sütun, en sağda ise 48. Sütun etiketlenmiştir. Toplam piksel ölçüleri 480 piksel genişliğinde ve 240 piksel yüksekliğindedir.

Öğrenciler bu değişiklikleri mühendislik defterlerine kaydederken planlamalı, test etmeli ve projeyi geliştirmelidir. Bireysel mühendislik not defteri değerlendirme ölçütleri için aşağıdaki bağlantılardan birine tıklayın (Google Doc / .docx / .pdf) veya takım not defterleri için aşağıdaki bağlantılardan birine tıklayın (Google Doc / .docx / .pdf).

İşte bir örnek çözüm: 

# Proje kodunu başlat
draw = Event()

def draw_button():
    brain.screen.set_fill_color(Color.RED)
    brain.screen.draw_rectangle(0, 0, 480, 240)
    wait(1, SANİYE)

draw(draw_button)
while True:
    draw.broadcast()
    drivetrain.drive(FORWARD)

    if brain.screen.pressing():
        drivetrain.stop()
        while brain.screen.pressing():
            wait(5, MSEC)
    else:
        drivetrain.drive(FORWARD)
        
    wait(5, MSEC)

Gördüğünüz gibi, buton (0, 0) başlangıç noktasından başlayarak tüm ekranı kaplayacak ve 480 yatay (x ekseni) piksel ile 240 dikey (y ekseni) pikselin tamamını dolduracak şekilde çizilmiştir.