בעולם, כל יום פופולרי יותר ויותר בקרב חומרי הניקוי הרובוטים. בזכות העוזרים הקטנים כל כך, הבית הופך לנקי בהרבה, ומאמץ הרבה פחות מאמץ לניקוי. יש הרבה שינויים שונים של רובוטים, כולם נבדלים זה מזה בפונקציונליות, בגודל ופרמטרים אחרים.
באופן ספציפי, מאמר זה ישקול דוגמא לאופן בו
עשה זאת בעצמך אתה יכול להכין רובוט פשוט, שבעצמו ישאיר את החדר במידת הצורך. הבקר משמש כאן כ"מוח "
ארדואינו.
חומרים וכלים לייצור הרובוט:- לוח השולט על פעולת המנועים (מגן מנוע Arduino);
- לוח ארדואינו;
- שני מנועים עם הילוכים (מנועים ב 3 וולט ומהירות סיבוב של כ 100 סל"ד);
- גלגלים (יכולים להיות עשויים מפחי אלומיניום;
- מקרר מאספקת חשמל למחשבים (אפשרי גם על 5V וגם 12V);
- ספק כוח 5V (סוללה);
- חוטים ופלטה להתקנת אלמנטים רדיו;
- כדי להפוך את המקרה תצטרך מיכל פלסטיק;
- עוד מיכל קטן ליצירת פח אשפה;
- דבק חם;
- מגנטים;
- קרטון.
תהליך הייצור של הרובוט:
צעד ראשון. חלק תוכנה של הרובוט והסקיצה:
ליבו של הרובוט הוא בקר Arduino. כדי לתכנת אותו תצטרך מחשב ותוכנה מיוחדת.
כדי להוריד את הסקיצה ללוח, תזדקק לתוכנית IDE Arduino. להלן תוכלו לקחת את קוד תוכנית הרובוט ולראות את המעגל הראשי.
/*
תוכנית לשליטה ברובוט בשני מנועים.
הרובוט מסתובב כאשר המנועים משנים את מהירותם וכיוונם.
פגושים קדמיים בצד שמאל וימין מגלים מכשולים.
ניתן לחבר סונארים קוליים לתשומות אנלוגיות (נבדקו ב- LV-MaxSonar-EZ1):
- הכניסו סיכות למערכות sonarPins בסדר הבא: שמאל, ימין, קדמי, אחרים ..
דוגמאות:
1. סונארים שמאליים וימניים בלבד המחוברים לפינים 2 ו -3: sonarPins [] = {2,3}
2. סונארים שמאליים, ימניים וקדמיים מחוברים לפינים 2, 3 ו -5: sonarPins [] = {2,3,5}
3. רק סונאר קדמי המחובר לפין 5: sonarPins [] = {-1, -1.5}
4. רק סונאר שמאלי מחובר לפין 2: sonarPins [] = {2}
5. סונאר ימני בלבד המחובר לפינים 3: sonarPins [] = {-1,3}
6.5 סונארים המחוברים לפינים 1,2,3,4,5: sonarPins [] = {1,2,3,4,5}
מגן מנוע משמש להפעלת מנועים.
*/
const int Baud = 9600; // מהירות יציאת UART
// מאפייני סונאר
int sonarPins [] = {1, 2}; // Pin Anal Nums to Sensor Sensor Pin AN
const MinLeftDistance ארוך = 20; // מרחק שמאלי מינימלי מותר
const MinRightDistance ארוך = 20; // מרחק מינימלי מותר מינימלי
const MinFrontDistance ארוך = 15; // מרחק קדמי מינימלי מותר
const int SamplesAmount = 15; // יותר דגימות - מדידה חלקה יותר ופיגור גדול יותר
const int SonarDisplayFrequency = 10; // להציג רק אחת מהשורות הללו - לא את כולן
int sonarDisplayFrequencyCount = 0;
גורם ארוך = 2.54 / 2;
דוגמאות ארוכות [sizeof (sonarPins)] [SamplesAmount];
int sampleIndex [sizeof (sonarPins)];
// צד ימין
const int pinRightMotorDirection = 4; // ניתן לסמן את זה על מגן המנוע כ- "DIR A"
const int pinRightMotorSpeed = 3; // ניתן לסמן זאת על מגן המנוע כ- "PWM A"
const int pinRightBumper = 2; // היכן שמחובר הפגוש הימני
// צד שמאל
const int pinLeftMotorDirection = 7; // ניתן לסמן את זה על מגן המנוע כ- "DIR B"
const int pinLeftMotorSpeed = 6; // ניתן לסמן את זה על מגן המנוע כ- "PWM B"
const int pinLeftBumper = 8; // היכן שמחובר הפגוש הימני
// הסר את הקטע של 2 השורות הבאות אם מגן מוטורי יש הפסקות
// const int pinRightMotorBreak = PUT_BREAK_PIN_HERE; // ניתן לסמן את זה על מגן המנוע כ- "BREAKE A"
// const int pinLeftMotorBreak = PUT_BREAK_PIN_HERE; // ניתן לסמן את זה על מגן המנוע כ- "BREAKE B"
// שדות
const int turnRightTimeout = 100;
const int turnLeftTimeout = 150;
// הגדר בדלפק כמה זמן מנוע פועל לאחור: N / 10 (באלפיות השנייה)
ספירת intDownWhileMovingToRight;
ספירת intDownWhileMovingToLeft;
// איתחול
הגדרת ביטול () {
Serial.begin (Baud);
initPins ();
// הסר את הסימן לארבע השורות הבאות אם מגן מוטורי מפסק
// pinMode (pinLeftMotorBreak, OUTPUT);
// pinMode (pinRightMotorBreak, OUTPUT);
// digitalWrite (pinLeftMotorBreak, LOW); // כבה הפסקות
// digitalWrite (pinRightMotorBreak, LOW); // כבה הפסקות
runRightMotorForward ();
runLeftMotorForward ();
startMotors ();
}
// לולאה ראשית
לולאת חלל () {
VerifiedAndSetRightSide ();
VerifiedAndSetLeftSide ();
processRightSide ();
processLeftSide ();
עיכוב (10); // חזור על כל 10 אלפיות השנייה
}
//---------------------------------------------------
initPins בטל () {
pinMode (pinRightMotorDirection, OUTPUT);
pinMode (pinRightMotorSpeed, OUTPUT);
pinMode (pinRightBumper, INPUT);
pinMode (pinLeftMotorDirection, OUTPUT);
pinMode (pinLeftMotorSpeed, OUTPUT);
pinMode (pinLeftBumper, INPUT);
עבור (int i = 0; i pinMode (sonarPins [i], INPUT);
}
void startMotors () {
setMotorSpeed (pinRightMotorSpeed, 255);
setMotorSpeed (pinLeftMotorSpeed, 255);
}
void waitWhileAnyBumperIsPress () {
בזמן (checkBumperIsNotPressed (pinRightBumper)
& & checkBumperIsNotPressed (pinLeftBumper)) {
עיכוב (20); // בדוק כל 20 אלפיות השנייה
}
}
void processRightSide () {
אם (countDownWhileMovingToRight MinFrontDistance) // בודק אם המרחק הקדמי המינימלי המותר אינו מושג
לחזור
if (checkCounterIsNotSet (countDownWhileMovingToLeft)) // אם הדלפק עדיין לא נספר למטה
runLeftMotorBackward (); // הפעל את המנוע הימני לאחור
countDownWhileMovingToLeft = turnLeftTimeout; // הגדר את הדלפק לערך המקסימלי כדי להתחיל את ספירתו למטה
}
bool checkCounterIsNotSet (דלפק int) {
דלפק החזרה = SamplesAmount)
sampleIndex [pinIndex] = 0;
דגימות [pinIndex] [sampleIndex [pinIndex]] = ערך;
להחזיר אמיתי;
}
ארוך חישובAvarageDistance (int pinIndex) {
ממוצע ארוך = 0;
עבור (int i = 0; i ממוצע + = דוגמאות [pinIndex] [i];
ממוצע תשואה / דוגמאותמחיר;
}
שלב שני הכנת האלמנטים הבסיסיים של הרובוט
קרטון משמש כבסיס להידוק כל רכיבי הרובוט, כולל הסוללה, לוחות הבקרה והמנועים.
יש להדביק את הטורבינה כראוי או לתקן אותה בדרך אחרת על מיכל פלסטיק קטן, בו יש לבצע חור לספיגת לכלוך. לאחר מכן, עיצוב זה מודבק לבסיס הקרטון. בנוסף, למכולה צריך להיות חור נוסף דרכו ייצא אוויר. צריך להיות פילטר, המחבר החליט להשתמש בבד סינטטי למטרות אלה.
בשלב הבא צריך להדביק את הצידנית באמצעות סרוו, ואז מותקן עיצוב זה על בסיס קרטון.
שלב שלישי אנחנו מייצרים גלגלים לרובוט
כדי להפוך את הגלגלים אתה צריך לקחת פחי אלומיניום ולנתק מהם את החלקים העליונים והתחתונים. ואז האלמנטים האלה מודבקים זה לזה. כעת נותר רק לחבר כראוי את הגלגלים ל servomotors עם דבק חם להמיס. חשוב להבין כי יש לתקן את הגלגלים בבירור במרכז פירי הסרוו. אחרת הרובוט ינהג בצורה עקומה וישתמש באנרגיה.
שלב רביעי תהליך הרכבת הרובוט הסופי
לאחר התקנת הסוללה וכל האלמנטים של הרובוט מחוברים, נותר להציב את המבנה בתיק עמיד. מיכל פלסטיק גדול הוא נהדר למטרות אלה. ראשית כל, יש לבצע חורים באף גוף הרובוט, דרכם יוצאו אנשי קשר שייתן אות אלקטרוניקה כאשר הרובוט מתנגש עם מכשול.
על מנת שהתיק יוסר במהירות ובקלות, משתמשים במגנטים לתיקונו, במקרה זה ישנם שמונה מהם. מגנטים מודבקים בחלק הפנימי של שואב האבק ולמיכל עצמו, 4 חלקים כל אחד.
זה הכל. עכשיו הרובוט מורכב, וניתן לנסות אותו בפועל. למרות העובדה שהרובוט אינו מסוגל להטעין בכוחות עצמו ויש לו יכולת מוגבלת למדי מבחינת ניווט, בעוד חצי שעה הוא יוכל לנקות את האשפה במטבח או בחדר הקטן. היתרונות של הרובוט הוא שניתן למצוא בקלות את כל הרכיבים והם לא יקרים במיוחד. אין ספק תוצרת בית אתה יכול לחדד על ידי הוספת חיישנים חדשים ואלמנטים אחרים.