VEXcode V5'teki Özel Kontrol Cihazı Kodu

Denetleyiciyi kullanmak, bir görevi tamamlamak için robotunuzu sürmenizi ve hareket ettirmenizi kolaylaştırabilir. Ancak Drive programını kullanmanın sınırlamaları vardır ve robot yapınıza veya elinizdeki göreve bağlı olarak farklı kontroller isteyebilirsiniz. Denetleyiciyi kodlamak, Denetleyiciyi robotunuza ve elinizdeki göreve daha iyi uyacak şekilde optimize etmenize olanak tanır. VEXcode V5'te Kontrol Cihazını kodlamanın birkaç yolu vardır. Her birinin avantajları ve sınırlamaları vardır ve bazı yöntemler, istenen sonuca bağlı olarak belirli durumlar için daha uygundur.

Bu makale, VEXcode V5'te Kontrol Cihazını özel olarak kodlamak için üç farklı seçenek konusunda size yol gösterecektir. Her yöntem, avantajları, sınırlamaları ve yöntem seçerken size rehberlik edecek örnek bir kullanım durumuyla birlikte açıklanacaktır. Bu makalenin amaçları doğrultusunda, gösterilen tüm kod örnekleri Clawbot için oluşturulmuştur. Ancak aynı kavramlar builds.vex.comadresinde bulunan diğer birçok yapıya ve özel yapılara da uygulanabilir.

Seçenek 1: Aygıt Yapılandırmasında Düğmeleri Atama

Speedbot veya Clawbot gibi standart bir yapı kullanıyorsanız ve hızlı bir şekilde çalışmaya başlamak istiyorsanız bu seçenek harikadır.

Bu seçenek, Cihaz Yapılandırmasında Denetleyici üzerindeki düğmelere motorlar, aktarma organları veya motor grupları atamanıza olanak tanır. Aygıt Yapılandırmasında Denetleyiciye düğmelerin nasıl atanacağı hakkında daha fazla bilgi için bu makaleyi görüntüleyin.

Blok tabanlı kodlama eğitimlerinin anlaşılmasını kolaylaştırmak için görsel bir formatta çeşitli blok tiplerini ve bunların bağlantılarını gösteren, programlama için V5 bloklarını gösteren diyagram.

Seçenek 1'in Özeti: Aygıt Yapılandırmasında Düğmelerin Atama

Avantajları

Sınırlamalar

Örnek Durum

  • Kodlama gerektirmeden hızlı kurulum
  • En basit yöntem
  • Kolayca ayarlanabilir
  • Düğmelere ayrı ayrı motorlar, standart aktarma organları ve motor grupları atayabilirsiniz
  • Düğme atamaları Denetleyicideki düğmelerin sayısıyla sınırlıdır
  • Aktarma organları 4 motoru aşamaz veya özelleştirilemez (yalnızca standart bir sürücü desteklenir; H sürücüsü, holonomik veya diğer özel aktarma organları desteklenmez)
  • Speedbot, Clawbot gibi standart bir yapıyı veya bu standart yapıların basit bir modifikasyonunu değiştirmek. Örneğin ön kısmına hava girişi takılı bir motor grubu tarafından kontrol edilen bir Speedbot.
  • Robotta hangi düğmelerin farklı davranışlara karşılık geldiğini çok fazla kodlamaya gerek kalmadan hızlı bir şekilde değiştirmek

Seçenek 2: Sonsuz Döngü Kullanma

Standart bir yapı yerine özel bir yapı kullanıyorsanız veya Denetleyicinizde daha fazla özelleştirmeye sahip olmak istiyorsanız, bu seçenek iyi bir seçenektir. Sonsuza kadar döngü kullanmak, Denetleyiciniz için özel kod oluşturmaya harika bir giriştir.

Bu seçenek, Denetleyicinin ve ilgili düğmelerin tüm koşullarını bir Sonsuz döngüye yerleştirir. Bu, özellikle özel yapım tasarımlarda daha fazla esneklik sağlar ancak aynı zamanda biraz kodlama deneyimi gerektirir. Ancak bu seçeneği kullanırken dikkat edilmesi gereken noktalardan biri projenizin uzunluğu ve karmaşıklığıdır. Ne kadar çok koşul eklenirse kod yığını o kadar uzun olabilir. Bu, birden fazla bloğun sırayla yürütülmesi gerektiği anlamına gelir ve çok fazla blok olduğunda bu, projenin yürütülmesini yavaşlatabilir. Projenin daha yavaş yürütülmesi, Denetleyici düğmelerine basılması ile robot davranışının görülmesi arasında bir gecikme yaratabilir.

Aşağıda gösterilen özel örnek, robotu yönlendirmek ve nesnelerle etkileşime geçmek amacıyla pençeyi ve kolu manipüle etmek için Forever döngüsünü özel tasarımlı bir robotla (özel aktarma organına sahip bir robot gibi) kullanmanın bir yoludur.

VEX robotik programlamanın daha iyi anlaşılması için çeşitli blok tiplerini ve bunların bağlantılarını açık ve düzenli bir düzende gösteren V5 blok eğitimlerini gösteren diyagram.

"Seçenek 2" VEXcode V5 proje dosyasını indirin >

Seçenek 2 Kodunun Açıklaması.

Kod Parçası

Açıklama

Eğitim amaçlı çeşitli blok tiplerini ve bağlantıları gösteren, V5 blok bileşenlerini ve işlevlerini öğretici formatta gösteren diyagram.

Bu kod örneği için bir Clawbot kullanıldı. Kolu kaldırmak ve indirmek için Kumanda üzerindeki düğmeler kullanıldığında, düğme bırakılır bırakılmaz yer çekimi nedeniyle kol tekrar aşağıya düşecektir. Hem kolu hem de tırnağı "tut" konumuna ayarlamak, Denetleyicideki düğmeler serbest bırakıldıktan sonra bile hem kolun hem de tırnağın yerinde kalmasını sağlayacaktır.

VEX Bilgi Tabanı'nın Blok Eğitimleri bölümünde kullanılan, V5 blok bileşenlerini ve bunların işlevlerini gösteren diyagram, eğitim amaçlı çeşitli blok tiplerini ve bunların bağlantılarını göstermektedir. VEX robotiğinde blok programlamayı anlamak için kullanılan, etiketli bileşenler ve bağlantılara sahip V5 bloklarını gösteren diyagram.

Bu kod örneği için bir Clawbot kullanıldı. Kolu kaldırmak ve indirmek için Kumanda üzerindeki düğmeler kullanıldığında, düğme bırakılır bırakılmaz yer çekimi nedeniyle kol tekrar aşağıya düşecektir. Hem kolu hem de tırnağı "tut" konumuna ayarlamak, Denetleyicideki düğmeler serbest bırakıldıktan sonra bile hem kolun hem de tırnağın yerinde kalmasını sağlayacaktır.

Denetleyicide hangi düğmelere basıldığını sürekli olarak kontrol etmek için bir Sonsuz döngü kullanılır.

[Motor hızını ayarla] blokları, motor hızını 2 ve 3 eksen boyunca geçerli Kontrolörün konumuna ayarlamak için kullanılır. Bu, bir arabayı sürüşe geçirmeye eşdeğerdir. Bu mutlaka arabayı hareket ettirmez, sadece ayarlar.

Her joystick ekseni -100 ila +100 arasında bir değer döndürür ve ortalandığında sıfır değeri döndürür. Bu, kumanda kolu eksenlerinin itildiğinde -%100 ila %100'e eşit olduğu anlamına gelir. Eksenler 100 veya -100'e doğru ne kadar ileri itilirse motor o kadar hızlı dönecektir.

Daha sonra [Spin] bloğu motoru gerçekten hareket ettirmek için kullanılır. Bu, yön belirlendikten sonra arabanın üzerine gaz basmaya eşdeğerdir. Bu, her motorun dört Kontrolör ekseninden biri tarafından kontrol edilmesine olanak tanır.

Programlama dersleri için V5 bloklarını gösteren diyagram, çeşitli blok tiplerini ve bunların bağlantılarını göstererek, eğitim ortamlarında kodlama kavramlarının daha iyi anlaşılmasını sağlamak için tasarlanmıştır.

Bu kod örneği için bir Clawbot kullanıldı. Kolu kaldırmak ve indirmek için Kumanda üzerindeki düğmeler kullanıldığında, düğme bırakılır bırakılmaz yer çekimi nedeniyle kol tekrar aşağıya düşecektir. Hem kolu hem de tırnağı "tut" konumuna ayarlamak, Denetleyicideki düğmeler serbest bırakıldıktan sonra bile hem kolun hem de tırnağın yerinde kalmasını sağlayacaktır.

[If Then else If Then else] bloğu, belirli davranışları Denetleyicide basılan veya bırakılan düğmelere eşlemek için kullanılır. Kodun bu bölümünde, Yukarı veya Aşağı düğmelerine basıldığında ayarlanan koşullar ayarlanır. Eğer öyleyse, kolun kaldırılması ve indirilmesi gibi belirli davranışlar meydana gelecektir. Durumun başka bir kısmı da var, eğer hiçbir düğmeye basılmazsa kol hareket etmeyi durduracak şekilde ayarlanır.

Pençe projesindeki aşağıdaki kod bölümünün aynı açıklamayı takip ettiğini unutmayın.

Seçenek 2'nin Özeti: Sonsuz Döngü Kullanımı

Avantajları

Sınırlamalar

Örnek Durum

  • Özel yapılara, özellikle de 4'ten fazla motora sahip aktarma organlarına uyum sağlayabilir
  • Tek bir düğmeye birden fazla davranış atayabilir
  • Davranışları Denetleyicideki farklı eksenlere atayabilir (Cihaz Yapılandırmasındaki yalnızca Sol Arcade, Sağ Arcade, Bölünmüş Arcade ve Tank Drive seçeneklerinin aksine)
  • Bir miktar kodlama bilgisi gerektirir (koşullar, döngüler ve Denetleyicideki düğmeler/kumanda çubukları bilgisi)
  • Projenin daha yavaş yürütülmesi veya düğme yanıt süresinde gecikme olasılığı. Tüm komutlar tek bir Forever döngüsünde bulunduğundan, kod yürütme, belirlenen koşullara ve kodun uzunluğuna bağlı olarak yavaş çalışabilir.
  • Denetleyiciyi özel yapım bir robotla, özellikle standart dışı bir aktarma organıyla kullanma
  • Tek bir düğmeye birden fazla davranış atamak istediğinizde. Örneğin, Yukarı Düğmesine basıldığında Pençe açılabilir, ileri doğru hareket edebilir ve ardından bir nesnenin etrafını kapatabilir.

Seçenek 3: Olayları Kullanma

Denetleyicinizde çok fazla özelleştirme istiyorsanız, Etkinlikleri Kullanmak sizin için en iyi seçenektir. Bir düğmeye basılması, pençeyi açmak, kolu kaldırmak ve belirli bir mesafe boyunca ileri gitmek için bir düğmeye basmak gibi birden fazla robot davranışını tetikleyebilir. Bir Forever döngüsü içinde düğme başına birden çok davranışı kodlamaya çalışmak, projenin yürütülmesinin önemli ölçüde yavaşlamasına neden olur; Events'i kullanmak bunu daha etkili bir şekilde yapmanıza olanak tanır.

Bu seçenek, proje akışını bölmek için Etkinlikler'i kullanır. Bu, Forever döngüsünü kullanmaya benzer, ancak kodun daha organize olmasına olanak tanır, böylece düğmenin yürütülmesi daha hızlı yanıt süresine sahip olur. Daha hızlı tepki süresi, Denetleyici düğmelerine basma ile robot davranışını görme arasında bir gecikme görmeyeceğiniz anlamına gelir. Bu örnek, önceki projeyle aynı davranışları gösterir ancak Sonsuza Kadar Döngü yerine Etkinlikler kullanılarak yapılır.

Eğitimlerde kullanılan V5 bloklarının çeşitli blok tiplerini ve bunların bağlantılarını gösteren, VEX V5 robotik ile nasıl inşa edileceğini ve programlanacağını gösteren bir çizim.

"Seçenek 3" VEXcode V5 proje dosyasını indirin >

Seçenek 3 Kodunun Açıklaması.

Kod Parçası

Açıklama

Robotik eğitimlerinde kullanılan çeşitli V5 bloklarını gösteren, eğitim amaçlı işlevlerini ve bağlantılarını gösteren diyagram.

Bu kod örneği için bir Clawbot kullanıldı. Kolu kaldırmak ve indirmek için Kumanda üzerindeki düğmeler kullanıldığında, düğme bırakılır bırakılmaz yer çekimi nedeniyle kol tekrar aşağıya düşecektir. Hem kolu hem de tırnağı "tut" konumuna ayarlamak, Denetleyicideki düğmeler serbest bırakıldıktan sonra bile hem kolun hem de tırnağın yerinde kalmasını sağlayacaktır.

Bir robotik eğitiminde V5 bloklarını gösteren, çeşitli blok tiplerini ve programlama görevleri için bağlantılarını gösteren diyagram. VEX robotiğinde blok programlamayı anlamak için kullanılan, etiketli bileşenler ve bağlantılara sahip V5 bloklarını gösteren diyagram.

Bu kod örneği için bir Clawbot kullanıldı. Kolu kaldırmak ve indirmek için Kumanda üzerindeki düğmeler kullanıldığında, düğme bırakılır bırakılmaz yer çekimi nedeniyle kol tekrar aşağıya düşecektir. Hem kolu hem de tırnağı "tut" konumuna ayarlamak, Denetleyicideki düğmeler serbest bırakıldıktan sonra bile hem kolun hem de tırnağın yerinde kalmasını sağlayacaktır.

{When controller axis} Olay blokları, Kumanda üzerindeki dört eksenden biri kumanda kolları kullanılarak değiştirildiğinde belirli davranışları tetiklemek için kullanılır.

[Motor hızını ayarla] blokları, motor hızını A ve D eksenleri boyunca geçerli Kontrolörün konumuna ayarlamak için kullanılır. Bu, bir arabayı sürüşe geçirmeye eşdeğerdir. Bu mutlaka arabayı hareket ettirmez, sadece ayarlar.

Her joystick ekseni -100 ila +100 arasında bir değer döndürür ve ortalandığında sıfır değeri döndürür. Bu, kumanda kolu eksenlerinin itildiğinde -%100 ila %100'e eşit olduğu anlamına gelir. Eksenler 100 veya -100'e doğru ne kadar ileri itilirse motor o kadar hızlı dönecektir.

Daha sonra [Spin] bloğu motoru gerçekten hareket ettirmek için kullanılır. Bu, yön belirlendikten sonra arabanın üzerine gaz basmaya eşdeğerdir. Bu, her motorun dört Kontrolör ekseninden biri tarafından kontrol edilmesine olanak tanır.

VEX Robotics sistemindeki çeşitli blok tiplerini ve işlevlerini gösteren, programlama eğitimlerinde kullanılan V5 bloklarını gösteren diyagram.

Bu kod örneği için bir Clawbot kullanıldı. Kolu kaldırmak ve indirmek için Kumanda üzerindeki düğmeler kullanıldığında, düğme bırakılır bırakılmaz yer çekimi nedeniyle kol tekrar aşağıya düşecektir. Hem kolu hem de tırnağı "tut" konumuna ayarlamak, Denetleyicideki düğmeler serbest bırakıldıktan sonra bile hem kolun hem de tırnağın yerinde kalmasını sağlayacaktır.

{When controller axis} Olay blokları, belirli davranışları Denetleyicide basılan veya bırakılan düğmelere eşlemek için kullanılır. Kodun bu bölümünde, Yukarı veya Aşağı düğmelerine basıldığında ayarlanan koşullar ayarlanır. Eğer öyleyse, kolun kaldırılması, indirilmesi veya durması gibi belirli davranışlar meydana gelecektir.

Pençe projesindeki kodun son bölümünün aynı açıklamayı takip ettiğini unutmayın.

Seçenek 3'ün Özeti: Olayları Kullanma

Avantajları

Sınırlamalar

Örnek Durum

  • Özel yapılara, özellikle de 4'ten fazla motora sahip aktarma organlarına uyum sağlayabilir
  • Tek bir düğmeye birden fazla davranış atayabilir
  • Davranışları Denetleyicideki farklı eksenlere atayabilir (Cihaz Yapılandırmasındaki yalnızca Sol Arcade, Sağ Arcade, Bölünmüş Arcade ve Tank Drive seçeneklerinin aksine)
  • Daha hızlı kod yürütme ve dolayısıyla düğme duyarlılığı (her koşul ayrı ayrı çağrıldığından ve tek bir kod yığınına gömülmediğinden)
  • Seçeneklere ilişkin en fazla kodlama bilgisini gerektirir (koşullar, döngüler, olaylar ve Denetleyicideki düğmeler/kumanda çubukları bilgisi)
  • Denetleyiciyi özel yapım bir robotla, özellikle standart dışı bir aktarma organıyla kullanma
  • Tek bir düğmeye gecikme olmadan birden fazla davranış atamak istediğinizde. Örneğin, Yukarı Düğmesine basıldığında Pençe açılabilir, ileri doğru hareket edebilir ve ardından bir nesnenin etrafını kapatabilir.

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: