Skip to main content

Programlama Döngüleri - Python

Öğretmen Araç Kutusu simgesi Öğretmen Araç Kutusu - Etkinlik Taslağı

  • Bu araştırma, öğrencilere tekrarlayan davranışları tekrarlama veya sonsuza kadar döngüler kullanarak programlamayı öğretecektir.

  • Tekrarlayan ve sonsuza kadar döngüleri kullanarak programlamayı öğrenmek, öğrencilerin aynı tekrarlanan eylemleri kullanan bir proje oluştururken zamandan tasarruf etmelerini sağlar. Bir metin projesinde kullanılan talimatlar hakkında daha fazla bilgi içinyardımbilgi sayfasını ziyaret edin.

Clawbot V5 harekete geçmeye hazır!

Bu keşif, döngüleri kullanan bazı harika projeler oluşturmaya başlayabilmeniz için size araçlar verecektir.

  • Bu keşifte kullanılacak VEXcode V5 Python talimatları:
    • drivetrain.drive_for(FORWARD, 300, MM)
    • drivetrain.turn_for(SAĞ, 90, DERECE)
    • claw_motor.spin_for(TERS, 70, DERECE)
    • arm_motor.spin_for(İLERİ, 360, DERECE)
    • bumper_b.pressing()
    • Doğru olsa da: 
    • (4) aralığındaki tekrar_sayısı için: 
    • bekle(5, SANİYE)

VEXcode V5'in içindeki Yardım bilgilerini kullanarak bireyselPythonkomutları hakkında bilgi edinebilirsiniz. 

Drive komutu için yardım notlarıyla birlikte VEXcode V5 Çalışma Alanını gösteren resim açık

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

Eğer öğrenci VEXcode V5'i ilk kez kullanıyorsa,Kütüphanesi'ndeki çeşitli makaleleri okuyabilir

VEX Kütüphanesi'nin VEXcode V5 bölümünün görüntüsü

Öğretmen İpuçları simgesi Öğretmen İpuçları - Otomatik Tamamlama Kullanımı

Otomatik tamamlama, VEXcode V5'te yazdığınız komutun geri kalanını tahmin eden bir özelliktir. Öğrenciler VEXcode V5 üzerinde çalışırken, Python sözdizimine yardımcı olması için Otomatik Tamamlama özelliğini kullanmalarını teşvik edin. Talimatı yazmaya başladığınızda otomatik tamamlama fonksiyonunu fark edebilirsiniz. İstediğiniz ismi seçmek için “Yukarı” ve “Aşağı” tuşlarını kullanın, ardından seçimi yapmak için klavyenizdeki “Tab” veya (Enter/Return) tuşuna basın. Otomatik Tamamlama'nın kullanımı hakkında daha fazla bilgi için Python makalesine bakın.

Bir Python projesindeki otomatik tamamlama özelliğinin görüntüsü

Gerekli donanıma, mühendislik dizüstü bilgisayarınıza 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 Template (Drivetrain 2 - motor, No Gyro) örnek projesi

Adım 1: Döngülerle programlamaya başlayalım

  • Projenize başlamadan önce, doğru şablon projesini seçin. Clawbot Şablonu (Drivetrain 2 - motor, No Gyro) örnek projesi, Clawbot'un motor konfigürasyonunu içerir. Şablon kullanılmazsa, robotunuz projeyi doğru şekilde çalıştırmayacaktır.
  • Dosyaveseçin. Örnekleri açın.

    Açık Örnekler seçeneğini gösteren VEXcode V5 'te açık Dosya menüsünü gösteren resim

     

  • FarklıÖrnekprojelerine göz atın. Bu projeler, Clawbot'unuzun gerçekleştirebileceği çeşitli eylemleri göstermektedir. Clawbot Şablonu (Aktarma Organları 2 Motorlu, Jiroskop Yok)örnek projesini seçin ve açın.

    Speedbot (Drivetrain 2 - motor, No Gyro) Şablon Projesi etrafında kırmızı kutulu Örnek projeleri gösteren görsel

     

  • Projeyi RepeatingActions olarak adlandırın.

    VEXcode V5 'te Mükerrer Eylemler proje Adını gösteren resim

  • Aşağıdaki kodu yazın:

    # Vex içe aktarma
    işleminden kütüphane içe aktarma *
    
    
    # Proje kodunu başlat # Aralıkta tekrar sayımı için 4 yineleme
    
    için 300mm ileri doğru 90 derece döner (4):
        drivetrain.drive_for (İLERİ, 300, MM)
        drivetrain.turn_for (SAĞ, 90, DERECE)
        bekle(5, SANİYE)

Projeye göz atın ve ardından mühendislik defterinizde aşağıdakileri yapın.

  1. Projenin Clawbot'a ne yaptıracağını tahmin edin. Projenin tekrar etmesinden daha fazlasını açıklayın.

    Neyi tekrarlıyor? Pençe Robot ne yapıyor?

  2. Tahmininizi yazın, ancak kısa projeyi ikiden fazla parçaya bölmeyin.

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

  1. Bu projede robotun: 300 milimetre ileri gitmesini, 90 derece sağa dönmesini ve ardından bir kareyi tamamlamak için 4 kez 5 saniye beklemesini gerektirecek. Aynı 3 talimatı 4 kez kullanmak yerine, tekrarlanan talimat miktarı sadece 1 keze düşer. Tekrar talimatı ileri sürüş ve ardından dönüş hareketlerini tekrarlar.

  2. Tahmin basitçe "Pençebot bir kare içinde hareket eder" şeklinde olabilir. Bu, herhangi bir bağlamdan yoksun olarak Pençebot'un tekrarlanan hareketlerini yakalamanın özlü bir yolu olurdu.

Öğrencilerin mühendislik not defterleri tutulabilir vebireyselveyatakım halindeolarak 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.

  • Tekrarlanan Eylemlerkaydedin, indirin ve çalıştırın.

    VEXcode V5 'te Yinelenen Eylemler proje başlığını gösteren ekran görüntüsü

  • Mühendislik defterinizdeki proje açıklamalarınızı kontrol edin ve gerektiğinde düzeltmek için notlar ekleyin.

Adım 2: Projeyi çalıştırın ve robotu gözlemleyin

VEX robotları için iki Python kod parçacığının karşılaştırılması. Üst snippet, ne zaman döneceğini belirlemek için sensör girişini kullanır, bir süre tampon anahtarına basılıp basılmadığını kontrol eder; basıldığında, robot 90 derece sağa döner, aksi takdirde ileri gider. Alt snippet, ne zaman döneceğini belirlemek için sabit bir mesafe kullanır, robotu 300 mm ileriye götüren bir for döngüsü ile 90 derece sağa döner ve 5 saniye bekler, bu diziyi dört kez tekrarlar

Tekrarlanan Eylemler projesine (ikinci proje) tekrar bakın. Bu proje ileri ve sonra davranışı dört kez tekrarlayacaktır. Belirli sayıda davranışı kullanmak istediğinizde "tekrar" döngü yapısı (fordöngüsü kullanılarak) kullanılır.

Tekrar yapısı while döngü yapısıyla değiştirilirse, robot koşul doğru olduğu sürece ileri ve sonra dönme davranışlarını tekrarlayacaktır. Ayrıca,while döngüsünün sonsuza kadar devam etmesi için koşulu "true" olarak da ayarlayabilirsiniz.

İlk projede, dönmeye ne zaman başlanacağını belirlemek için bir sensörün girişi kullanılıyor. Sağdaki proje, dönmeye ne zaman başlanacağını belirlemek için sabit bir Aktarma Organları mesafesi kullanır.

Bir sensörün girişini sürekli olarak kontrol etmek için, if else ifadesi while döngüsüyle birlikte kullanılır. Soldaki projede "Bumper_b" sensörüne basıldığında robot sağa dönecek, aksi takdirde "Bumper_b" sensörüne basılmazsa robot sonsuza kadar ileri gidecektir. Bumper_b sensörünün değerini sürekli olarak kontrol etmek için if ifadesi whiledöngüsünün içindedir.

İlk proje,whiledöngülerini veififadelerini birlikte kullanan, sonsuza kadar tekrar eden bir yapının pratik kullanım örneğidir. Bir duvara veya nesneye çarpana kadar ileri doğru sürmeye devam eden, ardından sürmeye devam etmeden önce dönen bir otonom süpürge hayal edin.

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

Döngüleri koşullu olarak nasıl kullanabileceğinizi daha detaylı incelemek için öğrencilerin VEXcode V5'te bir Floor Sweeper projesi oluşturmalarını sağlayın.

Öğrencilerin talimatlardan herhangi biriyle ilgili yardıma ihtiyaçları olursa, onlarıYardımbilgilerine yönlendirin.

Öğrencilerdenprojeyi indirip çalıştırmalarını verobotun nasıl hareket ettiğini gözlemlemelerini isteyin. Daha sonra, bir sınıf tartışması başlatın ve öğrencilerden tekrarlı yapı yerine neden sonsuza kadar olan yapının kullanıldığını açıklamalarını isteyin.

Öğrenciler, bu projenin tampon anahtarının basılıp basılmadığını sürekli olarak kontrol ettiği için sonsuza kadar olan bir yapının kullanıldığını unutmamalıdır.

Adım 3: Kareli Döngüler Mücadelesi!

Kare etrafındaki hareket yönünü gösteren oklarla birlikte yeşil bir kare yolu gösteren bir diyagram. Farklı yönlerde kare noktanın dışında, yolu takip etmek için gereken dönüşlere ve hareketlere karşılık gelen ek turuncu oklar

  • Clawbot'unun bir meydanda araba kullanmasını sağla.
  • Her dönüşten önce pençe açılıp kapatılmalı ve kol kaldırılıp indirilmelidir.
  • Clawbot, meydanın bir tarafında birden fazla süremez.
  • Yukarıdaki RepeatingActions projesini başlangıç noktası olarak kullanabilirsiniz ancak herhangi bir değişiklik yapmadan önceSquaredLoopsolarak kaydedin.

VEXcode V5 'teki araç çubuğunda Kare Döngüler proje adını gösteren resim

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

  • Çözümünüzü planlayın ve projenizdeki her talimatın Clawbot'un ne yapmasını sağlayacağını tahmin edin.
  • göndermeden önce test etmek için indirin ve çalıştırın.
  • Gerektiğinde projede değişiklik yapın ve test sırasında nelerin değiştiğine dair notlar alın.

Öğretmen Araç Kutusu simgesi Öğretmen Araç Kutusu - Çözümü

Aşağıda Kare Döngüler Mücadelesi için olası bir çözüm bulunmaktadır:

# Kütüphane
vex'ten içe aktarır *

# Proje kodunu başlat
, repeat_count aralığında (4):
    drivetrain.drive_for(İLERİ, 300, MM)
    claw_motor.spin_for(GERİ, 70, DERECE)
    arm_motor.spin_for(İLERİ, 360, DERECE)
    claw_motor.spin_for(İLERİ, 70, DERECE)
    arm_motor.spin_for(GERİ, 360, DERECE)
    drivetrain.turn_for(SAĞ, 90, DERECE)
    wait(5, MSEC)

Öğrencilere projelerini puanlamaları içinprogramlama kriterisağlayabilirsiniz.
Öğrencilerin mühendislik not defterleri tutulabilir vebireysel olarakveyatakım halindepuanlanabilir.