Kontrolör: Tank Sürücüsü Keşfi - C++
Öğretmen Araç Kutusu
-
Bu Etkinliğin 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çinLeftMotor.setVelocity(), RightMotor.setVelocity(), LeftMotor.spin(), RightMotor.spin(), leftMotorSpeed = Controller1.Axis3.position(),verightMotorSpeed = Controller1.Axis2.position() talimatlarındaki parametreleri ayarlamaları.
Talimatların herhangi biri hakkında daha fazla bilgi için VEXcode V5'tekiC++bölümündeki yardımı ziyaret edin.
Öğrencilerin bu etkinlikte neler yapacakları aşağıda özetlenmiştir:
-
Tank Kontrol örnek projesini inceleyin.
-
while Truesonsuz 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 Bilgi Bankası'nda bulunanmakaledenpek çok faydalı makaleye eriş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 öğeleri |
Öğ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'te çalışırken,yardımcı olması için Otomatik Tamamlama özelliğini kullanmalarını teşvik edin. Otomatik Tamamlamamakalesinde Otomatik Tamamlama özelliğinin nasıl kullanılacağı anlatılmaktadır.

Bu etkinlik size Kontrolörünüzü programlamanız için araçlar verecektir.
Adım 1: Kontrolörü programlamaya başlayalım.
- Tank Controlörnek projesini açın.
-

Mühendislik defterinize aşağıdakileri yazın:
Bu projede Clawbot'un ne yapacağını tahmin edin. Projenin Kontrolcüyü kullanmasından daha fazlasını açıklayın.
Joystick'ler robotu nasıl hareket ettirir? Pençe Robot ne yapıyor?int main() { // Robot Yapılandırması Başlatılıyor. SÖKMEYİN! vexcodeInit(); // Proje kodunu başlat. // Ana Kontrolör döngüsü, motorları (true) {LeftMotor.setVelocity ( Controller1.Axis3.position (), percent); RightMotor.setVelocity (Controller1.Axis2.position (), percent); LeftMotor.spin (forward ); RightMotor.spin (forward ); wait(5, msn); } return 0; }
Öğ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.
- Tank Controlörnek projesini kaydedin, indirin ve çalıştırın (C++).
-
Yardım için VEX Kütüphanesi bölümlerine C++bakabilir veya VEXcode V5'te bir Projenin nasıl İndirilip Çalıştırılacağını açıklayan öğreticiye.

- 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.
While True sonsuz döngü yapısını kullanmanın faydaları nelerdir?
İşte while True sonsuz döngü yapısına sahip olmayan projemiz:
int main() {
// Robot Yapılandırması Başlatılıyor. SÖKMEYİN!
vexcodeInit();
// Proje kodunu başlat.
// Motorları kontrolör ekseni konumlarına ayarlamak için Ana Kontrolör
döngüsü LeftMotor.setVelocity (Controller1.Axis3.position (), percent);
RightMotor.setVelocity (Controller1.Axis2.position (), percent); LeftMotor.spin
(forward);
RightMotor.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ı Denetleyiciden 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.
3. Adım: Slalom Kursuna Gidin!
Öğretmen Araç Kutusu
-
Etkinliği Kurun
Öğ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ıkControllerile eşleştirildi veC++projesi indirildi, Controller'ı kullanarak Clawbot'unuzu taşımaya 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.
4. Adım: Robo - Slalom

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 Truesonsuz 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 Truesonsuz döngüsü olmadan, Clawbot projedeki talimatlar tarafından belirlenen davranışları yalnızca bir kez gerçekleştirir. while Truesonsuz 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 Truesonsuz döngüsü, Kontrolcüyü kullanarak Pençebot'u süresiz olarak veya pil bitene kadar hareket ettirmenize olanak tanır.