Përmbajtje:

LED dhe graviteti?: 4 hapa
LED dhe graviteti?: 4 hapa

Video: LED dhe graviteti?: 4 hapa

Video: LED dhe graviteti?: 4 hapa
Video: ТАКОВ МОЙ ПУТЬ В L4D2 2024, Korrik
Anonim
LED dhe Graviteti?
LED dhe Graviteti?

Ky projekt nuk ka fare përdorim praktik, por u fillua si një ushtrim në zbatimin e formulave të fizikës që lidhen me gravitetin në kodin C në një Arduino. Për t'i bërë gjërat të dukshme, u përdor një shirit LED neopixel me 74 LED. Efekti i nxitimit gravitacional në një objekt demonstrohet duke përdorur një përshpejtues MPU-6050 dhe një çip xhiroskopi. Ky çip është i lidhur fizikisht me shiritin LED, kështu që kur shiriti LED mbahet në një kënd të caktuar, çipi mat këndin e shiritit LED dhe Arduino përdor këtë informacion për të azhurnuar pozicionin e një objekti virtual sikur ishte një top i ekuilibruar në një rreze dhe rrotullohet nga njëra anë në tjetrën nëse rrezja mbahet në një kënd. Pozicioni i objektit virtual tregohet në shiritin LED si një LED i vetëm që ndriçohet.

Për të përditësuar pozicionin e një objekti virtual që bie në tokë nën ndikimin e gravitetit, ne përdorim formulën:

y = y0 + (V0 * t) + (0.5 * a * t^2)

Me:

y = distanca e përshkuar në metra y0 = distanca e fillimit në metra v0 = shpejtësia e fillimit në metra/sekonda a = nxitimi (graviteti) në metra/e dyta^2 t = koha në sekonda

Hapi 1: Qarku

Qarku
Qarku

Arduino Pro Mini mundësohet duke ushqyer një furnizim me +5V direkt në kunjin +5V, i cili është dalja e rregullatorit 5V në bord. Kjo mund të duket paksa ortodokse, por kur Vin lihet i hapur, nuk krijon problem përderisa nuk e ktheni polaritetin, sepse kjo sigurisht që do të ngrejë Arduino -n tuaj.

Përshpejtuesi dhe çipi xhiroskop MPU6050 mundësohet përmes një moduli konvertues me fuqi të ulët 5V në 3V3 dhe bisedon me Arduino përmes një ndërfaqeje I2C (SDA, SCL). Me Arduino Pro Mini, SDA është e lidhur me A4 dhe SCL është e lidhur me A5, të cilat të dyja janë të vendosura në PCB Arduino Pro Mini. Me versionin Pro Mini që unë përdor, A4 dhe A5 ishin të vendosura brenda PCB (2 vrima) dhe nuk ishin të arritshme përmes titujve pin në anët e PCB. MPU6050 gjithashtu ka një dalje ndërprerëse (INT) që përdoret për t'i treguar Arduino kur ka të dhëna të reja në dispozicion. Shiriti LED neopixel WS2812B me 74 LEDs mundësohet drejtpërdrejt nga furnizimi me 5V dhe ka 1 linjë të dhënash (DIN) që është e lidhur me një dalje të Arduino.

Hapi 2: Softueri

Të gjithë drejtuesit që përdoren nga skica (.ino) i vendos në të njëjtën dosje me skicën në vend që të përdor bibliotekat. Arsyeja për këtë është se unë nuk dua që drejtuesit të azhurnohen, për të parandaluar që gabimet të hyjnë fshehurazi dhe për të parandaluar që ndryshimet që kam bërë tek drejtuesit do të mbishkruhen nga përditësimet.

Këtu është një listë e skedarëve të projektit:

  • Balancing_LED_using_MPU6050gyro.ino: skicë skedari
  • MPU6050.cpp / MPU6050.h: Përshpejtues MP MP26050 dhe xhiroskop
  • MPU6050_6Axis_MotionApps20.h: Përkufizimet dhe funksionet e MPU6050 DMP (procesori i lëvizjes dixhitale)
  • helper_3dmath.h: Përkufizimet e klasës për kuaternionet dhe vektorët e plotë ose notues.
  • I2Cdev.cpp / I2Cdev.h: Drejtuesi I2C duke përdorur bibliotekën me tela Arduino
  • LEDMotion.cpp / LEDMotion.h: Zbatimi i bilancit të gravitetit LED duke përdorur shiritin LED dhe këndin e matur me MPU6050

Hapi 3: Fotografitë

Recommended: