Encoder Ticks'lerini Mesafeye Çevirme

Önceki bölümde, RUN_TO_POSITION kullanımı için gereken temel yapı oluşturulmuştu. Kodun içinde hedef pozisyon 1000 tick olarak ayarlandı.

Ancak bir tick ne kadar mesafeye eşittir ve bunu robotun bir alanı dolaşmasına nasıl yardımcı olmak için kullanabiliriz? Robotun her tick'te ne kadar mesafe hareket ettiğini tahmin etmeye çalışabiliriz ya da encoder'ın bir devrindeki tick sayısını milimetre veya inç gibi bir birime çevirebiliriz! Örneğin, eğer dönüşüm sürecini çalıştırırsanız ve bir drivetrain'in bir inç hareket etmek için 700 tick'e ihtiyaç duyduğunu bulursanız, robotun 24 inç hareket etmesi için gerekli toplam tick sayısını kolayca hesaplayabilirsiniz.

Bu kılavuzun temeli Class Bot V2'dir. REV DUO Yapı Sistemi bir metrik sistemdir. Dönüşüm sürecinin bir parçası tekerleklerin çapına dayandığı için, bu bölüm tick'leri milimetre başına çevirecektir.


Dönüşüm İçin Gerekli Olanlar

Bu işlem biraz matematik gerektirir, bu yüzden parçalayarak açıklayalım.

Encoder'ları motorların içine yerleştirirken, tick'leri bir ölçü birimine dönüştürmek için şu bilgilere ihtiyaç duyulur:

  1. Encoder Şaftı Başına Düşen Tick Sayısı

  2. Motorun Toplam Dişli Azaltma Oranı

    • Dişli kutuları, dişliler, zincir ve dişli sistemi veya kayış ve kasnaklar gibi hareket iletim bileşenlerini içerir.

  3. Sürülen Tekerleklerin Çevresi


Encoder Şaftı Başına Tick Sayısı

Encoder şaftı başına düşen tick sayısı, motor ve encoder'a bağlıdır. Encoder'lı motor üreticileri, devrim başına düşen tick sayısını belirten bilgiler sağlar. HD Hex Motorlar için encoder, motor şaftının bir devriminde 28 tick sayar.

Daha fazla bilgi için motor veya encoder üreticisinin web sitesini ziyaret edin.


Toplam Dişli Azaltma

Encoder şaftının devrim başına düşen tick sayısı, herhangi bir dişli azaltmasından önce hesaplanır, bu nedenle toplam dişli azaltmasının hesaplanması gerekir. Bu işlem dişli kutusunu ve hareket iletim bileşenlerinden kaynaklanan herhangi bir azaltmayı içerir.

Class Bot V2 için toplam dişli azaltması şu şekildedir:

  • UltraPlanetary Kartuşları: 4:1 ve 5:1

  • Ekstra Azaltma: UltraPlanetary Çıkışı'ndan tekerleklere, 72T:45T oranı

Karmaşık dişli formülü kullanılarak toplam dişli azaltma:

3.61×5.23×7245=30.213.61 \times 5.23 \times \frac{72}{45} = 30.21

UltraPlanetary Dişli Kutusu Kartuşları, planet dişli sistemleridir. Kartuşlar için dişli oranları zaten azaltılmış olarak verilmiştir, bu nedenle hesaplamalar kolaylaşır.


Tekerleğin Çevresi

Class Bot V2, 90mm Çekiş Tekerleklerini kullanır. 90mm, tekerleğin çapıdır. Çevreyi şu formülle bulabilirsiniz:

circumference=diameter∗π


Hızlı Özet

Class Bot V2 için şu bilgiler doğrudur:

  • Encoder Şaftı Başına Tick: 28

  • Toplam Dişli Azaltma: 30.21

  • Tekerleğin Çevresi: 90 mm×π90 \, \text{mm} \times \pi


Dönüşümü Koda Taşımak

Değişkenlerin Ayarlanması

Bu bilgilerin her biri, tekerlek hareket ettiğinde encoder tick'lerini (veya sayımlarını) milimetreye çevirmek için kullanılacaktır. Manuel hesaplama yerine, bu değerler sabit değişkenler olarak koda eklenebilir:

  1. COUNTS_PER_MOTOR_REV

  2. DRIVE_GEAR_REDUCTION

  3. WHEEL_CIRCUMFERENCE_MM

Bu değişkenler, OpMode'un başlatma bölümüne eklenir.


WHEEL_CIRCUMFERENCE_MM için Tekerleğin çevresini elde etmek için ,, ve bloklarının bir kombinasyonu kullanılacaktır.

Artık bu üç değişken tanımlandığına göre, başka iki değişkeni hesaplamak için kullanılabilir: tekerleğin bir dönüşündeki encoder sayısı ve tekerleğin hareket ettiği milimetre başına düşen encoder sayısı.


COUNTS_PER_WHEEL_REV Hesaplanması

Tekerlek dönüşü başına düşen encoder sayılarını hesaplamak için, COUNTS_PER_MOTOR_REV değerini DRIVE_GEAR_REDUCTION ile çarpın. Aşağıdaki formülü kullanın:

y = a ∗ b

Burada:

  • a = COUNTS_PER_MOTOR_REV

  • b = DRIVE_GEAR_REDUCTION

  • y = COUNTS_PER_WHEEL_REV

Bu değişkenleri tanımlamak için yine matematik blokları kullanılmalıdır. COUNTS_PER_WHEEL_REV değişkeniyle başlayalım. Bir blok ekleyin. ** ve bloklarını her iki tarafa ekleyin.


COUNTS_PER_MM Hesaplanması

COUNTS_PER_WHEEL_REV hesaplandıktan sonra, tekerleğin hareket ettiği milimetre başına düşen encoder sayılarını hesaplamak için kullanılabilir. Bunu yapmak için, COUNTS_PER_WHEEL_REV değerini WHEEL_CIRCUMFERENCE_MM'ye bölün. Aşağıdaki formülü kullanın:

x = (a ∗ b) / c = y / c

Burada:

  • a = COUNTS_PER_MOTOR_REV

  • b = DRIVE_GEAR_REDUCTION

  • c = WHEEL_CIRCUMFERENCE_MM

  • y = COUNTS_PER_WHEEL_REV

  • x = COUNTS_PER_MM

COUNTS_PER_WHEEL_REV, hedef hızı hesaplamak için kullanıldığından COUNTS_PER_MM ayrı bir değişken olarak oluşturulacaktır.

COUNTS_PER_WHEEL_REV hesaplandığından, COUNTS_PER_MM'yi hesaplamak için kullanılabilir. ** bir **'ya ekleyin. 'nin sol tarafına bir blok ekleyin. Sağ tarafına ise bir blok ekleyin.


Son Değişkenler

COUNTS_PER_WHEEL_MM ayarlandığında, dönüşüm süreci tamamlanır ve tüm sabit değişkenler ayarlanmış olur.

OpMode'unuzu kaydetmeyi unutmayın; böylece bir bağlantı kesilmesi durumunda herhangi bir ilerleme kaybolmaz!

Last updated