Atalet#
giriiş#
Atalet sensörü, robotun nasıl hareket ettiğini ve döndüğünü ölçer.
Atalet sensörü bunu yapmak için iki parça kullanır. Jiroskop, yön, dönüş, jiroskop hızı ve yönelim gibi dönüşü ölçer. İvmeölçer ise x, y ve z eksenleri boyunca hızlanma veya yavaşlama gibi hareketteki değişiklikleri ölçer.
Aşağıda mevcut yöntemlerin listesi bulunmaktadır:
Yönlendirme — Yönü, dönüşü ve sensör kalibrasyonunu okuyun ve kontrol edin.
heading— Sensörün baktığı yönü 0 ile 359,99 derece arasında döndürür.rotation— Sensörün ne kadar döndüğünü döndürür.gyro_rate— Sensörün seçilen eksen üzerinde ne kadar hızlı döndüğünü döndürür.orientation— Atalet Sensörünün yuvarlanma, eğim veya sapma açısını döndürür.calibrate— Atalet Sensörünü Kalibre Eder.set_heading— Atalet Sensörünün mevcut yönünü yeni bir yön değerine ayarlar.set_rotation— Atalet Sensörünün mevcut dönüşünü yeni bir dönüş değerine ayarlar.reset_heading— Atalet Sensörünün mevcut yönünü 0 dereceye sıfırlar.reset_rotation— Atalet Sensörünün mevcut dönüşünü 0 dereceye sıfırlar.is_calibrating— Atalet Sensörünün şu anda kalibre edilip edilmediğini döndürür.changed— Atalet Sensörünün değeri değiştiğinde çalıştırılacak bir fonksiyonu kaydeder.installed— Atalet Sensörünün kurulu olup olmadığını kontrol eder.
Hareket — İvme, çarpışmalar ve dönüş yönü davranışını ölçün.
acceleration— Sensörün seçilen eksende ne kadar hızlı hızlandığını veya yavaşladığını döndürür.collision— Atalet Sensörü bir çarpışma algıladığında çalıştırılacak bir fonksiyonu kaydeder.set_turn_type— Hangi dönüş yönünün pozitif başlık değerleri döndürdüğünü ayarlar.get_turn_type— Hangi dönüş yönünün pozitif başlık değerleri döndürdüğünü döndürür.
Yapıcı
Inertial– Bir Atalet Sensörü oluşturur.
Oryantasyon#
heading#
Yön, sensörün baktığı yönü ifade eder ve 0 ile 359,99 derece arasında ölçülür. heading komutu, sensörün mevcut yönünü ondalık sayı olarak döndürür.
Başlangıç yönü 0 derecedir. Sensör 359,99 derecenin üzerine çıkarsa, yön tekrar 0 dereceye döner.
Usage:
inertial_1.heading(units)
Parametreler |
Tanım |
|---|---|
|
İsteğe bağlı. Yön birimi: |
# Display the heading after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print(inertial_1.heading())
rotation#
Dönme, sensörün ne kadar döndüğünü derece cinsinden ölçer. Yönün aksine, dönme 359,99 derecenin üzerine çıkabilir veya 0 derecenin altına düşebilir. Bir projenin başlangıcında, dönme değeri 0 dereceye ayarlanır. rotation komutu, Atalet Sensörünün mevcut dönme değerini ondalık sayı olarak 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 dönüş yapmak 720 derecelik bir dönüşe neden olur. 0 dereceden sola bir tam dönüş yapmak ise -360 derecelik bir dönüşe neden olur.
Usage:
inertial_1.rotation(units)
Parametreler |
Tanım |
|---|---|
|
İsteğe bağlı. Dönme birimi: |
# Display the rotation after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print(inertial_1.rotation())
gyro_rate#
Jiroskop hızı, atalet sensörünün ne kadar hızlı döndüğünü gösterir. gyro_rate , seçilen eksendeki atalet sensörünün mevcut dönüş hızını ondalık sayı olarak döndürür.
Sensörün o eksen üzerindeki dönüş yönüne bağlı olarak değer pozitif veya negatif olabilir.
Usage:
inertial_1.gyro_rate(axis, units)
Parametreler |
Tanım |
|---|---|
|
Jiroskop hızını döndürecek eksen:
|
|
İsteğe bağlı. Jiroskop hızı birimi:
|
# Display the rate of change of
# rotation while turning
drivetrain.turn(RIGHT)
wait(1, SECONDS)
brain.screen.print(inertial_1.gyro_rate(AxisType.ZAXIS, VelocityUnits.DPS))
drivetrain.stop()
orientation#
Yönelim, Atalet Sensörünün seçilen bir dönme ekseni üzerindeki mevcut açısıdır. orientation Atalet Sensörünün yuvarlanma, eğim veya sapma açısını -180,00 ile 180,00 derece arasında kayan noktalı bir değer olarak döndürür.
Yuvarlanma, eğim ve sapma, sensörün eğilme veya dönme şekillerini tanımlar.
Usage:
inertial_1.orientation(type, units)
Parametreler |
Tanım |
|---|---|
|
Döndürülecek yönelim açısı:
|
|
İsteğe bağlı. Yönlendirme birimi:
|
# Display the roll, pitch, and yaw of the Brain as it
# is rotated by hand
while True:
brain.screen.clear_screen()
brain.screen.print(inertial_1.orientation(AxisType.ROLL, DEGREES))
brain.screen.next_row()
brain.screen.print(inertial_1.orientation(AxisType.PITCH, DEGREES))
brain.screen.next_row()
brain.screen.print(inertial_1.orientation(AxisType.YAW, DEGREES))
brain.screen.next_row()
brain.screen.set_cursor(1, 1)
wait(0.1, SECONDS)
calibrate#
calibrate atalet sensörünü kalibre eder.
Kalibrasyon, sensörün dönüşleri doğru şekilde ölçmesine yardımcı olur. Kalibrasyon sırasında sensörü sabit tutun. Kalibrasyon sırasında sensör hareket ederse, yön, dönüş, jiroskop hızı ve yönelim değerleri doğru ölçülemeyebilir.
Proje, bir sonraki kod satırı çalıştırılmadan önce kalibrasyon işleminin tamamlanmasını bekleyecektir.
Usage:
inertial_1.calibrate()
Parametreler |
Tanım |
|---|---|
Bu yöntemin parametresi yoktur. |
# Start calibration.
inertial_1.calibrate()
# Print that the Inertial Sensor is calibrating while
# waiting for it to finish calibrating.
while inertial_1.is_calibrating():
brain.screen.clear()
brain.screen.print("Inertial Sensor Calibrating")
wait(50, MSEC)
set_heading#
Yön, sensörün baktığı yönü ifade eder ve 0 ile 359,99 derece arasında ölçülür. set_heading komutu, Atalet Sensörünün mevcut yönünü yeni bir yön değerine değiştirir.
Örneğin, sensör sağa doğru dönmüşse, yönü 0 dereceye ayarlamak, bu sağa dönük pozisyonu yeni 0 derece yapar. Ardından sensör, bu yeni yöne göre diğer yönleri takip edebilir.
Usage:
inertial_1.set_heading(value, units)
Parametreler |
Tanım |
|---|---|
|
Sensör için ayarlanacak yön değeri (derece cinsinden). Bu değer 0 ile 359,99 arasında olabilir. |
|
İsteğe bağlı. Yön birimi: |
# Turn the robot around
inertial_1.set_heading(180, DEGREES)
drivetrain.turn_to_heading(0)
set_rotation#
Dönme, sensörün ne kadar döndüğünü derece cinsinden ölçer. Yönün aksine, dönme 359,99 derecenin üzerine çıkabilir veya 0 derecenin altına düşebilir. Bir projenin başlangıcında, dönme değeri 0 dereceye ayarlanır. set_rotation komutu, Atalet Sensörünün mevcut dönme değerini yeni bir değere değiştirir.
Örneğin, sensör sağa doğru iki tam tur atmışsa, dönüş değeri 720 derece olacaktır. Dönüşü 0 dereceye ayarlamak, bu dönüş değerini 720’den 0 dereceye sıfırlayacaktır. Ardından sensör, bu yeni değere göre dönüşleri takip edebilir.
Usage:
inertial_1.set_rotation(value, units)
Parametreler |
Tanım |
|---|---|
|
Sensör için ayarlanacak dönüş değeri (derece cinsinden). Bu bir tamsayı veya ondalık sayı (float) olabilir. |
|
İsteğe bağlı. Dönme birimi: |
# Turn the robot around
inertial_1.set_rotation(-180, DEGREES)
drivetrain.turn_to_rotation(0)
reset_heading#
reset_heading komutu, atalet sensörünün mevcut yönünü 0 dereceye sıfırlar.
Bu yöntem kullanıldıktan sonra, sensörün mevcut yönü yeni 0 derece yönü haline gelir.
Usage:
inertial_1.reset_heading()
Parametreler |
Tanım |
|---|---|
Bu yöntemin parametresi yoktur. |
reset_rotation#
reset_rotation komutu, atalet sensörünün mevcut dönüşünü 0 dereceye sıfırlar.
Bu yöntem kullanıldıktan sonra, sensör yeni 0 derece dönüş değerinden itibaren gelecekteki dönüşleri takip eder.
Usage:
inertial_1.reset_rotation()
Parametreler |
Tanım |
|---|---|
Bu yöntemin parametresi yoktur. |
is_calibrating#
is_calibrating , Atalet Sensörünün şu anda kalibre edilip edilmediğini döndürür.
True— Atalet Sensörü kalibre ediliyor.False— Atalet sensörü kalibre edilmiyor.
Usage:
inertial_1.is_calibrating()
Parametreler |
Tanım |
|---|---|
Bu yöntemin parametresi yoktur. |
changed#
changed atalet sensörünün değeri değiştiğinde çağrılacak bir fonksiyon kaydeder.
Usage:
inertial_1.changed(callback, arg)
Parametreler |
Tanım |
|---|---|
|
Atalet Sensörünün değeri değiştiğinde yürütülen, önceden tanımlanmış bir fonksiyon. |
|
İsteğe bağlı. Geri çağrı fonksiyonuna iletilecek argümanları içeren bir demet. Daha fazla bilgi için Parametreli Fonksiyonları Kullanma bölümüne bakın. |
def my_function():
brain.screen.print("Value changed!!")
# Call my_function whenever inertial_1's value changes
inertial_1.changed(my_function)
installed#
installed atalet sensörünün kurulu olup olmadığını kontrol eder.
True— Atalet Sensörü takılı.False— Atalet Sensörü takılı değil.
Usage:
inertial_1.installed()
Parametreler |
Tanım |
|---|---|
Bu yöntemin parametresi yoktur. |
Hareket#
acceleration#
İvme, sensörün ne kadar hızlı hızlandığını veya yavaşladığını gösterir. acceleration , seçilen eksendeki Atalet Sensörünün ivmesini -4,0 G ile 4,0 G arasında ondalık sayı olarak döndürür.
G ivmeyi ölçmek için kullanılan bir birimdir. 1 G, hareketsiz otururken yerçekiminden hissettiğiniz ivmeye yaklaşık olarak eşittir.
Değer, seçilen eksendeki ivmenin yönüne bağlı olarak pozitif veya negatif olabilir. Eksen seçenekleri AxisType.XAXIS, AxisType.YAXISve AxisType.ZAXIS.
Usage:
inertial_1.acceleration(type)
Parametreler |
Tanım |
|---|---|
|
İvmenin ölçüleceği eksen:
|
# Return the acceleration for the Z axis of the Inertial Sensor
zaccel = inertial_1.acceleration(AxisType.ZAXIS)
collision#
collision atalet sensörü ani bir darbe veya çarpışma algıladığında çağrılacak bir fonksiyonu kaydeder.
Usage:
inertial_1.collision(callback, arg)
Parametreler |
Tanım |
|---|---|
|
Çarpışma tespit edildiğinde yürütülen, önceden tanımlanmış bir fonksiyon. |
|
İsteğe bağlı. Geri çağrı fonksiyonuna iletilecek argümanları içeren bir demet. Daha fazla bilgi için Parametreli Fonksiyonları Kullanma bölümüne bakın. |
def my_function():
brain.screen.print("Collision!")
# Call my_function whenever a collision is detected
inertial_1.collision(my_function)
set_turn_type#
set_turn_type , hangi dönüş yönünün pozitif yön değerleri döndürdüğünü ayarlar.
Usage:
inertial_1.set_turn_type(turntype)
Parametreler |
Tanım |
|---|---|
|
Ayarlanacak dönüş tipi:
|
get_turn_type#
get_turn_type , dönüş yönünün pozitif yön değerleri döndürdüğünü belirtir.
LEFT— Sola dönüşler pozitif yön değerleri döndürür.RIGHT— Sağ dönüşler pozitif yön değerleri döndürür.
Usage:
inertial_1.get_turn_type()
Parametreler |
Tanım |
|---|---|
Bu yöntemin parametresi yoktur. |
İnşaatçılar#
Inertial#
Inertial , bir Atalet Sensörü oluşturur.
Usage:
Inertial(smartport)
Parametreler |
Tanım |
|---|---|
|
Atalet sensörünün bağlı olduğu akıllı port, |
# Create a new object "inertial_1" with the Inertial class.
inertial_1 = Inertial(Ports.PORT1)