Оглавление:

Светодиоды и гравитация?: 4 шага
Светодиоды и гравитация?: 4 шага

Видео: Светодиоды и гравитация?: 4 шага

Видео: Светодиоды и гравитация?: 4 шага
Видео: Студенты российского вуза разработали вечный двигатель #вечныйдвигатель #изобретения 2024, Ноябрь
Anonim
Светодиоды и гравитация?
Светодиоды и гравитация?

Этот проект вообще не имеет практического применения, но был инициирован как упражнение по реализации физических формул, связанных с гравитацией, в C-коде на Arduino. Для наглядности использовалась неопиксельная светодиодная лента с 74 светодиодами. Воздействие ускорения свободного падения на объект демонстрируется с помощью микросхемы акселерометра и гироскопа MPU-6050. Этот чип физически прикреплен к светодиодной ленте, поэтому, когда светодиодная лента удерживается под определенным углом, чип измеряет угол светодиодной ленты, и Arduino использует эту информацию для обновления положения виртуального объекта, как если бы он был шаром, который балансирует на балке и катится из стороны в сторону, если балку держать под углом. Положение виртуального объекта отображается на светодиодной ленте в виде одного светящегося светодиода.

Чтобы обновить положение виртуального объекта, который падает на землю под действием силы тяжести, мы используем формулу:

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

С участием:

y = пройденное расстояние в метрах y0 = начальное расстояние в метрах v0 = начальная скорость в метрах / секунду a = ускорение (сила тяжести) в метрах / секунду ^ 2 t = время в секундах

Шаг 1: Схема

Схема
Схема

Arduino Pro Mini питается от источника питания + 5V непосредственно на вывод + 5V, который является выходом встроенного регулятора 5V. Это может показаться немного ортодоксальным, но когда Vin остается открытым, это не создает проблем, пока вы не меняете полярность, потому что это, безусловно, приведет к поджариванию вашего Arduino.

Микросхема акселерометра и гироскопа MPU6050 питается от маломощного модуля преобразователя 5 В в 3 В 3 и взаимодействует с Arduino через интерфейс I2C (SDA, SCL). В Arduino Pro Mini SDA подключается к A4, а SCL подключается к A5, которые расположены на плате Arduino Pro Mini. В версии Pro Mini, которую я использую, A4 и A5 были расположены внутри печатной платы (2 отверстия) и не были доступны через контактные разъемы по бокам печатной платы. MPU6050 также имеет выход прерывания (INT), который используется для сообщения Arduino о появлении новых данных. Неопиксельная светодиодная лента WS2812B с 74 светодиодами питается напрямую от источника питания 5 В и имеет 1 линию передачи данных (DIN), которая подключена к выходу Arduino.

Шаг 2: Программное обеспечение

Я помещаю все драйверы, которые используются в скетче (.ino), в ту же папку, что и скетч, вместо использования библиотек. Причина этого в том, что я не хочу, чтобы драйверы обновлялись, чтобы предотвратить появление ошибок и предотвратить перезапись изменений, внесенных мной в драйверы обновлениями.

Вот список файлов проекта:

  • Balancing_LED_using_MPU6050gyro.ino: файл эскиза
  • MPU6050.cpp / MPU6050.h: драйвер акселерометра и гироскопа MPU6050
  • MPU6050_6Axis_MotionApps20.h: MPU6050 DMP (цифровой процессор движения) определения и функции
  • helper_3dmath.h: определения классов для кватернионов и целочисленных векторов или векторов с плавающей запятой.
  • I2Cdev.cpp / I2Cdev.h: драйвер I2C, использующий библиотеку проводов Arduino
  • LEDMotion.cpp / LEDMotion.h: реализация гравитационного светодиодного баланса с использованием светодиодной ленты и угла, измеренного MPU6050.

Шаг 3: изображения

Рекомендуемые: