Obsah:

LED diody a gravitace?: 4 kroky
LED diody a gravitace?: 4 kroky

Video: LED diody a gravitace?: 4 kroky

Video: LED diody a gravitace?: 4 kroky
Video: Lesson 98: Arduino 10 LED Push button Projects, Potentiometer LED Voltmeter and Traffic Light 2024, Listopad
Anonim
LED diody a gravitace?
LED diody a gravitace?

Tento projekt nemá žádné praktické využití, ale byl zahájen jako cvičení při implementaci fyzikálních vzorců souvisejících s gravitací v C-kódu na Arduinu. Aby byly věci viditelné, byl použit neopixelový LED pás se 74 LED diodami. Účinek gravitačního zrychlení na předmět je demonstrován pomocí akcelerometru MPU-6050 a čipu gyroskopu. Tento čip je fyzicky připevněn k LED pásku, takže když je LED pásek držen v určitém úhlu, čip měří úhel LED pásku a Arduino pomocí těchto informací aktualizuje polohu virtuálního objektu, jako by byl míč, který je vyvážen na paprsku a kutálí se z jedné strany na druhou, pokud je paprsek držen pod úhlem. Poloha virtuálního objektu je na LED pásku indikována jako jedna LED, která svítí.

K aktualizaci polohy virtuálního objektu, který dopadá na Zemi vlivem gravitace, použijeme vzorec:

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

S:

y = ujetá vzdálenost v metrech y0 = počáteční vzdálenost v metrech v0 = počáteční rychlost v metrech/sekundu a = zrychlení (gravitace) v metrech/sekundu^2 t = čas v sekundách

Krok 1: Okruh

Obvod
Obvod

Arduino Pro Mini je napájeno napájením +5V přímo do +5V pinu, který je výstupem integrovaného 5V regulátoru. Může se to zdát trochu ortodoxní, ale když je Vin ponechán otevřený, nepředstavuje to problém, pokud nezměníte polaritu, protože to by určitě připíjelo vašemu Arduinu.

Čip akcelerometru a gyroskopu MPU6050 je napájen pomocí nízkoenergetického převodníkového modulu 5V na 3V3 a komunikuje s Arduino prostřednictvím rozhraní I2C (SDA, SCL). U Arduino Pro Mini je SDA připojeno k A4 a SCL je připojeno k A5, které jsou umístěny na desce Arduino Pro Mini. U verze Pro Mini, kterou používám, byly A4 a A5 umístěny na desce plošných spojů (2 otvory) a nebyly přístupné přes záhlaví kolíků na bocích desky plošných spojů. MPU6050 má také přerušovací výstup (INT), který se používá k informování Arduina, když jsou k dispozici nová data. Neopixelový LED pásek WS2812B se 74 LED je napájen přímo z 5V zdroje a má 1 datovou linku (DIN), která je připojena k výstupu Arduina.

Krok 2: Software

Všechny ovladače, které používá skica (.ino), jsem místo použití knihoven vložil do stejné složky jako skica. Důvodem je to, že nechci aktualizovat ovladače, zabránit vkrádání chyb a zabránit tomu, aby změny, které jsem provedl na ovladačích, byly přepsány aktualizacemi.

Zde je seznam souborů projektu:

  • Balancing_LED_using_MPU6050gyro.ino: soubor skici
  • MPU6050.cpp / MPU6050.h: MPU6050 akcelerometr a ovladač gyroskopu
  • MPU6050_6Axis_MotionApps20.h: definice a funkce MPU6050 DMP (digitální pohybový procesor)
  • helper_3dmath.h: Definice tříd pro čtveřice a celočíselné nebo plovoucí vektory.
  • I2Cdev.cpp / I2Cdev.h: ovladač I2C využívající drátovou knihovnu Arduino
  • LEDMotion.cpp / LEDMotion.h: Implementace gravitačního vyvážení LED pomocí LED pásku a úhlu měřeného MPU6050

Krok 3: Obrázky

Doporučuje: