فهرست مطالب:

TA-ZON-BOT (دنبال کننده خط): 3 مرحله (همراه با تصاویر)
TA-ZON-BOT (دنبال کننده خط): 3 مرحله (همراه با تصاویر)

تصویری: TA-ZON-BOT (دنبال کننده خط): 3 مرحله (همراه با تصاویر)

تصویری: TA-ZON-BOT (دنبال کننده خط): 3 مرحله (همراه با تصاویر)
تصویری: نحوه راه اندازی L4D2 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 ، (حداقل کننده های gracias).

Ha sido un proyecto express para poder participar en la OSHWDEN de A Coruña.

oshwdem.org/2017/06/oshwdem-2017/

مترجم گوگل

TA-ZON-BOT

خط دنباله کاسه

ما این ربات را با کمک دانش آموزانمان دنبال کرده ایم (با تشکر از کوچک سازان).

این یک پروژه سریع برای شرکت در OSHWDEN A Coruña بوده است.

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 motores con las siguientes especificaciones:

Especificaciones (پاراگراف 6 ولت):

ابعاد: 26 10 10 12 12 میلی متر

نسبت کاهش: 30: 1

اندازه قطر: 3 میلی متر (con ranura de bloqueo)

ولتاژ اسمی: 6Vcc (puede funcionar entre 3 a 9Vcc)

Velocidad de giro sin carga: 1000 دور در دقیقه

کالای مصرفی گناه: 120mA (1600mA con carga)

گشتاور: 0.6 کیلوگرم در سانتی متر (حداکثر)

پزو: 10 گرم

Enlace de tienda بصورت آنلاین:

1 placa Arduino UNO (reciclada de un proyecto antiguo)

1 shield para motores Adafruit v2.3:

1 Un porta pilas de 8 pilas AAA (no utilizamos 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" • ولتاژ کار: 3.3-5.0 ولت • جریان منبع تغذیه: 100 میلی آمپر • فرمت خروجی QTR-8A: 8 ولتاژ آنالوگ از 0 ولت تا ولتاژ عرضه شده • فرمت خروجی برای QTR-8RC: 8 سیگنال سازگار با ورودی/خروجی دیجیتالی که می توانند به عنوان یک پالس بالا زمان بندی شده خوانده شوند. (6 میلی متر) • حداکثر فاصله سنجش توصیه شده برای QTR-8RC: 0.375 اینچ (9.5 میلی متر) • وزن بدون پین هدر: 0.11 اونس (3.1 گرم) Lo podéis encontrar en:

tienda.bricogeek.com/componentes/257-array-…

Ensamblar todo… próximamente un vídeo más detallado…

اجزای مورد استفاده ما موارد زیر بوده است.

یک قطعه گرد متاکریلات. (می توانید از هر طرحی استفاده کنید ، اندازه پایه ما به اندازه کافی برای قرار دادن کاسه وارونه است).

1 کاسه صبحانه (برای تمرکز ربات روی خط استفاده می شود).

2 چرخ اسباب بازی بازیافتی.

2 موتور با مشخصات زیر:

مشخصات (برای 6 ولت): ابعاد: 26 10 10 12 12 میلی متر نسبت کاهنده: 30: 1 قطر شفت: 3 میلی متر (با شیار قفل) ولتاژ اسمی: 6 ولت (می تواند بین 3 تا 9 ولت کار کند) سرعت چرخش بدون بار: 1000 دور در دقیقه مصرف بدون بار: 120mA (1600mA با بار) گشتاور: 0.6kg / cm (حداکثر) وزن: 10 گرم

پیوند فروشگاه آنلاین:

1 برد Arduino UNO (بازیافت شده از یک پروژه قدیمی)

1 سپر برای موتورهای Adafruit v2.3:

1 نگهدارنده باتری 8 باتری AAA (ما از 2 منبع تغذیه استفاده نمی کنیم).

6 پیچ و مهره برای اتصال عناصر مطابق تصویر

فلنج برای موتورها ، یک لاستیک الاستیک برای نگه داشتن نگهدارنده باتری و یک تکه ورقه پلاستیک برای پایه نگهدارنده باتری.

1 آرایه از حسگرهای QTR-8RC با مشخصات زیر ؛

مشخصات آرایه حسگر بازتاب QTR-8x • ابعاد: 2.95 "x 0.5" • ولتاژ کار: 3.3-5.0 ولت • جریان منبع تغذیه: 100 میلی آمپر • فرمت خروجی QTR-8A: 8 ولتاژ آنالوگ از 0 ولت تا ولتاژ عرضه شده • فرمت خروجی برای QTR-8RC: 8 سیگنال دیجیتالی سازگار با ورودی / خروجی که می تواند به عنوان یک پالس بالا زمان بندی شده خوانده شود. (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: الهام بخش

Para probar el funcionamiento del los

motores hemos seguido esta ayuda del blog www.programarfacil.com

programarfacil.com/blog/arduino-blog/adafr…

Es unumen muy bueno de los diferentes motores que controla esta shield.

برای تعیین درجه حسگر QTR-8RC در اینجا آموزش خود را مشاهده کنید

Y un ultimo enlace que os puede ayudar es este Teacher؛

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-base-line-follower-using-Pololu-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

número 1 al pin 8

número 2 al pin 9

número 3 al pin 2

número 4 al pin 3

número 5 al pin 4

número 6 al pin 5

número 7 در پین 6

número 8 al pin 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

#تعریف KD 5

#تعریف M1_DEFAULT_SPEED 50

#تعریف M2_DEFAULT_SPEED 50

#تعریف M1_MAX_SPEED 70

#تعریف M2_MAX_SPEED 70

#تعریف MIDDLE_SENSOR 4

#تعریف NUM_SENSORS 8 // تعداد حسگرهای مورد استفاده

#تعریف TIMEOUT 2500 // تا 2500 ما منتظر می ماند تا خروجی سنسور کم شود

#تعریف EMITTER_PIN 12 // امیتر توسط پین دیجیتال 2 کنترل می شود

در صورت نیاز به خروجی اشکال زدایی سریال ، #DEBUG 0 را تعریف کنید

QTRSensorsRC qtrrc ((کاراکتر بدون علامت ) {8 ، 9 ، 2 ، 3 ، 4 ، 5 ، 6 ، 7} ، NUM_SENSORS ، TIMEOUT ، EMITTER_PIN) ؛

حسگر int بدون ارزش

void setup ()

{

تاخیر (1000) ؛

کالیبراسیون دستی ()؛

set_motors (0 ، 0) ؛

}

int lastError = 0؛

int last_proportional = 0؛

int انتگرال = 0؛

حلقه خالی ()

{

Serial.begin (9600)؛ // مجموعه کتابخانه سریال را با سرعت 9600 bps تنظیم کنید

Serial.println ("Adafruit Motorshield v2 - DC DC test!") ؛

AFMS.begin ()؛ // با فرکانس پیش فرض 1.6 کیلوهرتز ایجاد کنید

//AFMS.begin(1000) ؛ // یا با فرکانس متفاوت ، فرض کنید 1 کیلوهرتز

// تنظیم سرعت برای شروع ، از 0 (خاموش) تا 255 (حداکثر سرعت)

motor1-> setSpeed (70) ؛

motor1-> run (FORWARD) ؛

// روشن کردن موتور

motor1-> run (RELEASE) ؛

motor2-> setSpeed (70) ؛

motor2-> run (FORWARD) ؛

// روشن کردن موتور

motor2-> run (RELEASE) ؛

حسگرهای int بدون علامت [5] ؛

int position = qtrrc.readLine (حسگرها) ؛

خطای int = موقعیت - 2000 ؛

int motorSpeed = خطای KP * KD * (خطا - 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)

{

if (motor1speed> M1_MAX_SPEED) motor1speed = M1_MAX_SPEED ؛ // محدود کردن حداکثر سرعت

if (motor2speed> M2_MAX_SPEED) motor2speed = M2_MAX_SPEED ؛ // محدود کردن حداکثر سرعت

if (motor1speed <0) motor1speed = 0؛ // موتور را بالای 0 نگه دارید

اگر (motor2speed <0) motor2speed = 0؛ // سرعت موتور را بالاتر از 0 نگه دارید

motor1-> setSpeed (motor1speed) ؛ // تنظیم سرعت موتور

motor2-> setSpeed (motor2speed) ؛ // تنظیم سرعت موتور

motor1-> run (FORWARD) ؛

motor2-> run (FORWARD) ؛

}

void manual_calibration () {

int i؛

برای (i = 0 ؛ i <250 ؛ i ++) // کالیبراسیون چند ثانیه طول می کشد

{

qtrrc. Calibrate (QTR_EMITTERS_ON) ؛

تأخیر (20) ؛

}

if (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.

توصیه شده: