אינציקלופדיה של רדיו אלקטרוניקה והנדסת חשמל רובוט פשוט. אנציקלופדיה של רדיו אלקטרוניקה והנדסת חשמל אנציקלופדיה של רדיו אלקטרוניקה והנדסת חשמל / ציוד בקרת רדיו מאמר זה מציג תרשים של "רובוט" פשוט. זה הולך אל האור, ואם אין מקור אור, אז מופעל מצב "חיפוש חופשי", כלומר. הרובוט ייסע, ובמקרה של התנגשות, יסע והסתובב. הלב של הרובוט הוא מיקרו-בקר מבית ATMEL: AT90S2313, אבל אתה יכול להשתמש בכל אחד אחר מחברה זו, למיקרו-בקר זה יש זיכרון תוכנית של 2kb, 15 יציאות I/O, מתח זמין - 4-6V. המנועים ישלטו על ידי "נהג מנוע" - מיקרו-מעגל L293D (אנלוגי מקומי - KR1128KT4A). הוחלט להשתמש בהתנגדות פוטו SF3-1 כחיישן. הרובוט מורכב משני מנועים. כך הם יפעלו עבור פעולות מסוימות:
רכיבי רדיו משומשים במעגל: מיקרו-בקר AT90S2313 מיקרו-מעגל L293D (אנלוגי ביתי - KR1128KT4A) 2 נגדי פוטו SF3-1 קוורץ במהירות 4 מגה הרץ קבלים 22-24pF מייצב 7805 (או KREN5A) נגד 100 אוהם (אופציונלי) שני מנועים Power Vbat - 4 סוללות AA, או כתר אחד (1V) ספק כוח Vm - 1 כתר (9V) לאחר הרכבת המעגל, עליך להוריד את התוכנית למיקרו-בקר והרובוט מוכן: /************************************************** ******* סוג שבב: AT90S2313 תדר שעון: 4,000000 מגה-הרץ דגם זיכרון: זעיר גודל SRAM חיצוני: 0 גודל מחסנית נתונים: 32 ************************************************** ********/#include <90s2313.h> #לִכלוֹל #לִכלוֹל // הקצאת הגדרות לנוחות העבודה עם ציוד היקפי #define OUT PORTB #define MOTOR_F 7 #define MOTOR_B 6 #define TURN_R 5 #define TURN_L 4 #define IN PIN #define LIGHT_R 0 #define LIGHT_L 1 #define BUMPER_F 2 #define BUMPER_B 3 // מצבי נהיגה אפשריים enum {STOP, F, FR, FL, B, BR, BL}; // ------------------------------------------------ ------------------------------ // השהיה t x 10ms // ------------------------------------------------ ------------------------------ void Delay_10ms(תות לא חתום) {char i; for(i=0;i // טבלת הסתברות לבחירת כיוון התנועה // מבוסס על כיוון התנועה הנוכחי char unsigned p[7][7] = {14, 43, 57, 71, 86, 93, 100, 7, 43, 71, 100, 100, 100, 100, 7, 50, 93, 100, 100, 100, 100, 7, 50, 57, 100, 100, 100, 100, 29, 29, 29, 29, 57, 79, 100, 36, 36, 36, 36, 71, 93, 100, 36, 36, 36, 36, 71, 79, 100}; // כיוון התנועה הנוכחי char unsigned this_move; // ------------------------------------------------ ------------------------------ // הפעל את שילוב המנועים לתנועה בכיוון נתון // ------------------------------------------------ ------------------------------ void go(כיוון char unsigned){ switch (כיוון) { מקרה STOP: OUT.MOTOR_F=0; OUT.MOTOR_B=0; OUT.TURN_R=0; OUT.TURN_L=0; לשבור; מקרה F: OUT.MOTOR_F=1; OUT.MOTOR_B=0; OUT.TURN_R=0; OUT.TURN_L=0; לשבור; מקרה FR: OUT.MOTOR_F=1; OUT.MOTOR_B=0; OUT.TURN_R=1; OUT.TURN_L=0; לשבור; מקרה FL: OUT.MOTOR_F=1; OUT.MOTOR_B=0; OUT.TURN_R=0; OUT.TURN_L=1; לשבור; מקרה ב': OUT.MOTOR_F=0; OUT.MOTOR_B=1; OUT.TURN_R=0; OUT.TURN_L=0; לשבור; מקרה BR: OUT.MOTOR_F=0; OUT.MOTOR_B=1; OUT.TURN_R=1; OUT.TURN_L=0; לשבור; מקרה BL: OUT.MOTOR_F=0; OUT.MOTOR_B=1; OUT.TURN_R=0; OUT.TURN_L=1; לשבור; } } // ------------------------------------------------ ------------------------------ // בחירת כיוון התנועה בשלב הבא לפי טבלת ההסתברויות // ------------------------------------------------ ------------------------------ char unsigned next_move(void){ charpp unsigned, i; pp = rand()/327; // קבל מספר אקראי 0..99 עבור (i=0;i<7;i++){ // חפש התאמה בטבלת ההסתברויות if (p[this_move][i] > pp) break; } this_move = i; // הקלט את הכיוון החדש שהתקבל ככזה הנוכחי return(i); } // ------------------------------------------------ ------------------------------ // טיפול בפסיקת פגוש קדמי (INT0 = PD2) // ------------------------------------------------ ------------------------------ interrupt [EXT_INT0] void ext_int0_isr(void) { if(this_move==FR) go(BL); if(this_move==FL) go(BR); else go(B); Delay_10ms(250); // יציאה תוך 2.5 x 2 שניות Delay_10ms(250); this_move=B; } // ------------------------------------------------ ------------------------------ // טיפול בפסיקת פגוש אחורי (INT1 = PD3) // ------------------------------------------------ ------------------------------ interrupt [EXT_INT1] void ext_int1_isr(void) { if(this_move==BR) go(FL); if(this_move==BL) go(FR); else go(F); Delay_10ms(250); // יציאה תוך 2.5 x 2 שניות Delay_10ms(250); this_move=F; } // ------------------------------------------------ ------------------------------ // "הליכה אקראית" // ------------------------------------------------ ------------------------------ char walk unsigned (void){ // לולאה זו מארגנת "נדידה חופשית" בזמן // אין אות מאף אחד מחיישני האור while((IN.LIGHT_R) && (IN.LIGHT_L)){ go(next_move()); // קבלו את כיוון התנועה הבא ו Delay_10ms(250); // לנוע בכיוון זה למשך 2.5 שניות } // לולאה זו מארגנת את התנועה אל האור בעוד // יש אות לפחות מאחד מחיישני האור while((IN.LIGHT_R==0) || (IN.LIGHT_L==0)){ if((IN.LIGHT_R==0) && (IN.LIGHT_L==0)) go(F); else if(IN.LIGHT_R==0) go(FR); else if(IN.LIGHT_L==0) go(FL); } return(0); } // ------------------------------------------------ ------------------------------ // תוכנה ראשית // ------------------------------------------------ ------------------------------ ראשי הריק (void) { DDRB=0xff; // הקצה את כל השורות של יציאה B לפלט PORTB = 0x00; // והנח אותם נמוך DDRD=0x00; // הקצה את כל השורות של יציאה D לקלט PORTD=0xff; // חבר נגדי עומס פנימיים // אתחול של הפסקות חיצוניות // INT0: פועל // מצב INT0: קצה נופל // INT1: פועל // מצב INT1: קצה נופל GIMSK=0xC0; MCUCR=0x0A; GIFR=0xC0; // אפשר פסיקות #asm("sei") // התחל את הלולאה הראשית while(1) walk(); } הורד את התוכנית, קובץ הקושחה ודיאגרמת הרובוט בפורמט sPlan פרסום: cxem.net ראה מאמרים אחרים סעיף ציוד בקרת רדיו. תקרא ותכתוב שימושי הערות על מאמר זה. חדשות אחרונות של מדע וטכנולוגיה, אלקטרוניקה חדשה: קיומו של כלל אנטרופיה להסתבכות קוונטית הוכח
09.05.2024 מזגן מיני Sony Reon Pocket 5
09.05.2024 אנרגיה מהחלל עבור ספינת הכוכבים
08.05.2024
עוד חדשות מעניינות: עדכון חדשות של מדע וטכנולוגיה, אלקטרוניקה חדשה
חומרים מעניינים של הספרייה הטכנית החופשית: ▪ חלק של האתר ביוגרפיות של מדענים גדולים. בחירת מאמרים ▪ מאמר איזה סרט קסום לפני ג'יי קיי רולינג מציג את הגיבור הארי פוטר? תשובה מפורטת ▪ מאמר מהנדס הגנה אזרחית. תיאור משרה ▪ מאמר תקשורת רדיו אזרחית. תחנות רדיו, משדרים. מַדרִיך ▪ מאמר אספקת חשמל התקן הגנת זרם. אנציקלופדיה של רדיו אלקטרוניקה והנדסת חשמל כל השפות של דף זה בית | הספרייה | מאמרים | <font><font>מפת אתר</font></font> | ביקורות על האתר www.diagram.com.ua |