جدول المحتويات:

TA-ZON-BOT (خط تابع): 3 خطوات (بالصور)
TA-ZON-BOT (خط تابع): 3 خطوات (بالصور)

فيديو: TA-ZON-BOT (خط تابع): 3 خطوات (بالصور)

فيديو: TA-ZON-BOT (خط تابع): 3 خطوات (بالصور)
فيديو: 3-часовой марафон паранормальных и необъяснимых историй 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 minimakers).

Ha sido un proyecto express para poder مشارك في لا OSHWDEN de A Coruña.

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

traductor جوجل

TA-ZON-BOT

الوعاء يتبع الخط

لقد صنعنا هذا الروبوت يتابعك بمساعدة طلابنا ، (شكرًا لك minimakers).

لقد كان مشروعًا سريعًا للمشاركة في OSHWDEN في لاكورونيا.

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

مترجم جوجل

الخطوة 1: الخطوة 1: المكونات

الخطوة 1: المكونات
الخطوة 1: المكونات
الخطوة 1: المكونات
الخطوة 1: المكونات
الخطوة 1: المكونات
الخطوة 1: المكونات

مكونات لوس كيو هيموس الاستخدامات

هان سيدو لوس سيجوينتس.

أونا بيزا ريدوندا دي ميتاكريلاتو. (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 محركات خاصة بالسيارات الخاصة:

Especificaciones (الفقرة 6V):

الأبعاد: ٢٦ × ١٠ × ١٢ ملم

نسبة الاختزال: 30: 1

Diámetro del eje: 3mm (con ranura de bloqueo)

Voltaje الاسمي: 6Vcc (puede funcionar entre 3 a 9Vcc)

فيلوسيداد دي جيرو سين كارجا: 1000 دورة في الدقيقة

استهلاك الخطيئة كارجا: 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.

مجموعة واحدة من أجهزة الاستشعار QTR-8RC تتعامل مع أجهزة الاستشعار ؛

مواصفات صفيف مستشعر الانعكاس QTR-8x • الأبعاد: 2.95 "× 0.5" • جهد التشغيل: 3.3-5.0 فولت • تيار الإمداد: 100 مللي أمبير • تنسيق الإخراج لـ QTR-8A: 8 جهد تناظري يتراوح من 0 فولت إلى الجهد المزود • تنسيق الإخراج لـ QTR-8RC: 8 إشارات رقمية متوافقة مع الإدخال / الإخراج يمكن قراءتها كنبضة عالية موقوتة • مسافة الاستشعار المثلى: 0.125 بوصة (3 مم) • أقصى مسافة استشعار موصى بها لـ QTR-8A: 0.25 " (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 محرك بالمواصفات التالية:

المواصفات (لـ 6 فولت): الأبعاد: 26 × 10 × 12 مم نسبة المخفض: 30: 1 قطر العمود: 3 مم (مع أخدود قفل) الجهد الاسمي: 6 فولت تيار مستمر (يمكن أن تعمل بين 3 إلى 9 فولت تيار مستمر) سرعة الدوران بدون تحميل: 1000 دورة في الدقيقة الاستهلاك بدون تحميل: 120 مللي أمبير (1600 مللي أمبير مع حمل) عزم الدوران: 0.6 كجم / سم (حد أقصى) الوزن: 10 جرام

رابط المتجر عبر الإنترنت:

1 لوحة Arduino UNO (معاد تدويرها من مشروع قديم)

1 درع لمحركات Adafruit v2.3:

1 حامل بطارية مكون من 8 بطاريات AAA (لا نستخدم إمداد طاقة).

6 براغي وصواميل لربط العناصر كما يظهر في الصورة

حواف للمحركات ، ومطاط مرن لتثبيت حامل البطارية وقطعة من البلاستيك لقاعدة حامل البطارية.

صفيف واحد من مستشعرات QTR-8RC بالخصائص التالية ؛

مواصفات صفيف مستشعر الانعكاس QTR-8x • الأبعاد: 2.95 "× 0.5" • جهد التشغيل: 3.3-5.0 فولت • تيار الإمداد: 100 مللي أمبير • تنسيق الإخراج لـ QTR-8A: 8 جهود تناظرية تتراوح من 0 فولت إلى الجهد المزود • تنسيق الإخراج لـ 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: Inspiración

الفقرة probar el funcionamiento del los

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

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

Es un استئناف muy bueno de los diferentes motores que controla esta shield.

Para calibrar el sensor QTR-8RC podéis seguir el tutorial de

Y un ultimo enlace que os puede ayudar es este تعليمات ؛

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-Pololu-QTR-8RC-l/

الخطوة 3: الخطوة 3: الكود

Image
Image

las conexiones entre el array de

أجهزة الاستشعار y las placas las hicimos de la siguiente manera:

El Led ON va al pin digital 12

لوس 8 يستشعر فان ديدي إل

número 1 آل دبوس 8

نيميرو 2 دبوس 9

نيميرو 3 دبوس 2

número 4 آل دبوس 3

نيميرو 5 آل دبوس 4

نيميرو 6 آل دبوس 5

نيميرو 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) ؛

// قم بتغيير القيم أدناه لتناسب محركات الروبوت الخاص بك ووزنه ونوع العجلة وما إلى ذلك.

#define KP.2

# تعريف 5 دينار كويتي

#define M1_DEFAULT_SPEED 50

#define M2_DEFAULT_SPEED 50

#define M1_MAX_SPEED 70

#define M2_MAX_SPEED 70

#define MIDDLE_SENSOR 4

#define 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) ؛

حساس int غير موقعة [NUM_SENSORS] ؛

الإعداد باطل()

{

تأخير (1000) ؛

Manual_calibration () ؛

set_motors (0 ، 0) ؛

}

int lastError = 0 ؛

int last_proportional = 0 ؛

تكامل int = 0 ؛

حلقة فارغة()

{

Serial.begin (9600) ؛ // إعداد مكتبة تسلسلية بسرعة 9600 بت في الثانية

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

AFMS.begin () ، // إنشاء بالتردد الافتراضي 1.6 كيلو هرتز

//AFMS.begin (1000) ، // أو بتردد مختلف ، لنقل 1 كيلو هرتز

// ضبط السرعة للبدء ، من 0 (إيقاف) إلى 255 (السرعة القصوى)

المحرك 1-> setSpeed (70) ؛

motor1-> تشغيل (إلى الأمام) ؛

// تشغيل المحرك

Motor1-> run (RELEASE) ؛

المحرك 2 -> setSpeed (70) ؛

Motor2-> تشغيل (إلى الأمام) ؛

// تشغيل المحرك

Motor2-> run (RELEASE) ؛

مستشعرات int غير موقعة [5] ؛

موضع int = qtrrc.readLine (مجسات) ؛

خطأ int = الموقف - 2000 ؛

int motorSpeed = KP * error + KD * (error - lastError) ؛

lastError = خطأ ؛

int leftMotorSpeed = M1_DEFAULT_SPEED + motorSpeed ؛

int rightMotorSpeed = M2_DEFAULT_SPEED - سرعة المحرك ؛

// اضبط سرعات المحرك باستخدام متغيري سرعة المحرك أعلاه

set_motors (leftMotorSpeed ، rightMotorSpeed) ؛

}

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-> تشغيل (إلى الأمام) ؛

}

Manual_calibration باطل () {

إنت أنا

لـ (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.

موصى به: