Spisu treści:

Diody LED i grawitacja?: 4 kroki
Diody LED i grawitacja?: 4 kroki

Wideo: Diody LED i grawitacja?: 4 kroki

Wideo: Diody LED i grawitacja?: 4 kroki
Wideo: Подключение 2-x, 3-х и 4-х символьных светодиодных индикаторов к Ардуино 2024, Listopad
Anonim
Diody i grawitacja ?
Diody i grawitacja ?

Ten projekt nie ma żadnego praktycznego zastosowania, ale został zainicjowany jako ćwiczenie z implementacji wzorów fizycznych związanych z grawitacją w kodzie C na Arduino. Aby wszystko było widoczne, zastosowano taśmę neopikselową LED z 74 diodami LED. Wpływ przyspieszenia grawitacyjnego na obiekt jest demonstrowany za pomocą akcelerometru MPU-6050 i układu żyroskopowego. Ten chip jest fizycznie przymocowany do paska LED, więc gdy pasek LED jest trzymany pod pewnym kątem, chip mierzy kąt paska LED, a Arduino wykorzystuje te informacje do aktualizacji położenia wirtualnego obiektu, tak jakby była kulą, która jest wyważona na belce i toczy się z jednej strony na drugą, jeśli belkę trzyma się pod kątem. Pozycja wirtualnego obiektu jest wskazywana na pasku LED jako pojedyncza dioda LED, która się świeci.

Aby zaktualizować pozycję wirtualnego obiektu, który spada na ziemię pod wpływem grawitacji, korzystamy ze wzoru:

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

Z:

y = przebyta odległość w metrach y0 = odległość początkowa w metrach v0 = prędkość początkowa w metrach/sekundę a = przyspieszenie (grawitacja) w metrach/sekundę^2 t = czas w sekundach

Krok 1: Obwód

Okrążenie
Okrążenie

Arduino Pro Mini jest zasilany przez zasilanie +5V bezpośrednio do pinu +5V, który jest wyjściem wbudowanego regulatora 5V. To może wydawać się nieco ortodoksyjne, ale gdy Vin jest otwarty, nie stwarza to problemu, o ile nie odwrócisz polaryzacji, ponieważ z pewnością toast twoje Arduino.

Akcelerometr i żyroskop MPU6050 są zasilane przez moduł konwertera 5V na 3V3 o małej mocy i komunikują się z Arduino przez interfejs I2C (SDA, SCL). W Arduino Pro Mini SDA jest podłączony do A4, a SCL do A5, które znajdują się na płytce drukowanej Arduino Pro Mini. W wersji Pro Mini, której używam, formaty A4 i A5 znajdowały się wewnątrz płytki drukowanej (2 otwory) i nie były dostępne przez listwy pinów po bokach płytki drukowanej. MPU6050 ma również wyjście przerwania (INT), które służy do informowania Arduino, kiedy dostępne są nowe dane. Taśma LED neopikselowa WS2812B z 74 diodami LED jest zasilana bezpośrednio z zasilacza 5V i posiada 1 linię danych (DIN), która jest podłączona do wyjścia Arduino.

Krok 2: Oprogramowanie

Umieściłem wszystkie sterowniki używane przez szkic (.ino) w tym samym folderze co szkic, zamiast korzystać z bibliotek. Powodem tego jest to, że nie chcę, aby sterowniki były aktualizowane, aby zapobiec wkradaniu się błędów i aby zmiany, które wprowadziłem w sterownikach, zostały nadpisane przez aktualizacje.

Oto lista plików projektu:

  • Balancing_LED_using_MPU6050gyro.ino: plik szkicu
  • MPU6050.cpp / MPU6050.h: akcelerometr MPU6050 i sterownik żyroskopu
  • MPU6050_6Axis_MotionApps20.h: Definicje i funkcje MPU6050 DMP (cyfrowego procesora ruchu)
  • helper_3dmath.h: Definicje klas dla kwaternionów i wektorów całkowitych lub zmiennoprzecinkowych.
  • I2Cdev.cpp / I2Cdev.h: sterownik I2C wykorzystujący bibliotekę przewodów Arduino
  • LEDMotion.cpp / LEDMotion.h: Implementacja wagi grawitacyjnej LED za pomocą taśmy LED i kąta mierzonego przez MPU6050

Krok 3: Zdjęcia

Zalecana: