Inersia#

Perkenalan#

Otak memiliki sensor inersia bawaan. Sensor ini dapat mengukur bagaimana otak bergerak atau berputar.

Sensor Inersia menggunakan dua bagian untuk melakukan hal ini. Giroskop mengukur putaran, seperti ke arah mana Otak menghadap dan seberapa jauh ia telah berputar. Akselerometer mengukur perubahan gerakan, seperti mempercepat, memperlambat, atau berhenti tiba-tiba saat terjadi tabrakan.

Metode inersia dapat digunakan untuk melacak belokan, mengatur ulang nilai arah atau rotasi, mengukur roll, pitch, dan yaw, serta melaporkan percepatan.

Ada banyak cara untuk memprogram Sensor Inersia. Berikut adalah daftar semua metode Inersia:

Orientasi — Kembali dan atur arah hadap, putaran, atau kemiringan Otak.

  • get_heading — Mengembalikan arah yang dihadapi Otak, dari 0 hingga 359 derajat.

  • get_rotation — Mengembalikan seberapa jauh Otak telah berputar.

  • get_yaw — Mengembalikan seberapa jauh Otak telah berputar ke kiri atau ke kanan dari posisi awalnya.

  • get_roll — Mengembalikan seberapa miring Otak ke kiri atau ke kanan.

  • get_pitch — Mengembalikan seberapa miring Otak ke depan atau ke belakang.

  • calibrate — Mengkalibrasi Sensor Inersia Otak.

  • reset_heading — Mengatur ulang arah otak saat ini ke 0 derajat.

  • reset_rotation — Mengatur ulang rotasi Otak saat ini ke 0 derajat.

  • set_heading — Mengatur arah saat ini Otak ke nilai arah baru.

  • set_rotation — Mengatur rotasi Otak saat ini ke nilai rotasi baru.

Gerakan — Mengingatkan kita pada pergerakan otak.

  • get_acceleration — Mengembalikan seberapa cepat Otak mempercepat atau memperlambat pada sumbu yang dipilih.

Orientasi#

get_heading#

Heading adalah arah yang dihadapi Otak, diukur dalam derajat dari 0 hingga 359. get_heading mengembalikan heading Otak saat ini.

Arah awalnya adalah 0 derajat. Jika Otak berputar melewati 359 derajat, arah akan kembali ke 0 derajat.

Usage:
inertial.get_heading()

Parameter

Keterangan

Metode ini tidak memiliki parameter.

get_rotation#

Rotasi adalah seberapa banyak Otak telah berputar, diukur dalam derajat. Tidak seperti arah, rotasi dapat meningkat melebihi 359 derajat atau menurun di bawah 0 derajat. Pada awal proyek, nilai rotasi diatur ke 0 derajat. get_rotation mengembalikan rotasi Otak saat ini.

Memutar ke kanan akan meningkatkan rotasi, dan memutar ke kiri akan mengurangi rotasi. Misalnya, melakukan dua putaran penuh ke kanan akan menghasilkan rotasi sebesar 720 derajat. Memutar satu putaran penuh ke kiri dari 0 derajat akan menghasilkan rotasi sebesar -360 derajat.

Usage:
inertial.get_rotation()

Parameter

Keterangan

Metode ini tidak memiliki parameter.

get_yaw#

Yaw adalah seberapa jauh Otak telah berputar ke kiri atau ke kanan dari posisi awalnya, diukur dalam derajat. get_yaw mengembalikan nilai yaw Otak saat ini.

Berbelok ke kanan meningkatkan nilai yaw, dan berbelok ke kiri menurunkan nilai yaw. Yaw berguna untuk memeriksa belokan kiri dan kanan tanpa menggunakan nilai arah terbungkus (wrapped heading).

Usage:
inertial.get_yaw()

Parameter

Keterangan

Metode ini tidak memiliki parameter.

get_roll#

Roll adalah seberapa besar Otak miring ke kiri atau ke kanan, diukur dalam derajat. get_roll mengembalikan nilai roll Otak saat ini.

Dengan posisi Otak menghadap ke depan, memiringkan ke kiri akan meningkatkan nilai putaran, dan memiringkan ke kanan akan mengurangi nilai putaran.

Usage:
inertial.get_roll()

Parameter

Keterangan

Metode ini tidak memiliki parameter.

get_pitch#

Pitch adalah seberapa besar Otak miring ke depan atau ke belakang, diukur dalam derajat. get_pitch mengembalikan nilai pitch Otak saat ini.

Dengan posisi otak menghadap ke depan, memiringkan ke depan akan meningkatkan nilai pitch, dan memiringkan ke belakang akan menurunkan nilai pitch.

Usage:
inertial.get_pitch()

Parameter

Keterangan

Metode ini tidak memiliki parameter.

calibrate#

calibrate mengkalibrasi Sensor Inersia Otak.

Kalibrasi membantu Sensor Inersia mengukur putaran dengan benar. Jaga agar Brain tetap diam selama sekitar 2 detik selama kalibrasi. Jika Brain bergerak selama kalibrasi, nilai heading, rotasi, yaw, roll, dan pitch mungkin tidak terukur dengan benar.

Proyek akan menunggu hingga kalibrasi selesai sebelum baris kode berikutnya dijalankan.

Usage:
inertial.calibrate()

Parameter

Keterangan

Metode ini tidak memiliki parameter.

reset_heading#

Heading adalah arah yang dihadapi Otak, diukur dalam derajat. reset_heading mengatur ulang heading Otak saat ini ke 0 derajat.

Setelah metode ini digunakan, arah otak saat ini menjadi arah 0 derajat yang baru.

Usage:
inertial.reset_heading()

Parameter

Keterangan

Metode ini tidak memiliki parameter.

reset_rotation#

Rotasi adalah seberapa banyak Otak telah berputar, diukur dalam derajat. reset_rotation mengatur ulang rotasi Otak saat ini ke 0 derajat.

Setelah metode ini digunakan, otak melacak giliran selanjutnya dari nilai rotasi 0 derajat yang baru.

Usage:
inertial.reset_rotation()

Parameter

Keterangan

Metode ini tidak memiliki parameter.

set_heading#

Heading adalah arah yang dihadapi Otak, diukur dalam derajat dari 0 hingga 359. set_heading mengubah heading Otak saat ini ke nilai heading baru.

Sebagai contoh, jika Otak telah berputar menghadap ke kanan, mengatur arah ke 0 derajat akan menjadikan posisi menghadap ke kanan tersebut sebagai 0 derajat yang baru. Kemudian Otak dapat melacak arah lain berdasarkan arah baru tersebut.

Usage:
inertial.set_heading(heading)

Parameter

Keterangan

heading

Nilai arah, dalam derajat, yang akan ditetapkan untuk Otak. Ini bisa berupa bilangan bulat dari 0 hingga 359.

set_rotation#

Rotasi adalah seberapa banyak Otak telah berputar, diukur dalam derajat. Tidak seperti arah, rotasi dapat meningkat melebihi 359 derajat atau menurun di bawah 0 derajat. Pada awal proyek, nilai rotasi diatur ke 0 derajat. Perintah set_rotation mengubah rotasi Otak saat ini ke nilai baru.

Sebagai contoh, jika Otak telah berputar dua kali penuh ke kanan, nilai rotasinya akan menjadi 720 derajat. Mengatur rotasi ke 0 derajat akan mengatur ulang rotasi tersebut dari 720 menjadi 0 derajat. Kemudian Otak dapat melacak rotasi berdasarkan nilai baru tersebut.

Usage:
inertial.set_rotation(rotation)

Parameter

Keterangan

rotation

Nilai rotasi, dalam derajat, yang akan diatur untuk Otak. Ini bisa berupa bilangan bulat.

Gerakan#

get_acceleration#

Akselerasi adalah seberapa cepat otak mempercepat atau memperlambat. get_acceleration mengembalikan akselerasi otak pada sumbu yang dipilih, dari -4,0 G hingga 4,0 G.

G adalah satuan yang digunakan untuk mengukur percepatan. 1 G kira-kira sama dengan percepatan yang Anda rasakan akibat gravitasi saat duduk diam.

Nilainya bisa positif atau negatif tergantung pada arah percepatan pada sumbu yang dipilih. Pilihan sumbunya adalah X, Y, dan Z.

Usage:
inertial.get_acceleration(axis)

Parameter

Keterangan

axis

Sumbu yang digunakan untuk mengukur percepatan adalah: X, Y, atau Z.

# Build Used: Super Code Base 2.0
def main():
    # Display the acceleration after moving.
    drivetrain.set_drive_velocity(100)
    console.print("Resting: ")
    console.print(inertial.get_acceleration(X), precision=2)
    console.new_line()
    wait(1, SECONDS)
    drivetrain.drive_for(FORWARD, 500, MM, wait=False)
    wait(0.20, SECONDS)
    console.print("Startup: ")
    console.print(inertial.get_acceleration(X), precision=2)

# Start threads — Do not delete
start_thread(main)