Mundarija:

LEDlar va tortishish kuchi: 4 qadam
LEDlar va tortishish kuchi: 4 qadam

Video: LEDlar va tortishish kuchi: 4 qadam

Video: LEDlar va tortishish kuchi: 4 qadam
Video: NAMANGAN UYCHI 2024, Noyabr
Anonim
LEDlar va tortishish kuchi?
LEDlar va tortishish kuchi?

Bu loyihaning amaliy foydasi yo'q, lekin Arduino-dagi C-kodda tortishish bilan bog'liq fizika formulalarini amalga oshirish uchun mashq sifatida boshlangan. Narsalarni ko'rinadigan qilish uchun 74 LEDli neopikselli LED tasmasi ishlatilgan. Gravitatsion tezlanishning ob'ektga ta'siri MPU-6050 akselerometr va giroskop chipi yordamida namoyon bo'ladi. Bu chip LED tasmasiga jismonan biriktirilgan, shuning uchun LED chizig'i ma'lum burchak ostida ushlab turilganda, chip LED chizig'ining burchagini o'lchaydi va Arduino ushbu ma'lumotdan virtual ob'ekt o'rnini go'yo yangilash uchun foydalanadi. Agar nur burchak ostida ushlab turilsa, u nurda muvozanatli va bir tomondan ikkinchisiga o'ralgan to'p edi. LED tasmasida virtual ob'ektning holati yoritilgan bitta LED sifatida ko'rsatilgan.

Gravitatsiya ta'siri ostida erga tushayotgan virtual ob'ekt o'rnini yangilash uchun biz quyidagi formuladan foydalanamiz:

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

Bilan:

y = metr bilan yurilgan masofa y0 = boshlanish masofasi metrda v0 = metrda/sekundda boshlanish tezligi a = metrda/sekundda tezlashuv (tortishish kuchi)^2 t = soniyada vaqt

1 -qadam: O'chirish

O'chirish
O'chirish

Arduino Pro Mini +5V kuchlanishli +5V piniga to'g'ridan -to'g'ri besleme orqali quvvatlanadi, bu bortdagi 5V regulyatorining chiqishi. Bu biroz pravoslav tuyulishi mumkin, lekin Vin ochiq qolganda, siz qutbni teskari aylantirmaguningizcha muammo tug'dirmaydi, chunki bu, albatta, sizning Arduino -ni tushuradi.

MPU6050 akselerometri va giroskop chipi past quvvatli 5V dan 3V3 gacha bo'lgan konvertor moduli orqali quvvatlanadi va Arduino bilan I2C interfeysi (SDA, SCL) orqali gaplashadi. Arduino Pro Mini yordamida SDA A4 -ga ulangan va SCL A5 -ga ulangan, ular ikkalasi Arduino Pro Mini PCB -da joylashgan. Men foydalanadigan Pro Mini versiyasi bilan A4 va A5 PCB ichida joylashgan (2 teshik) va ularga PCB yon tomonidagi pin sarlavhalari orqali kirish mumkin emas edi. MPU6050 shuningdek, yangi ma'lumotlar mavjud bo'lganda Arduino -ga xabar berish uchun ishlatiladigan uzilish chiqishiga (INT) ega. 74 LEDli WS2812B neopikselli LED tasmasi to'g'ridan -to'g'ri 5V quvvat manbai bilan quvvatlanadi va Arduino chiqishiga ulangan 1 ta ma'lumotlar liniyasiga (DIN) ega.

2 -qadam: dasturiy ta'minot

Men eskiz (.ino) ishlatadigan barcha drayverlarni kutubxonalar o'rniga eskiz bilan bir papkaga joylashtiraman. Buning sababi shundaki, men haydovchilarning yangilanishini xohlamayman, xatolarning oldini olish va haydovchilarga qilgan o'zgarishlarning oldini olish uchun yangilanishlar yoziladi.

Bu erda loyiha fayllari ro'yxati:

  • Balancing_LED_using_MPU6050gyro.ino: eskiz fayli
  • MPU6050.cpp / MPU6050.h: MPU6050 akselerometr va giroskop drayveri
  • MPU6050_6Axis_MotionApps20.h: MPU6050 DMP (raqamli harakat protsessori) ta'riflari va funktsiyalari
  • helper_3dmath.h: quaternionlar va butun sonlar yoki float vektorlari uchun sinf ta'riflari.
  • I2Cdev.cpp / I2Cdev.h: Arduino sim kutubxonasi yordamida I2C drayveri
  • LEDMotion.cpp / LEDMotion.h: MPU6050 tomonidan o'lchangan LED chizig'i va burchagi yordamida tortishish LED muvozanatini amalga oshirish.

3 -qadam: Rasmlar

Tavsiya: