תוכן עניינים:
- שלב 1: בנה את המגן/קרש הלחם
- שלב 2: תכנת את הארדואינו
- שלב 3: טען את אפליקציית Android מ- Google Play או סניף את GitHub
- שלב 4: התחבר ל- Arduino למשהו מעניין (השתמשתי במכונית R/C)
- שלב 5: השתמש במכשיר אנדרואיד כדי להתחבר ל- Arduino
- שלב 6: רכישת הנתונים והתכנון
- שלב 7: ייבא לתוך פייתון (או פלטפורמה אחרת) לשימוש נוסף
וִידֵאוֹ: רישום נתונים בזמן אמת MPU-6050/A0 עם Arduino ו- Android: 7 שלבים (עם תמונות)
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:16
התעניינתי להשתמש בארדואינו ללמידת מכונות. כצעד ראשון, אני רוצה לבנות תצוגת נתונים ורשום בזמן אמת (או די קרוב לזה) באמצעות מכשיר אנדרואיד. אני רוצה ללכוד נתוני מד תאוצה מ- MPU-6050 אז תכננתי את המבנה לשימוש ב- HC-05 ב 115200 baud. עם תצורה זו ניתן להעביר 4 ערוצי נתונים במהירות של 250 דגימות בשנייה.
לבנייה יש כמה שלבים:
- בנה את המגן או קרש הלחם
- תכנות את הארדואינו
- טען את אפליקציית האנדרואיד מ- Google Play או סניף את GitHub והרכב אותה בעצמך
- חבר את ה- MPU-6050 למשהו מעניין שרוטט (השתמשתי במכונית R/C)
- השתמש במכשיר האנדרואיד כדי להתחבר ל- Arduino
- צייר את הנתונים, שמור אם מעוניין
- ייבא לפייתון (או פלטפורמה אחרת) לשימוש נוסף
בואו נתחיל!
שלב 1: בנה את המגן/קרש הלחם
זהו תרשים החיווט עבור Arduino, HC-05 ו- MPU-6050. בנוסף ל- MPU-6050 יש לי את הקלט האנלוגי A0 המחובר לחיישן אור כדי להראות שה- ADC פועל. ניתן להכניס כל אות 0-5 וולט למתאם A0. אלה הרכיבים בהם השתמשתי לבנייה:
- ארדואינו אונו
- HC-05 (HC-06 אמור לעבוד גם כן, אך הבניה שלי הייתה עם HC-05)
- MPU-6050
- פוטורסיסטור Sparkfun
- נגד 10 קאוהם (חום-שחור-כתום)
רוב מודולי Bluetooth HC-05 כברירת מחדל ל- 9600 baud. כדי שהנתונים יעברו בהצלחה יהיה עליך לתכנת אותם מחדש עבור קצב שידור של 115,200. יש HC-05/HC-06 AT Command Instructable טוב המסביר כיצד לעשות זאת.
שלב 2: תכנת את הארדואינו
השתמשתי במהדורה של Arduino IDE 1.6.7 כדי לתכנת את Arduino. ניתן להוריד את הקוד מהקישורים בשלב זה או ממאגר GitHub. צירפתי שלוש גרסאות: Firmware125.ino היא גרסת 125 הרץ, Firmware250.ino היא גירסת 250 הרץ ו- Firmware500.ino היא גרסת 500 הרץ. כדי לגרום לארדואינו לעבור במחזור של 500 הרץ, ה- A0 ADC אינו נאסף.
הקושחה כוללת שעון על פין 9 בו השתמשתי כדי לבדוק את התזמון. המעקב מראה כי זמן המחזור הוא 4 אלפיות השנייה (שווה ערך ל -1/250 הרץ). גיליתי שאם יש בעיות בקישור הסדרתי העיתוי לא יהיה אחיד.
קוד הארדואינו אכן משתמש במסכות סיביות כדי להוסיף מספר ערוץ לכל חבילה מכיוון שלפעמים דוגמאות יורדות מעל בלוטות '. אני משתמש בשלושת הביטים המשמעותיים ביותר לאחסון מספר ערוץ. עבור מספרים שלמים חתומים הסיביות המשמעותית ביותר (MSB) שמורה לסימן. מכיוון שאני רוצה להשתמש ב- MSB עבור הכתובת שלי, במקום סימן המספר השלם, עלי להמיר את כל ערכי מד התאוצה החתומים למספרים שלמים לא חתומים. אני עושה זאת על ידי הוספת 32768 לכל ערך (ספירות ה- ADC של מד התאוצה MPU הן +32768 עד -32768) ומעובדות כמספרים שלמים לא חתומים:
(int unsigned) ((ארוך) iAccelData+32767);
מספר הערוץ זהה לכל מד תאוצה ויציאת A0, כך שניתן לזהות מנה שנפלה אם מספרי הערוץ אינם תקינים. עבור המנות המגיעות מה- Bluetooth ב- Arduino, הדפוס הבינארי הוא (הסימנים משתנים בצורה חכמה):
(xacc 3 bits bits = 0x00, 13bit unsigned) (yacc 3 bits bits = 0x01, 13bit unsigned) (zacc 3 bits bits = 0x02, 13bit unsigned) (3 bits bits = 0x03, iadc13bit unsigned)
(xacc 3 bits bits = 0x00, 13bit unsigned) (yacc 3 bits bits = 0x01, 13bit unsigned) (zacc 3 bits bits = 0x02, 13bit unsigned) (3 bits bits = 0x03, iadc13bit unsigned) (xacc 3 bits bits = 0x00, 13bit ללא סימן) (yacc 3 סיביות כתובת = 0x01, 13bit לא חתומות) (zacc 3 bit bits = 0x02, 13bit unsigned) (3 bit bits = 0x03, iadc13bit unsigned) …
אם אתה משתמש במשהו אחר מאשר אפליקציית Android Accel Plot לקריאת נתוני Bluetooth, להלן השלבים לחילוץ הכתובת (אני משתמש בשמות המשתנים מהקובץ Accel Plot Bluetooth.java מתוך ריפו GitHub):
- קראו את ה- 16 ללא חתימה
- חלץ את הבייט הגבוה ושמור אותו ל- btHigh.
- חלץ את הבייט הנמוך ושמור אותו ל- btLow.
- אחזר את הכתובת מ- btHigh באמצעות: (btHigh >> 5) & 0x07. הצהרה זו מעבירה btHigh 5 סיביות ימינה ומעבירה את שלושת סיביות הכתובת לשלושת הרשמים הנמוכים ביותר. הסימן & הוא לוגי AND שמאלץ את סיביות 4 ומעלה להיות אפס ושלושת הביטים האחרונים להתאים את סיביות הכתובת. התוצאה של הצהרה זו היא הכתובת שלך.
אינך צריך לדאוג לחילוץ הכתובות אם אתה משתמש ב- Accel Plot.
שלב 3: טען את אפליקציית Android מ- Google Play או סניף את GitHub
יש לך כמה אפשרויות לטעינת אפליקציית Android במכשיר שלך. אם אתה רוצה להימנע מקוד, תוכל לחפש "Accel Plot" והאפליקציה אמורה לעלות בחנות Google Play. עקוב אחר הוראות החנות להתקנה.
הרצון שלי עם הוראה זו הוא באמת לעודד אחרים לבנות פרויקטים ולכן פרסמתי גם את הקוד במאגר GitHub. אתה אמור להיות מסוגל להסניף את זה, לבנות אותו ולשנות אותו כראות עיניך. פרסמתי את הקוד תחת רישיון MIT אז תהנו!
שלב 4: התחבר ל- Arduino למשהו מעניין (השתמשתי במכונית R/C)
אני רוצה בסופו של דבר להשתמש במכשיר לאיתור משטח כביש ולכן חשבתי שמתאימה מכונית קטנה בשלט רחוק (R/C). אני חושב שזה עוזר בשלב הבא אם ההאשמות יכולות להיות על משהו שזז או רוטט.
שלב 5: השתמש במכשיר אנדרואיד כדי להתחבר ל- Arduino
אם עדיין לא עשית זאת, יהיה עליך לשייך תחילה את HC-05 למכשיר האנדרואיד שלך. אני מאמין שברוב המכשירים אתה יכול לעשות זאת על ידי מעבר להגדרות. סיכת ברירת המחדל עבור רוב מכשירי HC-05 תהיה 1234 או 1111.
פתח את אפליקציית AccelPlot במכשיר אנדרואיד. כאשר האפליקציה נפתחת, ולפני שתתחבר ל- HC-05, תוכל לשנות את קצב הדגימה (זה נקבע בקוד הארדואינו), מאזני מד התאוצה (מוגדרים גם בקוד הארדואינו), ומספר הדגימות שיש לשמור.
לאחר ביצוע הגדרות אלה לחץ על כפתור "התחבר". הוא אמור להביא את מכשירי ה- Bluetooth והמכשיר שלך צריך להיות רשום. בחר בו וברגע שהקוד יקים את החיבור תראה טוסט "מחובר" צץ.
השתמש בלחצן החץ אחורה כדי לחזור ל- Accel Plot. הקש על כפתור "התחל זרם" כדי להציג נתונים ממכשיר HC-05. אתה צריך גם לחצנים זמינים לשמירת הנתונים או להפעלת התוכן המאופנן בתדירות באמצעות שקע השמע.
שלב 6: רכישת הנתונים והתכנון
יש להפעיל את כפתור "התחל זרם". הקש עליו כדי להתחיל להזרים נתונים למסך.
כפתור "שמור נתונים" יופעל גם הוא, הקש עליו כדי לאחסן את הנתונים.
Accel Plot כוללת גם אפשרות להעביר אות מאופנן בערוצי השמע. 2 הערוצים באפליקציית Accel Plot מתייחסים לערוצים השמאליים והימניים של שקע האודיו במכשיר אנדרואיד. זה שימושי אם אתה רוצה להכניס את נתוני MPU-6050 למערכת רישום נתונים נפרדת, כמו מכשירי National.
הסרטון מציג דוגמה לכך שהמערכת אוספת נתונים על מכונית R/C.
שלב 7: ייבא לתוך פייתון (או פלטפורמה אחרת) לשימוש נוסף
הקבצים נשמרים במכשיר אנדרואיד. הקבצים יאוחסנו תחת הספרייה "AccelPlot" עבור Android API 18 ומעלה. הקוד ממקם את קבצי.dat בתיקייה "\ Tablet / Documents / AccelPlot" עבור API 19 (KitKat 4.4) ומעלה. נתקלתי בבעיות בכמה מכשירי אנדרואיד המציגים את הקבצים כאשר הם מחוברים באמצעות USB. במקרים מסוימים נאלצתי לאתחל את מכשיר האנדרואיד כדי לגרום להם להופיע. לא בטוח למה זה, אבל צריכים להיות ארבעה קבצים, אחד לכל ערוץ. ניתן להעתיק אותם לספרייה מקומית לעבודה נוספת.
השתמשתי ב- Anaconda/Python 2.7 כדי לפתוח את הקבצים ולהציג את הנתונים. בקובץ "ExploratoryAnalysis.ipynb" יש את קובץ ה- Notebook IPython שיפתח את כל קבצי הנתונים וישרטט את נתוני המדגם. קבצי דוגמה כלולים במאגר GitHub. הנתונים נשמרים כצפות גדולות של 4 בתים ('> f') באנדיאן, כך שכל תוכנית ניתוח צריכה להיות מסוגלת לפתוח אותן.
צירפתי גם קובץ פשוט יותר בשם "ReadDataFiles.ipynb" שמראה כיצד לקרוא בקובץ יחיד בשמו.
מוּמלָץ:
רישום גרף בזמן אמת באנדרואיד מארדואינו דרך HC-05: 3 שלבים
שרטוט גרף בזמן אמת באנדרואיד מאת Arduino דרך HC-05: היי, הנה הדרכה כיצד לתוות גרף ערכים בזמן אמת מבקר מיקרו כגון Arduino לאפליקציה. הוא משתמש במודול בלוטות 'כגון HC-05 כדי לשמש כמכשיר העברת הודעות לשדר ולקבל את הנתונים בין ה- Ar
כיצד להפוך לחות וטמפרטורה למקליט נתונים בזמן אמת באמצעות UNO Arduino וכרטיס SD - סימולציית רישום נתונים DHT11 בפרוטוס: 5 שלבים
כיצד להפוך לחות וטמפרטורה למקליט נתונים בזמן אמת באמצעות UNO Arduino וכרטיס SD | סימולציית רישום נתונים ב- DHT11 בפרוטוס: הקדמה: היי, זהו Liono Maker, הנה קישור ל- YouTube. אנו יוצרים פרויקט יצירתי עם Arduino ועובדים על מערכות מוטבעות. Data-Logger: לוגר נתונים (גם לוגר נתונים או מקליט נתונים) הוא מכשיר אלקטרוני המתעד נתונים לאורך זמן עם
רובוט SCARA: למידה על קיממטיקה של פאוורד והיפוך !!! (עלילת טוויסט למד כיצד ליצור ממשק בזמן אמת ב- ARDUINO באמצעות עיבוד !!!!): 5 שלבים (עם תמונות)
רובוט SCARA: למידה על קיממטיקה של פאוורד והיפוך !!! (Plot Twist למד כיצד ליצור ממשק בזמן אמת ב- ARDUINO באמצעות עיבוד !!!!): רובוט SCARA הוא מכונה פופולרית מאוד בעולם התעשייה. השם מייצג הן זרוע רובוט הרכבה תואמת סלקטיבית והן זרוע רובוט מפרקית תואמת סלקטיבית. זהו בעצם רובוט של שלוש דרגות של חופש, בהיותו שני ההחלפות הראשונות
שעון זמן אמת בזמן אמת: 4 שלבים
שעון זמן אמת סביבתי: AimI יצרתי את השעון הזה כי יש לי פס LED שניתן להתייחס אליו ואני רוצה להשתמש בו. ואז ראיתי שלחדר שלי אין שעון טוב התואם את הקירות שלו. אז החלטתי להכין שעון שיכול לשנות את צבעו בהתאם למצב הרוח של המשתמש או
הודעות אירוע בזמן אמת באמצעות NodeMCU (Arduino), Google Firebase ו- Laravel: 4 שלבים (עם תמונות)
הודעות בזמן אמת על אירוע באמצעות NodeMCU (Arduino), Google Firebase ו- Laravel: האם אי פעם רצית לקבל הודעה כאשר מתבצעת פעולה באתר שלך אך דוא"ל אינו מתאים? האם אתה רוצה לשמוע צליל או פעמון בכל פעם שאתה מבצע מכירה? או שיש צורך בתשומת לב מיידית שלך בגלל מקרה חירום