Öğretmen Araç Kutusu
- Bu Etkinliğin Amacı
Bu etkinlik, ekrana basılmadıkça robotun ilerlemesini sağlamak için while ve if ifadelerini öğrencilere tanıtacaktır.
-
Bu etkinlik, ekrana basılmadığı sürece öğrencilere koşulları ve robotun ileriye doğru hareket etmesini sağlayan talimatları tanıtacaktır.
-
Eğer öyleyse ve eğer öyleyse ifadeleri veya bu etkinlikte kullanılan diğer ifadeler hakkında daha fazla bilgi için VEXcode V5 'teki yardım bilgilerini ziyaret edin. Bu yerleşik yardım aracı hakkında daha fazla bilgi için C++' daki yardımla ilgili bu makalelere göz atın .
Öğretmen Araç Kutusu
Bu bölüm için öğretim stratejileri hakkında öneriler için, Yapılması veya Yapılmaması Gerekenler Kılavuzunun Teslimat sütununu inceleyin! (Google Doc /.docx /.pdf)
Clawbot karar vermeye hazır!
Bu keşif, if else ifadesini kullanan bazı harika projeler oluşturmaya başlayabilmeniz için size araçlar verecektir.
- Bu keşifte kullanılacak VEXcode V5 C++ komutları:
- Drivetrain.drive(ileri);
- Brain.Screen.pressing()
- Drivetrain.stop();
- if (condition){}
- waitUntil();
- while (condition){}
- wait(1, seconds);
C++ talimatları hakkında bilgi edinmek için VEXcode V5 'in içindeki Yardım bilgilerini kullanabilirsiniz.
Gerekli donanıma, mühendislik defterinize ve VEXcode V5 'e sahip olduğunuzdan emin olun.
| 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ı
Öğrencinin VEXcode V5 'i ilk kez kullanması durumunda, bu keşif sırasında herhangi bir zamanda Öğreticilere başvurabilirler. Öğreticiler araç çubuğunda bulunur.

1. Adım: Koşullu ifadelerin anlaşılmasıyla başlayalım
Koşullarla programlamaya başlamadan önce, If Then Else İfadelerini açıklayan VEX Kitaplığı Makalesini okuyun. Makaleye buradan ulaşabilirsiniz.
If Then Else ifadelerinde kullanılacak operatörlerin bir listesi için Boolean'ları açıklayan VEX Library Makalesini okuyun. Bu makaleye buradan ulaşabilirsiniz.
Adım 2: Koşullu ifadelerle programlamaya başlayalım.
-
Clawbot (Drivetrain 2 - motor, No Gyro) şablon örnek projesini açın.

- Projeyi aşağıda oluşturun.
// Proje kodu
int main() başlatılıyor {//
Robot Yapılandırması başlatılıyor. SÖKMEYİN!
vexcodeInit ();
while (true
){ Drivetrain.drive (forward);
if (
Brain.Screen.pressing ()){ Drivetrain.stop ();
waitUntil ()!
Brain.Screen.pressing
();}}} 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.
- Projeyi CreateAStopButton olarak Clawbot'taki Slot 1 'e kaydedin ve indirin, ardından çalıştırın.
- Bir projeyi indirme konusunda yardım için VEXcode V5 'te yer alan ve bir Projeyi İndirme ve Çalıştırma (C++) adımlarını açıklayan öğreticiyebakın.
- Projeyle ilgili açıklamalarınızı kontrol edin ve gerektiğinde düzeltmek için notlar ekleyin.
Öğretmen Araç Kutusu
-
Cevaplar
Bu projede robot sürekli ileri gider ancak ekrana basılırsa durur. Bunu, sürekli olarak araç sürmek ve kontrol etmek için bir sürekli ifadesi kullanarak yapar. Ekrana basılıyorsa (TRUE), Clawbot sürüşü durdurur.
Öğrencilerin waitUntil () yönergesinin neden kullanıldığını anlamaları beklenmez. Robotun program akışının hızı nedeniyle waitUntil () talimatının gerekli olduğunu açıklayın. Orada olmasaydı, Clawbot'un motorları, kullanıcı projede döngü yaparken ekrana tekrar tekrar basıyormuş gibi davranırdı. Bunun yerine , waitUntil () komutu program akışını durdurur ve kullanıcı ekrana basmayı durdurana kadar projenin sürekli döngüyü tekrar başlatmasını sağlamaz.
Sahte kod satırı şu kadar basit olabilir: Ekrana basılana kadar ileri sürün.
Öğrencilerin mühendislik defterleri ayrı ayrı (Google Doc /.docx /.pdf ) veya takım olarak (Google Doc /.docx /.pdf ) tutulabilir ve puanlanabilir. Önceki bağlantılar, her yaklaşım için farklı bir performans değerlendirme ölçeği sağlar. Bir DPA eğitim planlamasına dahil edildiğinde, DPA'yı açıklamak veya en azından etkinlik başlamadan önce öğrencilere kopyalarını vermek iyi bir uygulamadır.
Adım 3: Wait until() ifadesini anlama.
Beynin ekranına basılırsa, projenin akışının hızlı bir şekilde hareket edeceğine ve projenin bir sonraki talimat olan Drivetrain.stop () talimatına geçeceğine dikkat edin .
Bu nedenle, projenin Beyin ekranı serbest bırakılana kadar robotun durmasını söyleyen bir waitUntil () talimatına ihtiyacı vardır. Aksi takdirde, sonsuz ifadesi projenin yeniden başlamasına neden olur.
waitUntil(! Brain.Screen.pressing ());WaitUntil() talimatı, projenin akış hızı nedeniyle gereklidir. Orada olmasaydı, robotun yanıt verecek zamanı olmadan önce proje bir sonraki talimata geçecekti.
4. Adım: Projeyi değiştirin.
Bir sonraki adımımız if then ifadesini if then ifadesine değiştirmektir.
- CreatingAStopButton'ı yeni proje olan StopOrDrive olarak kaydederek başlayın.
- Bir projeyi kaydetmek için yardıma ihtiyacınız varsa, C++ için buraya tıklayın.
- Ardından aşağıda gösterilen StopOrDrive projesini oluşturun.
// Proje kodu
int main() başlatılıyor {//
Robot Yapılandırması başlatılıyor. SÖKMEYİN!
vexcodeInit ();
while (true ){
Drivetrain.drive (forward);
if (Brain.Screen.pressing
()){ Drivetrain.stop ();
waitUntil ()! Brain.Screen.pressing ();
}
else {
Drivetrain.drive(forward);
}}} - StopOrDrive'ı Clawbot'unuzdaki Yuva 2 'ye indirin.
- Bir projeyi indirme konusunda yardım için VEXcode V5 'te yer alan ve bir Projeyi İndirme ve Çalıştırma (C++) adımlarını açıklayan öğreticiyebakın.
- CreatingAStopButton'ı (Slot 1) test edin ve ardından StopOrDrive'ı (Slot 2) test edin ve robotun davranışında herhangi bir fark olup olmadığını görmek için bunları karşılaştırın. Mühendislik defterinizdeki farklılıkları not edin
Öğretmen Araç Kutusu
-
Cevap
Robotun davranışı ile ilgili olarak, CreatingAStopButton ve StopOrDrive projeleri arasında bir fark olmamalıdır.
Öğrencilerin If - Else İfadelerini anlama konusunda daha fazla yardıma ihtiyacı varsa, buraya tıklayın.
İki proje de Clawbot'un aynı şekilde davranmasını sağlıyor. Tek fark, StopOrDrive projesinde if then else ifadesinin kullanılmasıdır.
If then else ifadesini kullanmak, yaklaşan etkinliklerde ekrana ek düğmeler eklemenizi sağlar.
Öğ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ştireceklerdir. Buna hazırlanırken, öğrencileri ekranda bir düğme gibi işlev gören renkli bir dikdörtgenin nasıl çizileceğini anlamaya zorlayın. Ekranda herhangi bir yere basmak şu anda durum olduğundan, düğme tüm ekranı kaplamalıdır. Öğrenciler, başladığında düğmeyi çizmek için projenin bir etkinlik yayınlamasını sağlamalıdır. Öğrencileri önce beynin ekranının bir koordinat sisteminde nasıl düzenlendiğini öğrenmeye
yönlendirin. Kullanacakları talimatlar dahilinde parametreleri ayarlamak 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 şöyledir:

Öğrenciler, mühendislik defterlerinde belgelendirirken projedeki bu değişiklikleri planlamalı, test etmeli ve iyileştirmelidir. Bireysel mühendislik not defteri performans değerlendirme ölçeği için, aşağıdaki bağlantılardan birine tıklayın ( Google Doc /.docx /.pdf) veya ekip not defterleri için aşağıdaki bağlantılardan birine tıklayın ( Google Doc /.docx /.pdf).
İşte örnek bir çözüm:
// Begin project code
event draw = event ();
void drawButton (){ Brain.Screen.setFillColor
(red); Brain.Screen.drawRectangle
(0, 0, 480, 240);
wait(1, seconds);
}
int main
(){// Initializing Robot Configuration. SÖKMEYİN!
vexcodeInit ();
draw(drawButton);
while (true)
{draw.broadcast
(); Drivetrain.drive (forward);
if (Brain.Screen.pressing ())
{waitUntil ()! Brain.Screen.pressing ();
}
else {
Drivetrain.drive(forward);
}}} Gördüğünüz gibi, düğme (0, 0) orijininden başlayarak 480 yatay (x ekseni) pikselin ve 240 dikey (y ekseni) pikselin tamamını dolduracak şekilde çizilmiştir.