جدول المحتويات:
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-13 06:56
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: المكونات
مكونات لوس كيو هيموس الاستخدامات
هان سيدو لوس سيجوينتس.
أونا بيزا ريدوندا دي ميتاكريلاتو. (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: الكود
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.