Tartalomjegyzék:

LED -ek és gravitáció?: 4 lépés
LED -ek és gravitáció?: 4 lépés

Videó: LED -ek és gravitáció?: 4 lépés

Videó: LED -ek és gravitáció?: 4 lépés
Videó: Суета после свадьбы Шахбанова Саида 2024, Július
Anonim
LED -ek és gravitáció?
LED -ek és gravitáció?

Ennek a projektnek gyakorlatilag nincs haszna, de a Gravitációhoz kapcsolódó fizikai képletek C-kódban való végrehajtásának egyik gyakorlataként indult egy Arduino-n. A dolgok láthatóvá tételéhez 74 LED-et tartalmazó neopixel LED-csíkot használtak. A gravitációs gyorsulás egy tárgyra gyakorolt hatását MPU-6050 gyorsulásmérő és giroszkóp chip segítségével bizonyítják. Ez a chip fizikailag a LED-szalaghoz van rögzítve, így amikor a LED-szalagot bizonyos szögben tartják, a chip méri a LED-szalag szögét, és az Arduino ezeket az információkat használja fel egy virtuális objektum helyzetének frissítésére, mintha labda volt, amely egy gerendán van kiegyensúlyozva, és egyik oldalról a másikra gurul, ha a gerendát ferdén tartja. A virtuális objektum helyzete a LED szalagon egyetlen LED -ként jelenik meg, amely világít.

A gravitáció hatására a földre eső virtuális objektum helyzetének frissítéséhez a következő képletet használjuk:

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

Val vel:

y = megtett távolság méterben y0 = kezdési távolság méterben v0 = kezdési sebesség méterben/másodpercben a = gyorsulás (gravitáció) méterben/másodpercben^2 t = idő másodpercben

1. lépés: Áramkör

Áramkör
Áramkör

Az Arduino Pro Mini tápellátását a +5 V tápellátás közvetlenül a +5 V -os csapba táplálja, amely a fedélzeti 5 V -os szabályozó kimenete. Ez kissé ortodoxnak tűnhet, de ha Vin nyitva marad, addig nem okoz problémát, amíg nem változtatja meg a polaritást, mert ez biztosan pirítós az Arduino -n.

Az MPU6050 gyorsulásmérő és a giroszkóp chipet kis teljesítményű 5V -3V3 átalakító modul táplálja, és I2C interfészen (SDA, SCL) keresztül beszél az Arduino -val. Az Arduino Pro Mini esetében az SDA az A4 -hez, az SCL pedig az A5 -hez van csatlakoztatva, amelyek mind az Arduino Pro Mini PCB -n találhatók. Az általam használt Pro Mini verziónál az A4 és az A5 a NYÁK -ban (2 lyuk) találhatók, és nem voltak elérhetők a NYÁK oldalán lévő csapszegeken keresztül. Az MPU6050 rendelkezik egy megszakítási kimenettel (INT) is, amellyel értesíti az Arduino -t, ha új adatok állnak rendelkezésre. A 74 LED -et tartalmazó WS2812B neopixel LED szalagot közvetlenül az 5 V -os tápegység táplálja, és 1 adatvezetékkel (DIN) rendelkezik, amely az Arduino kimenetéhez van csatlakoztatva.

2. lépés: Szoftver

A vázlat által használt összes illesztőprogramot (.ino) ugyanabban a mappában helyeztem el, mint a vázlatot, könyvtárak használata helyett. Ennek az az oka, hogy nem akarom, hogy az illesztőprogramok frissüljenek, megakadályozzák a hibák behatolását, és megakadályozzam, hogy az illesztőprogramokon végrehajtott módosításokat felülírják a frissítések.

Itt található a projektfájlok listája:

  • Balancing_LED_using_MPU6050gyro.ino: vázlatfájl
  • MPU6050.cpp / MPU6050.h: MPU6050 gyorsulásmérő és giroszkóp meghajtó
  • MPU6050_6Axis_MotionApps20.h: MPU6050 DMP (digitális mozgásprocesszor) definíciók és funkciók
  • helper_3dmath.h: Osztálydefiníciók kvaterniókhoz és egész vagy lebegővektorokhoz.
  • I2Cdev.cpp / I2Cdev.h: I2C illesztőprogram az Arduino vezetékes könyvtár használatával
  • LEDMotion.cpp / LEDMotion.h: A gravitációs LED egyensúly megvalósítása az MPU6050 által mért LED szalag és szög használatával

3. lépés: Képek

Ajánlott: