Indholdsfortegnelse:

Lysdioder og tyngdekraft?: 4 trin
Lysdioder og tyngdekraft?: 4 trin

Video: Lysdioder og tyngdekraft?: 4 trin

Video: Lysdioder og tyngdekraft?: 4 trin
Video: РЕМОНТ светодиодной ЛАМПЫ своими руками за 1 МИНУТУ💡 LED лампочка Ильича отдыхает в сторонке 2024, Juli
Anonim
Lysdioder og tyngdekraft?
Lysdioder og tyngdekraft?

Dette projekt har slet ingen praktisk brug, men blev startet som en øvelse i implementering af fysikformler relateret til tyngdekraften i C-kode på en Arduino. For at gøre tingene synlige blev der brugt en neopixel LED-strip med 74 lysdioder. Gravitationsaccelerationens effekt på et objekt demonstreres ved hjælp af et MPU-6050 accelerometer og gyroskopchip. Denne chip er fysisk knyttet til LED-stripen, så når LED-stripen holdes i en bestemt vinkel, måler chippen LED-strimmelens vinkel, og Arduino bruger disse oplysninger til at opdatere placeringen af et virtuelt objekt, som om det var en bold, der er balanceret på en bjælke og ruller fra den ene side til den anden, hvis strålen holdes i en vinkel. Placeringen af det virtuelle objekt er angivet på LED -strimlen som en enkelt LED, der er oplyst.

For at opdatere placeringen af et virtuelt objekt, der falder til jorden under påvirkning af tyngdekraften, bruger vi formlen:

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

Med:

y = tilbagelagt afstand i meter y0 = startafstand i meter v0 = starthastighed i meter/sekund a = acceleration (tyngdekraft) i meter/sekund^2 t = tid i sekunder

Trin 1: Kredsløb

Kredsløb
Kredsløb

Arduino Pro Mini drives af at fodre en +5V forsyning direkte ind i +5V stiften, som er output fra den indbyggede 5V regulator. Dette kan virke lidt ortodoks, men når Vin efterlades åben, skaber det ikke et problem, så længe du ikke vender polariteten, for det ville helt sikkert skåle din Arduino.

MPU6050 accelerometer og gyroskopchip drives af et lavt effekt 5V til 3V3 konvertermodul og taler til Arduino via et I2C interface (SDA, SCL). Med Arduino Pro Mini er SDA forbundet til A4, og SCL er forbundet til A5, som begge er placeret på Arduino Pro Mini PCB. Med Pro Mini -versionen, som jeg bruger, var A4 og A5 placeret inden for printkortet (2 huller) og var ikke tilgængelige via pinhovederne på siderne af printkortet. MPU6050 har også en interrupt output (INT), der bruges til at fortælle Arduino, når der er nye data tilgængelige. WS2812B neopixel LED -strip med 74 LED'er drives direkte af 5V -forsyningen og har 1 datalinje (DIN), der er forbundet til en udgang fra Arduino.

Trin 2: Software

Jeg lagde alle de drivere, der bruges af skitsen (.ino) i den samme mappe som skitsen i stedet for at bruge biblioteker. Årsagen til dette er, at jeg ikke vil have driverne til at blive opdateret, for at forhindre fejl i at snige sig ind og for at forhindre, at ændringer, jeg gjorde i driverne, vil blive overskrevet af opdateringer.

Her er en liste over projektfilerne:

  • Balancing_LED_using_MPU6050gyro.ino: skitsefil
  • MPU6050.cpp / MPU6050.h: MPU6050 accelerometer og gyroskopdriver
  • MPU6050_6Axis_MotionApps20.h: MPU6050 DMP (digital motion processor) definitioner og funktioner
  • helper_3dmath.h: Klasse definitioner for kvaternioner og heltal eller float vektorer.
  • I2Cdev.cpp / I2Cdev.h: I2C driver ved hjælp af Arduino wire biblioteket
  • LEDMotion.cpp / LEDMotion.h: Implementering af tyngdekraftens LED -balance ved hjælp af LED -strimmel og vinkel målt af MPU6050

Trin 3: Billeder

Anbefalede: