Аутоматска средства за чишћење пода нису новост, али сви имају заједнички проблем. Сви су прескупи за оно што раде. Данас ћемо направити аутоматски робот за чишћење куће који кошта само мали део оних на тржишту. Овај робот може да детектује препреке и предмете испред себе и може да се креће, избегавајући препреке, све док се читава соба не очисти. За њега је причвршћена мала четка за чишћење пода.
Такође проверите нашег паметног робота за усисавање користећи Ардуино
Компонента потребна:
- Ардуино УНО Р3.
- Ултразвучни сензор.
- Ардуино Мотор Дривер штит.
- Шасија робота са погоном на точкове.
- Рачунар за програмирање Ардуина.
- Батерија за моторе.
- Банка моћи за напајање Ардуина
- Четка за ципеле.
- Сцотцх Брите јастучић за пилинг.
Напомена: Уместо да користите батерије, можете да користите и дугу четворожичну жицу као што смо то и ми урадили. Иако ово није баш елегантно или практично решење, али можете то учинити ако не планирате да га користите свакодневно у стварном свету. Уверите се да су дужине кабла довољне.
Пре него што улазимо у детаље, хајде да прво разговарамо о ултразвуку.
ХЦ-СР04 ултразвучни сензор:
Ултразвучни сензор се користи за мерење удаљености великом тачношћу и стабилним очитавањем. Може да мери удаљеност од 2 цм до 400 цм или од 1 инча до 13 стопа. Емитује ултразвучни талас на фреквенцији од 40КХз у ваздуху и ако ће му се објект наићи, одскочиће до сензора. Користећи време потребно за ударање предмета и повратак, можете израчунати удаљеност.
Ултразвучни сензор користи технику која се назива „ЕЦХО“. „ЕЦХО“ је једноставно одбијени звучни талас. Имаћете ЕЦХО када се звук одбије након повратка у ћорсокак.
ХЦСР04 модул генерише звучне вибрације у ултразвучном опсегу када поставимо пин за окидање на око 10ус који ће послати звучни рафал од 8 циклуса брзином звука и након удара у објекат, примит ће га Ецхо пин. У зависности од времена које је звучној вибрацији потребно за повратак, он даје одговарајући импулсни излаз. Ако је објекат далеко, потребно је више времена да се ЕЦХО чује и ширина излазног импулса ће бити велика. А ако је препрека близу, тада ће се брже чути ЕЦХО и ширина излазног импулса ће бити мања.
Можемо израчунати удаљеност објекта на основу времена које је ултразвучном таласу требало да се врати натраг на сензор. Пошто су време и брзина звука познати, удаљеност можемо израчунати према следећим формулама.
Удаљеност = (Време к Брзина звука у ваздуху (343 м / с)) / 2.
Вредност је подељена са два јер талас путује напред и назад покривајући исту удаљеност. Према томе, време за постизање препреке је само половина укупног времена које је потребно
Дакле, растојање у центиметру = 17150 * Т
Претходно смо направили много корисних пројеката користећи овај ултразвучни сензор и Ардуино, погледајте их у наставку:
- Мерење даљине засновано на Ардуину помоћу ултразвучног сензора
- Аларм на вратима користећи Ардуино и ултразвучни сензор
- Надгледање смећа на основу ИОТ-а користећи Ардуино
Монтажа робота за чишћење пода:
Монтирајте Ардуино на шасију. Уверите се да ништа не прекидате у случају да је ваше кућиште направљено од метала. Добра је идеја набавити кутију за Ардуино и штитник контролера мотора. Осигурајте моторе точковима и шасијом помоћу вијака. Ваша шасија би требало да има опције да то уради из фабрике, али ако нема, можете импровизовати другачије решење. Епоксид није лоша идеја. Монтирајте четку за ципеле на предњу страну шасије. За ово смо користили комбинацију епоксида М-Сеал и избушених вијака, мада можете користити било које друго решење које би вам могло бити лакше. Монтирајте Сцотцх Брите подлогу за рибање иза четке. Користили смо осовину која пролази преко шасије која је држи у игри, мада је и ово импровизовано. Уз њу се може користити и опружно напуњено вратило. Поставите батерије (или каблове на задњу страну шасије).Епоксид или држач батерије су добри начини за то. Ни врући лепак није лош.
Ожичење и везе:
Круг за овог аутоматског робота за чишћење куће је врло једноставан. Повежите ултразвучни сензор са Ардуином као што је доле поменуто и поставите штит моторног возача на Ардуино као било који други штит.
Триг пин ултразвука повезан је са 12. пином на Ардуину, Ецхо пин повезан је са 13. пином, напонски пин на 5В пин и уземљени пин на уземљени пин. Ецхо пин и Триг пин омогућавају Ардуину да комуницира са сензором. Снага се испоручује сензору кроз напонске и уземљене пинове, а Триг и Ецхо пинови му омогућавају да шаље и прима податке са Ардуином. Овде сазнајте више о повезивању ултразвучног сензора са Ардуином.
Штитник мотора треба да има најмање 2 излаза и треба да буде повезан са ваша 2 мотора. Ти излази су обично означени са „М1“ и „М2“ или „Мотор 1“ и „Мотор 2“. Прикључите батерије и напајање на штит мотора, односно на Ардуино. Немојте их унакрсно повезивати. Штитник вашег мотора треба да има улазни канал. Ако користите жице, повежите их са исправљачима за наизменичну струју.
Објашњење програмирања:
Отворите Ардуино ИДЕ. Залепите комплетан Ардуино код, дат на крају овог упутства, у ИДЕ. Повежите свој Ардуино са рачунаром. Изаберите порт у Тоолс / Порт. Кликните на дугме за отпремање.
Тестирајте робота. Ако се окрене премало или превише, експериментишите са кашњењем док не постанете савршени.
Пре него што уђемо у код, морамо да инсталирамо библиотеку Адафруит Мотор Схиелд за погон једносмерних мотора. С обзиром да користимо штит управљачког програма мотора Л293Д, одавде морамо преузети библиотеку АФмотор. Затим га додајте у своју фасциклу Ардуино ИДЕ библиотеке. Обавезно га преименујте у АФМотор . Сазнајте више о инсталирању ове библиотеке.
Код је једноставан и лако се може разумети, али овде смо објаснили неколико његових делова:
Испод кода поставља робота. Прво смо укључили библиотеку Адафруит за погон мотора са штитником за моторе. Након тога, дефинисали смо Триг пин и Ецхо пин. Такође поставља моторе. Поставља Триг пин на излаз и Ецхо пин на улаз.
#инцлуде #дефине тригПин 12 #дефине ецхоПин 13 АФ_ДЦМотор мотор1 (1, МОТОР12_64КХЗ); АФ_ДЦМотор мотор2 (2, МОТОР12_8КХЗ); воид сетуп () {пинМоде (тригПин, ОУТПУТ); пинМоде (ецхоПин, ИНПУТ); }
Испод код говори Ардуину да петља следеће наредбе. После тога користи сензор за пренос и пријем ултразвучних звукова. Израчунава удаљеност од објекта након што се ултразвучни таласи одскоче, након што примети да је објекат унутар задате удаљености, говори Ардуину да ротира моторе у складу с тим.
воид лооп () {дуго трајање, удаљеност; дигиталВрите (тригПин, ЛОВ); делаиМицросецондс (2); дигиталВрите (тригПин, ХИГХ); делаиМицросецондс (10); дигиталВрите (тригПин, ЛОВ); трајање = пулсИн (ецхоПин, ХИГХ); удаљеност = (трајање / 2) / 29,1; иф (дистанце <20) {мотор1.сетСпеед (255); мотор2.сетСпеед (0); мотор1.рун (НАЗАД); мотор2.рун (НАЗАД); кашњење (2000); // ПРОМЕНИТЕ ОВО ПРЕМА КАКО СЕ ОБРАТИТИ РОБОТ.
То чини да се робот окреће ротирањем једног мотора, а други да не мири.
Испод кода чини да робот окреће оба мотора у истом смеру како би се кретао напред док не открије објекат у горе поменутој граници.
елсе {мотор1.сетСпеед (160); // ПРОМЕНИТЕ ОВО ПРЕМА КАКО БИ ТРЕБАЛО ДА ИДЕ ВАШ РОБОТ. мотор2.сетСпеед (160); // ПРОМЕНИТЕ ОВО НА ИСТУ ВРЕДНОСТ КАКО СТО СТАВИТЕ ГОРЕ. мотор1.рун (НАПРЕД); мотор2.рун (НАПРЕД); }