Како направити препреку да избегне робота користећи Ардуино?

Свет се брзо креће, а технологија се с њим креће и на пољу роботике. Примене роботике могу се видети свуда широм света. Концепт мобилних или аутономних робота који се крећу без икакве спољне помоћи најдубље је подручје истраживања. Постоји толико много врста мобилних робота, на пример, тумачи за самолокализацију и мапирање (СЛАМ), праћење линија, Сумо ботови итд. Робот који избегава препреке један је од њих. Користи технику за промену путање ако открије било какву препреку на свом путу.



(Љубазност слике: преглед кола)

У овом пројекту дизајниран је робот за избегавање препрека заснован на Ардуину који ће користити ултразвучни сензор за откривање свих препрека на путу.



Како избећи препреке помоћу ултразвучног сензора?

Пошто знамо сажетак нашег пројекта, померимо се корак напред и сакупимо неке информације како бисмо започели пројекат.



Корак 1: Прикупљање компонената

Најбољи приступ започињању било ког пројекта је да се на почетку направи списак комплетних компонената и прође кроз кратко проучавање сваке компоненте. Ово нам помаже у избегавању непријатности усред пројекта. Комплетна листа свих компонената коришћених у овом пројекту дата је у наставку.



  • Шасија точкова за аутомобил
  • Батерија

Корак 2: Проучавање компонената

Сада, пошто имамо потпуну листу свих компоненти, померимо се један корак напред и прођите кроз кратку студију рада сваке компоненте.

Ардуино нано је микроконтролерска плоча погодна за даску која се користи за контролу или извршавање различитих задатака у колу. Спалимо а Ц Цоде на Ардуино Нано-у како би рекао плочи микроконтролера како и које операције треба извршити. Ардуино Нано има потпуно исту функционалност као Ардуино Уно, али у прилично малој величини. Микроконтролер на плочи Ардуино Нано је АТмега328п.

Ардуино Нано



Л298Н је интегрисани круг велике струје и високог напона. То је двоструки пуни мост дизајниран да прихвати стандардну ТТЛ логику. Има два улаза за омогућавање који омогућавају уређају да ради независно. Два мотора се могу истовремено повезати и управљати. Брзина мотора варира кроз ПВМ пинове. Модулација ширине импулса (ПВМ) је техника у којој се може контролисати проток напона у било којој електронској компоненти. Овај модул има Х-мост који је одговоран за контролу смера ротације у моторима окретањем смера струје. Омогућавајући пин А и Енабле пин Б користе се за промену брзине оба мотора. Овај модул може радити између 5 и 35В и вршне струје до 2А. Улазни пин1 и улазни пин2 и за први мотор, а улазни пин3 и улазни пин4 су за други мотор.

Л298Н Мотор Дривер

ХЦ-СР04 плоча је ултразвучни сензор који се користи за одређивање растојања између два објекта. Састоји се од предајника и пријемника. Предајник претвара електрични сигнал у ултразвучни сигнал, а пријемник претвара ултразвучни сигнал назад у електрични сигнал. Када предајник пошаље ултразвучни талас, он се одражава након судара са одређеним објектом. Удаљеност се израчунава помоћу времена које је потребно ултразвучном сигналу да пређе са предајника и врати се до пријемника.

Ултразвучни сензор

Корак 3: Састављање компонената

Сада када знамо како функционише већина коришћених компонената, започнимо са састављањем свих компонената и произведимо робота који избегава препреке.

  1. Узмите шасије точкова аутомобила и залепите плочу за млевење на његов врх. Поставите ултразвучни сензор на предњу страну кућишта, а поклопац батерије иза кућишта.
  2. Причврстите Ардуино Нано плочу на плочи и причврстите возач мотора одмах иза плоче, на шасије. Повежите пинове Енабле ботхе мотора на Пин6 и Пин9 Ардуино нано. Прибадаче Ин1, Ин2, Ин3 и Ин4 модула покретачког мотора мотора повезане су на пин2, пин3, пин4 и пин5 Ардуино нано-а.
  3. Триг и ецхо пин ултразвучног сензора повезани су са пин11 и ин10 Ардуино нано-а. Вцц и пин за уземљење ултразвучног сензора повезани су на 5В и уземљење Ардуино Нано-а.
  4. Модул управљачког склопа мотора напаја се из батерије. Ардуино Нано плоча напаја се из 5В прикључка модула погонског мотора, а ултразвучни сензор напајаће се из Ардуино нано плоче. тежина и енергија батерија могу постати одлучујући фактор њених перформанси.
  5. Уверите се да су ваше везе исте као што је приказано доле на дијаграму кола.

    Кружни дијаграм

Корак 4: Почетак рада са Ардуином

Ако већ нисте упознати са Ардуино ИДЕ-ом, не брините јер је у наставку објашњен корак по корак за подешавање и употребу Ардуино ИДЕ-а са плочом микроконтролера.

  1. Преузмите најновију верзију Ардуино ИДЕ са Ардуино.
  2. Повежите своју Ардуино Нано плочу са преносним рачунаром и отворите контролну таблу. на контролној табли кликните на Хардвер и звук . Сада кликните на Уређаји и штампачи. Овде пронађите порт на који је повезана плоча вашег микроконтролера. У мом случају јесте ЦОМ14 али је различито на различитим рачунарима.

    Проналажење луке

  3. Кликните на мени Алат. и поставите плочу на Ардуино Нано из падајућег менија.

    Одбор за постављање

  4. У истом менију Алат поставите порт на број порта који сте раније приметили у Уређаји и штампачи .

    Подешавање порта

  5. У истом менију Алат поставите процесор на АТмега328П (стари покретач).

    Процесор

  6. Преузмите доленаведени код и налепите га у свој Ардуино ИДЕ. Кликните на отпремити дугме за нарезивање кода на плочи микроконтролера.

    Отпремити

Да бисте преузели код, кликните овде.

Корак 5: Разумевање кодекса

Кодекс је добро коментарисан и саморазумљив. Али ипак, објашњено је у наставку

1. На почетку кода, иницијализују се сви пинови Ардуино Нано плоче који су повезани на ултразвучни сензор и модул покретачког програма мотора. Пин6 и Пин9 су ПВМ пинови који могу променити проток напона у зависности од брзине робота. Две променљиве, трајање, и удаљеност иницијализују се за чување података који ће се касније користити за израчунавање удаљености ултразвучног сензора и препреке.

инт енабле1пин = 6; // Клинови за први мотор инт мотор1пин1 = 2; инт мотор1пин2 = 3; инт енабле2пин = 9; // Клинови за други мотор инт мотор2пин1 = 4; инт мотор2пин2 = 5; цонст инт тригПин = 11; // Окидач пин ултразвучног Сеснор-а цонст инт ецхоПин = 10; // Ецхо Пин Оф Ултрасониц Сеснор дугог трајања; // променљиве за израчунавање удаљености пливања;

2. воид сетуп () је функција која се користи за постављање свих коришћених пинова, као УЛАЗНИ и ИЗЛАЗ. Брзина преноса података дефинисана је у овој функцији. Брзина преноса је брзина комуникације којом плоча микроконтролера комуницира са сензорима интегрисаним са њом.

воид сетуп () {Сериал.бегин (9600); пинМоде (тригПин, ИЗЛАЗ); пинМоде (ецхоПин, ИНПУТ); пинМоде (енабле1пин, ОУТПУТ); пинМоде (енабле2пин, ОУТПУТ); пинМоде (мотор1пин1, ИЗЛАЗ); пинМоде (мотор1пин2, ОУТПУТ); пинМоде (мотор2пин1, ИЗЛАЗ); пинМоде (мотор2пин2, ИЗЛАЗ); }

3 воид лооп () је функција која се понавља у циклусу. У овој функцији ми кажемо плочи микроконтролера како и које операције треба извршити. Овде је прво пински окидач постављен да шаље сигнал који ће детектовати ехо пински. Затим се израчуна време које се ултразвучном сигналу путује од и до сензора и чува у променљивој трајање. Тада се ово време користи у формули за израчунавање удаљености препреке и ултразвучног сензора. Тада се примењује услов да ако је растојање веће од 5 цм, робот ће се кретати напред у правој линији, а ако је растојање мање од 50 цм, робот ће скренути оштро удесно.

воид лооп () {дигиталВрите (тригПин, ЛОВ); // Слање и откривање ултразвучног кашњења микросекунди (2); дигиталВрите (тригПин, ХИГХ); делаиМицросецондс (10); дигиталВрите (тригПин, ЛОВ); трајање = пулсИн (ецхоПин, ХИГХ); // Израчунавање времена које ултразвучни талас узима да одрази задњу удаљеност = 0,034 * (трајање / 2); // Израчунавање удаљености између тебе и робота. иф (дистанце> 50) // Помери напред ако је удаљеност већа од 50цм {дигиталВрите (енабле1пин, ХИГХ); дигиталВрите (енабле2пин, ХИГХ); дигиталВрите (мотор1пин1, ХИГХ); дигиталВрите (мотор1пин2, ЛОВ); дигиталВрите (мотор2пин1, ХИГХ); дигиталВрите (мотор2пин2, ЛОВ); } иначе ако (удаљеност<50) // Sharp Right Turn if the distance is less than 50cm { digitalWrite(enable1pin, HIGH); digitalWrite(enable2pin, HIGH); digitalWrite(motor1pin1, HIGH); digitalWrite(motor1pin2, LOW); digitalWrite(motor2pin1, LOW); digitalWrite(motor2pin2, LOW); } delay(300); }

Апликације

Дакле, овде је био поступак за прављење робота који избегава препреке. Ова технологија за избегавање препрека може се тужити и у другим апликацијама. Неке од ових апликација су следеће.

  1. Систем за праћење.
  2. Сврха мерења даљине.
  3. Ово се може користити у аутоматским роботима за усисавање.
  4. Ово се може користити у штапићима за слепе особе.