ساخت ربات نظافتکننده خودکار کف با آردوینو | آموزشگاه رباتیک هادی - هادی روبو
ساخت ربات نظافتکننده خودکار کف با آردوینو | آموزشگاه هادی - هادی روبو
ساخت ربات نظافتکننده خودکار کف با آردوینو و سنسور فراصوت
آموزشگاه فنی و حرفه ای آزاد هادی (هادی روبو) – در این پروژه گامبهگام یک ربات نظافتکننده خودکار کف با استفاده از آردوینو و سنسور فراصوت طراحی و ساخته میشود. این ربات میتواند موانع را تشخیص داده و با حرکت هوشمند، کل اتاق را تمیز کند.
ربات نظافتکننده خودکار کف
تمیزکنندههای خودکار کف چیز جدیدی نیستند، اما همه آنها یک مشکل مشترک دارند: قیمت بسیار بالا. امروز میخواهیم یک ربات نظافتکننده خانگی بسازیم که فقط کسری از قیمت نمونههای بازار هزینه دارد. این ربات میتواند موانع و اشیاء جلوی خود را تشخیص داده و با دور زدن آنها، به حرکت خود ادامه دهد تا کل اتاق تمیز شود. یک برس کوچک نیز به آن متصل است تا کف را تمیز کند.

قطعات مورد نیاز
- آردوینو UNO R3
- سنسور فراصوت (Ultrasonic Sensor)
- شیلد درایور موتور آردوینو
- شاسی ربات با چرخهای محرک
- کامپیوتر برای برنامهنویسی آردوینو
- باتری برای موتورها
- پاوربانک برای تغذیه آردوینو
- برس کفشویی
- اسکاچ برس (Scotch Brite)
سنسور فراصوت HC-SR04

سنسور فراصوت برای اندازهگیری فاصله با دقت بالا و خواندن پایدار استفاده میشود. میتواند فاصله ۲ سانتیمتر تا ۴۰۰ سانتیمتر را اندازهگیری کند. این سنسور با ارسال یک موج فراصوت با فرکانس ۴۰ کیلوهرتز و دریافت انعکاس آن از جسم، فاصله را محاسبه میکند.
سنسور فراصوت از تکنیکی به نام «اکو» استفاده میکند. زمانی که پایه Trigger به مدت ۱۰ میکروثانیه HIGH شود، ماژول ۸ پالس سونیک ارسال میکند. پس از برخورد به جسم، پالس به پایه Echo بازمیگردد. با اندازهگیری زمان رفت و برگشت، فاصله محاسبه میشود.
فرمول محاسبه فاصله:
فاصله = (زمان × سرعت صوت در هوا (۳۴۳ متر بر ثانیه)) / ۲
عدد تقسیم بر دو میشود زیرا موج مسیر رفت و برگشت را طی میکند.
فاصله بر حسب سانتیمتر = ۱۷۱۵۰ × زمان
مونتاژ ربات نظافتکننده کف

آردوینو را روی شاسی نصب کنید. مطمئن شوید که اتصال کوتاهی ایجاد نمیشود، به خصوص اگر شاسی فلزی است. بهتر است برای آردوینو و شیلد درایور موتور یک جعبه تهیه کنید. موتورها را با چرخها و شاسی با پیچ محکم کنید. برس کفشویی را در جلوی شاسی نصب کنید. اسکاچ برس را پشت برس قرار دهید. باتریها (یا کابلها) را در پشت شاسی نصب کنید.


سیمکشی و اتصالات
مدار این ربات نظافتکننده خودکار بسیار ساده است. سنسور فراصوت را مطابق زیر به آردوینو متصل کنید و شیلد درایور موتور را روی آردوینو قرار دهید.

- پایه Trig سنسور به پایه ۱۲ آردوینو
- پایه Echo سنسور به پایه ۱۳ آردوینو
- پایه VCC به ۵ ولت
- پایه GND به زمین
شیلد موتور باید حداقل ۲ خروجی داشته باشد که به ۲ موتور متصل میشوند. باتریها و پاوربانک را به ترتیب به شیلد موتور و آردوینو وصل کنید. اتصالات را اشتباه نکنید.
توضیح برنامه
Arduino IDE را باز کنید. کد کامل را در انتهای صفحه پیدا خواهید کرد. آردوینو را به کامپیوتر متصل کنید، پورت را انتخاب کرده و دکمه آپلود را بزنید.
قبل از کدنویسی، باید کتابخانه Adafruit Motor Shield را نصب کنید. این کتابخانه برای راهاندازی موتورها با شیلد L293D استفاده میشود.
در ادامه بخشهایی از کد توضیح داده شده است:
کد زیر ربات را راهاندازی میکند. ابتدا کتابخانه Adafruit را برای هدایت موتورها با شیلد درایور موتور اضافه میکنیم. سپس پایههای Trig و Echo را تعریف میکنیم. پایه Trig را به عنوان خروجی و Echo را به عنوان ورودی تنظیم میکنیم.
#include <AFMotor.h>
#define trigPin 12
#define echoPin 13
AF_DCMotor motor1(1, MOTOR12_64KHZ);
AF_DCMotor motor2(2, MOTOR12_8KHZ);
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
در حلقه loop، فاصله اندازهگیری میشود. اگر فاصله کمتر از ۲۰ سانتیمتر باشد، ربات به عقب رفته و میچرخد. در غیر این صورت، به جلو حرکت میکند.
void loop() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration / 2) / 29.1;
if (distance < 20) {
motor1.setSpeed(255);
motor2.setSpeed(0);
motor1.run(BACKWARD);
motor2.run(BACKWARD);
delay(2000); // مقدار را بر اساس چرخش ربات تنظیم کنید
} else {
motor1.setSpeed(160); // سرعت ربات را تنظیم کنید
motor2.setSpeed(160);
motor1.run(FORWARD);
motor2.run(FORWARD);
}
}
کد کامل پروژه
#include <AFMotor.h>
#define trigPin 12
#define echoPin 13
AF_DCMotor motor1(1, MOTOR12_64KHZ);
AF_DCMotor motor2(2, MOTOR12_8KHZ);
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration / 2) / 29.1;
if (distance < 20) {
motor1.setSpeed(255);
motor2.setSpeed(0);
motor1.run(BACKWARD);
motor2.run(BACKWARD);
delay(2000); // مقدار را بر اساس چرخش ربات تنظیم کنید
} else {
motor1.setSpeed(160); // سرعت ربات را تنظیم کنید
motor2.setSpeed(160);
motor1.run(FORWARD);
motor2.run(FORWARD);
}
}
جمعبندی از آموزشگاه فنی و حرفه ای آزاد هادی (هادی روبو)
تمام مراحل این پروژه در آموزشگاه فنی و حرفه ای آزاد هادی با رویکرد عملی و پروژهمحور تدریس میشود. با ساخت این ربات نظافتکننده خودکار، مباحث کلیدی مانند سنسور فراصوت، شیلد درایور موتور L293D، برنامهنویسی آردوینو و منطق کنترل خودکار را بهصورت کاربردی فرا خواهید گرفت.
نظرات (0)
پیام بگذارید