على الرغم من حقيقة أنه في geektimes هناك بالفعل العديد من المقالات حول المكانس الكهربائية الروبوتية على اردوينو هنا و هنا ، وأعتقد أنه لن تكون زائدة عن الحاجة لنشر مشروع آخر. علاوة على ذلك ، تم تقريبه قليلاً من تخزين النماذج ، وبما أن المشروع يتطور باستمرار ، فإنه سيتفوق على بعضها في العمل بمرور الوقت. أنشر هذه المشاركة بإذن من مطور مكنسة كهربائية روبوتية هذه ، حيث لا تتاح للمؤلفة فرصة نشر مقالات من حسابها. لذلك ، ستكون المقالة في شكل مقابلة قصيرة مع منشئ المحتوى ممزوجة بالمخططات والصور ورمز مكنسة كهربائية روبوتية. لكن دعنا نبدأ بعرض فيديو لتنظيف الغرفة باستخدام المكنسة الكهربائية.
لذا ، لنبدأ بتصميم ومبدأ تشغيل المكنسة الكهربائية.
يوضح الرسم البياني أن المكنسة الكهربائية مجهزة بـ 6 مستشعرات للأشعة تحت الحمراء. إنها تعمل عندما تقترب المكنسة الكهربائية من العائق ، مما يعطي الأمر للتوقف والاستدارة دون الاصطدام به. إذا لم يعمل أي من أجهزة الاستشعار الستة ، وتصادم المكنسة الكهربائية الروبوتية مع عقبة ، فسيتم تشغيل أحد المفتاحين اللذين يربطان المصد (الذي يحتوي على مستشعرات الأشعة تحت الحمراء) وجسم الروبوت.لاحظ القراء اليقظون أن قوة الروبوت لا تظهر في الرسم التخطيطي. هنا الحل قياسي للغاية ، يتم استخدام 4 بطاريات من تنسيق 18650 ، زوجان متصلان في سلسلة من خلال وحدة تحكم تفريغ شحن البطارية. علاوة على ذلك ، يتم توصيل محولات DC-DC صعودا وهبوطا من وحدة التحكم من خلال مفتاح. + 12 فولت تزود محركات العجلات ومحركات الفرشاة الأمامية. +5 فولت يغذي باقي الإلكترونيات. يتم تشغيل التوربينات بقوة 7-8 فولت ، لذلك لا حاجة لمحول. يبدو كما يلي:
نتيجة لذلك ، تبدو قائمة المكونات الرئيسية كما يلي: عجلات وحدة سائق المحرك Arduinopro miniL298N تعزز محول التنحي محول IR مستشعر 6 قطع وحدة تحكم تفريغ الشحن
للتوربين (حوالي 200 روبل)PVC لتصنيع حالةالبطارية 18650 4 قطع.محركان للفرش (النموذج ليس مهمًا جدًا)محرك واحد للتوربين2 مفتاح تصادم.أحد الخيارات لرسم تخطيطي للتنظيف الفوضويهنا#define mot_ena 9 //
#define mot_in1 8 //
#define mot_in2 7 //
#define mot_in3 6 //
#define mot_in4 4 //
#define mot_enb 10 //
#define ir_1 A0 // 1 -
#define ir_2 A1 // 2 -
#define ir_3 A2 // 3 -
#define ir_4 A3 // 4 -
#define ir_5 A4 // 5 -
#define ir_6 A5 // 6 -
#define lev_vik 11 //
#define pra_vik 12 //
//
byte max_skor_lev = 254;
byte max_skor_prav = 244;
//---------------------------------
byte min_skor = 0;
void setup() {
randomSeed(analogRead(A7));
//
pinMode(3, INPUT); //
pinMode(2, INPUT); //
//-------------------------
//
pinMode(mot_ena, OUTPUT);
pinMode(mot_in1, OUTPUT);
pinMode(mot_in2, OUTPUT);
pinMode(mot_in3, OUTPUT);
pinMode(mot_in4, OUTPUT);
pinMode(mot_enb, OUTPUT);
//-------------------------------------------
// -
pinMode(ir_1, INPUT);
pinMode(ir_2, INPUT);
pinMode(ir_3, INPUT);
pinMode(ir_4, INPUT);
pinMode(ir_5, INPUT);
pinMode(ir_6, INPUT);
//-------------------------
//
pinMode(lev_vik, INPUT);
pinMode(pra_vik, INPUT);
//---------------------------
delay(3000);
ROB_VPERED();
}
void loop() {
//
if (digitalRead(lev_vik) == LOW)
{
ROB_STOP();
delay(200);
ROB_NAZAD();
delay(150);
ROB_STOP();
delay(200);
ROB_PRAV();
delay(random(400, 1500));
ROB_STOP();
delay(200);
ROB_VPERED();
}
//-----------------------------------------------
//
if (digitalRead(pra_vik) == LOW)
{
ROB_STOP();
delay(200);
ROB_NAZAD();
delay(150);
ROB_STOP();
delay(200);
ROB_LEV();
delay(random(400, 1500));
ROB_STOP();
delay(200);
ROB_VPERED();
}
//-----------------------------------------------
// 2 -
if (digitalRead(ir_2) == LOW)
{
ROB_STOP();
delay(200);
ROB_PRAV();
delay(random(200, 1100));
ROB_STOP();
delay(200);
ROB_VPERED();
}
//-----------------------------------------------
// 3 -
if (digitalRead(ir_3) == LOW)
{
ROB_STOP();
delay(200);
ROB_PRAV();
delay(random(200, 1100));
ROB_STOP();
delay(200);
ROB_VPERED();
}
//-----------------------------------------------
// 4 -
if (digitalRead(ir_4) == LOW)
{
ROB_STOP();
delay(200);
ROB_LEV();
delay(random(200, 1100));
ROB_STOP();
delay(200);
ROB_VPERED();
}
//-----------------------------------------------
// 5 -
if (digitalRead(ir_5) == LOW)
{
ROB_STOP();
delay(200);
ROB_LEV();
delay(random(200, 1100));
ROB_STOP();
delay(200);
ROB_VPERED();
}
//-----------------------------------------------
// 1 -
if (digitalRead(ir_1) == LOW)
{
ROB_PRAV();
delay(10);
ROB_VPERED();
}
//-----------------------------------------------
// 6 -
if (digitalRead(ir_6) == LOW)
{
ROB_LEV();
delay(10);
ROB_VPERED();
}
//-----------------------------------------------
}
//
void ROB_PRAV()
{
//
digitalWrite(mot_in1, LOW);
digitalWrite(mot_in2, HIGH);
analogWrite(mot_ena, max_skor_lev);
//
digitalWrite(mot_in3, LOW);
digitalWrite(mot_in4, HIGH);
analogWrite(mot_enb, max_skor_prav);
}
//-----------------
//
void ROB_LEV()
{
//
digitalWrite(mot_in3, HIGH);
digitalWrite(mot_in4, LOW);
analogWrite(mot_enb, max_skor_prav);
//
digitalWrite(mot_in1, HIGH);
digitalWrite(mot_in2, LOW);
analogWrite(mot_ena, max_skor_lev);
}
//---------------------
//
void ROB_VPERED()
{
//
digitalWrite(mot_in1, LOW);
digitalWrite(mot_in2, HIGH);
analogWrite(mot_ena, max_skor_lev);
//
digitalWrite(mot_in3, HIGH);
digitalWrite(mot_in4, LOW);
analogWrite(mot_enb, max_skor_prav);
}
//-------------------------------------
//
void ROB_NAZAD()
{
//
digitalWrite(mot_in1, HIGH);
digitalWrite(mot_in2, LOW);
analogWrite(mot_ena, max_skor_lev);
//
digitalWrite(mot_in3, LOW);
digitalWrite(mot_in4, HIGH);
analogWrite(mot_enb, max_skor_prav);
}
//------------------------------------
//
void ROB_STOP()
{
//
digitalWrite(mot_in1, LOW);
digitalWrite(mot_in2, LOW);
analogWrite(mot_ena, min_skor);
//
digitalWrite(mot_in3, LOW);
digitalWrite(mot_in4, LOW);
analogWrite(mot_enb, min_skor);
}
//--------------------------------
حسنًا ، مقابلة صغيرة مع مؤلف هذا المشروع. اسم المؤلف هو ديمتري إيفانوف ، يعيش في سوتشي.- ديمتري ، كيف توصلت إلى فكرة صنع مكنسة كهربائية روبوتية؟- شاهدت مقطع فيديو على موقع يوتيوب حيث كانت مكنسة كهربائية روبوتية تنظف ، أرادت شراء واحدة ، ولكن عندما نظرت إلى السعر ، فكرت وقررت أن أفعل ذلك بنفسي. أولاً قمت بعمل النسخة الأولى من الروبوت ، وكان لديها محركات ضعيفة على العجلات ، وحاوية ثابتة للحطام والغبار ، وعدد قليل من مستشعرات العوائق ، وقمت بعمل النسخة الثانية ، خالية من هذه العيوب.- كم من المال والوقت الذي استغرقه لجعله؟"حوالي 5000 ألف روبل. بالإضافة إلى شهرين من العمل "- ما هو الأصعب خلال عملية البناء؟أصعب شيء هو صنع غلاف وتوربين ، لتناسب جميع التفاصيل.- أي خطط لمواصلة تحسين الروبوت؟تتمثل الخطط في طلاء الحالة ، وإنشاء العديد من أوضاع التنظيف ، وربط وحدة البلوتوث وكتابة برنامج للهاتف على android (التحكم في الوضع ، التحكم اليدوي ، عرض شحن البطارية). حسنًا ، اصنع إضاءة خلفية زرقاء للجمال تحت المكنسة الكهربائية.يمكن العثور على مجموعة من أكثر من 100 مادة تدريبية على اردوينو للمبتدئين والمحترفين هنا .ملاحظة: الدورة التدريبية على الإنترنت حول Arduino في Gimetays هنا. في هذه اللحظة المتفائلة ، أعتقد أننا سننهي القصة حول هذا الإصدار من مكنسة كهربائية الروبوت ، على الرغم من أن هناك العديد من اللحظات المثيرة للاهتمام غير المضاءة. وهكذا نختتم بسؤال: