Kontrolör: Tank Sürücüsü Keşfi - Python
Öğretmen Araç Kutusu
-
Bu Bölümün Amacı
Tank Kontrol örnek projesini kullanarak öğrenciler Kontrolcüyü kullanarak Pençebot'u kontrol edebilirler. Öğrencilerin, Clawbot'un her bir motoru için hızı kontrol etmek ve Kontrolcünün motor fonksiyonlarını kontrol etmesini sağlamak için left_motor.set_velocity(), right_motor.set_velocity(), left_motor.spin(), right_motor.spin(), left_motor_speed = controller_1.axis3.position() ve right_motor_speed = controller_1.axis2.position() talimatlarındaki parametreleri ayarlamaları gerekecektir.
Talimatların herhangi biri hakkında daha fazla bilgi için VEXcode V5'teki Pythonyardım bölümünü ziyaret edin.
Öğrencilerin bu etkinlikte neler yapacakları aşağıda özetlenmiştir:
- Tank Kontrol örnek projesini inceleyin.
- while True sonsuz döngüyapısının kullanımını anlayın.
- Robo-Slalom mücadelesini tamamla!
Öğretmen İpuçları
Eğer öğrenci VEXcode V5'i ilk kez kullanıyorsa VEX Kütüphanesi'nde birçok faydalımakaleyeerişebilir.
| 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 |
Tank Kontrol Örnek Projesi |
| 2 veya daha fazla |
Engel olarak kullanılacak sınıf nesneleri |
Öğ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. Bu özellik hakkında daha fazla bilgi için Python makalesine bakın.

Bu etkinlik size Kontrolcünüzü programlamak için gereken araçları verecektir.
- Bu keşifte kullanılacak VEXcode V5 Python talimatları:
- left_motor.set_velocity()
- right_motor.set_velocity()
- left_motor.spin()
- right_motor.spin()
- controller_1.axis2.position()
- controller_1.axis3.position()
- Doğru olsa da:
- bekle(5, SANİYE)
Talimatların herhangi biri hakkında daha fazla bilgi için VEXcode V5'teki Python yardım bölümlerini ziyaret edin.

Adım 1: Kontrolörü programlamaya başlayalım.
- Dosya ve Açık Örnekler'i seçin.
- Farklı Örnek projeler arasında gezinin. Tank Kontrol örnek projesini seçin.
- Tank Kontrol örnek projesini açın. Örnek proje, aktarma organlarını ve denetleyiciyi yapılandırır. Kod aşağıdaki snippet gibi görünecektir:
# Vex içe aktarma
işleminden kütüphane içe aktarma *
# Proje kodunu başlat # Doğru
iken motorları kontrolör ekseni konumlarına ayarlamak için Ana Kontrolör
döngüsü: left_motor.set_velocity (controller_1.axis3.position (), PERCENT
) right_motor.set_velocity (controller_1.axis2.position (), PERCENT) left_motor.spin
(FORWARD) right_motor.spin
(FORWARD)
bekle(5, MSN)Mühendislik defterinizde aşağıdakileri yapın:
- Projenin Clawbot'a ne yaptıracağını tahmin edin. Projenin Kontrolörü kullandığı gerçeğinden daha fazlasını açıklayın.
- Kumanda kolları robotu nasıl hareket ettirir? Pençe Robot ne yapıyor?
Öğretmen Araç Kutusu
-
Cevap
- Bu projede, Joystick'in sol ve sağ pozisyonlarının sürekli olarak nerede olduğunu kontrol etmek için while True sonsuz döngü yapısı kullanılacaktır. Sol (veya sağ) Joystick yukarı itildiğinde, Joystick'in ne kadar ileri itileceği hızı ayarlanır.
- Bu sayede Joystick ne kadar ileri itilirse hız o kadar artacak ve motorlar o kadar hızlı hareket edecektir. Aynı mantık Joystick'i geriye itmek için de geçerlidir. Joystick ne kadar geriye itilirse motorlar o kadar hızlı geri hareket edecektir.
- Projeye TankControl adını verin . Python TankControl projesini kaydedin, indirin ve çalıştırın.
- Daha fazla yardım bilgisi için VEXcode V5 'te bir projenin nasıl indirileceğini ve çalıştırılacağını açıklayan öğretici videoyu izleyin.
- Mühendislik defterinizdeki proje açıklamalarınızı kontrol edin ve gerektiğinde düzeltmek için notlar ekleyin.
Adım 2: Kontrolör: Tank Kontrolü
Öğretmen Araç Kutusu
-
While True Sonsuz Döngü Yapıları
Bu adımda while True sonsuz döngü yapısının önemi tartışılmaktadır. Bilgileri sınıfça tekrar gözden geçirmelisiniz. Davranışı Clawbot'unuz ve Controller'ınızla modelleyebilirsiniz veya zamanınız varsa öğrencilerin programı while True sonsuz döngü yapısı olmadan çalıştırmasını sağlayabilirsiniz.
Öğrencilerin while True sonsuz döngüsünü anlamak için daha fazla yardıma ihtiyaçları.
While True sonsuz döngü yapısını kullanmanın faydaları nelerdir?
İşte while True sonsuz döngü yapısına sahip olmayan projemiz:
# Vex içe aktarma
işleminden kütüphane içe aktarma *
# Proje kodunu başlat # Motorları kontrolör ekseni konumlarına ayarlamak için ana
kontrolör döngüsü left_motor.set_velocity (controller_1.axis3.position (), PERCENT
) right_motor.set_velocity (controller_1.axis2.position (), PERCENT) left_motor.spin
(FORWARD)
right_motor.spin (FORWARD)
Bu program çalıştırılsaydı sizce ne olurdu? Grup olarak tartışın. Tahmininizi mühendislik defterine yazın.
Öğretmen Araç Kutusu
-
Yapıyı Anlamak
while True sonsuz döngüsü olmadan, her motorun hız değeri proje çalıştırıldığı anda ayarlanır ve proje durdurulana kadar bu değer sabit kalır. Yani, projeyi Joystick'lerden herhangi birini hareket ettirmeden çalıştırırsanız, Joystick'in eksenindeki varsayılan konumu 0 olduğundan, Joystick'i hareket ettirseniz bile her iki motorun hızı 0'da kalacaktır.
Aynı şekilde sol Joystick'i 3. eksen boyunca gidebildiği kadar yukarı hareket ettirip orada tuttuğunuzu varsayalım. Yukarıdaki projeyi çalıştırdığınızda sol motor tam hızda hareket edecek ve Joystick'i 3. eksen boyunca aşağı doğru hareket ettirseniz bile bu hızda kalacaktır. Bunun nedeni, Clawbot'un proje çalıştırılır çalıştırılmaz ilk talimatını Controller'dan almasıdır; ancak, Döngü olmadan bu ilk değer güncellenemez.
while True sonsuz döngüsü Clawbot'a projenin süresi boyunca hızı sürekli güncellemesini ve çalışmasını söyler. Başka bir deyişle, bu projedeki while True sonsuz döngüsü, Joystick'i 2. veya 3. eksen boyunca hareket ettirerek her bir motorun hızını değiştirmenizi sağlar ve Clawbot, projeyi durdurana veya Clawbot'u kapatana kadar buna göre yanıt verir.
# Kütüphane
vex'ten içe aktarır *
# Proje kodunu başlat
# Motorları kontrolör eksen konumlarına ayarlamak için Ana Kontrolör döngüsü
while True:
left_motor.set_velocity(controller_1.axis3.position(), PERCENT)
right_motor.set_velocity(controller_1.axis2.position(), PERCENT)
left_motor.spin(FORWARD)
right_motor.spin(FORWARD)
wait(5, MSEC)
Bir Slalom Kursuna git!
Öğretmen Araç Kutusu
-
Etkinliği Ayarlayın
Öğrencileri 2 veya 4 kişilik küçük gruplara ayırın. Öğrencilerden biri Sürücü olarak atanmalıdır; bu kişi, Pençebot'u manevra ettirmek için Kontrol Cihazını kullanacak kişidir.
Öğrencilerin Kontrolcüyü kullanarak Pençe Robotunu her bir "bayrağın" dış tarafı boyunca hareket ettirerek bu slalomu tamamlamalarını sağlayın. Pençebot'un yolu onun herhangi bir bayrağa dokunmasını engellemeli ve bitiş çizgisini geçmesine izin vermelidir. Bayraklar, elinizde bulunan herhangi bir sınıf malzemesi/nesnesi olabilir (silgi, bant rulosu, mendil kutusu) ve Clawbot'u çalıştırmadan önce yerlerine yerleştirilebilir.
Eğer zamanınız varsa, öğrencilerin rollerini değiştirmelerini sağlayarak başkalarına Clawbot'u kullanma fırsatı verin. Hatta bunu gruplar içinde veya gruplar arasında bir yarışmaya dönüştürerek, her sürücünün slalomda ne kadar hızlı gidebildiğini görebilirsiniz.
Slalomlar, katılımcının set bayrakları veya işaretleyicileri etrafında gezinmesi gereken kurslardır. Kayak slalomları popüler bir kış sporudur ve Kış Olimpiyatları'na dahildir.
Artık Kontrolcü eşleştirildiğine ve Python projesi indirildiğine göre, Kontrolcüyü kullanarak Clawbot'unuzu hareket ettirmeye hazırsınız!
- Slalomunuzda bayrak olarak kullanacağınız dört sınıf öğesini öğretmenden toplayın.
- Slalom diyagramına göre, Sürücünün Clawbot'ta gezinmesi için bayrakları yerleştirmek üzere işbirliği yapın.
- Tank Kontrol Örneği projesini indirin. Bir projenin nasıl indirileceği hakkında herhangi bir sorunuz varsa, Proje İndirme ve Çalıştırma eğitimine göz atın.
Clawbot'unu her "bayrağın" dışında hareket ettirmek için Denetleyiciyi kullan. Robotun yolu herhangi bir bayrağa dokunmasını engellemeli ve bitiş çizgisini geçmesine izin vermelidir.
- Projeyi çalıştırın ve Clawbot'u ileri ve geri sürün ve her iki Joystick'i kullanarak sola ve sağa dönün.
- Clawbot'un kursu tamamlaması için geçen süre. Zamanları mühendislik defterine kaydedin.
- Clawbot'u Slalom kursundan ne kadar hızlı geçirebilirsin?
Motive Edici Tartışma
-
Etkinlik Üzerine Düşünme
S: Pençebot Kontrolcüye beklediğiniz gibi tepki verdi mi?
A: Cevaplar değişiklik gösterebilir; ancak bu sorunun amacı bilişsel düşünmeyi teşvik etmektir. Öğrenciler davranışları test etmeden önce tahmin etmeye, sonuçlarını belgelemeye ve yansıtmaya başladılar.
S: Clawbot'u düz bir çizgide ileri veya geri hareket ettirmenin en büyük zorluğu nedir?
A: Cevaplar değişebilse de, genel bir yanıt, Clawbot'un motorlarının aynı yönde ve aynı hızda hareket etmesini sağlamak için her iki Joystick'in de birbirleriyle senkronize hareket etmesi gerektiğidir.
S: while True sonsuz döngü döngüsünü kullanmak, Clawbot'u hareket ettirmek için Kontrolcüyü sürekli olarak kullanmanızı nasıl sağlar?
A: while True sonsuz döngüsü olmadan, Clawbot projedeki talimatlar tarafından belirlenen davranışları yalnızca bir kez gerçekleştirir. while True sonsuz döngüsü Clawbot'a projenin süresi boyunca hızı sürekli güncellemesini ve çalışmasını söyler. Başka bir deyişle, while True sonsuz döngüsü, Kontrolcüyü kullanarak Pençebot'u süresiz olarak veya pil bitene kadar hareket ettirmenize olanak tanır.