Talaan ng mga Nilalaman:

Mga LED at Gravity?: 4 Mga Hakbang
Mga LED at Gravity?: 4 Mga Hakbang

Video: Mga LED at Gravity?: 4 Mga Hakbang

Video: Mga LED at Gravity?: 4 Mga Hakbang
Video: Grade 1 Music and Arts Q1 Ep 3 Iba't ibang Kasangkapan at Kagamitan sa Pagguhit 2024, Nobyembre
Anonim
Mga LED at Gravity?
Mga LED at Gravity?

Ang proyektong ito ay wala ring praktikal na paggamit, ngunit pinasimulan bilang isang ehersisyo sa pagpapatupad ng mga pormula ng pisika na nauugnay sa gravity sa C-code sa isang Arduino. Upang makita ang mga bagay, ginamit ang isang neopixel LED-strip na may 74 LEDs. Ang epekto ng gravitational acceleration sa isang bagay ay ipinakita sa pamamagitan ng paggamit ng MPU-6050 accelerometer at gyroscope chip. Ang chip na ito ay pisikal na nakakabit sa LED-strip, kaya't kapag ang LED-strip ay gaganapin sa isang tiyak na anggulo, sinusukat ng maliit na tilad ang anggulo ng LED strip at ginagamit ng Arduino ang impormasyong ito upang mai-update ang posisyon ng isang virtual na bagay na parang ito ay isang bola na balansehin sa isang sinag at gumulong mula sa isang gilid patungo sa isa pa kung ang sinag ay gaganapin sa isang anggulo. Ang posisyon ng virtual na bagay ay ipinahiwatig sa LED strip bilang isang solong LED na naiilawan.

Upang mai-update ang posisyon ng isang virtual na bagay na nahuhulog sa lupa sa ilalim ng impluwensya ng gravity, ginagamit namin ang formula:

y = y0 + (V0 * t) + (0.5 * a * t ^ 2)

Kasama ang:

y = naglakbay distansya sa metro y0 = distansya ng pagsisimula sa metro v0 = simulan ang tulin sa metro / segundo a = pagbilis (gravity) sa metro / segundo ^ 2 t = oras sa segundo

Hakbang 1: Circuit

Circuit
Circuit

Ang Arduino Pro Mini ay pinalakas ng pagpapakain ng isang + 5V supply nang direkta sa + 5V pin, na kung saan ay ang output ng onboard 5V regulator. Ito ay maaaring mukhang medyo orthodox, ngunit kapag ang Vin ay naiwang bukas, hindi ito lumilikha ng isang problema hangga't hindi mo binabaligtad ang polarity, sapagkat tiyak na i-toast ang iyong Arduino.

Ang MPU6050 accelerometer at gyroscope chip ay pinalakas sa pamamagitan ng isang mababang power 5V hanggang 3V3 converter module at nakikipag-usap sa Arduino sa pamamagitan ng isang I2C interface (SDA, SCL). Sa Arduino Pro Mini, ang SDA ay konektado sa A4 at ang SCL ay konektado sa A5, na parehong matatagpuan sa Arduino Pro Mini PCB. Gamit ang bersyon ng Pro Mini na ginagamit ko, ang A4 at A5 ay matatagpuan sa loob ng PCB (2 butas) at hindi ma-access sa pamamagitan ng mga header ng pin sa mga gilid ng PCB. Ang MPU6050 ay mayroon ding isang nakakagambalang output (INT) na ginagamit upang sabihin sa Arduino kapag may magagamit na bagong data. Ang WS2812B neopixel LED strip na may 74 LEDs ay direktang pinalakas ng supply ng 5V at may 1 linya ng data (DIN) na konektado sa isang output ng Arduino.

Hakbang 2: Software

Inilagay ko ang lahat ng mga driver na ginagamit ng sketch (.ino) sa parehong folder bilang sketch sa halip na gumamit ng mga aklatan. Ang dahilan para dito ay hindi ko nais na mai-update ang mga driver, upang maiwasan ang paglusot ng mga bug at upang maiwasan na ang mga pagbabagong ginawa ko sa mga driver ay mai-o-overtake ng mga pag-update.

Narito ang isang listahan ng mga file ng proyekto:

  • Balancing_LED_using_MPU6050gyro.ino: sketch file
  • MPU6050.cpp / MPU6050.h: MPU6050 accelerometer at gyroscope driver
  • MPU6050_6Axis_MotionApps20.h: Mga kahulugan at pag-andar ng MPU6050 DMP (digital motion processor)
  • helper_3dmath.h: Mga kahulugan ng klase para sa mga quaternion at integer o float vector.
  • I2Cdev.cpp / I2Cdev.h: I2C driver na gumagamit ng Arduino wire library
  • LEDMotion.cpp / LEDMotion.h: Pagpapatupad ng balanse ng LED na gravity gamit ang LED strip at anggulo na sinusukat ng MPU6050

Hakbang 3: Mga Larawan

Inirerekumendang: