- רכיבים נדרשים:
- תרשים מעגל:
- מיקרו-בקר 8051:
- HC-05 מודול Bluetooth:
- נהג מנוע L293D IC:
- עבודה של רובוט מבוקר בטלפון אנדרואיד:
- הסבר קוד:
בפרויקט זה אנו הולכים לבנות רובוט מבוקר טלפון אנדרואיד באמצעות מיקרו - בקרים 8051 ומודול Bluetooth. הרובוט תוכנן באמצעות מנועי DC וכיוון מנועי ה- DC נשלט על ידי הפקודות המתקבלות מיישום האנדרואיד. מעמד הרובוט נשלח חזרה לאפליקציית אנדרואיד. פרויקט זה יעזור גם לממשק של מודול Bluetooth HC-05 עם בקרי מיקרו 8051. השתמשנו כבר במודול Bluetooth כדי לשלוט במכשירי חשמל ביתיים עם 8051.
רכיבים נדרשים:
- מיקרו-בקר 8051 (AT89S52)
- מודול Bluetooth HC-05
- נהג מנוע L293D
- שלדת רובוטים
- מנועי DC (2)
- גלגלים (2)
- גלגל גלגלים
- חוטי מגשר
- אפליקציית אנדרואיד מסוף Bluetooth
תרשים מעגל:
מיקרו-בקר 8051:
מיקרו-בקר 8051 הוא מיקרו-בקר של 8 ביט בעל 128 בתים של זיכרון RAM, 4K בתים של שבב ROM, שני טיימרים, יציאה טורית אחת וארבע יציאות 8 ביט. מיקרו-בקר 8052 הוא הרחבה של מיקרו-בקר 8051. בפרויקט זה אנו משתמשים במיקרו בקר AT89S52. הטבלה שלהלן מציגה את ההשוואה בין 8051 בני משפחה.
תכונה |
8051 |
8052 |
ROM (בתים) |
4K |
8K |
זיכרון RAM (בתים) |
128 |
256 |
טיימרים |
2 |
3 |
סיכות קלט / פלט |
32 |
32 |
יציאה טורית |
1 |
1 |
להפריע למקורות |
6 |
8 |
HC-05 מודול Bluetooth:
HC-05 הוא מודול בלוטות 'סדרתי. ניתן להגדיר אותו באמצעות פקודות AT. זה יכול לעבוד בשלוש תצורות שונות (Master, Slave, Loop back). בפרויקט שלנו נשתמש בו כעבד. התכונות של מודול HC-05 כוללות,
- רגישות אופיינית ל -80 dBm.
- קצב שידור ברירת מחדל: 9600bps, 8 סיביות נתונים, סיבית עצירה אחת, ללא זוגיות.
- זיווג אוטומטי של קוד PIN: קוד PIN המוגדר כברירת מחדל "1234"
- יש לו 6 סיכות.
- סיכות Vcc ו- Gnd משמשות להפעלת HC-05.
- סיכות Tx ו- Rx משמשות לתקשורת עם המיקרו-בקר.
- אפשר סיכה להפעלת מודול HC-05. כאשר הוא נמוך, המודול מושבת
- מחוון מצב של מעשי סיכה. כאשר הוא אינו משויך / מחובר לשום מכשיר Bluetooth אחר, נורית LED מהבהבת ברציפות. כאשר הוא מחובר / מזווג עם כל מכשיר Bluetooth אחר, הנורית מהבהבת עם השהיה קבועה של 2 שניות.
נהג מנוע L293D IC:
L293D הוא כונן נהג מנוע כפול מסוג גשר H. זה משמש כמגבר זרם, הפלט של L293D מניע את מנועי DC. הוא מכיל שני מעגלי גשר H מובנים. במצב פעולה נפוץ, הוא יכול להניע שני מנועי DC במקביל לשני הכיוונים. הטבלה שלהלן מציגה את תיאור הסיכה של L293D IC. להלן מספר פרויקטים המשתמשים במנהל ההתקן L293D.
תיאור סיכה
מספר סיכה |
שֵׁם |
פוּנקצִיָה |
1 |
אפשר 1,2 |
אפשר סיכה למנוע 1 |
2 |
קלט 1 |
קלט 1 עבור מנוע 1 |
3 |
פלט 1 |
פלט 1 עבור מנוע 1 |
4 |
Gnd |
קרקע (0V) |
5 |
Gnd |
קרקע (0V) |
6 |
פלט 2 |
פלט 2 עבור מנוע 1 |
7 |
קלט 2 |
קלט 2 למנוע 1 |
8 |
Vcc 2 |
מתח אספקה למנועים (5V) |
9 |
אפשר 3,4 |
אפשר סיכה למנוע 1 |
10 |
קלט 3 |
קלט 1 עבור מנוע 2 |
11 |
פלט 4 |
פלט 1 עבור מנוע 2 |
12 |
Gnd |
קרקע (0V) |
13 |
Gnd |
קרקע (0V) |
14 |
פלט 4 |
פלט 2 עבור מנוע 2 |
15 |
קלט 4 |
קלט 2 למנוע 2 |
16 |
Vcc 1 |
מתח אספקה (5V) |
עבודה של רובוט מבוקר בטלפון אנדרואיד:
ברובוט נשלט בטלפון חכם זה, המשתמש באפליקציית אנדרואיד שולח את הנתונים למיקרו-בקר 8051 דרך מודול HC-05. הנתונים המתקבלים מושווים במיקרו-בקר 8051 וההחלטה מתקבלת בהתאם. הטבלה שלהלן מציגה את כיוון המנועים ומצב הרובוט לדמויות שהתקבלו שונות.
דמות שהתקבלה |
מנוע 1 |
מנוע 2 |
מעמד הרובוט |
f |
קָדִימָה |
קָדִימָה |
נע קדימה |
ב |
לְאָחוֹר |
לְאָחוֹר |
נע אחורה |
ר |
קָדִימָה |
לְאָחוֹר |
זז ימינה |
l |
לְאָחוֹר |
קָדִימָה |
זז שמאלה |
ס |
כבוי |
כבוי |
עצר |
אפליקציית מסוף ה- Bluetooth מאפשרת לנו לחקות מסוף Bluetooth. יישום זה תומך בתקשורת דו כיוונית ואפליקציה זו תואמת לרוב המכשירים.
השלבים הבאים מראים כיצד להתקין ולהשתמש באפליקציה זו.
1. הורד והתקן את אפליקציית מסוף Bluetooth בטלפון אנדרואיד שלך. ניתן להוריד את האפליקציה מהקישור למטה.
play.google.com/store/apps/details?id=ptah.apps.bluetooth טרמינל
2. לאחר התקנת האפליקציה, פתח את האפליקציה והפעל את Bluetooth.
3. בחר את המכשיר ולחץ על אפשרות התחברות. לאחר חיבור מוצלח, אנו יכולים להתחיל לשלוח נתונים למודול HC-05.
בדוק את הסבר הקוד למטה כדי לראות כיצד הדמות נשלחת ומתקבלת על ידי 8051 מיקרו-בקר כדי לסובב את המנועים הנדרשים.
הסבר קוד:
התוכנית C וההדגמה המלאה לפרויקט זה ניתנים בסוף פרויקט זה. הקוד מחולק לנתחים משמעותיים קטנים ומוסבר להלן.
עבור ממשק L293D עם מיקרו-בקרים 8051, עלינו להגדיר פינים עליהם מחובר L293D למיקרו-בקרה 8051. סיכה In1 של מנוע 1 מחוברת ל- P2.0, סיכה In2 של מנוע 1 מחוברת ל- P2.1, סיכה In1 של מנוע 2 מחוברת ל- P2.2, סיכה In2 של מנוע 2 מחוברת ל- P2.3
sbit m1f = P2 ^ 0; // סיכה 1 של מנוע 1 sbit m1b = P2 ^ 1; // סיכה in2 של מנוע 1 sbit m2f = P2 ^ 2; // in1 סיכה של מנוע 2 sbit m2b = P2 ^ 3; // סיכה 2 של המנוע 2
בשלב הבא עלינו להגדיר כמה פונקציות המשמשות בתוכנית. פונקציית עיכוב משמשת ליצירת עיכוב זמן מוגדר. פונקציית Txdata משמשת להעברת נתונים דרך יציאה טורית. פונקציית Rxdata משמשת לקבלת נתונים מהיציאה הטורית.
עיכוב חלל (int חתום); // פונקציה ליצירת עיכוב char rxdata (void); // פונקציה לקבלת תו דרך יציאה טורית של 8051 vox txdata (char לא חתום); // פונקציה לשליחת דמות דרך יציאה טורית של 8051
בחלק זה של הקוד אנו הולכים להגדיר 8051 מיקרו-בקר לתקשורת טורית. רישום TMOD נטען עם 0x20 לטיימר 1, מצב 2 (טעינה אוטומטית). SCON register נטען עם 0x50 עבור 8 סיביות נתונים, סיבית עצירה אחת וקבלה מופעלת. רישום TH1 נטען ב- 0xfd לקצב שידור של 9600 ביט לשנייה. TR1 = 1 משמש להפעלת הטיימר.
TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1; בחלק זה של הקוד, הדמות המוחזרת של פונקציית rxdata נשמרת במשתנה 's לשימוש נוסף.
s = rxdata (); // לקבל נתונים סידוריים ממודול Bluetooth hc-05
בחלק זה של הקוד, עלינו להשוות את התו שהתקבל לתווים שהוקצו מראש לכיוונים שונים. אם הדמות שהתקבלה היא 'f', אז הרובוט צריך לנוע בכיוון קדימה. זה נעשה על ידי הפיכת m1f, פינים m2f גבוהים ו- m1b, פינים m2b נמוכים. ברגע שזה נעשה, הבא עלינו לשלוח מעמד של רובוט לאפליקציית אנדרואיד. זה נעשה בעזרת פונקציית txdata . אותו תהליך חוזר על עצמו עבור דמויות שונות שהתקבלו וההחלטה מתקבלת בהתאם. טבלה 1 מציגה ערכים שונים של m1f, m1b, m2f, m2b לכיווני תנועה שונים של הרובוט.
אם (s == 'f') // הזז את שני המנועים בכיוון קדימה {m1f = 1; עיכוב (1); m1b = 0; עיכוב (1); m2f = 1; עיכוב (1); m2b = 0; עיכוב (1); עבור (i = 0; msg1! = '\ 0'; i ++) // שלח מצב של רובוט לאפליקציית אנדרואיד דרך Bluetooth {txdata (msg1); }}
m1f |
m1b |
m2f |
m2b |
סיבוב מנוע 1 |
סיבוב מנוע 2 |
מעמד הרובוט |
1 |
0 |
1 |
0 |
קָדִימָה |
קָדִימָה |
מתקדם |
0 |
1 |
0 |
1 |
לַהֲפוֹך |
לַהֲפוֹך |
נע אחורה |
1 |
0 |
0 |
1 |
קָדִימָה |
לַהֲפוֹך |
עוברים ימינה |
0 |
1 |
1 |
0 |
לַהֲפוֹך |
קָדִימָה |
זז שמאלה |
0 |
0 |
0 |
0 |
עצר |
עצר |
עצר |
זה אתה יכול לסובב את מכונית הרובוט לכל כיוון על ידי שליטה בארבעת המנועים באמצעות מיקרו-בקר 8051. ניתן לשלוט ברובוט זה גם באמצעות DTMF עם 8051, אם אין לך טלפון אנדרואיד.
בדוק גם את כל פרויקטי הרובוטיקה כאן.