- רכיבים נדרשים
- מודול חיישן MPU6050 - מבוא קצר
- דיאגרמת מעגל מונים של צעד Attiny85
- בודה PCB עבור מונה צעד Attiny85
- הזמנת PCB מ- PCBWay
- הרכבת ה- PCB Counter Counter ATTiny85
- הסבר על קוד מונה שלב ATtiny85
- בואו ניקח את מונה הצעדים של ארדואינו לטיול
במדריך זה אנו הולכים לבנות מד צעדים קל וזול באמצעות ATtiny85 IC, MPU6050 Accelerometer & Gyroscope ו- OLED Display Module. מונה צעדים פשוט זה מבוסס ארדואינו מופעל על ידי תא מטבע 3V, מה שמקל על הנשיאה כשאתה יוצא לטייל או לרוץ. זה גם דורש מעט מאוד רכיבים לבנייה והקוד גם יחסית פשוט. התוכנית בפרויקט זה משתמשת ב- MPU6050 למדידת גודל התאוצה לאורך ציר 3 (X, Y ו- Z). ואז הוא מחשב את ההפרש של גודל התאוצה בין הערך הקודם והערכי הנוכחי. אם ההבדל גדול מסף מסוים (להליכה גדולה מ -6 ולריצה גדולה מ -10), אז הוא מגדיל את ספירת הצעדים בהתאם. השלבים הכוללים שננקטו מוצגים אז בתצוגת OLED.
כדי לבנות מונה צעדים נייד זה על גבי PCB, ייצרנו את לוחות ה- PCB שלנו מ- PCBWay ואנו נרכיב ונבדוק אותו בפרויקט זה. אם ברצונך להוסיף תכונות נוספות, תוכל גם להוסיף צג פעימות לב להתקנה זו, ובנינו בעבר דלפק צעדים של Arduino באמצעות מדף ADXL335, בדוק אותם אם אתה מעוניין.
רכיבים נדרשים
כדי לבנות מד צעדים זה באמצעות Arduino, תזדקק לרכיבים הבאים.
- Attiny85 IC
- MPU6050
- מודול תצוגת OLED
- 2 × לחצני כפתור
- נגדים 5 × 10KΩ (SMD)
מודול חיישן MPU6050 - מבוא קצר
MPU6050 מבוסס על טכנולוגיות מערכות מיקרו-מכניות (MEMS). לחיישן זה מד תאוצה בעל 3 צירים, גירוסקופ בעל 3 צירים וחיישן טמפרטורה מובנה. ניתן להשתמש בו למדידת פרמטרים כמו תאוצה, מהירות, כיוון, תזוזה וכו '. בעבר התממשקנו MPU6050 עם Arduino ו- Raspberry pi ובנינו גם כמה פרויקטים המשתמשים בו כמו- Robot Balancing Self, Arduino Digital Protector, ו- Arduino Inclinometer.
מודול MPU6050 קטן בגודלו ובעל צריכת חשמל נמוכה, חזרה גבוהה, סובלנות זעזועים גבוהה ונקודות מחיר נמוכות למשתמש. ה- MPU6050 מגיע עם אוטובוס I2C וממשק אוטובוס עזר I2C ויכול להפריע בקלות לחיישנים אחרים כמו מגנומטרים ומיקרו-בקרים.
דיאגרמת מעגל מונים של צעד Attiny85
התרשים עבור מונה הצעדים MPU6050 ניתן להלן:
התמונה לעיל מציגה את תרשים המעגל להתממשקות MPU6050 ותצוגת OLED עם Attiny85 IC. יש ליישם את הממשק בין MPU6050, תצוגת OLED ו- Arduino באמצעות פרוטוקול I2C. לפיכך, ה- SCLPin (PB2) של ה- ATtiny85 מחובר ל- SCLPin של תצוגת MPU6050 ו- OLED בהתאמה. באופן דומה, ה- SDAPin (PB0) של ה- ATtiny85 מחובר ל- SDAPin של התצוגה MPU6050 ו- OLED. שני לחצני לחיצה מחוברים גם לסיכה PB3 ו- PB4 של ATtiny85 IC. ניתן להשתמש בלחצנים אלה כדי לגלול את הטקסט או לשנות את הטקסט בתצוגה.
הערה: עקוב אחר המדריך הקודם שלנו תכנות ATtiny85 IC ישירות דרך USB באמצעות Digispark Bootloader כדי לתכנת את ATtiny85 IC דרך USB ו- Digispark Boot-Loader.
בודה PCB עבור מונה צעד Attiny85
הסכימה נעשית ואנחנו יכולים להמשיך בהנחת ה- PCB. אתה יכול לעצב את ה- PCB באמצעות כל תוכנת PCB שתבחר. השתמשנו ב- EasyEDA כדי לייצר PCB לפרויקט זה.
להלן תצוגות הדגם התלת-ממדי של השכבה העליונה והשכבה התחתונה של PCB Step Counter:
פריסת ה- PCB עבור המעגל הנ"ל זמינה להורדה גם כגרבר מהקישור הבא:
- קובץ גרבר עבור מונה צעדים ATtiny85
הזמנת PCB מ- PCBWay
כעת לאחר סיום התכנון תוכלו להמשיך ולהזמין את ה- PCB:
שלב 1: היכנס https://www.pcbway.com/, הירשם אם זו הפעם הראשונה שלך. לאחר מכן, בכרטיסיה אב טיפוס של PCB, הזן את הממדים של ה- PCB שלך, את מספר השכבות ואת מספר ה- PCB שאתה צריך.
שלב 2: המשך על ידי לחיצה על כפתור 'ציטוט עכשיו'. תועבר לדף שבו ניתן להגדיר כמה פרמטרים נוספים כמו סוג הלוח, שכבות, חומר ל- PCB, עובי ועוד, רובם נבחרים כברירת מחדל, אם אתה בוחר בפרמטרים ספציפיים כלשהם, תוכל לבחור זה כאן.
שלב 3: השלב האחרון הוא העלאת קובץ גרבר והמשך התשלום. כדי לוודא שהתהליך חלק, PCBWAY מאמת אם קובץ הגרבר שלך תקף לפני שתמשיך בתשלום. בדרך זו, אתה יכול להיות בטוח שה- PCB שלך הוא ידידותי לייצור ויגיע אליך כמחויב.
הרכבת ה- PCB Counter Counter ATTiny85
לאחר מספר ימים קיבלנו את ה- PCB שלנו באריזה מסודרת ואיכות ה- PCB הייתה טובה כמו תמיד. השכבה העליונה והשכבה התחתונה של הלוח מוצגות למטה:
לאחר שווידאת שהמסלולים והעקבות היו נכונים. המשכתי עם הרכבת ה- PCB. הלוח מולחם לחלוטין נראה להלן:
הסבר על קוד מונה שלב ATtiny85
קוד הדלפק המלא של Arduino ניתן בסוף המסמך. כאן אנו מסבירים כמה חלקים חשובים בקוד.
הקוד משתמש בספריות TinyWireM.h & TinyOzOLED.h. ניתן להוריד את ספריית TinyWireM ממנהל הספרייה ב- IDE של ארדואינו ולהתקין משם. לשם כך, פתח את ה- Arduino IDE ועבור אל סקיצה <כלול ספרייה <נהל ספריות . כעת חפש את TinyWireM.h והתקן את ספריית TinyWireM על ידי Adafruit.
בעוד שניתן להוריד את ספריית TinyOzOLED.h מהקישורים הנתונים.
לאחר התקנת הספריות ל- Arduino IDE, התחל את הקוד על ידי הכללת קבצי הספריות הדרושים.
# כלול "TinyWireM.h" # כלול "TinyOzOLED.h"
לאחר הכללת הספריות, הגדירו את המשתנים לאחסון הקריאות של תאוצה.
intaccelX, accelY, accelZ;
בתוך לולאת ההתקנה () , אתחל את ספריית החוטים ואפס את החיישן דרך רישום ניהול החשמל, אתחל גם את תקשורת I2C לתצוגת OLED. ואז בשורות הבאות הגדר את כיוון התצוגה והזן את כתובת הרישום לערכי מד תאוצה וגירוסקופ.
TinyWireM.begin (); OzOled.init (); OzOled.clearDisplay (); OzOled.setNormalDisplay (); OzOled.sendCommand (0xA1); OzOled.sendCommand (0xC8); TinyWireM.beginTransmission (MPU); TinyWireM.write (0x6B); TinyWireM.write (0b00000000); TinyWireM.write (0x1B);
בשנות ה getAccel () פונקציה, להתחיל בקריאת הנתונים תאוצה. הנתונים לכל ציר מאוחסנים בשני בתים (עליונים ותחתונים) או רושמים. על מנת לקרוא את כולם, להתחיל ברישום הראשון ובאמצעות הפונקציה requiestFrom () , אנו מבקשים לקרוא את כל 6 הרישומים עבור צירי X, Y ו- Z. לאחר מכן אנו קוראים את הנתונים מכל רשום, ומכיוון שהפלטים הם השלמה של שני, שלבו אותם כראוי כדי לקבל את ערכי מד התאוצה המלאים.
voidgetAccel () {TinyWireM.beginTransmission (mpu); TinyWireM.write (0x3B); TinyWireM.endTransmission (); TinyWireM.requestFrom (mpu, 6); accelX = TinyWireM.read () << 8-TinyWireM.read (); accelY = TinyWireM.read () << 8-TinyWireM.read (); accelZ = TinyWireM.read () << 8-TinyWireM.read (); }
כעת בתוך פונקציית הלולאה, קרא תחילה את ערכי ציר ה- X, Y ו- Z ולאחר קבלת ערכי 3 הצירים, חשב את וקטור ההאצה הכולל על ידי לקיחת השורש הריבועי של ערכי X, Y ו- Z. ואז חשב את ההפרש בין הווקטור הנוכחי לווקטור הקודם, ואם ההפרש גדול מ- 6, הגדל את ספירת הצעדים.
getAccel (); וקטור = sqrt ((accelX * accelX) + (accelY * accelY) + (accelZ * accelZ)); totalvector = וקטור - vectorprevious; אם (totalvector> 6) {צעדים ++; } OzOled.printString ("צעדים", 0, 4); OzOled.printNumber (צעדים, 0, 8, 4); vectorprevious = וקטור; עיכוב (600);
בואו ניקח את מונה הצעדים של ארדואינו לטיול
לאחר שסיימתם להרכיב את ה- PCB, חברו את ATtiny85 ללוח המתכנת והעלו את הקוד. עכשיו קח את הגדרת מונה הצעד בידיים שלך והתחל ללכת צעד אחר צעד, הוא אמור להציג את מספר הצעדים ב- OLED. לפעמים זה מגדיל את מספר הצעדים כשההתקנה רוטטת מאוד או לאט מאוד.
כך תוכלו לבנות מונה צעדים משלכם באמצעות ATtiny85 ו- MPU6050. את העבודה המלאה של הפרויקט ניתן למצוא גם בסרטון המקושר למטה. מקווה שנהניתם מהפרויקט ומצאתם את זה מעניין לבנות בעצמכם. אם יש לך שאלות, השאיר אותן בסעיף ההערות למטה.