Isi kandungan:

LED dan Graviti?: 4 Langkah
LED dan Graviti?: 4 Langkah

Video: LED dan Graviti?: 4 Langkah

Video: LED dan Graviti?: 4 Langkah
Video: lampu LED strip 10 meter lengkap dengan remote control untuk ganti warna dan mode | link di komen 2024, November
Anonim
LED dan Graviti?
LED dan Graviti?

Projek ini sama sekali tidak praktis, tetapi dimulakan sebagai latihan dalam menerapkan formula fisika yang berkaitan dengan gravitasi dalam C-code pada Arduino. Untuk menjadikan sesuatu kelihatan, jalur LED neopixel dengan 74 LED digunakan. Kesan pecutan graviti pada objek ditunjukkan dengan menggunakan pecutan MPU-6050 dan cip giroskop. Cip ini secara fizikal melekat pada jalur LED, jadi apabila jalur LED dipegang pada sudut tertentu, cip tersebut mengukur sudut jalur LED dan Arduino menggunakan maklumat ini untuk mengemas kini kedudukan objek maya seolah-olah adalah bola yang seimbang pada balok dan bergolek dari satu sisi ke sisi lain jika balok dipegang pada sudut. Kedudukan objek maya ditunjukkan pada jalur LED sebagai LED tunggal yang diterangi.

Untuk mengemas kini kedudukan objek maya yang jatuh ke bumi di bawah pengaruh graviti, kami menggunakan formula:

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

Dengan:

y = jarak perjalanan dalam meter y0 = jarak permulaan dalam meter v0 = halaju permulaan dalam meter / saat a = pecutan (graviti) dalam meter / saat ^ 2 t = masa dalam saat

Langkah 1: Litar

Litar
Litar

Arduino Pro Mini dikuasakan dengan memasukkan bekalan + 5V terus ke pin + 5V, yang merupakan output dari pengatur 5V onboard. Ini mungkin kelihatan agak ortodoks, tetapi apabila Vin dibiarkan terbuka, ia tidak akan menimbulkan masalah selagi anda tidak membalikkan kekutuban, kerana itu pasti akan membakar Arduino anda.

Cip akselerometer dan giroskop MPU6050 digerakkan melalui modul penukar 5V hingga 3V3 berkuasa rendah dan bercakap dengan Arduino melalui antara muka I2C (SDA, SCL). Dengan Arduino Pro Mini, SDA disambungkan ke A4 dan SCL disambungkan ke A5, yang kedua-duanya terletak di Arduino Pro Mini PCB. Dengan versi Pro Mini yang saya gunakan, A4 dan A5 terletak di dalam PCB (2 lubang) dan tidak dapat diakses melalui header pin di sisi PCB. MPU6050 juga memiliki output interrupt (INT) yang digunakan untuk memberitahu Arduino ketika ada data baru yang tersedia. Jalur LED neopixel WS2812B dengan 74 LED dikuasakan secara langsung oleh bekalan 5V dan mempunyai 1 talian data (DIN) yang disambungkan ke output Arduino.

Langkah 2: Perisian

Saya meletakkan semua pemacu yang digunakan oleh lakaran (.ino) dalam folder yang sama dengan lakaran dan bukannya menggunakan perpustakaan. Sebabnya adalah bahawa saya tidak mahu pemacu diperbarui, untuk mengelakkan bug masuk ke dalam dan untuk mengelakkan perubahan yang saya lakukan pada pemandu akan ditimpa oleh kemas kini.

Berikut adalah senarai fail projek:

  • Mengimbangi_LED_using_MPU6050gyro.ino: fail lakaran
  • MPU6050.cpp / MPU6050.h: Pemacu akselerometer dan giroskop MPU6050
  • MPU6050_6Axis_MotionApps20.h: Definisi dan fungsi MPU6050 DMP (pemproses gerakan digital)
  • helper_3dmath.h: Definisi kelas untuk kuarter dan vektor integer atau terapung.
  • Pemandu I2Cdev.cpp / I2Cdev.h: I2C menggunakan perpustakaan wayar Arduino
  • LEDMotion.cpp / LEDMotion.h: Pelaksanaan keseimbangan LED graviti menggunakan jalur LED dan sudut yang diukur oleh MPU6050

Langkah 3: Gambar

Disyorkan: