Բովանդակություն:

LED- ներ և ձգողականություն: 4 քայլ
LED- ներ և ձգողականություն: 4 քայլ

Video: LED- ներ և ձգողականություն: 4 քայլ

Video: LED- ներ և ձգողականություն: 4 քայլ
Video: ՇՏԱՊ `Արթուրը Ուղիղ եթերում է։Նոր ՇՈԿԱՅԻՆ բացահայտումներ Դիտեք 4֊րդ րոպեից և տարածեք։ 2024, Հուլիսի
Anonim
LED- ներ և գրավիտացիա?
LED- ներ և գրավիտացիա?

Այս նախագիծը ընդհանրապես գործնական կիրառություն չունի, բայց սկիզբ է դրվել որպես վարժություն ՝ Arduino- ում C- կոդի ծանրության հետ կապված ֆիզիկական բանաձևերի իրականացման համար: Իրերը տեսանելի դարձնելու համար օգտագործվել է neopixel LED- ժապավեն ՝ 74 LED- ով: Գրավիտացիոն արագացման ազդեցությունը օբյեկտի վրա ցուցադրվում է MPU-6050 արագացուցիչի և գիրոսկոպի չիպի միջոցով: Այս չիպը ֆիզիկապես կցված է LED շերտի վրա, այնպես որ, երբ LED շերտը պահվում է որոշակի անկյան տակ, չիպը չափում է LED շերտի անկյունը, և Arduino- ն օգտագործում է այս տեղեկատվությունը վիրտուալ օբյեկտի դիրքը թարմացնելու համար գնդակ էր, որը հավասարակշռված է ճառագայթի վրա և գլորվում է մի կողմից մյուսը, եթե ճառագայթը պահվում է անկյան տակ: Վիրտուալ օբյեկտի դիրքը նշված է LED շերտի վրա որպես մեկ լուսավորված լուսադիոդ:

Graանրության ազդեցության տակ երկիր ընկնող վիրտուալ օբյեկտի դիրքը թարմացնելու համար մենք օգտագործում ենք բանաձևը.

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

Հետ:

y = անցած հեռավորությունը մետր y0 = մեկնարկի հեռավորությունը մետր v0 = մեկնարկի արագությունը մետրերով/վայրկյան a = արագացում (ինքնահոս) մետրերում/վայրկյան^2 t = ժամանակը վայրկյաններում

Քայլ 1: Շղթա

Շրջան
Շրջան

Arduino Pro Mini- ն սնուցվում է +5V լարման միջոցով անմիջապես +5V պինով, որը ինքնաթիռի 5V կարգավորիչի ելքն է: Սա կարող է մի փոքր ուղղափառ թվալ, բայց երբ Vin- ը բաց է մնում, դա խնդիր չի ստեղծի, քանի դեռ դուք չեք հակադարձել բևեռականությունը, քանի որ դա, անշուշտ, կենաց կտար ձեր Arduino- ին:

MPU6050 արագացուցիչ և գիրոսկոպ չիպը սնուցվում է ցածր հզորության 5V- ից 3V3 փոխարկիչ մոդուլի միջոցով և Arduino- ի հետ խոսում է I2C ինտերֆեյսի միջոցով (SDA, SCL): Arduino Pro Mini- ով SDA- ն միացված է A4- ին, իսկ SCL- ը `A5- ին, որոնք երկուսն էլ տեղակայված են Arduino Pro Mini PCB- ի վրա: Իմ օգտագործած Pro Mini տարբերակով ՝ A4 և A5- ը տեղակայված էին PCB- ի ներսում (2 անցք) և անհասանելի էին PCB- ի կողմերում տեղադրված քորոցների վերնագրերի միջոցով: MPU6050- ն ունի նաև ընդհատման ելք (INT), որն օգտագործվում է Arduino- ին տեղեկացնելու համար, երբ առկա են նոր տվյալներ: WS2812B neopixel LED ժապավենը ՝ 74 LED- ով, սնվում է անմիջապես 5 Վ լարման միջոցով և ունի 1 տվյալների գիծ (DIN), որը միացված է Arduino- ի ելքին:

Քայլ 2: Softwareրագրակազմ

Բոլոր սկավառակները, որոնք օգտագործվում են էսքիզի (.ino) կողմից, էսքիզի հետ տեղադրում եմ գրադարաններ օգտագործելու փոխարեն: Դրա պատճառն այն է, որ ես չեմ ցանկանում, որ վարորդները թարմացվեն, կանխեն սխալների ներթափանցումը և կանխեն, որ այն փոփոխությունները, որոնք ես արել եմ վարորդների վրա, կգրվեն թարմացումներով:

Ահա ծրագրի ֆայլերի ցանկը.

  • Balancing_LED_using_MPU6050gyro.ino. Էսքիզային ֆայլ
  • MPU6050.cpp / MPU6050.h: MPU6050 արագացուցիչ և գիրոսկոպ վարորդ
  • MPU6050_6Axis_MotionApps20.h: MPU6050 DMP (թվային շարժման պրոցեսոր) սահմանումներ և գործառույթներ
  • helper_3dmath.h: Չորրորդական և ամբողջական կամ բոց վեկտորների դասի սահմանումներ:
  • I2Cdev.cpp / I2Cdev.h: I2C վարորդ ՝ օգտագործելով Arduino լարային գրադարանը
  • LEDMotion.cpp / LEDMotion.h. Ինքնահոս LED հավասարակշռության կիրառում `օգտագործելով LED շերտը և անկյունը, որը չափվում է MPU6050- ով

Քայլ 3: Նկարներ

Խորհուրդ ենք տալիս: