مكنسة اردوينو روبوت

على الرغم من حقيقة أنه في geektimes هناك بالفعل العديد من المقالات حول المكانس الكهربائية الروبوتية على اردوينو هنا و هنا ، وأعتقد أنه لن تكون زائدة عن الحاجة لنشر مشروع آخر. علاوة على ذلك ، تم تقريبه قليلاً من تخزين النماذج ، وبما أن المشروع يتطور باستمرار ، فإنه سيتفوق على بعضها في العمل بمرور الوقت. أنشر هذه المشاركة بإذن من مطور مكنسة كهربائية روبوتية هذه ، حيث لا تتاح للمؤلفة فرصة نشر مقالات من حسابها. لذلك ، ستكون المقالة في شكل مقابلة قصيرة مع منشئ المحتوى ممزوجة بالمخططات والصور ورمز مكنسة كهربائية روبوتية. لكن دعنا نبدأ بعرض فيديو لتنظيف الغرفة باستخدام المكنسة الكهربائية.





لذا ، لنبدأ بتصميم ومبدأ تشغيل المكنسة الكهربائية.



يوضح الرسم البياني أن المكنسة الكهربائية مجهزة بـ 6 مستشعرات للأشعة تحت الحمراء. إنها تعمل عندما تقترب المكنسة الكهربائية من العائق ، مما يعطي الأمر للتوقف والاستدارة دون الاصطدام به. إذا لم يعمل أي من أجهزة الاستشعار الستة ، وتصادم المكنسة الكهربائية الروبوتية مع عقبة ، فسيتم تشغيل أحد المفتاحين اللذين يربطان المصد (الذي يحتوي على مستشعرات الأشعة تحت الحمراء) وجسم الروبوت.

لاحظ القراء اليقظون أن قوة الروبوت لا تظهر في الرسم التخطيطي. هنا الحل قياسي للغاية ، يتم استخدام 4 بطاريات من تنسيق 18650 ، زوجان متصلان في سلسلة من خلال وحدة تحكم تفريغ شحن البطارية. علاوة على ذلك ، يتم توصيل محولات DC-DC صعودا وهبوطا من وحدة التحكم من خلال مفتاح. + 12 فولت تزود محركات العجلات ومحركات الفرشاة الأمامية. +5 فولت يغذي باقي الإلكترونيات. يتم تشغيل التوربينات بقوة 7-8 فولت ، لذلك لا حاجة لمحول. يبدو كما يلي:



نتيجة لذلك ، تبدو قائمة المكونات الرئيسية كما يلي: عجلات وحدة سائق المحرك Arduino

pro mini
L298N تعزز محول التنحي محول 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 هنا. في هذه اللحظة المتفائلة ، أعتقد أننا سننهي القصة حول هذا الإصدار من مكنسة كهربائية الروبوت ، على الرغم من أن هناك العديد من اللحظات المثيرة للاهتمام غير المضاءة. وهكذا نختتم بسؤال:

Source: https://habr.com/ru/post/ar382131/


All Articles