תוכן עניינים:
2025 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2025-01-13 06:57
TA-ZON-BOT
El tazón siguelineas
Hemos realizado este robot siguelineas con la ayuda de los nuestros alumnos, (minacakes gracias).
Ha sido un proyecto express para poder participant en la OSHWDEN de A Coruña.
oshwdem.org/2017/06/oshwdem-2017/
traductor גוגל
TA-ZON-BOT
הקערה עוקבת אחרי השורה
יצרנו את הרובוט הזה בעקבותיכם בעזרת הסטודנטים שלנו, (תודה למיניקים).
זה היה פרויקט אקספרס להשתתף ב- OSHWDEN של א קורוניה.
oshwdem.org/2017/06/oshwdem-2017/
מתרגם גוגל
שלב 1: שלב 1: רכיבים
Los componentes que hemos utilizados
han sido los siguientes.
Una pieza redonda de metacrilato. (Podéis utilizar cualquier diseño, nuestra base mide lo justo para colocar el tazón bocabajo).
1 Tazón de desayuno (que sirve para concentrar al robot en la linea).
2 ruedas de un juguete reciclado.
2 מנועים ספציפיים:
ספציפיות (סעיף 6V):
מידות: 26 x 10 x 12 מ מ
יחס לה לה רדוקטורה: 30: 1
דיאומטרו דל עג'ה: 3 מ מ (con ranura de bloqueo)
וולטה נומינלי: 6Vcc (פוזה פונקציה אנטרה 3 ו 9Vcc)
Velocidad de giro sin carga: 1000 סל ד
Consumo sin carga: 120mA (1600mA con carga)
מומנט: 0.6 ק"ג/ס"מ (מקסימום)
פסו: 10 גרם
Enlace de tienda באינטרנט:
1 placa Arduino UNO (reciclada de un proyecto antiguo)
1 מגן למנועים Adafruit v2.3:
1 Un porta pilas de 8 pilas AAA (אין שימוש 2 fuentes de alimentación).
6 tornillos y tuercas para unir los elementos como se ve en la imagen
bridas para los motores, una goma elástica para sujetar el porta pilas y un trozo de una lamina de plásticos para la base del porta pilas.
1 מערך חיישנים QTR-8RC con las siguientes características;
מפרט מערך חיישן ההשתקפות QTR-8x • מידות: 2.95 "x 0.5" • פורמט פלט עבור QTR-8RC: 8 אותות תואמים לקלט/פלט הניתנים לקריאה כדופק גבוה מתוזמן • מרחק חישה אופטימלי: 0.125 אינץ '(3 מ"מ) • מרחק חישה מרבי מומלץ ל- QTR-8A: 0.25 " (6 מ"מ) • מרחק החישה המרבי המומלץ עבור QTR-8RC: 0.375 אינץ '(9.5 מ"מ) • משקל ללא סיכות כותרת: 3.11 עוז (3.1 גרם) Lo podéis encontrar en:
tienda.bricogeek.com/componentes/257-array-…
כללי …
הרכיבים בהם השתמשנו היו הבאים.
חתיכה עגולה של מתאקרילט. (אתה יכול להשתמש בכל עיצוב, הבסיס שלנו אמצעי מספיק כדי להניח את הקערה הפוכה).
1 קערת ארוחת בוקר (משמשת לריכוז הרובוט על הקו).
2 גלגלים של צעצוע ממוחזר.
2 מנועים עם המפרט הבא:
מפרט (עבור 6V): מידות: 26 x 10 x 12 מ"מ יחס המפחית: 30: 1 קוטר פיר: 3 מ"מ (עם חריץ נעילה) מתח נומינלי: 6Vdc (יכול לפעול בין 3 ל 9Vdc) מהירות סיבוב ללא עומס: 1000 סל"ד צריכה ללא עומס: 120mA (1600mA עם עומס) מומנט: 0.6kg / cm (מקסימום) משקל: 10 גרם
קישור לחנות מקוונת:
1 לוח ארדואינו UNO (ממוחזר מפרויקט ישן)
מגן אחד למנועי Adafruit v2.3:
1 מחזיק סוללות של 8 סוללות AAA (איננו משתמשים בשני ספקי כוח).
6 ברגים ואומים לחיבור האלמנטים כפי שניתן לראות בתמונה
אוגנים למנועים, גומי אלסטי לאחיזת מחזיק הסוללה ופיסת דף פלסטיק לבסיס מחזיק הסוללה.
מערך 1 של חיישני QTR-8RC עם המאפיינים הבאים;
מפרט מערך חיישן ההשתקפות QTR-8x • מידות: 2.95 "x 0.5" • פורמט פלט עבור QTR-8RC: 8 אותות תואמי קלט / פלט הניתנים לקריאה כדופק גבוה מתוזמן • מרחק חישה אופטימלי: 0.125 אינץ '(3 מ"מ) • מרחק חישה מרבי מומלץ ל- QTR-8A: 0.25 " (6 מ"מ) • מרחק החישה המרבי המומלץ עבור QTR-8RC: 0.375 אינץ '(9.5 מ"מ) • משקל ללא סיכות כותרת: 0.11 עוז (3.1 גרם) ניתן למצוא אותו ב:
tienda.bricogeek.com/componentes/257-array-de-sensores-infrarojos-qtr-8rc-digital.html
הרכיבו הכל … בקרוב סרטון מפורט יותר …
שלב 2: שלב 2: השראה
פאר פרובר אל פונקציה דל לוס
motores hemos seguido esta ayuda del blog www.programarfacil.com
programarfacil.com/blog/arduino-blog/adafr…
Es un resumen muy bueno de los diferentes motores que controla esta shield.
עבור חיישן QTR-8RC חיישן כל סוג הדרכה
Y un ultimo enlace que os puede ayudar es este instructable;
www.instructables.com/id/Arduino-based-lin…
כדי לבדוק את ביצועי המנועים עקבנו אחר תמיכה בבלוג זה www.programarfacil.com
programarfacil.com/blog/arduino-blog/adafruit-motor-shield-arduino/
זהו סיכום טוב מאוד של המנועים השונים בהם מגן זה שולט.
כדי לכייל את חיישן QTR-8RC תוכל לעקוב אחר ההדרכה של
www.youtube.com/watch?v=_ZeybIDd80s&list=PLlNY7ygeCIzCuq0jSjPD8_LfcAsPKUcGL&index=6
וקישור אחרון שיכול לעזור לך הוא ההנחיה הזו;
www.instructables.com/id/Arduino-based-line-follower-using-Polol-QTR-8RC-l/
שלב 3: שלב 3: קוד
las conexiones entre el array de
sensores y las placas las hicimos de la siguiente manera:
El Led ON va al pin digital 12
Los 8 sensores van desde el
מספר 1 על פין 8
מספר 2 על פין 9
מספר 3 על פין 2
מספר 4 אל פין 3
מספר 5 אל פין 4
מספר 6 אל פין 5
מספר 7 אל פין 6
מספר 8 אל פין 7
El código va sin repasarlo (se aceptan sugerencias)
#לִכלוֹל
#לִכלוֹל
#לִכלוֹל
#לִכלוֹל
// צור את אובייקט מגן המנוע עם כתובת ברירת המחדל של I2C
Adafruit_MotorShield AFMS = Adafruit_MotorShield ();
// או, צור אותה עם כתובת I2C אחרת (נניח לערימה)
// Adafruit_MotorShield AFMS = Adafruit_MotorShield (0x61);
// בחר איזה 'יציאה' M1, M2, M3 או M4. במקרה זה, M1
Adafruit_DCMotor *motor1 = AFMS.getMotor (1);
// ניתן גם לייצר מנוע נוסף ביציאה M2
Adafruit_DCMotor *motor2 = AFMS.getMotor (2);
// שנה את הערכים שלהלן כך שיתאימו למנועי הרובוט שלך, משקלו, סוג הגלגל וכו '.
#הגדר KP.2
#define KD 5
#הגדר M1_DEFAULT_SPEED 50
#הגדר M2_DEFAULT_SPEED 50
#הגדר M1_MAX_SPEED 70
#הגדר M2_MAX_SPEED 70
#הגדר MIDDLE_SENSOR 4
#הגדר NUM_SENSORS 8 // מספר חיישנים בשימוש
#define TIMEOUT 2500 // ממתין ל- 2500 לנו עד שיציאות חיישן יירדו
#define EMITTER_PIN 12 // הפולט נשלט על ידי סיכה דיגיטלית 2
#define DEBUG 0 // מוגדר ל -1 אם יש צורך בפלט באגים סדרתי
QTRSensorsRC qtrrc ((תו לא חתום ) {8, 9, 2, 3, 4, 5, 6, 7}, NUM_SENSORS, TIMEOUT, EMITTER_PIN);
חיישן אינט לא חתום [NUM_SENSORS];
הגדרת חלל ()
{
עיכוב (1000);
כיול ידני ();
set_motors (0, 0);
}
int lastError = 0;
int last_proportional = 0;
int integral = 0;
לולאת חלל ()
{
Serial.begin (9600); // הגדר את הספרייה הטורית ב 9600 bps
Serial.println ("Adafruit Motorshield v2 - בדיקת מנוע DC!");
AFMS.begin (); // ליצור עם תדר ברירת המחדל 1.6KHz
//AFMS.begin(1000); // או עם תדר אחר, נניח 1KHz
// הגדר את מהירות ההתחלה, מ -0 (כבוי) ל -255 (מהירות מרבית)
motor1-> setSpeed (70);
motor1-> הפעלה (קדימה);
// הפעל את המנוע
motor1-> הפעלה (RELEASE);
motor2-> setSpeed (70);
motor2-> הפעלה (קדימה);
// הפעל את המנוע
motor2-> הפעלה (RELEASE);
חיישני אינט לא חתומים [5];
int position = qtrrc.readLine (חיישנים);
int שגיאה = מיקום - 2000;
int motorSpeed = KP * error + KD * (error - lastError);
lastError = שגיאה;
int leftMotorSpeed = M1_DEFAULT_SPEED + motorSpeed;
int rightMotorSpeed = M2_DEFAULT_SPEED - motorSpeed;
// הגדר את מהירות המנוע באמצעות שני משתני מהירות המנוע לעיל
set_motors (leftMotorSpeed, rightMotorSpeed);
}
void set_motors (int motor1speed, int motor2speed)
{
אם (motor1speed> M1_MAX_SPEED) motor1speed = M1_MAX_SPEED; // הגבל את המהירות המרבית
אם (motor2speed> M2_MAX_SPEED) motor2speed = M2_MAX_SPEED; // הגבל את המהירות המרבית
אם (motor1speed <0) motor1speed = 0; // החזק את המנוע מעל 0
אם (motor2speed <0) motor2speed = 0; // שמור על מהירות המנוע מעל 0
motor1-> setSpeed (motor1speed); // הגדר את מהירות המנוע
motor2-> setSpeed (motor2speed); // הגדר את מהירות המנוע
motor1-> הפעלה (קדימה);
motor2-> הפעלה (קדימה);
}
void manual_calibration () {
int i;
עבור (i = 0; i <250; i ++) // הכיול ייקח כמה שניות
{
qtrrc.calibrate (QTR_EMITTERS_ON);
עיכוב (20);
}
אם (DEBUG) {// אם נכון, צור נתוני חיישן באמצעות פלט סידורי
Serial.begin (9600);
עבור (int i = 0; i <NUM_SENSORS; i ++)
{
Serial.print (qtrrc.calibratedMinimumOn );
Serial.print ('');
}
Serial.println ();
עבור (int i = 0; i <NUM_SENSORS; i ++)
{
Serial.print (qtrrc.calibratedMaximumOn );
Serial.print ('');
}
Serial.println ();
Serial.println ();
}
}
Bueno a ver que tal se nos da este proyecto "express" en la competición del OSHWDEM.