- Компоненте потребне:
- Модул ултразвучног сензора:
- Објашњење кола:
- Како то ради:
- Објашњење програмирања:
Роботи су машине које смањују људске напоре у тешким радовима аутоматизацијом задатака у индустрији, фабрикама, болницама итд. Већином се роботи управљају помоћу неке управљачке јединице или компонената попут дугмета, даљинског управљача, џојстика, рачунара, геста и извршавање неке наредбе помоћу контролера или процесора. Али данас смо овде са аутоматским роботом који се креће аутономно без икаквих спољних догађаја избегавајући све препреке на свом путу, да, говоримо о роботу који избегава препреке. У овом пројекту користили смо Распберри Пи и драјвер мотора за погон робота и ултразвучни сензор за откривање предмета на путу Робота.
Раније смо обрађивали многе корисне роботе, можете их пронаћи у нашем одељку Роботички пројекти.
Компоненте потребне:
- Распберри Пи
- Модул ултразвучног сензора ХЦ-СР04
- РОБОТ Шасија у комплету са завртњем
- Једносмерни мотори
- Л293Д ИЦ
- Точкови
- Даска за хлеб
- Отпорник (1к)
- Кондензатор (100нФ)
- Повезивање жица
- Напајање или банка напајања
Модул ултразвучног сензора:
Препрека авоидер робот је аутоматизован Робот и то не треба да буде под контролом користећи било који даљински. Ове врсте аутоматизованих робота имају неке сензоре „шестог чула“ као што су детектори препрека, детектор звука, детектор топлоте или детектори метала. Овде смо урадили откривање препрека помоћу ултразвучних сигнала. У ту сврху користили смо ултразвучни сензорски модул.
Ултразвучни сензори се обично користе за откривање предмета и одређивање удаљености препреке од сензора. Ово је одличан алат за мерење удаљености без икаквог физичког контакта, попут мерења нивоа воде у резервоару, мерења удаљености, робота за избегавање препрека итд. Дакле, овде смо открили објекат и измерили удаљеност помоћу ултразвучног сензора и Распберри Пи.
Ултразвучни сензор ХЦ-СР04 користи се за мерење удаљености у опсегу од 2 цм до 400 цм са тачношћу од 3 мм. Модул сензора састоји се од ултразвучног предајника, пријемника и управљачког кола. Ултразвучни сензор се састоји од два кружна ока од којих се једно користи за пренос ултразвучног таласа, а друго за његово примање.
Можемо израчунати удаљеност објекта на основу времена које је ултразвучном таласу требало да се врати натраг на сензор. Пошто су време и брзина звука познати, удаљеност можемо израчунати према следећим формулама.
- Удаљеност = (Време к Брзина звука у ваздуху (343 м / с)) / 2.
Вредност се дели са два јер талас путује напред и назад прелазећи исту удаљеност. Тако је време за достизање препреке само половина укупног времена.
Тако смо израчунали растојање (у центиметрима) од препреке као испод:
пулсе_старт = тиме.тиме () док је ГПИО.инпут (ЕЦХО) == 1: # Проверите да ли је ЕЦХО ВИСОК ГПИО. излаз (лед, Фалсе) пулсе_енд = тиме.тиме () пулсе_дуратион = пулсе_енд - пулсе_старт дистанце = пулсе_дуратион * 17150 дистанце = заокружено (удаљеност, 2) авгДистанце = авгДистанце + дистанце
Где је трајање импулса време између слања и пријема ултразвучног сигнала.
Објашњење кола:
Круг је врло једноставан за овог робота који избегава препреке користећи Распберри Пи. Ултрасониц Сенсор модул се користи за детекцију објекте, је везан у ГПИО пин 17 и 27 Распберри Пи. Мотор дривер Л293Д је повезан са Распберри Пи 3 за вожњу мотора робот. Улазни пинови возача мотора 2, 7, 10 и 15 повезани су на Распберри Пи ГПИО пин број 12, 16, 20 и 21, респективно. Овде смо користили два једносмерна мотора за погон робота у којем је један мотор повезан на излазни пин 3 и 6 ИЦ управљачког програма мотора, а други мотор повезан на пин 11 и 14 ИЦ управљачког програма мотора.
Како то ради:
Рад са овим аутономним роботом је врло једноставан. Када се робот укључи и почне да ради, Распберри Пи мери удаљеност објеката испред њега, користећи ултразвучни сензорски модул и складишти у променљиву. Тада РПи упоређује ову вредност са унапред дефинисаним вредностима и према томе доноси одлуке о померању робота лево, десно, напред или уназад.
Овде у овом пројекту изабрали смо удаљеност од 15 цм за доношење било какве одлуке компаније Распберри Пи. Сада када Распберри Пи пређе мање од 15 цм удаљености од било ког објекта, Распберри Пи зауставља робота и враћа га назад, а затим окреће лево или десно. Пре поновног померања напред, Распберри Пи поново проверава да ли је присутна нека препрека у растојању од 15 цм, ако је одговор да, онда поново понавља претходни поступак, у супротном померите робота напред док поново неће открити било какву препреку или предмет.
Објашњење програмирања:
Овде користимо језик Питхон за Програм. Пре кодирања, корисник треба да конфигурише Распберри Пи. Можете да погледате наше претходне водиче за почетак рада са Распберри Пи и инсталирање и конфигурисање Распбиан Јессие ОС у Пи.
Програмски део овог пројекта игра веома важну улогу за извођење свих операција. Пре свега, укључујемо потребне библиотеке, иницијализујемо променљиве и дефинишемо пинове за ултразвучни сензор, мотор и компоненте.
увоз РПи.ГПИО као ГПИО време увоза # Библиотека времена увоза ГПИО.сетварнингс (Фалсе) ГПИО.сетмоде (ГПИО.БЦМ) ТРИГ = 17 ЕЦХО = 27……………..
Након ње креирали смо неке функције деф форвард (), деф бацк (), деф лефт (), деф ригхт () за померање робота у правцу, назад, лево или десно, односно деф стоп () да зауставимо робота, проверите функције у коду датом у наставку.
Затим смо у главном програму покренули ултразвучни сензор и очитали време између преноса и пријема сигнала и израчунали удаљеност. Овде смо овај поступак поновили пет пута ради веће тачности. Већ смо објаснили поступак израчунавања удаљености помоћу ултразвучног сензора.
и = 0 авгДистанце = 0 за и у опсегу (5): ГПИО.излаз (ТРИГ, нетачно) време.спавање (0.1) ГПИО.излаз (ТРИГ, тачно) време.спавање (0.00001) ГПИО.излаз (ТРИГ, нетачно) док је ГПИО.инпут (ЕЦХО) == 0: ГПИО.оутпут (лед, Фалсе) пулсе_старт = тиме.тиме () док је ГПИО.инпут (ЕЦХО) == 1: # Проверите да ли је ЕЦХО ВИСОК ГПИО.оутпут (лед, Фалсе) импулс_енд = тиме.тиме () пулсе_дуратион = пулсе_енд - пулсе_старт дистанце = пулсе_дуратион * 17150 дистанце = роунд (дистанце, 2) авгДистанце = авгДистанце + дистанце
Коначно, ако Робот нађе било какву препреку испред себе, онда када смо се удаљили од препреке, програмирали смо Робота да крене другом рутом.
ако је авгДистанце <15: цоунт = цоунт + 1 стоп () тиме.слееп (1) бацк () тиме.слееп (1.5) иф (цоунт% 3 == 1) & (флаг == 0): ригхт () флаг = 1 елсе: лефт () флаг = 0 тиме.слееп (1.5) стоп () тиме.слееп (1) елсе: форвард () флаг = 0
Комплетни код овог робота за избегавање препрека Распберри Пи дат је у наставку са демонстрацијским видеом.