תוכן עניינים:

TA-ZON-BOT (קו עוקב): 3 שלבים (עם תמונות)
TA-ZON-BOT (קו עוקב): 3 שלבים (עם תמונות)

וִידֵאוֹ: TA-ZON-BOT (קו עוקב): 3 שלבים (עם תמונות)

וִידֵאוֹ: TA-ZON-BOT (קו עוקב): 3 שלבים (עם תמונות)
וִידֵאוֹ: Полный курс Redux Toolkit + RTK Query для начинающих | Редакс за 2 часа! 2024, נוֹבֶמבֶּר
Anonim
TA-ZON-BOT (קו עוקב)
TA-ZON-BOT (קו עוקב)
TA-ZON-BOT (קו עוקב)
TA-ZON-BOT (קו עוקב)

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: רכיבים

שלב 1: רכיבים
שלב 1: רכיבים
שלב 1: רכיבים
שלב 1: רכיבים
שלב 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: קוד

Image
Image

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.

מוּמלָץ: