תוכן עניינים:

נוריות וכבידה?: 4 שלבים
נוריות וכבידה?: 4 שלבים

וִידֵאוֹ: נוריות וכבידה?: 4 שלבים

וִידֵאוֹ: נוריות וכבידה?: 4 שלבים
וִידֵאוֹ: 4 דגלים אדומים של דייטינג 2024, נוֹבֶמבֶּר
Anonim
נוריות וכבידה?
נוריות וכבידה?

לפרויקט זה אין שימוש מעשי כלל, אך הוא יזם כתרגיל ביישום נוסחאות פיזיקה הקשורות לכוח הכבידה בקוד C על ארדואינו. כדי להראות את הדברים, נעשה שימוש ברצועת LED של neopixel עם 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 המשולב. זה אולי נראה קצת אורתודוקסי, אבל כאשר וין נשאר פתוח, זה לא יוצר בעיה כל עוד אתה לא הופך את הקוטביות, כי זה בהחלט יקלוט את הארדואינו שלך.

מד התאוצה MPU6050 ושבב הג'ירוסקופ מופעל באמצעות מודול ממיר 5V עד 3V3 בעל הספק נמוך ומדבר עם Arduino באמצעות ממשק I2C (SDA, SCL). עם ה- Arduino Pro Mini, SDA מחובר ל- A4 ו- SCL מחובר ל- A5, שניהם ממוקמים על ה- PCB של Arduino Pro Mini. עם גרסת ה- Pro Mini שבה אני משתמשת, A4 ו- A5 היו ממוקמים בתוך הלוח (2 חורים) ולא היו נגישים באמצעות כותרות הסיכות בצידי הלוח. ל- MPU6050 יש גם פלט הפרעה (INT) המשמש לספר ל- Arduino כשיש נתונים חדשים זמינים. רצועת ה- LED neopixel WS2812B עם 74 נוריות מופעלת ישירות על ידי אספקת 5V ויש לה קו נתונים אחד (DIN) המחובר לפלט של ה- Arduino.

שלב 2: תוכנה

שמתי את כל מנהלי ההתקנים המשמשים את הסקיצה (.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 הכבידה באמצעות רצועת הזווית והזווית הנמדדת על ידי MPU6050

שלב 3: תמונות

מוּמלָץ: