Съдържание:

Светодиоди и гравитация?: 4 стъпки
Светодиоди и гравитация?: 4 стъпки

Видео: Светодиоди и гравитация?: 4 стъпки

Видео: Светодиоди и гравитация?: 4 стъпки
Видео: Антигравитационный двигатель Леонова уйдет на Запад ? 2024, Ноември
Anonim
Светодиоди и гравитация?
Светодиоди и гравитация?

Този проект няма никаква практическа полза, но е иницииран като упражнение за прилагане на физически формули, свързани с гравитацията в C-код на Arduino. За да се видят нещата, беше използвана неопикселова LED лента със 74 светодиода. Ефектът на гравитационното ускорение върху обект се демонстрира с помощта на акселерометър MPU-6050 и чип на жироскоп. Този чип е физически прикрепен към LED лентата, така че когато LED лентата се държи под определен ъгъл, чипът измерва ъгъла на LED лентата и Arduino използва тази информация, за да актуализира позицията на виртуален обект, сякаш е топка, която е балансирана върху греда и се търкаля от едната страна на другата, ако гредата се държи под ъгъл. Положението на виртуалния обект е посочено на LED лентата като единичен светодиод, който свети.

За да актуализираме позицията на виртуален обект, който пада на земята под въздействието на гравитацията, използваме формулата:

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 се захранват чрез конверторен модул с ниска мощност 5V до 3V3 и разговарят с Arduino чрез I2C интерфейс (SDA, SCL). С Arduino Pro Mini, SDA е свързан към A4, а SCL е свързан към A5, които са разположени на платката Arduino Pro Mini. С версията Pro Mini, която използвам, A4 и A5 бяха разположени в печатната платка (2 отвора) и не бяха достъпни чрез заглавките на щифтовете отстрани на печатната платка. MPU6050 също има изход за прекъсване (INT), който се използва за съобщаване на Arduino, когато има налични нови данни. Неопикселовата LED лента WS2812B със 74 светодиода се захранва директно от 5V захранване и има 1 линия за данни (DIN), която е свързана към изход на Arduino.

Стъпка 2: Софтуер

Поставих всички драйвери, използвани от sketch (.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: Изпълнение на гравитационния LED баланс с помощта на LED лентата и ъгъла, измерен с MPU6050

Стъпка 3: Снимки

Препоръчано: