- Необхідний компонент:
- Збірка робота для миття підлоги:
- Електропроводка та підключення:
- Пояснення до програмування:
Автоматичні засоби для чищення підлоги не є новиною, але всі вони мають спільну проблему. Всі вони занадто дорогі для того, що роблять. Сьогодні ми виготовимо автоматичного робочого прибиральника для дому, який коштує лише незначну частину тих, що є на ринку. Цей робот може виявляти перешкоди та предмети, що знаходяться перед ним, і може продовжувати рух, уникаючи перешкод, поки вся кімната не буде очищена. На ньому прикріплена маленька щітка для чищення підлоги.
Також перевірте наш Розумний пилосос-робот за допомогою Arduino
Необхідний компонент:
- Arduino UNO R3.
- Ультразвуковий датчик.
- Щит драйвера двигуна Arduino.
- Колесо робочого шасі.
- Комп’ютер для програмування Arduino.
- Акумулятор для двигунів.
- Банк енергії для живлення Arduino
- Щітка для взуття.
- Скотч-брит для скрабу.
Примітка: Замість використання акумуляторів ви також можете використовувати довгий 4-жильний провід, як ми це робили. Хоча це не дуже елегантне або практичне рішення, але ви можете зробити це, якщо не плануєте використовувати його в реальному світі щодня. Переконайтеся, що довжини кабелю достатньо.
Перш ніж вдаватися до деталей, давайте спочатку поговоримо про ультразвук.
HC-SR04 Ультразвуковий датчик:
Ультразвуковий датчик використовується для вимірювання відстані з високою точністю та стабільними показаннями. Він може вимірювати відстань від 2 см до 400 см або від 1 дюйма до 13 футів. Він випромінює ультразвукову хвилю на частоті 40 кГц у повітрі, і якщо об'єкт буде заважати, він повернеться до датчика. Використовуючи час, який потрібно для нанесення удару по об’єкту і повернення, ви можете розрахувати відстань.
Ультразвуковий датчик використовує техніку, яка називається “ECHO”. “ECHO” - це просто відбита звукова хвиля. Ви отримаєте ECHO, коли звук відбивається назад після того, як зайде в глухий кут.
Модуль HCSR04 генерує звукову вібрацію в ультразвуковому діапазоні, коли ми піднімаємо високий штифт `` Trigger '' приблизно на 10us, який надсилає 8-цикловий звуковий сплеск зі швидкістю звуку, і після удару по об'єкту, він буде отриманий ехо-штифтом. Залежно від часу, необхідного звуковій вібрації для повернення, він забезпечує відповідний імпульсний вихід. Якщо об'єкт знаходиться далеко, то для того, щоб почути ECHO, потрібно більше часу, і вихідна імпульсна ширина буде великою. А якщо перешкода поруч, тоді ECHO буде чути швидше, а ширина вихідного імпульсу буде меншою.
Ми можемо розрахувати відстань об’єкта, виходячи з часу, за який ультразвукова хвиля повертається назад до датчика. Оскільки час і швидкість звуку відомі, ми можемо розрахувати відстань за наступними формулами.
Відстань = (Час х Швидкість звуку в повітрі (343 м / с)) / 2.
Значення ділиться на два, оскільки хвиля рухається вперед і назад, покриваючи однакову відстань. Таким чином, час досягнення перешкоди становить лише половину від усього часу, який потрібно
Отже, відстань в сантиметрах = 17150 * T
Раніше ми зробили багато корисних проектів, використовуючи цей ультразвуковий датчик та Arduino, перевірте їх нижче:
- Вимірювання відстані на основі Arduino за допомогою ультразвукового датчика
- Сигналізація дверей за допомогою Arduino та ультразвукового датчика
- Моніторинг дамстерів на основі IOT за допомогою Arduino
Збірка робота для миття підлоги:
Встановіть Arduino на шасі. Переконайтеся, що ви нічого не замикаєте на випадок, якщо ваше шасі виготовлене з металу. Непогано придбати коробку для Arduino та щит контролера двигуна. Закріпіть двигуни за допомогою коліс і шасі за допомогою гвинтів. У вашому шасі повинні бути варіанти зробити це із заводу, але якщо цього немає, ви можете імпровізувати інше рішення. Епоксидна смола - це не погана ідея. Встановіть щітку для взуття на передню частину шасі. Для цього ми використали комбінацію епоксидної смоли M-Seal та просвердлених гвинтів, хоча ви можете використовувати будь-яке інше рішення, яке може бути вам простіше. Встановіть скраб-подушку Scotch Brite за щіткою. Ми використовували вал, що проходить через шасі, який утримує його в грі, хоча це також є імпровізованим. Для його супроводження може бути використаний пружинний вал. Встановіть батареї (або кабелі на задній панелі корпусу).Епоксидна смола або тримач акумулятора - хороші способи зробити це. Гарячий клей теж не поганий.
Електропроводка та підключення:
Схема для цього автоматичного робота для прибирання будинку дуже проста. Підключіть ультразвуковий датчик до Arduino, як зазначено нижче, і встановіть щиток драйвера двигуна на Arduino, як будь-який інший екран.
Trig-штир ультразвуку підключений до 12-го контакту на Arduino, контакт Echo - до 13-го контакту, контакт напруги до 5-контактного контакту і штифт заземлення до контактного заземлення. Ехо-штифт і штифт Trig дозволяють Arduino взаємодіяти з датчиком. Потужність подається на датчик через виводи напруги та заземлення, а виводи Trig та Echo дозволяють йому надсилати та приймати дані за допомогою Arduino. Дізнайтеся більше про взаємодію ультразвукового датчика з Arduino тут.
Екран двигуна повинен мати принаймні 2 виходи, і вони повинні бути підключені до ваших 2 двигунів. Зазвичай ці виходи позначаються як «M1» та «M2» або «Двигун 1» та «Двигун 2». Підключіть акумулятори та блок живлення до екрану двигуна та Arduino відповідно. Не перехресно з'єднуйте їх. Щит мотора повинен мати вхідний канал. Якщо ви використовуєте дроти, підключіть їх до адаптерів змінного струму.
Пояснення до програмування:
Відкрийте IDE Arduino. Вставте повний код Arduino, наведений наприкінці цього посібника, в IDE. Підключіть Arduino до комп’ютера. Виберіть порт у меню Інструменти / Порт. Натисніть кнопку завантаження.
Перевірте робота. Якщо виходить занадто мало або занадто багато, експериментуйте із затримками до повного стану.
Перш ніж вдаватися до коду, нам потрібно встановити бібліотеку Adafruit Motor Shield для керування двигунами постійного струму. Оскільки ми використовуємо щит драйвера двигуна L293D, нам потрібно завантажити бібліотеку AFmotor звідси. Потім додайте його у свою папку бібліотеки Arduino IDE. Переконайтеся, що ви перейменували його на AFMotor . Дізнайтеся більше про встановлення цієї бібліотеки.
Код простий і легко зрозумілий, але тут ми пояснили кілька його частин:
Нижче код встановлює робота. Спочатку ми включили бібліотеку Adafruit для керування двигунами з щитком водія двигуна. Після цього ми визначили Trig pin та Echo pin. Він також встановлює двигуни. Він встановлює Trig-штифт для виведення та Echo-штифт для введення.
#indelute #define trigPin 12 #define echoPin 13 AF_DCMotor motor1 (1, MOTOR12_64KHZ); AF_DCДвигун двигуна2 (2, MOTOR12_8KHZ); void setup () {pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); }
Нижче код вказує Arduino виконувати наступні команди. Після цього він використовує датчик для передачі та прийому ультразвукових звуків. Він обчислює відстань від об'єкта, коли ультразвукові хвилі відскакують назад, відмітивши, що об'єкт знаходиться в межах заданої відстані, повідомляє Arduino обертати двигуни відповідно.
void loop () {велика тривалість, відстань; digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); тривалість = pulseIn (echoPin, HIGH); відстань = (тривалість / 2) / 29,1; if (відстань <20) {motor1.setSpeed (255); motor2.setSpeed (0); motor1.run (НАЗАД); motor2.run (НАЗАД); затримка (2000); // ЗМІНИТЬ ЦЕ ВІДПОВІДНО, ЯК ПОВЕРНУЄТЬСЯ РОБОТ.
Це змушує робота обертатися, обертаючи один двигун, а інший підтримує нерухомість.
Наведений нижче код змушує робота обертати обидва двигуни в одному напрямку, щоб змусити його рухатися вперед, поки він не виявить об'єкт у вищезазначеній межі.
ще {motor1.setSpeed (160); // ЗМІНИТЬ ЦЕ ВІДПОВІДНО, ЯК ШВИДКО ВАШЕМ РОБОТУ ПІДТРИМАТИ motor2.setSpeed (160); // ЗМІНІТЬ ЦЕ НА ТУ ТУ Ж ЦІННІСТЬ, ЯКУ ВИ ВИДАЛИ ВГОРУ. motor1.run (ВПЕРЕД); motor2.run (ВПЕРЕД); }