Satura rādītājs:

Gaismas diodes un gravitācija?: 4 soļi
Gaismas diodes un gravitācija?: 4 soļi

Video: Gaismas diodes un gravitācija?: 4 soļi

Video: Gaismas diodes un gravitācija?: 4 soļi
Video: Как сделать светодиодную лампочку Диммер Схема » вики полезно Сделай сам проект #шорты 2024, Jūlijs
Anonim
Gaismas diodes un gravitācija?
Gaismas diodes un gravitācija?

Šim projektam vispār nav praktiska pielietojuma, bet tas tika uzsākts kā vingrinājums fizikas formulu ieviešanai saistībā ar gravitāciju C kodā Arduino. Lai padarītu lietas redzamas, tika izmantota neopikseļu LED sloksne ar 74 gaismas diodēm. Gravitācijas paātrinājuma ietekmi uz objektu demonstrē, izmantojot MPU-6050 akselerometru un žiroskopa mikroshēmu. Šī mikroshēma ir fiziski piestiprināta pie LED sloksnes, tāpēc, kad LED sloksne tiek turēta noteiktā leņķī, mikroshēma mēra LED sloksnes leņķi, un Arduino izmanto šo informāciju, lai atjauninātu virtuālā objekta stāvokli tā, it kā bija bumba, kas ir līdzsvarota uz sijas un ripo no vienas puses uz otru, ja staru tur leņķī. Virtuālā objekta atrašanās vieta ir norādīta uz LED sloksnes kā viena gaismas diode, kas ir izgaismota.

Lai atjauninātu virtuālā objekta stāvokli, kas gravitācijas ietekmē nokrīt uz zemes, mēs izmantojam formulu:

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

Ar:

y = nobrauktais attālums metros y0 = sākuma attālums metros v0 = sākuma ātrums metros/sekundē a = paātrinājums (smagums) metros/sekundē^2 t = laiks sekundēs

1. darbība: ķēde

Ķēde
Ķēde

Arduino Pro Mini tiek darbināts, barojot +5 V barošanas avotu tieši +5 V tapā, kas ir iebūvētā 5 V regulatora izeja. Tas varētu šķist nedaudz pareizticīgi, bet, kad Vins tiek atstāts vaļā, tas nerada problēmas, ja vien jūs neatceļat polaritāti, jo tas noteikti grauzdētu jūsu Arduino.

Akselerometrs un žiroskopa mikroshēma MPU6050 tiek darbināta, izmantojot mazjaudas 5V līdz 3V3 pārveidotāja moduli, un sarunājas ar Arduino, izmantojot I2C saskarni (SDA, SCL). Izmantojot Arduino Pro Mini, SDA ir savienots ar A4, bet SCL - ar A5, kas abi atrodas uz Arduino Pro Mini PCB. Izmantojot Pro Mini versiju, ko izmantoju, A4 un A5 atradās PCB (2 caurumi) un nebija pieejami, izmantojot PCB sānos esošās tapas. MPU6050 ir arī pārtraukuma izeja (INT), kas tiek izmantota, lai informētu Arduino, kad ir pieejami jauni dati. WS2812B neopikseļu LED sloksne ar 74 gaismas diodēm tiek darbināta tieši no 5 V barošanas avota, un tai ir 1 datu līnija (DIN), kas ir savienota ar Arduino izeju.

2. darbība: programmatūra

Es ievietoju visus draiverus, kurus izmanto skice (.ino), tajā pašā mapē kā skice, nevis izmantoju bibliotēkas. Iemesls tam ir tas, ka es nevēlos, lai draiveri tiktu atjaunināti, lai novērstu kļūdu iekļūšanu un novērstu to, ka izmaiņas, ko es izdarīju draiveros, tiks pārrakstītas ar atjauninājumiem.

Šeit ir projekta failu saraksts:

  • Balancing_LED_using_MPU6050gyro.ino: skices fails
  • MPU6050.cpp / MPU6050.h: MPU6050 akselerometrs un žiroskopa draiveris
  • MPU6050_6Axis_MotionApps20.h: MPU6050 DMP (digitālais kustības procesors) definīcijas un funkcijas
  • helper_3dmath.h: klases definīcijas kvarteriem un veseliem skaitļiem vai peldošiem vektoriem.
  • I2Cdev.cpp / I2Cdev.h: I2C draiveris, izmantojot Arduino vadu bibliotēku
  • LEDMotion.cpp / LEDMotion.h: Gravitācijas LED līdzsvara ieviešana, izmantojot LED sloksni un MPU6050 mērīto leņķi

3. solis: attēli

Ieteicams: