INHOUDSOPGAWE:

LED's en swaartekrag?: 4 stappe
LED's en swaartekrag?: 4 stappe

Video: LED's en swaartekrag?: 4 stappe

Video: LED's en swaartekrag?: 4 stappe
Video: Электрика в квартире своими руками. Финал. Переделка хрущевки от А до Я. #11 2024, November
Anonim
LED's en swaartekrag?
LED's en swaartekrag?

Hierdie projek het glad geen praktiese nut nie, maar is begin as 'n oefening vir die implementering van fisikaformules wat verband hou met swaartekrag in C-kode op 'n Arduino. Om dinge sigbaar te maak, is 'n neopixel LED-strook met 74 LED's gebruik. Die effek van die gravitasieversnelling op 'n voorwerp word aangetoon deur 'n MPU-6050 versnellingsmeter en 'n gyroscoopskyfie te gebruik. Hierdie chip is fisies aan die LED-strook geheg, dus as die LED-strook in 'n sekere hoek gehou word, meet die chip die hoek van die LED-strook en die Arduino gebruik hierdie inligting om die posisie van 'n virtuele voorwerp by te werk asof dit was 'n bal wat op 'n balk gebalanseer is en van die een kant na die ander rol as die balk skuins gehou word. Die posisie van die virtuele voorwerp word op die LED -strook aangedui as 'n enkele LED wat verlig word.

Om die posisie van 'n virtuele voorwerp wat onder die invloed van swaartekrag op die aarde val, by te werk, gebruik ons die formule:

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

Met:

y = afgelegde afstand in meters y0 = beginafstand in meters v0 = beginningsnelheid in meters/seconde a = versnelling (gravitasie) in meters/seconde^2 t = tyd in sekondes

Stap 1: Kringloop

Kring
Kring

Die Arduino Pro Mini word aangedryf deur 'n +5V -toevoer direk in die +5V -pen te voer, wat die uitset is van die ingeboude 5V -reguleerder. Dit lyk miskien 'n bietjie ortodoks, maar as Vin oop bly, skep dit nie 'n probleem nie, solank jy nie die polariteit keer nie, want dit sal beslis jou Arduino rooster.

Die MPU6050 -versnellingsmeter en die gyroscoopskyfie word aangedryf deur 'n lae -krag 5V tot 3V3 omskakelingsmodule en praat met die Arduino via 'n I2C -koppelvlak (SDA, SCL). Met die Arduino Pro Mini is SDA gekoppel aan A4 en SCL is gekoppel aan A5, wat albei op die Arduino Pro Mini PCB geleë is. Met die Pro Mini -weergawe wat ek gebruik, was A4 en A5 binne die PCB (2 gate) geleë en was hulle nie toeganklik via die penkop aan die kante van die PCB nie. Die MPU6050 het ook 'n onderbrekingsuitset (INT) wat gebruik word om die Arduino te vertel wanneer daar nuwe data beskikbaar is. Die WS2812B neopixel LED -strook met 74 LED's word direk aangedryf deur die 5V -toevoer en het 1 data -lyn (DIN) wat gekoppel is aan die uitset van die Arduino.

Stap 2: sagteware

Ek plaas al die bestuurders wat deur die skets (.ino) gebruik word, in dieselfde gids as die skets in plaas van die gebruik van biblioteke. Die rede hiervoor is dat ek nie wil hê dat die bestuurders opgedateer word nie, om te voorkom dat foute binnekom en dat veranderinge wat ek aan die bestuurders aangebring het, deur opdaterings oorskryf word.

Hier is 'n lys van die projeklêers:

  • Balancing_LED_using_MPU6050gyro.ino: sketslêer
  • MPU6050.cpp / MPU6050.h: MPU6050 versnellingsmeter en gyroscoopbestuurder
  • MPU6050_6Axis_MotionApps20.h: MPU6050 DMP (digitale bewegingsverwerker) definisies en funksies
  • helper_3dmath.h: Klasdefinisies vir kwaternies en heelgetal- of vlotvektore.
  • I2Cdev.cpp / I2Cdev.h: I2C -bestuurder wat die Arduino -draadbiblioteek gebruik
  • LEDMotion.cpp / LEDMotion.h: Implementering van die gravitasie LED -balans met behulp van die LED -strook en hoek gemeet deur die MPU6050

Stap 3: Prente

Aanbeveel: