Robotlara Özel Python#
giriiş#
Hero Bot Flex, bir Pençe Motoru, bir Kol Motoru, bir Yapay Zeka Görüş Sensörü, bir Mesafe Sensörü ve bir Oyun Konumlandırma Sistemi (GPS) Sensörü içerir.
Tüm standart VEXcode VR yöntemleri V5 26-27 Override Playground’da kullanılabilir.
Aşağıda, robotlara özel olarak geliştirilmiş tüm yöntemlerin listesi bulunmaktadır:
Tahrik Sistemi – Robotu hareket ettirin ve döndürün.
İşlemler
drive— Robotu sonsuza dek ileri veya geri hareket ettirir.drive_for— Robotu belirli bir mesafe boyunca ileri veya geri hareket ettirir.turn— Robotu sonsuza dek sola veya sağa döndürür.turn_for— Robotu belirli sayıda derece sola veya sağa döndürür.turn_to_heading— Robotu -359 ile 359 derece arasında belirli bir yöne doğru çevirir.turn_to_rotation— Robotu belirli bir dönüşe döndürür.stop— Robotun hareketini durdurur.
Değiştiriciler
set_heading— Robotun mevcut yönünü yeni bir yöne değiştirir.set_rotation— Robotun mevcut dönüşünü yeni bir dönüşe değiştirir.set_timeout— Robotun bir hareketi bitirmek için ne kadar süre deneyeceğini ayarlar.set_drive_velocity— Robota ne kadar hızlı süreceğini söyler.set_turn_velocity— Robota ne kadar hızlı döneceğini söyler.
Alıcılar
heading— Robotun mevcut yönünü 0 ile 359,99 derece arasında döndürür.rotation— Robotun mevcut dönüşünü döndürür.is_done— Robotun hareketinin tamamlanıp tamamlanmadığını Boolean değer olarak döndürür.is_moving— Robotun hareket edip etmediğini Boolean değer olarak döndürür.velocity— Robotun ne kadar hızlı sürdüğünü döndürür.
Hareket – Robotun motorlarını hareket ettirin ve takip edin.
İşlemler
spin— Bir motoru sonsuza dek ileri veya geri döndürür.spin_for— Bir motoru belirli bir mesafe boyunca döndürür.spin_to_position— Bir motoru belirli bir konuma döndürür.stop— Bir motorun dönmesini durdurur.
Değiştiriciler
set_position— Motorun mevcut konumunu yeni bir değere değiştirir.set_velocity— Bir motora ne kadar hızlı döneceğini söyler.set_timeout— Bir motorun bir hareketi tamamlamaya çalışacağı süreyi ayarlar.
Alıcılar
is_done— Motorun hareketinin tamamlanıp tamamlanmadığını Boolean değer olarak döndürür.is_spinning— Motorun dönüp dönmediğini Boolean değer olarak döndürür.position— Motorun mevcut konumunu döndürür.velocity— Motorun ne kadar hızlı döndüğünü döndürür.
Yapay Zeka Görüntüleme – Yapay Zeka Görüntüleme Sensörünü kullanarak nesneleri yakalayın ve analiz edin.
Alıcılar
take_snapshot– Belirli bir imza için tespit edilen nesnelerin bir demetini döndürür.
Özellikler
.width– Algılanan nesnenin piksel cinsinden genişliği..height– Tespit edilen nesnenin piksel cinsinden yüksekliği..centerX– Nesnenin merkezinin piksel cinsinden X konumu..centerY– Nesnenin merkezinin piksel cinsinden Y konumu..originX– Nesnenin sol üst köşesinin piksel cinsinden X konumu..originY– Nesnenin sol üst köşesinin piksel cinsinden Y konumu..id– Tespit edilen nesnenin sınıflandırma kimliği.
Konsol – Konsola yazdırın ve değerleri izleyin.
Yazdır
brain.screen.print— Konsolda metin, sayı veya değişken değerleri görüntüler.brain.screen.next_row— Konsol imlecini bir sonraki satırın başına taşır.brain.screen.clear_screen— Konsoldaki tüm satırları temizler.
Monitör
monitor_variable— İzleme sekmesine bir veya daha fazla önceden tanımlanmış değişken ekler.monitor_sensor— İzleme sekmesine bir veya daha fazla sensör değeri ekler.
Algılama – Robotun çeşitli sensörlerini kullanın.
Mesafe
found_object– Mesafe Sensörünün menzil içinde bir nesne algılayıp algılamadığını döndürür.object_distance– Mesafe Sensörü ile en yakın tespit edilen nesne arasındaki mesafeyi döndürür.
KÜRESEL KONUMLAMA SİSTEMİ
x_position– Sahadaki GPS Sensörünün mevcut x koordinatını döndürür.y_position– Sahadaki GPS Sensörünün mevcut y koordinatını döndürür.heading– GPS Sensörüne göre robotun şu anda baktığı yönü döndürür.
Bu sayfadaki örnekler, Oyun Alanı Maç Öncesi Kontrol Listesi’ndeki Başlangıç Konumu C’yi kullanmaktadır.
Aktarma organları#
Tahrik sistemi, VR Robotunun nasıl hareket edeceğini ve döneceğini kontrol eder. Tahrik sistemi ileri veya geri hareket edebilir, sola veya sağa dönebilir, belirli bir yöne dönebilir ve kendi dönüşünü takip edebilir.
Eylemler#
sürmek#
drive robotu sonsuza dek ileri veya geri hareket ettirir. Robot, dönme veya durma gibi başka bir işlem verilene kadar hareket etmeye devam edecektir.
Usage:
drivetrain.drive(direction)
Parametreler |
Tanım |
|---|---|
|
Robotun hareket yönü: |
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive(FORWARD)
wait(0.5, SECONDS)
drivetrain.stop()
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
sürüş_için#
drive_for komutu, robotu belirli bir mesafe boyunca ileri veya geri hareket ettirir. Proje, bir sonraki kod satırı çalışmadan önce robotun hareketini tamamlamasını bekleyecektir.
Usage:
drivetrain.drive_for(direction, distance, units, wait)
Parametreler |
Tanım |
|---|---|
|
Robotun hareket yönü: |
|
Robotun kat ettiği mesafe. Bu, |
|
İsteğe bağlı. Mesafe birimi: |
|
İsteğe bağlı. |
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
dönüş#
turn robotu sonsuza dek sola veya sağa döndürür. Robot, sürüş veya durma gibi başka bir işlem verilene kadar dönmeye devam edecektir.
Usage:
drivetrain.turn(direction)
Parametreler |
Tanım |
|---|---|
|
Robotun dönüş yönü: |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn(LEFT)
wait(0.78, SECONDS)
drivetrain.stop()
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
sıra_için#
turn_for komutu, robotu belirli bir derece kadar sola veya sağa döndürür. Dönüş, robotun mevcut konumuna göre belirlenir. Proje, bir sonraki kod satırı çalışmadan önce robotun dönüşünün tamamlanmasını bekleyecektir.
Usage:
drivetrain.turn_for(direction, angle, units, wait)
Parametreler |
Tanım |
|---|---|
|
Robotun dönüş yönü: |
|
Robotun döndüğü derece sayısı. Bu |
|
İsteğe bağlı. Açı birimi: |
|
İsteğe bağlı. |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_for(LEFT, 110, DEGREES)
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
başlığa dön#
Yön, robotun baktığı yönü derece cinsinden ifade eder. turn_to_heading komutu, robotu -359 ile 359 derece arasında belirli bir yöne çevirir. Robot, hedef yöne ulaşmak için en kısa yöne dönecektir.
Başlangıç yönü 0 derecedir.
Usage:
drivetrain.turn_to_heading(heading, units, wait)
Parametreler |
Tanım |
|---|---|
|
Robotun bakması gereken yön, -359 ile 359 derece arasındadır. |
|
İsteğe bağlı. Açı birimi: |
|
İsteğe bağlı. |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_to_heading(-110, DEGREES)
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
döndürmeye dön#
turn_to_rotation robotu belirli bir dönüşe döndürür.
Dönme, robotun ne kadar döndüğünü derece cinsinden ölçer. Bir projenin başlangıcında, dönme değeri 0 dereceye ayarlanır. Sağa dönmek dönmeyi artırır, sola dönmek ise dönmeyi azaltır.
Örneğin, robot 0 dereceden başlayıp 720 derece dönerse, iki kez sağa dönecektir. Ardından 360 derece dönerse, 360, 720’den küçük olduğu için bir kez sola dönecektir.
Usage:
drivetrain.turn_to_rotation(rotation, units, wait)
Parametreler |
Tanım |
|---|---|
|
Robotun döneceği dönüş açısı (derece cinsinden). Bu, |
|
İsteğe bağlı. Açı birimi: |
|
İsteğe bağlı. |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_to_rotation(-110, DEGREES)
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
durmak#
stop robotun hareketini durdurur.
Usage:
drivetrain.stop()
Parametreler |
Tanım |
|---|---|
Bu yöntemin parametresi yoktur. |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn(LEFT)
wait(0.78, SECONDS)
drivetrain.stop()
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
Mutatörler#
başlık belirle#
Yön, robotun baktığı yönü derece cinsinden ifade eder. set_heading komutu, robotun mevcut yönünü yeni bir yön değerine değiştirir.
Örneğin, robot sağa doğru dönmüşse, yönü 0 dereceye ayarlamak, sağa dönük bu pozisyonu yeni 0 derece yapar. Ardından robot, bu yeni yöne göre diğer pozisyonlara dönebilir.
Usage:
drivetrain.set_heading(heading, units)
Parametreler |
Tanım |
|---|---|
|
Robot için ayarlanacak yön değeri (derece cinsinden). |
|
İsteğe bağlı. Açı birimi: |
def main():
# Make facing the Neutral Goal the new heading
drivetrain.set_heading(110, DEGREES)
drivetrain.turn_to_heading(0, DEGREES)
# VR threads — Do not delete
vr_thread(main)
döndürmeyi ayarla#
Dönme, robotun ne kadar döndüğünü derece cinsinden ölçer. set_rotation komutu, robotun mevcut dönme değerini yeni bir değere değiştirir.
Usage:
drivetrain.set_rotation(rotation, units)
Parametreler |
Tanım |
|---|---|
|
Robot için ayarlanacak dönüş değeri, derece cinsinden. Bu, |
|
İsteğe bağlı. Açı birimi: |
def main():
# Make facing the Neutral Goal the new rotation
drivetrain.set_rotation(110, DEGREES)
drivetrain.turn_to_rotation(0, DEGREES)
# VR threads — Do not delete
vr_thread(main)
zaman aşımını ayarla#
set_timeout , robotun bir hareketi tamamlamak için kaç saniye deneyeceğini belirler. Robot bu süre içinde hareketi tamamlayamazsa, denemeyi bırakır ve bir sonraki kod satırına geçer. Bu, robotun bir harekette takılıp kalmasını önler.
Usage:
drivetrain.set_timeout(time, units)
Parametreler |
Tanım |
|---|---|
|
Robotun bir hareketi tamamlamaya çalışabileceği saniye sayısı. Bu, pozitif bir tamsayı |
|
İsteğe bağlı. Zaman birimi: |
def main():
# Turn to face the Neutral Goal
drivetrain.set_timeout(0.8, SECONDS)
drivetrain.turn_for(LEFT, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
sürüş hızını ayarla#
set_drive_velocity komutu robota ne kadar hızlı gideceğini söyler. Daha yüksek bir yüzde robotun daha hızlı, daha düşük bir yüzde ise daha yavaş gitmesini sağlar.
Her proje, robotun varsayılan olarak %50 hızda hareket etmesiyle başlar.
Not: Daha yüksek hız, robotun daha hızlı hareket etmesini sağlar, ancak hassasiyeti azalabilir. Daha düşük hız ise robotun daha yavaş hareket etmesini sağlar, ancak hassasiyeti artabilir.
Usage:
drivetrain.set_drive_velocity(velocity, units)
Parametreler |
Tanım |
|---|---|
|
Sürüş hızı %0 ile %100 arasında değişir. Bu değer |
|
İsteğe bağlı. Hız birimi: |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_for(LEFT, 110, DEGREES)
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.set_drive_velocity(100, PERCENT)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
dönüş hızını ayarla#
set_turn_velocity komutu robota ne kadar hızlı döneceğini söyler. Daha yüksek bir yüzde robotun daha hızlı dönmesini, daha düşük bir yüzde ise robotun daha yavaş dönmesini sağlar.
Her proje, robotun varsayılan olarak %50 hızda dönmesiyle başlar.
Not: Daha yüksek hız, robotun daha hızlı dönmesini sağlar, ancak hassasiyeti azalabilir. Daha düşük hız ise robotun daha yavaş dönmesini sağlar, ancak hassasiyeti artabilir.
Usage:
drivetrain.set_turn_velocity(velocity, units)
Parametreler |
Tanım |
|---|---|
|
The velocity to turn with from 0% to 100%. This can be an |
|
İsteğe bağlı. Hız birimi: |
def main():
# Turn to face the Neutral Goal faster
drivetrain.set_turn_velocity(100, PERCENT)
drivetrain.turn_for(LEFT, 110, DEGREES)
# VR threads — Do not delete
vr_thread(main)
Getters#
başlık#
Yön, robotun baktığı yönü derece cinsinden ifade eder. heading komutu, robotun mevcut yönünü 0 ile 359,99 derece arasında döndürür.
Robotun başlangıç yönü 0 derecedir.
Usage:
drivetrain.heading(units)
Parametreler |
Tanım |
|---|---|
|
İsteğe bağlı. Yön birimi: |
def main():
# Turn to the Goal, then show heading
drivetrain.turn_for(LEFT, 110, DEGREES)
brain.screen.print("Heading: ")
brain.screen.print(drivetrain.heading(DEGREES))
# VR threads — Do not delete
vr_thread(main)
rotasyon#
Dönme, robotun ne kadar döndüğünü derece cinsinden ölçer. Bir projenin başlangıcında, dönme değeri 0 dereceye ayarlanır. rotation komutu robotun mevcut dönme değerini döndürür.
Sağa dönmek dönüş açısını artırır, sola dönmek ise azaltır. Örneğin, sağa iki tam tur dönmek 720 derecelik bir dönüş sağlar.
Usage:
drivetrain.rotation(units)
Parametreler |
Tanım |
|---|---|
|
İsteğe bağlı. Döndürme birimi: |
def main():
# Spin to find a Pin, then show rotation
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print("Rotation: ")
brain.screen.print(drivetrain.rotation(DEGREES))
# VR threads — Do not delete
vr_thread(main)
tamamlandı#
is_done , robotun hareketinin tamamlanıp tamamlanmadığını Boolean bir değer olarak döndürür. Bu, robotun hareketine bağlı olarak diğer davranışların zamanlamasını kontrol etmek için kullanılabilir.
True— Robot hareket etmeyi bitirdi.False— Robot hala hareket halinde.
Bu yöntem, wait parametresine sahip aşağıdaki Aktarma Organı yöntemleriyle birlikte çalışır: drive_for, turn_for, turn_to_heading ve turn_to_rotation.
Usage:
drivetrain.is_done()
Parametreler |
Tanım |
|---|---|
Bu yöntemin parametresi yoktur. |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_for(LEFT, 110, DEGREES)
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES, wait=False)
wait(0.5, SECONDS)
while not drivetrain.is_done():
wait(5, MSEC)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
hareket ediyor#
is_moving , robotun hareket edip etmediğini Boolean bir değer olarak döndürür. Bu, robotun hareketine bağlı olarak diğer davranışların zamanlamasını kontrol etmek için kullanılabilir.
True— Robot hareket ediyor.False— Robot hareket etmiyor.
Usage:
drivetrain.is_moving()
Parametreler |
Tanım |
|---|---|
Bu yöntemin parametresi yoktur. |
def main():
# Raise the Arm once stopped near the Goal
drivetrain.turn_for(LEFT, 110, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES, wait=False)
wait (0.5, SEC)
while drivetrain.is_moving():
wait(5, MSEC)
arm_motor.spin_for(FORWARD, 800, DEGREES)
# VR threads — Do not delete
vr_thread(main)
hız#
velocity , robotun ne kadar hızlı sürdüğünü -100% ile 100% arasında bir yüzde olarak döndürür.
Usage:
drivetrain.velocity(units)
Parametreler |
Tanım |
|---|---|
|
İsteğe bağlı. Hız birimi: |
def main():
# Show speed while driving to the Goal
drivetrain.drive_for(FORWARD, 150, MM)
brain.screen.print("Velocity: ")
brain.screen.print(drivetrain.velocity(PERCENT))
# VR threads — Do not delete
vr_thread(main)
Hareket#
Flex, kolu kaldırmak ve indirmek için Kol Motorunu, pençeyi açmak ve kapatmak için ise Pençe Motorunu kullanır.
Her motorun kendine özgü bir yön davranışı vardır. Yön açıklamaları, her yönün Flex üzerinde o motoru nasıl hareket ettirdiğini açıklar.
Eylemler#
döndürmek#
spin komutu, bir motoru iki yönden birinde sonsuza kadar döndürür. Motor, farklı bir yöne döndürme veya durdurma gibi başka bir işlem verilene kadar dönmeye devam edecektir.
Kullanım:
Bu yöntemle, aşağıda gösterildiği gibi, mevcut iki motor nesnesinden biri kullanılabilir:
motor |
Emretmek |
|---|---|
|
|
|
|
Parametreler |
Tanım |
|---|---|
|
Motorun dönüş yönü:
|
def main():
# Raise the Arm before driving toward a Pin
arm_motor.spin(FORWARD)
wait(1, SECONDS)
arm_motor.stop()
# VR threads — Do not delete
vr_thread(main)
spin_for#
spin_for komutu, bir motoru belirli bir mesafe boyunca döndürür. Dönme, motorun mevcut konumuna göre belirlenir. Proje, bir sonraki kod satırı çalışmadan önce motorun dönmesi bitene kadar bekleyecektir.
Kullanım:
Bu yöntemle, aşağıda gösterildiği gibi, mevcut iki motor nesnesinden biri kullanılabilir:
motor |
Emretmek |
|---|---|
|
|
|
|
Parametreler |
Tanım |
|---|---|
|
Motorun dönüş yönü:
|
|
Motorun dönüş mesafesi. |
|
İsteğe bağlı. Mesafe birimi: |
|
İsteğe bağlı.
|
def main():
# Raise the Arm to carry the Pin to the Goal
arm_motor.spin_for(FORWARD, 800, DEGREES)
# VR threads — Do not delete
vr_thread(main)
spin_to_position#
spin_to_position , bir motoru belirli bir konuma döndürür.
Bir motorun konumu, DEGREES veya TURNScinsinden ölçülen, ne kadar döndüğünü gösterir. Bir tur 360 dereceye eşittir. Bir projenin başlangıcında, Kol Motorunun konumu 0 dereceye ayarlanır. Pençe Motoru istisnadır - 467 derecede (tamamen kapalı) başlar. Motor konumu ayrıca set_position yöntemi kullanılarak da ayarlanabilir.
Pozisyon değerleri mutlaktır. Bu, dönüş yönünün motorun mevcut konumuna bağlı olduğu anlamına gelir.
Örneğin, motor 0 dereceden başlayıp 720 dereceye kadar dönerse, iki tur ileri dönecektir. Daha sonra 360 dereceye kadar dönerse, 360, 720’den küçük olduğu için bir tur geri dönecektir.
Kullanım:
Bu yöntemle, aşağıda gösterildiği gibi, mevcut iki motor nesnesinden biri kullanılabilir:
motor |
Emretmek |
|---|---|
|
|
|
|
Parametreler |
Tanım |
|---|---|
|
Motorun döneceği pozisyon değeri. |
|
İsteğe bağlı. Konum birimi: |
|
İsteğe bağlı.
|
def main():
# Raise the Arm, then release the Pin
arm_motor.spin_to_position(800, DEGREES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
durmak#
stop durdurur, motorun dönmesini durdurur.
Kullanım:
Bu yöntemle, aşağıda gösterildiği gibi, mevcut iki motor nesnesinden biri kullanılabilir:
motor |
Emretmek |
|---|---|
|
|
|
|
Parametreler |
Tanım |
|---|---|
Bu yöntemin parametresi yoktur. |
def main():
# Raise the Arm partway to hold the Pin
arm_motor.spin(FORWARD)
wait(1, SECONDS)
arm_motor.stop()
# VR threads — Do not delete
vr_thread(main)
Mutatörler#
konum belirle#
Bir motorun konumu, DEGREES veya TURNSile ölçülen, ne kadar döndüğünü gösterir. Bir tur 360 dereceye eşittir. set_position , motorun mevcut konumunu yeni bir değere değiştirir.
Örneğin, bir motor 180 derece döndüyse, pozisyonu 0 dereceye ayarlamak, bu pozisyonu 180 dereceden 0 dereceye sıfırlar. Ardından motor, bu yeni değere göre pozisyonlara dönebilir.
Kullanım:
Bu yöntemle, aşağıda gösterildiği gibi, mevcut iki motor nesnesinden biri kullanılabilir:
motor |
Emretmek |
|---|---|
|
|
|
|
Parametreler |
Tanım |
|---|---|
|
Motor için ayarlanacak konum değeri. |
|
İsteğe bağlı. Konum birimi: |
def main():
# Reset encoder, raise Arm, place Pin
arm_motor.set_position(0, DEGREES)
arm_motor.spin_to_position(800, DEGREES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
hızı ayarla#
set_velocity komutu, bir motora ne kadar hızlı döneceğini söyler. Daha yüksek bir yüzde, motorun daha hızlı dönmesini, daha düşük bir yüzde ise daha yavaş dönmesini sağlar.
Her proje, varsayılan olarak her motorun %50 hızda dönmesiyle başlar.
Not: Daha yüksek hız, motorun daha hızlı dönmesini sağlar ancak hassasiyeti azaltabilir. Daha düşük hız ise motorun daha yavaş dönmesini sağlar ancak hassasiyeti artırabilir.
Kullanım:
Bu yöntemle, aşağıda gösterildiği gibi, mevcut iki motor nesnesinden biri kullanılabilir:
motor |
Emretmek |
|---|---|
|
|
|
|
Parametreler |
Tanım |
|---|---|
|
Dönme hızı %0 ile %100 arasında değişir. Bu, |
|
Hız birimi: % |
def main():
# Raise the Arm fast to release the Pin
arm_motor.set_velocity(100, PERCENT)
arm_motor.spin_for(FORWARD, 800, DEGREES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
zaman aşımını ayarla#
set_timeout parametresi, bir motorun bir hareketi tamamlamak için ne kadar süre deneyeceğini belirler. Motor bu süre içinde hareketi tamamlayamazsa, denemeyi bırakır ve bir sonraki kod satırına geçer. Bu, motorun bir harekette takılı kalmasını önler.
Kullanım:
Bu yöntemle, aşağıda gösterildiği gibi, mevcut iki motor nesnesinden biri kullanılabilir:
motor |
Emretmek |
|---|---|
|
|
|
|
Parametreler |
Tanım |
|---|---|
|
Motorun bir hareketi tamamlamaya çalışabileceği süre. Bu, pozitif bir tamsayı |
|
Zaman birimi: |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_for(LEFT, 110, DEGREES)
arm_motor.set_timeout(1, SECONDS)
arm_motor.spin_for(FORWARD, 1800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
Getters#
tamamlandı#
is_done , motorun hareketinin tamamlanıp tamamlanmadığını Boolean bir değer olarak döndürür. Bu, motorun hareketine bağlı olarak diğer davranışların zamanlamasını kontrol etmek için kullanılabilir.
True— Motor hareket etmeyi bitirdi.False— Motor hala hareket halinde.
Bu yöntem, wait parametresine sahip aşağıdaki Hareket yöntemleriyle birlikte çalışır: spin_for ve spin_to_position.
Kullanım:
Bu yöntemle, aşağıda gösterildiği gibi, mevcut iki motor nesnesinden biri kullanılabilir:
motor |
Emretmek |
|---|---|
|
|
|
|
Parametreler |
Tanım |
|---|---|
Bu yöntemin parametresi yoktur. |
def main():
# Raise the Arm while driving to the Goal
arm_motor.spin_to_position(800, DEGREES, wait=False)
wait(0.1, SECONDS)
while not arm_motor.is_done():
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.stop()
# VR threads — Do not delete
vr_thread(main)
dönüyor#
is_spinning , motorun dönüp dönmediğini Boolean değer olarak döndürür. Bu, motorun hareketine bağlı olarak diğer davranışların zamanlamasını kontrol etmek için kullanılabilir.
True— Motor dönüyor.False— Motor dönmüyor.
Bu yöntem, wait parametresine sahip aşağıdaki Hareket yöntemleriyle birlikte çalışır: spin_for ve spin_to_position.
Kullanım:
Bu yöntemle, aşağıda gösterildiği gibi, mevcut iki motor nesnesinden biri kullanılabilir:
motor |
Emretmek |
|---|---|
|
|
|
|
Parametreler |
Tanım |
|---|---|
Bu yöntemin parametresi yoktur. |
def main():
# Raise the Arm while driving to the Goal, then release the Pin
arm_motor.spin_to_position(800, DEGREES, wait=False)
wait(0.1, SECONDS)
while arm_motor.is_spinning():
drivetrain.drive_for(FORWARD, 25, MM)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
konum#
Bir motorun konumu, DEGREES veya TURNSile ölçülen, ne kadar döndüğünü gösterir. Bir tur 360 dereceye eşittir. position motorun mevcut konumunu döndürür.
Bir projenin başlangıcında, Kol Motorunun konumu 0 dereceye ayarlanır. Pençe Motoru ise istisnadır; 467 derecede (tamamen kapalı) başlar. Motor bir tam tur ileri dönerse, konum artar. Motor ters yöne dönerse, konum azalır.
Kullanım:
Bu yöntemle, aşağıda gösterildiği gibi, mevcut iki motor nesnesinden biri kullanılabilir:
motor |
Emretmek |
|---|---|
|
|
|
|
Parametreler |
Tanım |
|---|---|
|
Motor pozisyonunu döndürmek için kullanılan ünite: |
def main():
# Raise the Arm, then release the Pin
while arm_motor.position(DEGREES) < 800:
arm_motor.spin(FORWARD)
wait(2, MSEC)
arm_motor.stop()
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
hız#
velocity , motorun ne kadar hızlı döndüğünü gösterir.
Pozitif bir değer, motorun ileri yönde döndüğünü gösterir. Negatif bir değer ise motorun ters yönde döndüğünü gösterir.
Kullanım:
Bu yöntemle, aşağıda gösterildiği gibi, mevcut iki motor nesnesinden biri kullanılabilir:
motor |
Emretmek |
|---|---|
|
|
|
|
Parametreler |
Tanım |
|---|---|
|
Döndürülecek hız birimi: % |
def main():
# Show Arm Motor velocity while raising
arm_motor.set_velocity(100, PERCENT)
arm_motor.spin_to_position(800, DEGREES, wait=False)
wait(0.2, SECONDS)
brain.screen.print(arm_motor.velocity(PERCENT))
# VR threads — Do not delete
vr_thread(main)
Yapay Zeka Vizyonu#
Getters#
fotoğraf çek#
take_snapshot , yapay zeka görme sensörü çerçevesindeki verileri tek bir imzaya (sensörün tanıyabileceği bir şeyin, örneğin sahadaki bir oyun öğesinin, kaydedilmiş bir açıklaması) filtreler ve bir demet döndürür.
Bu demet, 0 indeksinden başlayarak genişliğe göre en büyükten en küçüğe doğru sıralanmış nesneleri saklar. Her nesnenin özelliklerine indeksi kullanılarak erişilebilir. Eşleşen nesne bulunmazsa boş bir demet döndürülür.
Usage:
ai_vision.take_snapshot(signature)
Parametreler |
Tanım |
|---|---|
|
Veri kümesini yalnızca belirtilen imzaya sahip verileri içerecek şekilde filtreler. Mevcut imzalar şunlardır:
|
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Turn to face the Pin
drivetrain.set_turn_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].centerX < 140:
drivetrain.turn(LEFT)
elif ai_objects[0].centerX > 180:
drivetrain.turn(RIGHT)
else:
drivetrain.stop()
break
# VR threads — Do not delete
vr_thread(main)
Özellikler#
take_snapshot kullanıldıktan sonra bir demette saklanan her nesneyle birlikte yedi özellik dahil edilir.
.id hariç tüm özellik değerleri, take_snapshot kullanıldığı anda AI Vision Sensor’un görüş alanındaki algılanan nesnenin konumunu ve boyutunu tanımlar. Bu değerler, sensörün 320 x 240 piksel çözünürlüğüne bağlı olarak piksel cinsinden ölçülür.
.Genişlik#
.width algılanan nesnenin piksel cinsinden genişliğini döndürür; bu, 1 ile 320 arasında bir tam sayıdır.
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Approach the next Cup and Pin
drivetrain.set_drive_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].width > 140:
drivetrain.stop()
break
else:
drivetrain.drive(FORWARD)
# VR threads — Do not delete
vr_thread(main)
.yükseklik#
.height fonksiyonu, tespit edilen nesnenin piksel cinsinden yüksekliğini döndürür; bu değer 1 ile 240 arasında bir tamsayıdır.
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Approach the next Cup and Pin
drivetrain.set_drive_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].height > 200:
drivetrain.stop()
break
else:
drivetrain.drive(FORWARD)
# VR threads — Do not delete
vr_thread(main)
.centerX#
.centerX tespit edilen nesnenin merkezinin x koordinatını piksel cinsinden döndürür; bu, 0 ile 320 arasında bir tam sayıdır.
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Turn and approach the next Cup and Pin
drivetrain.set_turn_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].centerX < 140:
drivetrain.turn_for(LEFT, 5, DEGREES)
else:
drivetrain.drive_for(FORWARD, 25, INCHES)
break
# VR threads — Do not delete
vr_thread(main)
.centerY#
.centerY fonksiyonu, tespit edilen nesnenin merkezinin y koordinatını piksel cinsinden döndürür; bu değer 0 ile 240 arasında bir tamsayıdır.
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Approach the next Cup and Pin
drivetrain.set_drive_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].centerY > 230:
drivetrain.stop()
break
else:
drivetrain.drive(FORWARD)
# VR threads — Do not delete
vr_thread(main)
.originX#
.originX tespit edilen nesnenin sınırlayıcı kutusunun sol üst köşesinin x koordinatını piksel cinsinden döndürür; bu, 0 ile 320 arasında bir tam sayıdır.
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Turn and approach the next Cup and Pin
drivetrain.set_turn_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].originX < 100:
drivetrain.turn_for(LEFT, 5, DEGREES)
else:
drivetrain.drive_for(FORWARD, 25, INCHES)
break
# VR threads — Do not delete
vr_thread(main)
.orijinY#
.originY tespit edilen nesnenin sınırlayıcı kutusunun sol üst köşesinin y koordinatını piksel cinsinden döndürür; bu, 0 ile 240 arasında bir tam sayıdır.
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Approach the next Cup and Pin
drivetrain.set_drive_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].originY > 140:
drivetrain.stop()
break
else:
drivetrain.drive(FORWARD)
# VR threads — Do not delete
vr_thread(main)
.İD#
.id tespit edilen yapay zeka sınıflandırmasının kimliğini tam sayı olarak döndürür.
Yapay Zeka Sınıflandırması |
İD |
İmza |
|---|---|---|
KırmızıMaviPin |
0 |
|
MaviSarıİğne |
1 |
|
KırmızıSarıİğne |
2 |
|
Sarı Pin |
3 |
|
Bardak |
4 |
|
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Display the ID of the next closest object
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
brain.screen.print(ai_objects[0].id)
break
# VR threads — Do not delete
vr_thread(main)
Konsol#
Konsol, bir proje çalışırken metin, sayılar ve değişken değerlerini görüntüler. Konsol yöntemleri ayrıca imleci yeni bir satıra taşıyabilir, konsolu temizleyebilir ve İzleme sekmesine değişkenler veya sensör değerleri ekleyebilir.
Yazdır#
beyin.ekran.baskı#
brain.screen.print , geçerli imleç konumunu kullanarak Konsolda metin, sayı veya değişken değerleri görüntüler.
Sonraki yazdırılan değerin yeni bir satırda başlamasını istediğinizde brain.screen.next_row kullanın.
Usage:
brain.screen.print(value)
Parametreler |
Tanım |
|---|---|
|
Konsolda görüntülenecek metin, sayı veya değişken değeri. |
def main():
# Display a message in the Console
brain.screen.print("Hello, robot!")
# VR threads — Do not delete
vr_thread(main)
beyin.ekran.sonraki_satır#
brain.screen.next_row komutu, imleci Konsol’daki bir sonraki satırın 1. sütununa taşır. Yazdırılacak bir sonraki değer o satırda görünecektir.
Usage:
brain.screen.next_row()
Parametreler |
Tanım |
|---|---|
Bu yöntemin parametresi yoktur. |
def main():
# Print on two rows
brain.screen.print("Row 1")
brain.screen.next_row()
brain.screen.print("Row 2")
# VR threads — Do not delete
vr_thread(main)
beyin.ekran.ekranı temizle#
brain.screen.clear_screen Konsoldaki tüm satırları temizler ve imleci 1. satıra geri taşır.
Usage:
brain.screen.clear_screen()
Parametreler |
Tanım |
|---|---|
Bu yöntemin parametresi yoktur. |
def main():
# Display text, then clear it after two seconds
brain.screen.print("This will disappear...")
wait(2, SECONDS)
brain.screen.clear_screen()
# VR threads — Do not delete
vr_thread(main)
Monitör#
monitör_değişkeni#
monitor_variable komutu, VEXcode’daki İzleme sekmesine bir veya daha fazla önceden tanımlanmış değişken ekler. Bu sayede, bir proje çalışırken bir değişkenin değerinin değişimini izleyebilirsiniz.
Değişkenlerin başarılı monitor_variable izlenebilmesi için global olmaları gerekir. Her değişken adını bir dize olarak belirtin.
Usage:
monitor_variable(“variable”)
monitor_variable(“variable1”, “variable2”)
Parametreler |
Tanım |
|---|---|
|
İzlenecek önceden tanımlanmış global bir değişkenin adı, bir dize olarak verilmelidir. Birden fazla değişkeni izlemek için, her değişken adını virgülle ayırın. |
def main():
# Monitor the number of loops
global loops
monitor_variable("loops")
# Turn in a full circle 3 times
for loops in range(12):
drivetrain.turn_for(RIGHT, 90, DEGREES)
# VR threads — Do not delete
vr_thread(main)
monitör_sensörü#
monitor_sensor komutu, VEXcode’daki İzleme sekmesine bir veya daha fazla sensör değeri ekler. Bu sayede proje çalışırken sensör değerlerindeki değişiklikleri izleyebilirsiniz.
Her bir sensör değerini bir dize olarak girin.
Usage:
monitor_sensor(“sensor”)
monitor_sensor(“sensor1”, “sensor2”)
Parametreler |
Tanım |
|---|---|
|
The sensor value to monitor, given as a string. To monitor more than one sensor value, separate each sensor value with a comma. Supported sensor identifiers include:
|
def main():
# Monitor the robot's heading
monitor_sensor("drivetrain.heading")
drivetrain.turn_for(RIGHT, 450, DEGREES)
# VR threads — Do not delete
vr_thread(main)
Algılama#
Mesafe#
bulunan_nesne#
found_object , Mesafe Sensörünün şu anda 2000 mm içinde bir nesne algılayıp algılamadığını döndürür.
True— Mesafe Sensörü bir nesne algılıyor.False— Mesafe Sensörü bir nesne algılamıyor.
Usage:
distance.found_object()
Parametreler |
Tanım |
|---|---|
Bu yöntemin parametresi yoktur. |
def main():
# Turn until something is detected, then release the Pin
drivetrain.turn(RIGHT)
while True:
wait(5, MSEC)
if distance.found_object():
drivetrain.stop()
break
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
nesne_mesafesi#
object_distance , Mesafe Sensörü ile en yakın algılanan nesne arasındaki mesafeyi döndürür.
Usage:
distance.object_distance(units)
Parametreler |
Tanım |
|---|---|
|
Mesafe birimi: |
def main():
# Drive until 200 mm from the Goal, then release the Pin
while distance.object_distance(MM) > 200:
wait(5, MSEC)
drivetrain.drive(FORWARD)
drivetrain.stop()
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
Küresel Konumlama Sistemi#
x_konumu#
x_position , sahadaki bir GPS (Oyun Konumlandırma Sistemi™) Sensörünün mevcut x koordinatını döndürür.
Usage:
gps.x_position(units)
Parametreler |
Tanım |
|---|---|
birimler |
Ofset değerinin birimi: |
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive(FORWARD)
while not gps.x_position(MM) > -1370:
wait(2, MSEC)
drivetrain.stop()
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
y_konumu#
y_position , sahadaki bir GPS (Oyun Konumlandırma Sistemi™) Sensörünün mevcut y koordinatını döndürür.
Usage:
gps.y_position(units)
Parametreler |
Tanım |
|---|---|
birimler |
Ofset değerinin birimi: |
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive(FORWARD)
while not gps.y_position(MM) < -450:
wait(2, MSEC)
drivetrain.stop()
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
başlık#
heading GPS (Oyun Konumlandırma Sistemi™) Sensörünün 0 ile 359 derece arasındaki okumalarına dayanarak robotun şu anda baktığı yönü döndürür.
Usage:
gps.heading()
Parametreler |
Tanım |
|---|---|
Bu yöntemin parametresi yoktur. |
def main():
# Raise the Arm, drive to the Goal, release the Pin
monitor_sensor("gps.heading")
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# Turn left to face the Neutral Goal
drivetrain.set_turn_velocity(30, PERCENT)
drivetrain.turn(LEFT)
while not gps.heading() < 18:
wait(2, MSEC)
drivetrain.stop()
# VR threads — Do not delete
vr_thread(main)