Daftar Isi:

Pengukuran Sudut Menggunakan Gyro, Accelerometer dan Arduino: 5 Langkah
Pengukuran Sudut Menggunakan Gyro, Accelerometer dan Arduino: 5 Langkah

Video: Pengukuran Sudut Menggunakan Gyro, Accelerometer dan Arduino: 5 Langkah

Video: Pengukuran Sudut Menggunakan Gyro, Accelerometer dan Arduino: 5 Langkah
Video: CARA KERJA MPU6050 Gyroscope dan Accelerometer 2024, November
Anonim
Pengukuran Sudut Menggunakan Gyro, Accelerometer dan Arduino
Pengukuran Sudut Menggunakan Gyro, Accelerometer dan Arduino

Perangkat ini adalah prototipe kasar dari apa yang pada akhirnya akan menjadi robot keseimbangan diri, ini adalah bagian kedua dari lubang (baca akselerometer dan kendalikan motor untuk menyeimbangkan diri). Bagian pertama dengan hanya gyro dapat ditemukan di sini. Pada instruksi ini kita akan mengukur sudut menggunakan gyro dan accelerometer, dan menggunakan teknik untuk menggabungkan kedua sensor untuk mendapatkan sinyal yang halus. Teknik ini disebut "filter komplementer".sebelumnya

Langkah 1: Apa yang Kita Butuhkan:

Yang Kami Butuhkan
Yang Kami Butuhkan
Yang Kami Butuhkan
Yang Kami Butuhkan
Yang Kami Butuhkan
Yang Kami Butuhkan
Yang Kami Butuhkan
Yang Kami Butuhkan

Beberapa bagian dapat diganti, dan beberapa modifikasi pada kode harus dibuat agar sesuai dengan perangkat keras Anda. Pada proyek ini kita akan menggunakan:- Breadboard- Mikrokontroler, saya menggunakan Arduinoboard- Kawat- Kabel Jumper- Giroskop XV-8100- Nunchuck Wii (untuk akselerometer)- Adaptor Nunchuck Wii untuk Arduino

Langkah 2: Membangun…

Bangunan…
Bangunan…
Bangunan…
Bangunan…
Bangunan…
Bangunan…

Sirkuit terdiri dari giroskop yang terhubung langsung ke port 0 di arduino Anda dan nunchuck wii terhubung di port I2C. Merakit gyro:1. - pasang gyro di breadboard2. - kabel yang pernah ada: - Pin Vo dari gyro terhubung ke port analog0 di arduino (Kabel oranye terang) - Pin G dari gyro terhubung ke ground (Kabel putih) - Pin V+ dari gyro terhubung ke Vdd (3.3V) (Kabel oranye) Perakitan akselerometer:1. - pasang adaptor di nunchuck2. - pasang nunchuck di arduino menggunakan adaptor3. - pasang accel sensor seperti foto diatas

Langkah 3: Beberapa Informasi Tambahan Sebelum Kita Lanjutkan

Beberapa Informasi Tambahan Sebelum Kami Melanjutkan
Beberapa Informasi Tambahan Sebelum Kami Melanjutkan
Beberapa Informasi Tambahan Sebelum Kami Melanjutkan
Beberapa Informasi Tambahan Sebelum Kami Melanjutkan
Beberapa Informasi Tambahan Sebelum Kami Melanjutkan
Beberapa Informasi Tambahan Sebelum Kami Melanjutkan

Dari kedua sensor kita dapat mengukur sudut tetapi menggunakan dua teknik yang berbeda. Untuk mengukur sudut menggunakan gyro kita harus mengintegrasikan sinyal. Tapi mengapa kita harus melakukan ini? Karena gyro memberi kita laju sudut, jadi cara sederhana untuk mendapatkan sudut adalah dengan mengalikan laju sudut dengan waktu [sudut = sudut + w * dt]Untuk mengukur sudut menggunakan akselerometer kita harus merasakan gravitasi di masing-masing sumbu akselerometer, apa artinya, proyeksi percepatan gravitasi pada setiap arah sensor memberi kita gambaran tentang sudut. [angle_accel = arctg(Ay / sqrt(Ax^2 + Az^2))]Jadi mengapa kita akan menggunakan dua sensor, bukan satu? Untuk mengambil keuntungan dari kedua properti sensor. Jika Anda melihat grafik data gyro terus meningkat, ini disebut drift dan data akselerometer banyak berubah dalam waktu singkat. Dan bagaimana menggabungkan kedua sinyal? Kita akan menggunakan teknik yang disebut filter komplementer. Saya tidak tahu teori pasti di balik ini, tetapi itu berfungsi dengan baik. Ada beberapa informasi di internet, googling saja jika Anda membutuhkan informasi lebih lanjut. Tautan ini memiliki banyak informasi dan dapat berguna.filtered_angle = HPF*(filtered_angle + w* dt) + LPF*(angle_accel); di mana HPF + LPF = 1 Nilai HPF dan LPF dapat ditemukan di tautan ini, pada file filter.pdf. Terima kasih kalian dari "The DIY Segway". Hanya untuk tujuan pengujian kami akan menetapkan nilai ini seperti ini, HPF = 0.98 dan LPF = 0.02.

Langkah 4: Kode:

Kode tersebut merupakan adaptasi dari kode yang saya gunakan di proyek lain. Mungkin ada beberapa variabel yang tidak terpakai. Saya menggunakan perpustakaan untuk membaca data nunchuck dari https://todbot.com/blog/. Terima kasih Tod E. Kurt. Komentar pada kode dalam bahasa portugis, segera setelah saya punya waktu luang, saya akan menerjemahkannya. Keluaran kode melalui serial line beberapa angka dengan pola ini:dt: w: teta: pitch: filter_teta $time:angular_velocity:gyro_angle:accel_angle:filtered_angle$Jadi Anda dapat menyimpan nilai ini di terminal serial dan membuat grafik atau menggunakan sudut untuk hal lain. Jika Anda memerlukan penjelasan tentang kode, silakan bertanya. Kodenya adalah zip Cukup unzip, buka dan unggah ke arduino Anda.

Langkah 5: Pengujian dan Kesimpulan

Pengujian dan Kesimpulan
Pengujian dan Kesimpulan
Pengujian dan Kesimpulan
Pengujian dan Kesimpulan

Untuk menguji sistem saya menyimpan data menggunakan program yang disebut Rayap, kemudian mengimpor data ini di excel dan plot grafik untuk melihat seberapa bagus filter saya. Hasilnya luar biasa. Tentu saja Anda dapat menggunakan sinyal untuk menggerakkan motor, atau hal-hal lain. Setiap komentar, keraguan, informasi yang hilang, katakan saja dan saya perbaiki. Tolong jika Anda suka, beri nilai. Terima kasih semua.

Direkomendasikan: