Obsah:

LED diódy a gravitácia?: 4 kroky
LED diódy a gravitácia?: 4 kroky

Video: LED diódy a gravitácia?: 4 kroky

Video: LED diódy a gravitácia?: 4 kroky
Video: Lesson 98: Arduino 10 LED Push button Projects, Potentiometer LED Voltmeter and Traffic Light 2024, November
Anonim
LED diódy a gravitácia?
LED diódy a gravitácia?

Tento projekt nemá žiadne praktické využitie, ale bol zahájený ako cvičenie pri implementácii fyzikálnych vzorcov týkajúcich sa gravitácie v C-kóde na Arduine. Na zviditeľnenie veci slúžil neopixelový LED pás so 74 LED diódami. Účinok gravitačného zrýchlenia na objekt je demonštrovaný použitím akcelerometra MPU-6050 a čipu gyroskopu. Tento čip je fyzicky pripevnený k pásiku LED, takže keď je pásik LED držaný pod určitým uhlom, čip zmeria uhol pásu LED a Arduino pomocou týchto informácií aktualizuje polohu virtuálneho objektu, ako keby bola lopta, ktorá je vyvážená na lúči a valí sa z jednej strany na druhú, ak je lúč držaný pod uhlom. Poloha virtuálneho objektu je na páse LED indikovaná ako jedna dióda LED, ktorá je rozsvietená.

Na aktualizáciu polohy virtuálneho objektu, ktorý padá na zem vplyvom gravitácie, používame vzorec:

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

S:

y = prejdená vzdialenosť v metroch y0 = počiatočná vzdialenosť v metroch v0 = počiatočná rýchlosť v metroch/sekundu a = zrýchlenie (gravitácia) v metroch/sekundu^2 t = čas v sekundách

Krok 1: Okruh

Obvod
Obvod

Arduino Pro Mini je napájaný napájaním +5V priamo do +5V pinu, ktorý je výstupom integrovaného 5V regulátora. Mohlo by sa to zdať trochu ortodoxné, ale keď zostane Vin otvorený, nespôsobí to problém, pokiaľ nezmeníte polaritu, pretože to by určite opekalo vaše Arduino.

Čip akcelerometra a gyroskopu MPU6050 je napájaný z nízkoenergetického prevodníkového modulu 5V na 3V3 a komunikuje s Arduino prostredníctvom rozhrania I2C (SDA, SCL). U Arduino Pro Mini je SDA pripojený k formátu A4 a SCL je pripojený k formátu A5, ktoré sú obe umiestnené na doske Arduino Pro Mini. Vo verzii Pro Mini, ktorú používam, boli A4 a A5 umiestnené v doske plošných spojov (2 otvory) a neboli prístupné cez kolíkové záhlavia po stranách dosky plošných spojov. MPU6050 má tiež prerušovací výstup (INT), ktorý sa používa na informovanie Arduina, keď sú k dispozícii nové údaje. Neopixelový LED pás WS2812B so 74 LED diódami je napájaný priamo z napájania 5 V a má 1 dátový kábel (DIN), ktorý je pripojený k výstupu Arduina.

Krok 2: Softvér

Všetky ovládače, ktoré používa skica (.ino), som vložil do rovnakého priečinka ako skica, a nie do knižníc. Dôvodom je to, že nechcem, aby sa aktualizovali ovládače, aby sa zabránilo vkrádaniu chýb a aby sa zmeny, ktoré som na ovládačoch vykonal, prepísali aktualizáciami.

Tu je zoznam súborov projektu:

  • Balancing_LED_using_MPU6050gyro.ino: súbor náčrtu
  • MPU6050.cpp / MPU6050.h: ovládač akcelerometra a gyroskopu MPU6050
  • MPU6050_6Axis_MotionApps20.h: Definície a funkcie MPU6050 DMP (digitálny pohybový procesor)
  • helper_3dmath.h: Definície tried pre kvaternióny a celočíselné alebo floatové vektory.
  • I2Cdev.cpp / I2Cdev.h: Ovládač I2C používajúci drôtovú knižnicu Arduino
  • LEDMotion.cpp / LEDMotion.h: Implementácia gravitačného vyváženia LED pomocou LED pásu a uhla meraného na MPU6050

Krok 3: Obrázky

Odporúča: