فهرست مطالب:

LED ها و جاذبه؟: 4 مرحله
LED ها و جاذبه؟: 4 مرحله

تصویری: LED ها و جاذبه؟: 4 مرحله

تصویری: LED ها و جاذبه؟: 4 مرحله
تصویری: غیب گوی بزرگ سرنوشت رهبر رژیم را پیشگویی کرد 2024, جولای
Anonim
LED ها و جاذبه؟
LED ها و جاذبه؟

این پروژه اصلاً کاربرد عملی ندارد ، اما به عنوان تمرینی در پیاده سازی فرمول های فیزیک مربوط به گرانش در کد C در آردوینو آغاز شد. برای آشکارسازی همه چیز ، از نوار LED نئوپیکسلی با 74 LED استفاده شد. تأثیر شتاب گرانشی بر یک جسم با استفاده از شتاب سنج MPU-6050 و تراشه ژیروسکوپ نشان داده می شود. این تراشه به صورت فیزیکی به نوار LED متصل است ، بنابراین هنگامی که نوار LED در زاویه خاصی نگه داشته می شود ، تراشه زاویه نوار LED را اندازه گیری می کند و آردوینو از این اطلاعات برای به روز رسانی موقعیت یک شی مجازی استفاده می کند. توپی بود که روی یک تیر متعادل می شود و اگر پرتو در زاویه ای نگه داشته شود از یک طرف به طرف دیگر می چرخد. موقعیت شی مجازی روی نوار LED به عنوان یک LED واحد نشان داده شده است که روشن شده است.

برای به روز رسانی موقعیت یک جسم مجازی که تحت تأثیر گرانش به زمین می افتد ، از فرمول استفاده می کنیم:

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

با:

y = مسافت طی شده در متر y0 = فاصله شروع در متر v0 = سرعت شروع در متر/ثانیه a = شتاب (گرانش) در متر/ثانیه^2 t = زمان در ثانیه

مرحله 1: مدار

جریان
جریان

Arduino Pro Mini از طریق تغذیه منبع تغذیه +5V مستقیماً در پین +5V تغذیه می کند ، که خروجی تنظیم کننده 5V داخلی است. این ممکن است کمی ارتدوکس به نظر برسد ، اما وقتی Vin باز بماند ، مشکلی ایجاد نمی کند تا زمانی که قطبیت را معکوس نکنید ، زیرا مطمئناً آردوینو شما برشته می شود.

تراشه شتاب سنج و ژیروسکوپ MPU6050 از طریق ماژول مبدل 5V به 3V3 با قدرت کم تغذیه می شود و از طریق رابط I2C (SDA ، SCL) با آردوینو صحبت می کند. با آردوینو پرو مینی ، SDA به A4 و SCL به A5 متصل است که هر دو بر روی PCB Arduino Pro Mini قرار دارند. با نسخه Pro Mini که من استفاده می کنم ، A4 و A5 در داخل PCB قرار داشتند (2 سوراخ) و از طریق هدرهای پین در طرف PCB قابل دسترسی نبودند. MPU6050 همچنین دارای خروجی وقفه (INT) است که برای اطلاع از آردوینو در صورت موجود بودن داده های جدید استفاده می شود. نوار LED نئوپیکسلی WS2812B با 74 LED به طور مستقیم از منبع تغذیه 5 ولت تغذیه می کند و دارای 1 خط داده (DIN) است که به خروجی آردوینو متصل است.

مرحله 2: نرم افزار

من همه درایورهایی را که توسط sketch (.ino) استفاده می شود به جای استفاده از کتابخانه ها در همان پوشه sketch قرار می دهم. دلیل این امر این است که من نمی خواهم درایورها به روز شوند ، تا از وارد شدن اشکالات به داخل جلوگیری شود و از تغییراتی که در درایورها انجام دادم با به روز رسانی رونویسی شود.

در اینجا لیستی از فایل های پروژه وجود دارد:

  • Balancing_LED_using_MPU6050gyro.ino: فایل طرح
  • MPU6050.cpp / MPU6050.h: شتاب سنج و درایور ژیروسکوپ MPU6050
  • MPU6050_6Axis_MotionApps20.h: تعاریف و توابع MPU6050 DMP (پردازشگر دیجیتال)
  • helper_3dmath.h: تعاریف کلاس برای quaternions و بردارهای صحیح یا float.
  • I2Cdev.cpp / I2Cdev.h: درایور I2C با استفاده از کتابخانه سیم آردوینو
  • LEDMotion.cpp / LEDMotion.h: اجرای تعادل LED گرانش با استفاده از نوار LED و زاویه اندازه گیری شده توسط MPU6050

مرحله 3: تصاویر

توصیه شده: