Daftar Isi:

LED dan Gravitasi?: 4 Langkah
LED dan Gravitasi?: 4 Langkah

Video: LED dan Gravitasi?: 4 Langkah

Video: LED dan Gravitasi?: 4 Langkah
Video: THE FLASH, EINSTEIN, DAN PERLAMBATAN WAKTU | TEORI RELATIVITAS KHUSUS 2024, Juli
Anonim
LED dan Gravitasi?
LED dan Gravitasi?

Proyek ini tidak memiliki kegunaan praktis sama sekali, tetapi dimulai sebagai latihan dalam menerapkan rumus fisika yang berkaitan dengan gravitasi dalam kode-C pada Arduino. Untuk membuat segalanya terlihat, strip LED neopiksel dengan 74 LED digunakan. Pengaruh percepatan gravitasi pada suatu benda ditunjukkan dengan menggunakan akselerometer MPU-6050 dan chip giroskop. Chip ini secara fisik melekat pada LED-strip, sehingga ketika LED-strip dipegang pada sudut tertentu, chip mengukur sudut strip LED dan Arduino menggunakan informasi ini untuk memperbarui posisi objek virtual seolah-olah itu adalah bola yang seimbang pada balok dan menggelinding dari satu sisi ke sisi lain jika balok dipegang dengan sudut. Posisi objek virtual ditunjukkan pada strip LED sebagai satu LED yang menyala.

Untuk memperbaharui posisi benda maya yang jatuh ke bumi karena pengaruh gravitasi, kita menggunakan rumus:

y = y0 + (V0 * t) + (0,5 * a * t^2)

Dengan:

y = jarak tempuh dalam meter y0 = jarak awal dalam meter v0 = kecepatan awal dalam meter/sekon a = percepatan (gravitasi) dalam meter/sekon^2 t = waktu dalam detik

Langkah 1: Sirkuit

sirkuit
sirkuit

Arduino Pro Mini ditenagai dengan mengumpankan suplai +5V langsung ke pin +5V, yang merupakan output dari regulator 5V onboard. Ini mungkin tampak agak ortodoks, tetapi ketika Vin dibiarkan terbuka, itu tidak menimbulkan masalah selama Anda tidak membalikkan polaritasnya, karena itu pasti akan membakar Arduino Anda.

Akselerometer dan chip giroskop MPU6050 ditenagai melalui modul konverter 5V ke 3V3 berdaya rendah dan berbicara dengan Arduino melalui antarmuka I2C (SDA, SCL). Dengan Arduino Pro Mini, SDA terhubung ke A4 dan SCL terhubung ke A5, yang keduanya terletak di PCB Arduino Pro Mini. Dengan versi Pro Mini yang saya gunakan, A4 dan A5 terletak di dalam PCB (2 lubang) dan tidak dapat diakses melalui pin header di sisi PCB. MPU6050 juga memiliki output interupsi (INT) yang digunakan untuk memberi tahu Arduino ketika ada data baru yang tersedia. Strip LED neopiksel WS2812B dengan 74 LED ditenagai langsung oleh suplai 5V dan memiliki 1 jalur data (DIN) yang terhubung ke output Arduino.

Langkah 2: Perangkat Lunak

Saya meletakkan semua driver yang digunakan oleh sketsa (.ino) di folder yang sama dengan sketsa daripada menggunakan perpustakaan. Alasan untuk ini adalah saya tidak ingin driver diperbarui, untuk mencegah bug menyelinap masuk dan untuk mencegah perubahan yang saya lakukan pada driver akan ditimpa oleh pembaruan.

Berikut adalah daftar file proyek:

  • Balancing_LED_using_MPU6050gyro.ino: file sketsa
  • MPU6050.cpp / MPU6050.h: akselerometer dan driver giroskop MPU6050
  • MPU6050_6Axis_MotionApps20.h: Definisi dan fungsi MPU6050 DMP (digital motion processor)
  • helper_3dmath.h: Definisi kelas untuk quaternions dan vektor integer atau float.
  • I2Cdev.cpp / I2Cdev.h: Driver I2C menggunakan perpustakaan kawat Arduino
  • LEDMotion.cpp / LEDMotion.h: Implementasi keseimbangan LED gravitasi menggunakan strip LED dan sudut yang diukur dengan MPU6050

Langkah 3: Gambar

Direkomendasikan: