Turinys:

Šviesos diodai ir gravitacija?: 4 žingsniai
Šviesos diodai ir gravitacija?: 4 žingsniai

Video: Šviesos diodai ir gravitacija?: 4 žingsniai

Video: Šviesos diodai ir gravitacija?: 4 žingsniai
Video: 🟡 POCO X5 PRO - САМЫЙ ДЕТАЛЬНЫЙ ОБЗОР и ТЕСТЫ 2024, Lapkritis
Anonim
Šviesos diodai ir gravitacija?
Šviesos diodai ir gravitacija?

Šis projektas neturi jokios praktinės naudos, tačiau buvo pradėtas kaip fizinių formulių, susijusių su gravitacija, C kodo diegimas „Arduino“. Kad viskas būtų matoma, buvo naudojama neopikselinė LED juostelė su 74 šviesos diodais. Gravitacijos pagreičio poveikis objektui parodomas naudojant pagreičio matuoklį MPU-6050 ir giroskopo mikroschemą. Šis lustas yra fiziškai pritvirtintas prie LED juostos, taigi, kai LED juostelė laikoma tam tikru kampu, lustas matuoja LED juostos kampą, o „Arduino“naudoja šią informaciją, kad atnaujintų virtualaus objekto padėtį, tarsi buvo rutulys, kuris yra subalansuotas ant sijos ir rieda iš vienos pusės į kitą, jei sija laikoma kampu. Virtualiojo objekto padėtis LED juostoje nurodyta kaip vienas šviesos diodas, kuris šviečia.

Norėdami atnaujinti virtualaus objekto, krentančio į žemę veikiant sunkio jėgai, padėtį, naudojame formulę:

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

Su:

y = nuvažiuotas atstumas metrais y0 = pradžios atstumas metrais v0 = pradžios greitis metrais/sekundę a = pagreitis (gravitacija) metrais/sekunde^2 t = laikas sekundėmis

1 žingsnis: grandinė

Grandinė
Grandinė

„Arduino Pro Mini“maitinamas maitinant +5 V maitinimo šaltinį tiesiai į +5 V kaištį, kuris yra įmontuoto 5 V reguliatoriaus išėjimas. Tai gali atrodyti šiek tiek stačiatikiai, tačiau kai Vin paliekamas atviras, tai nesukelia problemų tol, kol nepakeisite poliškumo, nes tai tikrai skrudins jūsų „Arduino“.

Akselerometras ir giroskopo lustas MPU6050 yra maitinamas per mažos galios 5V - 3V3 keitiklio modulį ir kalbasi su „Arduino“per I2C sąsają (SDA, SCL). Naudojant „Arduino Pro Mini“, SDA prijungtas prie A4, o SCL prijungtas prie A5, kurie abu yra „Arduino Pro Mini“PCB. Naudojant „Pro Mini“versiją, kurią naudoju, A4 ir A5 buvo išdėstyti PCB (2 skylės) ir nebuvo prieinami per kaiščių antraštes PCB šonuose. MPU6050 taip pat turi pertraukimo išvestį (INT), kuri naudojama pranešti „Arduino“, kai yra naujų duomenų. WS2812B neopikselinė LED juostelė su 74 šviesos diodais maitinama tiesiogiai iš 5 V maitinimo šaltinio ir turi 1 duomenų liniją (DIN), prijungtą prie „Arduino“išvesties.

2 žingsnis: programinė įranga

Aš įdėjau visas tvarkykles, kurias naudoja eskizas (.ino) į tą patį aplanką kaip eskizas, o ne naudojuosi bibliotekomis. Taip yra todėl, kad nenoriu, kad tvarkyklės būtų atnaujintos, kad neįsileistų klaidų ir kad pakeitimai, kuriuos padariau tvarkyklėse, nebūtų perrašyti atnaujinimais.

Čia yra projekto failų sąrašas:

  • Balancing_LED_using_MPU6050gyro.ino: eskizo failas
  • MPU6050.cpp / MPU6050.h: MPU6050 akselerometras ir giroskopo tvarkyklė
  • MPU6050_6Axis_MotionApps20.h: MPU6050 DMP (skaitmeninio judesio procesoriaus) apibrėžimai ir funkcijos
  • helper_3dmath.h: klasių apibrėžimai ketvirčiams ir sveikiesiems arba plūdiniams vektoriams.
  • I2Cdev.cpp / I2Cdev.h: I2C tvarkyklė naudojant „Arduino“laidų biblioteką
  • LEDMotion.cpp / LEDMotion.h: Gravitacijos šviesos diodų balanso įgyvendinimas naudojant LED juostą ir kampą, išmatuotą MPU6050

3 žingsnis: nuotraukos

Rekomenduojamas: