- Необходим компонент:
- Сглобяване на робот за почистване на подове:
- Окабеляване и връзки:
- Обяснение на програмирането:
Автоматичните почистващи препарати за пода не са нещо ново, но всички те имат общ проблем. Всички те са твърде скъпи за това, което правят. Днес ще направим автоматичен робот за почистване на дома, който струва само малка част от тези на пазара. Този робот може да открива препятствията и предметите пред себе си и може да продължи да се движи, избягвайки препятствията, докато цялата стая не бъде почистена. Към него има прикрепена малка четка за почистване на пода.
Също така проверете нашия интелигентен робот за прахосмукачки, използвайки Arduino
Необходим компонент:
- Arduino UNO R3.
- Ултразвуков сензор.
- Arduino Motor Driver щит.
- Шаси на робот със задвижване на колелата.
- Компютър за програмиране на Arduino.
- Батерия за двигателите.
- Енергийна банка за захранване на Arduino
- Четка за обувки.
- Подложка за скраб от шотландски брит.
Забележка: Вместо да използвате батерии, можете да използвате и дълга 4-нишка проводник, както направихме ние. Въпреки че това не е много елегантно или практично решение, но можете да го направите, ако не планирате да го използвате всеки ден в реалния свят. Уверете се, че дължините на кабела са достатъчни.
Преди да влезем в подробности, нека първо да обсъдим ултразвука.
Ултразвуков сензор HC-SR04:
Ултразвуковият сензор се използва за измерване на разстоянието с висока точност и стабилни показания. Може да измерва разстояние от 2 см до 400 см или от 1 инч до 13 фута. Той излъчва ултразвукова вълна с честота 40KHz във въздуха и ако обектът попадне по пътя му, той ще отскочи до сензора. Използвайки времето, необходимо за удряне на обекта и връщане, можете да изчислите разстоянието.
Ултразвуковият сензор използва техника, наречена „ECHO“. “ECHO” е просто отразена звукова вълна. Ще получите ECHO, когато звукът се отразява обратно след достигане на задънена улица.
Модулът HCSR04 генерира звукови вибрации в ултразвуков диапазон, когато правим щифта "Trigger" висок за около 10us, който ще изпрати 8-цикличен звуков взрив със скоростта на звука и след като удари обекта, той ще бъде получен от щифта Echo. В зависимост от времето, необходимо на звуковите вибрации за връщане, той осигурява подходящ импулсен изход. Ако обектът е далеч, отнема повече време, за да бъде чут ECHO и широчината на изходния импулс ще бъде голяма. И ако препятствието е близо, тогава ECHO ще се чува по-бързо и широчината на изходния импулс ще бъде по-малка.
Можем да изчислим разстоянието на обекта въз основа на времето, необходимо на ултразвуковата вълна да се върне обратно към сензора. Тъй като времето и скоростта на звука са известни, можем да изчислим разстоянието по следните формули.
Разстояние = (Време x Скорост на звука във въздуха (343 m / s)) / 2.
Стойността се разделя на две, тъй като вълната пътува напред и назад, покривайки едно и също разстояние. По този начин времето за достигане на препятствие е само половината от общото време
Така Разстоянието в сантиметър = 17150 * T
Преди това направихме много полезни проекти, използвайки този ултразвуков сензор и Arduino, проверете ги по-долу:
- Измерване на разстояние на базата на Arduino с помощта на ултразвуков сензор
- Аларма за врата, използваща Arduino и ултразвуков сензор
- IOT базиран Dumpster мониторинг с помощта на Arduino
Сглобяване на робот за почистване на подове:
Монтирайте Arduino на шасито. Уверете се, че не правите късо съединение, в случай че шасито ви е изработено от метал. Добра идея е да вземете кутия за Arduino и екрана на контролера на двигателя. Закрепете двигателите с колелата и шасито с помощта на винтове. Вашето шаси трябва да има опции за това от завода, но ако не, можете да импровизирате различно решение. Епоксидът не е лоша идея. Монтирайте четката за обувки в предната част на шасито. За това използвахме комбинация от епоксидна смола M-Seal и пробити винтове, въпреки че можете да използвате всяко друго решение, което може да е по-лесно за вас. Монтирайте почистващата подложка Scotch Brite зад четката. Използвахме вал, преминаващ през шасито, който го държи в игра, макар че и това е импровизирано. Може да се използва пружинен вал, който да го придружава. Монтирайте батериите (или кабелите на гърба на шасито).Епоксидът или държачът на батерията са добри начини да направите това. Горещото лепило също не е лошо.
Окабеляване и връзки:
Веригата за този автоматичен робот за почистване на дома е много проста. Свържете ултразвуковия сензор към Arduino, както е споменато по-долу, и поставете екрана на моторния драйвер към Arduino като всеки друг щит.
Trig щифтът на Ultrasonic е свързан към 12-ия пин на Arduino, Echo щифтът е свързан към 13-ия щифт, щифтът за напрежение към 5V щифт и заземяващият щифт към заземяващия щифт. Пинът Echo и Trig позволяват на Arduino да комуникира със сензора. Захранването се доставя на сензора чрез щифтове за напрежение и заземяване, а щифтовете Trig и Echo му позволяват да изпраща и получава данни с Arduino. Научете повече за свързването на ултразвуков сензор с Arduino тук.
Щитът на двигателя трябва да има поне 2 изхода и те трябва да бъдат свързани към вашите 2 двигателя. Обикновено тези изходи са обозначени с „M1“ и „M2“ или „Motor 1“ и „Motor 2“. Свържете батериите и захранващата банка съответно към екрана на двигателя и Arduino. Не ги свързвайте кръстосано. Щитът ви на двигателя трябва да има входен канал. Ако използвате проводници, свържете ги към променливотокови адаптери.
Обяснение на програмирането:
Отворете IDE на Arduino. Поставете пълния код на Arduino, даден в края на този урок, в IDE. Свържете вашия Arduino към компютъра. Изберете порта в Инструменти / Порт. Щракнете върху бутона за качване.
Тествайте робота. Ако се окаже твърде малко или твърде много, експериментирайте със закъсненията, докато станат перфектни.
Преди да влезем в кода, трябва да инсталираме библиотеката Adafruit Motor Shield, за да задвижваме DC двигателите. Тъй като използваме екрана на драйвера на двигателя L293D, трябва да изтеглим библиотеката AFmotor от тук. След това го добавете във вашата папка за библиотека Arduino IDE. Уверете се, че сте го преименували на AFMotor . Научете повече за инсталирането на тази библиотека.
Кодът е лесен и може да се разбере лесно, но тук обяснихме няколко части от него:
По-долу кодът настройва робота. Първо включихме библиотеката Adafruit за задвижване на двигателите с щит на моторния драйвер. След това дефинирахме Trig pin и Echo pin. Той също така настройва двигателите. Той задава Trig щифта за извеждане и Echo щифта за въвеждане.
#include #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); // ПРОМЕНЕТЕ ТОВА СЪГЛАСНО КАК СЕ ОБРАТИ РОБОТА.
Това кара робота да се върти, като върти единия мотор, а другия поддържа неподвижен.
Долу кодът кара робота да завърти и двата мотора в една и съща посока, за да го накара да се движи напред, докато открие обект в гореспоменатата граница.
else {motor1.setSpeed (160); // ПРОМЕНЕТЕ ТОВА СЪГЛАСНО КАК БЪРЗО ВАШИЯТ РОБОТ ТРЯБВА ДА ИДЕ. motor2.setSpeed (160); // ПРОМЕНЕТЕ ТОВА НА СЪЩАТА СТОЙНОСТ, КАКТО СТЕ ПОСТАВИЛИ ГОРЕ motor1.run (НАПРЕД); motor2.run (НАПРЕД); }