- Како направити робота који избегава препреке помоћу ултразвучног сензора
- Компоненте потребне
- Кружни дијаграм
- Робот који избегава препреке помоћу Ардуино - кода
Робот за избегавање препрека је интелигентан уређај који може аутоматски осетити препреку испред себе и избећи их окретањем у другом правцу. Овај дизајн омогућава роботу да се креће у непознатом окружењу избегавањем судара, што је примарни захтев за било који аутономни мобилни робот. Примена робота за избегавање препрека није ограничена и користи се у већини војних организација које сада помажу у обављању многих ризичних послова које не могу да обаве ниједан војник.
Претходно смо направили робота за избегавање препрека користећи Распберри Пи и ПИЦ микроконтролер. Овај пут ћемо изградити робота за избегавање препрека помоћу ултразвучног сензора и Ардуина. Овде се ултразвучни сензор користи за откривање препрека на путу израчунавањем удаљености између робота и препреке. Ако робот пронађе било коју препреку, он мења смер и наставља да се креће.
Како направити робота који избегава препреке помоћу ултразвучног сензора
Пре него што кренете у израду робота, важно је разумети како ултразвучни сензор ради, јер ће овај сензор имати важну улогу у откривању препрека. Основни принцип рада ултразвучног сензора је бележење времена потребног сензору за пренос ултразвучних зрака и примање ултразвучних зрака након удара у површину. Затим се даље израчунава растојање помоћу формуле. У овом пројекту се користи широко доступан ултразвучни сензор ХЦ-СР04. Да бисте користили овај сензор, слиједит ће се горе објашњени приступ.
Дакле, Триг пин ХЦ-СР04 направљен је високо за најмање 10 нас. Звучни сноп се преноси са 8 импулса од по 40КХз.
Сигнал затим удара на површину и враћа се назад и хвата пријемник Ецхо пин ХЦ-СР04. Ецхо пин је у то време већ био високо постављен.
Време потребно зраци да се врати назад се чува у променљивој и претвара у удаљеност помоћу одговарајућих прорачуна као у наставку
Удаљеност = (Време к Брзина звука у ваздуху (343 м / с)) / 2
Користили смо ултразвучни сензор у многим пројектима, да бисмо сазнали више о ултразвучном сензору, проверили друге пројекте који се односе на ултразвучни сензор.
Компоненте за овог робота који избегава препреке могу се лако пронаћи. Да би се направила шасија, може се користити било која шасија за играчке или се може направити по мери.
Компоненте потребне
- Ардуино НАНО или Уно (било која верзија)
- ХЦ-СР04 ултразвучни сензор
- ЛМ298Н Моторни модул возача
- 5В једносмерни мотори
- Батерија
- Точкови
- Шасија
- Јумпер Вирес
Кружни дијаграм
Комплетна шема кола за овај пројекат дата је у наставку, као што видите, користи Ардуино нано. Али такође можемо направити препреку за избегавање робота користећи Ардуино УНО са истим кругом (следите исти пиноут) и кодом.
Једном када је круг спреман, морамо да изградимо свој аутомобил који избегава препреке тако што ћемо склоп склопити на врх роботске шасије као што је приказано доле.
Робот који избегава препреке помоћу Ардуино - кода
Комплетан програм са демонстрацијским видео записом дат је на крају овог пројекта. Програм ће укључивати подешавање ХЦ-СР04 модула и изношење сигнала на моторне пинове да би се у складу са тим померио смер мотора. У овом пројекту се неће користити библиотеке.
Прво дефинишите триг и ехо пин ХЦ-СР04 у програму. У овом пројекту триг пин је повезан са ГПИО9, а ецхо пин је повезан са ГПИО10 од Ардуино НАНО.
инт тригПин = 9; // триг пин ХЦ-СР04 инт ецхоПин = 10; // Ецхо пин оф ХЦ-СР04
Дефинишите пинове за улаз модула покретачког мотора ЛМ298Н. ЛМ298Н има 4 пина за унос података који се користе за контролу смера мотора који је повезан са њим.
инт ревлефт4 = 4; // РЕВерсе кретања левог мотора инт фвдлефт5 = 5; // ФорВарД кретање левог мотора инт ревригхт6 = 6; // ОБРАТНО кретање десног мотора инт фвдригхт7 = 7; // ФорВарД кретање десног мотора
У функцији сетуп () дефинишите смер података коришћених ГПИО пинова. Четири пина мотора и иглица Триг постављени су као ИЗЛАЗ, а Ецхо пин као улаз.
пинМоде (ревлефт4, ИЗЛАЗ); // постављамо пинове мотора као излазни пинМоде (фвдлефт5, ОУТПУТ); пинМоде (ревригхт6, ИЗЛАЗ); пинМоде (фвдригхт7, ИЗЛАЗ); пинМоде (тригПин, ИЗЛАЗ); // постављамо триг пин као излазни пинМоде (ецхоПин, ИНПУТ); // поставити ехо пин као улаз за хватање одбијених таласа
У функцији лооп () , узмите растојање од ХЦ-СР04 и на основу растојања померите смер мотора. Удаљеност ће показати удаљеност објекта која долази испред робота. Удаљеност се узима пуцањем ултразвучног снопа до 10 ус и примањем након 10 ус. Да бисте сазнали више о мерењу удаљености помоћу ултразвучног сензора и Ардуина, следите везу.
дигиталВрите (тригПин, ЛОВ); делаиМицросецондс (2); дигиталВрите (тригПин, ХИГХ); // шаље таласе за 10 ус делаиМицросецондс (10); трајање = пулсИн (ецхоПин, ХИГХ); // примамо одбијене таласе удаљеност = трајање / 58,2; // претвори у кашњење на даљину (10);
Ако је растојање веће од дефинисаног растојања, значи да на путу нема препреке и кретаће се у правцу напред.
иф (удаљеност> 19) { дигиталВрите (фвдригхт7, ХИГХ); // померање напред дигиталВрите (ревригхт6, ЛОВ); дигиталВрите (фвдлефт5, ХИГХ); дигиталВрите (ревлефт4, ЛОВ); }
Ако је удаљеност мања од дефинисане удаљености како би се избегла препрека, значи да постоји нека препрека испред. Дакле, у овој ситуацији робот ће се зауставити на неко време, а након тога ће се опет зауставити на неко време, а затим ће се окренути у другом правцу.
иф (дистанце <18) { дигиталВрите (фвдригхт7, ЛОВ); // Заустави дигиталВрите (ревригхт6, ЛОВ); дигиталВрите (фвдлефт5, ЛОВ); дигиталВрите (ревлефт4, ЛОВ); кашњење (500); дигиталВрите (фвдригхт7, ЛОВ); // премештање повратне речи дигиталВрите (ревригхт6, ХИГХ); дигиталВрите (фвдлефт5, ЛОВ); дигиталВрите (ревлефт4, ХИГХ); кашњење (500); дигиталВрите (фвдригхт7, ЛОВ); // Заустави дигиталВрите (ревригхт6, ЛОВ); дигиталВрите (фвдлефт5, ЛОВ); дигиталВрите (ревлефт4, ЛОВ); кашњење (100); дигиталВрите (фвдригхт7, ХИГХ); дигиталВрите (ревригхт6, ЛОВ); дигиталВрите (ревлефт4, ЛОВ); дигиталВрите (фвдлефт5, ЛОВ); кашњење (500); }
Дакле, ово је начин на који робот може да избегне препреке на свом путу, а да се нигде не заглави. Комплетни код и видео пронађите у наставку.