Мазмуну:

LED жана Gravity?: 4 кадам
LED жана Gravity?: 4 кадам

Video: LED жана Gravity?: 4 кадам

Video: LED жана Gravity?: 4 кадам
Video: ТАКОВ МОЙ ПУТЬ В L4D2 2024, Ноябрь
Anonim
LED жана Gravity?
LED жана Gravity?

Бул долбоордун эч кандай практикалык колдонулушу жок, бирок Arduinoдогу C-коддогу гравитацияга байланыштуу физика формулаларын ишке ашыруу үчүн көнүгүү катары башталган. Көрүнүш үчүн 74 LED менен неопикселдүү LED-тилкеси колдонулган. Гравитациялык ылдамдануунун объектке тийгизген таасири MPU-6050 акселерометрин жана гироскоптун микросхемасын колдонуу менен көрсөтүлөт. Бул чип физикалык түрдө LED-тилкесине бекитилген, андыктан LED-тилкеси белгилүү бир бурчта кармалып турганда, чип LED тилкесинин бурчун өлчөйт жана Arduino бул маалыматты виртуалдык объектинин абалын жаңыртуу үчүн колдонот устунга тең салмакта каралып, бир бурчтан кармалса, бир тараптан экинчи тарапка тоголонуучу шар болгон. Виртуалдык объекттин абалы LED тилкесинде жарыктандырылган жалгыз LED катары көрсөтүлгөн.

Жерге тартылуу күчүнүн таасири астында түшүп жаткан виртуалдык нерсенин абалын жаңыртуу үчүн, биз төмөнкү формуланы колдонобуз:

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

Менен:

y = метр менен жүргөн аралык y0 = старттык аралык v0 = метрдеги секирүү ылдамдыгы a = метрдеги ылдамдануу (тартылуу күчү)^2 t = секунддагы убакыт

1 -кадам: Circuit

Circuit
Circuit

Arduino Pro Mini, 5В жөнгө салгычтын +5V төөнөгүчүнө +5V менен камсыз кылуу аркылуу иштейт. Бул бир аз ортодоксалдуу көрүнүшү мүмкүн, бирок Вин ачык калганда, сиз полярдыкты артка кайтармайынча көйгөй жаратпайт, анткени бул сиздин Arduinoңузду тост кылат.

MPU6050 акселерометр жана гироскоп чипи аз кубаттуулуктагы 5Vдан 3V3ка чейин которгуч модулда иштейт жана Arduino менен I2C интерфейси аркылуу сүйлөшөт (SDA, SCL). Arduino Pro Mini менен SDA A4 менен туташат жана SCL A5 менен туташат, экөө тең Arduino Pro Mini PCBде жайгашкан. Мен колдонгон Pro Mini версиясы менен, A4 жана A5 ПХБнын ичинде жайгашкан (2 тешик) жана ПХБнын капталындагы төөнөгүчтөр аркылуу жеткиликтүү болгон эмес. MPU6050 ошондой эле жаңы маалыматтар бар болгондо Arduinoго айтуу үчүн колдонулган үзгүлтүккө чыгаруу (INT) бар. 74 LEDы бар WS2812B неопикселдүү LED тилкеси 5V менен түздөн -түз иштейт жана 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 менен өлчөнүүчү LED тилкесин жана бурчун колдонуп, тартылуу LED балансын ишке ашыруу

3 -кадам: Сүрөттөр

Сунушталууда: