Sisukord:

LEDid ja gravitatsioon?: 4 sammu
LEDid ja gravitatsioon?: 4 sammu

Video: LEDid ja gravitatsioon?: 4 sammu

Video: LEDid ja gravitatsioon?: 4 sammu
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Juuli
Anonim
LEDid ja gravitatsioon?
LEDid ja gravitatsioon?

Sellel projektil pole praktilist kasu, kuid see algatati harjutusena raskusjõuga seotud füüsika valemite rakendamiseks Arduino C-koodis. Asjade nähtavaks tegemiseks kasutati neopiksel-LED-riba 74 LED-iga. Gravitatsioonikiirenduse mõju objektile demonstreeritakse MPU-6050 kiirendusmõõturi ja güroskoobi kiibi abil. See kiip on füüsiliselt LED-riba külge kinnitatud, nii et kui LED-riba hoitakse teatud nurga all, mõõdab kiip LED-riba nurka ja Arduino kasutab seda teavet virtuaalse objekti asukoha värskendamiseks oli pall, mis on talal tasakaalus ja veereb ühelt küljelt teisele, kui tala hoitakse nurga all. Virtuaalse objekti asukoht on LED -ribal näidatud ühe LED -valgustusena.

Gravitatsiooni mõjul maapinnale langeva virtuaalse objekti asukoha värskendamiseks kasutame valemit:

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

Koos:

y = läbitud vahemaa meetrites y0 = stardidistants meetrites v0 = stardikiirus meetrites sekundis a = kiirendus (gravitatsioon) meetrites sekundis^2 t = aeg sekundites

Samm: vooluring

Vooluring
Vooluring

Arduino Pro Mini saab toidet, toites +5 V toite otse +5 V kontakti, mis on pardal oleva 5 V regulaatori väljund. See võib tunduda pisut õigeusklik, kuid kui Vin jäetakse avatuks, ei tekita see probleemi seni, kuni te polaarsust ümber ei muuda, sest see rööviks kindlasti teie Arduinot.

MPU6050 kiirendusmõõtur ja güroskoobi kiip toidetakse väikese võimsusega 5V kuni 3V3 muunduri mooduli kaudu ja räägib Arduinoga I2C liidese (SDA, SCL) kaudu. Arduino Pro Mini puhul on SDA ühendatud A4 -ga ja SCL on ühendatud A5 -ga, mis mõlemad asuvad Arduino Pro Mini PCB -l. Minu kasutatava Pro Mini versiooni korral asusid A4 ja A5 trükkplaadil (2 auku) ega olnud ligipääsetavad PCB külgedel asuvate tihvtide kaudu. MPU6050 -l on ka katkestusväljund (INT), mida kasutatakse Arduino teavitamiseks uute andmete olemasolul. WS2812B 74 LED -iga neopiksel -LED -riba saab toidet otse 5 V toiteallikast ja sellel on 1 andmeliin (DIN), mis on ühendatud Arduino väljundiga.

Samm 2: Tarkvara

Panin kõik visandiga (.ino) kasutatavad draiverid teekide kasutamise asemel visandiga samasse kausta. Selle põhjuseks on asjaolu, et ma ei taha, et draivereid värskendataks, et vältida vigade sissepääsemist ja vältida seda, et draiveritele tehtud muudatused kirjutatakse uuendustega üle.

Siin on projektifailide loend:

  • Balancing_LED_using_MPU6050gyro.ino: eskiisfail
  • MPU6050.cpp / MPU6050.h: MPU6050 kiirendusmõõtur ja güroskoobi draiver
  • MPU6050_6Axis_MotionApps20.h: MPU6050 DMP (digitaalne liikumisprotsessor) määratlused ja funktsioonid
  • helper_3dmath.h: Kvaternioonide ja täis- või ujukvektorite klasside määratlused.
  • I2Cdev.cpp / I2Cdev.h: I2C draiver, kasutades Arduino traaditeeki
  • LEDMotion.cpp / LEDMotion.h: raskusjõu LED -tasakaalu rakendamine LED -riba ja MPU6050 abil mõõdetud nurga abil

3. samm: pildid

Soovitan: