Sisällysluettelo:

LEDit ja painovoima?: 4 vaihetta
LEDit ja painovoima?: 4 vaihetta

Video: LEDit ja painovoima?: 4 vaihetta

Video: LEDit ja painovoima?: 4 vaihetta
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Syyskuu
Anonim
LEDit ja painovoima?
LEDit ja painovoima?

Tällä projektilla ei ole käytännön hyötyä ollenkaan, mutta se aloitettiin harjoituksena painovoimaan liittyvien fysiikan kaavojen toteuttamiseksi Arduinolla. Asioiden näkymiseksi käytettiin neopixel-LED-nauhaa, jossa oli 74 LEDiä. Painovoimaisen kiihtyvyyden vaikutus kohteeseen osoitetaan käyttämällä MPU-6050-kiihtyvyysmittaria ja gyroskooppi-sirua. Tämä siru on fyysisesti kiinnitetty LED-nauhaan, joten kun LED-nauhaa pidetään tietyssä kulmassa, siru mittaa LED-nauhan kulman ja Arduino käyttää näitä tietoja virtuaalikohteen sijainnin päivittämiseen ikään kuin se oli pallo, joka on tasapainossa palkin päällä ja joka rullaa puolelta toiselle, jos palkki pidetään kulmassa. Virtuaaliobjektin sijainti näkyy LED -nauhassa yhtenä LED -valona, joka palaa.

Päivitämme painovoiman vaikutuksesta maahan putoavan virtuaaliobjektin sijainnin käyttämällä kaavaa:

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

Kanssa:

y = ajettu matka metreinä y0 = lähtömatka metreinä v0 = aloitusnopeus metreinä/sekunti a = kiihtyvyys (painovoima) metreinä/sekunnissa^2 t = aika sekunneissa

Vaihe 1: Piiri

Piiri
Piiri

Arduino Pro Mini saa virtansa syöttämällä +5 V: n jännitteen suoraan +5 V: n nastaan, joka on sisäisen 5 V: n säätimen lähtö. Tämä saattaa tuntua hieman ortodoksiselta, mutta kun Vin jätetään auki, se ei aiheuta ongelmia niin kauan kuin et käännä napaisuutta, koska se varmasti paahtoisi Arduinosi.

MPU6050 -kiihtyvyysanturi ja gyroskooppi -siru saavat virtaa pienitehoisesta 5V - 3V3 -muuntimoduulista ja puhuu Arduinon kanssa I2C -liitännän (SDA, SCL) kautta. Arduino Pro Mini -laitteella SDA on liitetty A4: ään ja SCL A5: een, jotka molemmat sijaitsevat Arduino Pro Mini -piirilevyssä. Käyttämässäni Pro Mini -versiossa A4 ja A5 sijaitsivat piirilevyssä (2 reikää), eikä niihin ollut pääsyä piirilevyn sivuilla olevien nastojen kautta. MPU6050: ssä on myös keskeytyslähtö (INT), jota käytetään kertomaan Arduinolle, kun uusia tietoja on saatavilla. WS2812B -neopixel -LED -nauha, jossa on 74 LEDiä, saa virtansa suoraan 5 V: n virtalähteestä, ja siinä on 1 DIN -linja, joka on kytketty Arduinon lähtöön.

Vaihe 2: Ohjelmisto

Laitoin kaikki luonnoksen (.ino) käyttämät ohjaimet samaan kansioon kuin luonnos kirjastojen käytön sijaan. Syynä tähän on se, että en halua, että ohjaimet päivitetään, jotta virheet eivät pääse sisään ja että päivitykset eivät korvaa kuljettajille tekemiäni muutoksia.

Tässä on luettelo projektitiedostoista:

  • Balancing_LED_using_MPU6050gyro.ino: luonnostiedosto
  • MPU6050.cpp / MPU6050.h: MPU6050 -kiihtyvyysanturi ja gyroskoopin ohjain
  • MPU6050_6Axis_MotionApps20.h: MPU6050 DMP (digitaalinen liikeprosessori) määritelmät ja toiminnot
  • helper_3dmath.h: Luokkamääritelmät kvaternioneille ja kokonaisluku- tai kelluvvektoreille.
  • I2Cdev.cpp / I2Cdev.h: I2C -ohjain, joka käyttää Arduino -lankakirjastoa
  • LEDMotion.cpp / LEDMotion.h: Painovoiman LED -tasapainon toteuttaminen käyttämällä LED -nauhaa ja MPU6050: n mittaamaa kulmaa

Vaihe 3: Kuvat

Suositeltava: