Мазмуну:

Utrasonic качуу роботу Arduino колдонуу: 7 кадам
Utrasonic качуу роботу Arduino колдонуу: 7 кадам

Video: Utrasonic качуу роботу Arduino колдонуу: 7 кадам

Video: Utrasonic качуу роботу Arduino колдонуу: 7 кадам
Video: Умный робот движущийся по линии! HC-SR04 и MP3 модулем! DFrobot.com 2024, Ноябрь
Anonim
Image
Image
Utrasonic качуу роботу Arduino колдонуу
Utrasonic качуу роботу Arduino колдонуу

Бул үйрөткүчтө мен сизге роботтон качуу үчүн өзүңүздүн тоскоолдукту кантип жасоону көрсөтөм! Биз Arduino UNO тактасын жана УЗИ сенсорун колдонобуз. Эгерде робот кичинекей серво кыймылдаткычынын жардамы менен маңдайындагы нерсени аныктап алса, эң жакшы бурулуш жолун табуу үчүн аймакты солго жана оңго сканерлейт. Ошондой эле, билдирме LEDы, объект табылганда обонду ойнотуучу зумер жана роботтун функциясын өзгөртүү үчүн баскыч (токтотулган/алдыга жылуучу) бар.

Аны жасоо абдан оңой!

1 -кадам: Жасалчу нерселер

Жасалчу нерселер!
Жасалчу нерселер!
Жасалчу нерселер!
Жасалчу нерселер!
Жасалчу нерселер!
Жасалчу нерселер!
Жасалчу нерселер!
Жасалчу нерселер!

Бул долбоор үчүн сизге керек болот:

  1. Arduino UNO (аны gearbest.com сайтынан сатып алыңыз)
  2. Мини нан тактасы (аны gearbest.com сайтынан сатып алыңыз)
  3. L298 мотор айдоочу модулу (аны gearbest.com сайтынан сатып алыңыз)
  4. HC-SR04 дөңгөлөктүү 2x DC мотору УЗИ сенсору (аны gearbest.com сайтынан сатып алыңыз)
  5. Микро серво мотору (аны gearbest.com сайтынан сатып алыңыз)
  6. Кызыл LED220 Ом каршылыгы 9V батарейка кармагычы (кубат уячасы бар же жок)
  7. 8 аралыгы (эркек-аял),
  8. 8 гайка жана 8 бурама сизге дагы бир чоң (металл) керек болот

арткы дөңгөлөктү жасоо үчүн кыстыргыч жана шуру.

Робот базасы үчүн мен Aliexpressтен Acryllic Chasis колдондум. Сиз ошондой эле жыгачтан же металлдан (же эки электр плитасын) колдоно аласыз.

Бүт долбоордун баасы болжол менен 20 доллар

Куралдар: Бургулоочу машина супер клей экипажынын айдоочусу ысык тапанча клейи (милдеттүү эмес)

Биз роботту иштетүү үчүн 9В батареяны колдонобуз, анткени ал кичинекей жана арзан, бирок ал анча күчтүү эмес жана болжол менен бир сааттан кийин бош калат. Эгер кайра заряддалуучу батарейканы (мин 6V, max 7V) колдонгуңуз келсе, ойлонуп көрүңүз, ал кубаттуу болот, бирок 9В батареядан да кымбат жана чоңураак болот.

2 -кадам: түшүнүктөрдү түшүнүү

Түшүнүктөрдү түшүнүү
Түшүнүктөрдү түшүнүү
Түшүнүктөрдү түшүнүү
Түшүнүктөрдү түшүнүү
Түшүнүктөрдү түшүнүү
Түшүнүктөрдү түшүнүү

Максаты - роботту анын алдындагы тоскоолдуктарды билип туруу, ошондуктан ал багытын өзгөртүп, алардан оолак боло алат. Мурунку макалада биз роботту кыймылга келтиргенбиз - эми ага автономия беребиз.

УЗИ сенсор

HC-SR04-бул УЗИ толкундарынын жардамы менен 4 метрге чейинки объектилерге чейинки аралыкты өлчөй турган схема. Ал пинг жөнөтөт (суу астында жүрүүчү кеме сыяктуу) жана бир нерсени кайра жөнөтүү менен алуунун ортосундагы убакытты (микросекундтарда) өлчөйт. Бул убакыт толкун артка жана алдыга жылганда 2ге бөлүнөт. Андан кийин сантиметрге (же дюймга 74) жетүү үчүн 29га бөлүңүз, анткени үн сантиметрге 29.4µs (340 м/с) тарайт. Сенсор ~ 3 мм толеранттуулук менен абдан так жана Arduino менен бириктирүү оңой.

AVR микроконтроллери менен Ultrasonic Sensor Interfacing

Ар бир автономдуу роботто тоскоолдукка жол бербөө жана аралыкты өлчөөчү сенсор тиркелиши керек. IR өткөргүч жуп же боз түстөгү сенсор 1смден 10смге чейинки тоскоолдуктарды аныктоо үчүн оңой иштей алат. ИК диапазондору (мисалы, курчтан келгендер) жакынкы тоскоолдукка чейинки аралыкты 100смге чейин өлчөй алышат. Бирок, IR сенсорлоруна күн нуру жана башка жарык булактары таасир этет. IR диапазонунун диапазону азыраак, ошондой эле ал эмне үчүн кымбат. УЗИ сенсорлору (ошондой эле УЗИге жакындык сенсорлору же геиктер үчүн сонар деп аталат) бул милдеттерди акылга сыярлык баада жана өзгөчө тактыкта аткарышат. Диапазон 3смден 350смге чейин ~ 3мм тактыкта. Бул УЗИ сенсорлорунун бирин биздин роботко байлап, ал тоскоолдуктун алдын алуучу жана аралыкты өлчөөчү сенсордун ролун аткара алат.

"УЗИ" үнү угулуучу үндүн жыштыгынан жогору турган нерсени билдирет жана номиналдуу түрдө 20 000 Гц же 20 кГцтен ашкан нерселерди камтыйт! Робототехника үчүн колдонулган арзан УЗИ сенсорлору жалпысынан 40 кГцтен 250 кГцке чейин иштейт, ал эми медициналык жабдууларда колдонулгандар 10МГцке чейин жетет.

3 -кадам: Керектүү шаймандар

Керектүү куралдар
Керектүү куралдар
Керектүү куралдар
Керектүү куралдар
Керектүү куралдар
Керектүү куралдар
Керектүү куралдар
Керектүү куралдар
  1. Мультиметр
  2. Breadboard
  3. Ийнелердин кычкачтары
  4. Wire Stripper
  5. Wire Cutter
  6. Глей тапанчасы

Мультиметр чындыгында чыңалууну жана каршылыкты өлчөө үчүн жана чынжырдын жабылганын аныктоо үчүн колдонулган жөнөкөй түзмөк. Компьютердин кодун мүчүлүштүктөрдү оңдоого окшош, мультиметр электрондук схемаңызды "оңдоого" жардам берет.

Курулуш материалдары

Механикалык алкакты жасоо үчүн жука жыгачтан жана/же плексигласс менен камсыз кылуу абдан пайдалуу. Алюминий жана болот сыяктуу металлдар көбүнчө станокко кирүү мүмкүнчүлүгүнө ээ болгондор менен чектелет, бирок жука алюминийди кайчы менен кесип, кол менен бүгүүгө болот. Механикалык алкактарды пластикалык контейнерлер сыяктуу тиричилик буюмдарынан да курууга болот.

Пластмассадан башка башка материалдар (плексиглаздан башка) же стекловолокно жана көмүр буласы сыяктуу экзотикалык материалдар мүмкүн болсо да, алар бул колдонмодо каралбайт. Бир нече өндүрүүчүлөр көпчүлүк хоббисттер үчүн өздөрүнүн механикалык тетиктерин өндүрүү оңой эмес экенин белгилеп, модулдук механикалык тетиктерди жаратышкан. Мунун лидери Lynxmotion болуп саналат, ал роботтордун кеңири спектрин жана жеке роботторду жасоо үчүн керектүү бөлүктөрдү сунуштайт.

Hand Tools

Ар кандай типтеги жана өлчөмдөгү бурагычтар жана кычкачтар (зергердин шаймандарын кошкондо: доллар дүкөндөрүндө кеңири таралган чакан отверткалар) зарыл. Бургулоо (туура тешиктер үчүн бургулоочу прессте) да маанилүү. Курулуш материалдарын (же роутерди) кесүү үчүн кол араа дагы маанилүү актив болуп саналат. Эгерде бюджет уруксат берсе, кичинекей стол үстүндөгү араа (200 доллар диапазону), албетте, эске алуучу курал.

Solderless Breadboard

Лакталбаган нан тактасы макетиңизди оптималдаштырууга жана компоненттерди оңой туташтырууга мүмкүндүк берет. Лаксыз нан менен бирге, сиз алдын ала кесилген жана ийилген зымдардан турган алдын ала түзүлгөн секирүүчү зым топтомун сатып алышыңыз керек. Бул байланыштарды абдан оңой кылат.

Чакан отвертка топтому

Бул кичинекей отверткалар электроника менен иштөөдө керек. Аларды өтө эле мажбурлабаңыз - алардын өлчөмү аларды морт кылат.

Кадимки бурагычтар топтому

Бардык семинарларга жалпак / Филлипс жана башка бурагыч баштарын камтыган көп шайман же шаймандар керек.

Ийнелердин кычкачтары

ийне мурун кычкачтар топтому кичинекей компоненттер жана тетиктер менен иштөөдө абдан пайдалуу жана куралдар кутуңузга өтө арзан кошумча. Бул кадимки кычкылдан айырмаланат, анткени алар кичинекей жерлерге кире турган чекитке келишет.

Сым тазалагычтар/кескичтер

Сиз кандайдыр бир зымдарды кесүүнү пландап жатасыз, зым ачкыч сизге бир топ убакытты жана күчтү үнөмдөйт. Туура колдонулганда, зым тазалагыч кабелдин изоляциясын гана алып салат жана эч кандай кыйроо пайда кылбайт жана өткөргүчтөргө зыян келтирбейт. Зым суургучтун башка альтернативасы - бул кайчы, бирок анын жыйынтыгы баш аламан болушу мүмкүн. Кайчы, сызгыч, калем, маркер карандаш, Exacto бычагы (же башка колдук кесүүчү курал) Булар каалаган офисте керектүү нерселер.

4 -кадам: AVRди коддоо үчүн түшүнүктөр

AVRди коддоо үчүн түшүнүктөр
AVRди коддоо үчүн түшүнүктөр

УЗИ сенсорлоруна салыштырмалуу үндүн ылдамдыгын эсептөө

Кичине математика, бирок коркпогула. Бул сиз ойлогондон да жөнөкөй.

Бөлмө температурасында кургак абада үндүн ылдамдыгы (~ 20 ° C) = 343 метр/секунда

Үн толкуну урунуп, жакынкы объектке айланып баруу = 343/2 = 171.5 м/болгондуктан, арзан УЗИ сенсорунун максималдуу диапазону 5 метрден ашпайт (тегерек сапар), бирдиктерди сантиметрге жана микросекунддарга өзгөртүү.

1 Метр = 100 сантиметр 1 секунд = 10^6 микросекунд = (с/171,5) х (м/100 см) x ((1x10^6)/с) = (1/171,5) х (1/100) х (1000000/ 1) = 58.30903790087464 us/cm = 58.31 us/cm (эсептөөлөрдү жеңилдетүү үчүн эки цифрага тегеректөө)Демек, импульстун бир нерсеге баруу жана 1 сантиметр артка секирүү убактысы 58,31 микросекундду түзөт.

AVR саат циклдеринин кичинекей фону

AVR саат циклдерин түшүнүү үчүн таптакыр башка бөлүм талап кылынат, бирок биз эсептөөлөрдү жеңилдетүү үчүн анын кандай иштээрин кыскача түшүнөбүз.

Биздин мисал үчүн, биз 8 биттик AVR-Atmega328P микроконтроллери бар AVR Draco тактасын колдонобуз. Жөнөкөй нерселерди сактоо үчүн, биз микроконтроллердин жөндөөлөрүн өзгөртпөйбүз. Эч кандай сактандыруучу биттер тийген жок; Эч кандай тышкы кристалл тиркелген; Баш оору жок. Заводдун жөндөөлөрүндө, ал /8 prescaler менен ички 8MHz осцилляторунда иштейт; Эгерде сиз мунун баарын түшүнбөсөңүз, анда микроконтроллер 1 МГц ички RC осцилляторунда иштеп жатат жана ар бир цикл 1 микросекунд алат дегенди билдирет.

1 2 1МГц = секундасына 1000000 цикл Ошондуктан, 1s/1000000 = 1/1000000 = 1us

AVR сааттары жана аралыкты өзгөртүү

Биз дээрлик ошол жердебиз! AVR саат циклдерин үн толкундары басып өткөн аралыкка кантип айландырууну билгенден кийин, логиканы программада ишке ашыруу оңой.

Биз идеалдуу чөйрөдө УЗИ үнүнүн ылдамдыгын билебиз: 58.31 us/cm

Биз AVR микроконтроллеринин чечилиши 1us/саат цикли экенин билебиз (CLK)

Демек, сааттын циклине (CLK) карата үн басып өткөн аралык:

1 2 3 = (58.31 us/ cm) x (1us/ clk) = 58.31 цикл/ см же = 1/ 58.31 cm/ clk

Эгерде үн циклинин кайтып келиши жана артка кайтуусу үчүн керектүү болгон циклдердин саны белгилүү болсо, биз аралыкты оңой эле эсептей алабыз. Мисалы, эгерде сенсор 1000 сааттык циклди басып өтсө жана артка кайтса, анда сенсордон жакынкы объектке чейинки аралык = 1000/58.31 = 17.15 см (болжол менен)

Азыр баары түшүнүктүүбү? Жок? Кайра окугула

Эгер сиз жогоруда айтылган логиканы так билсеңиз, анда биз муну чыныгы дүйнө сценарийинде арзан HC-SR04 УЗИ сенсорун AVR Arduino тактабызга туташтырып ишке ашырабыз.

5 -кадам: Аппараттык туташуулар:

Аппараттык туташуулар
Аппараттык туташуулар
Аппараттык туташуулар
Аппараттык туташуулар
Аппараттык туташуулар
Аппараттык туташуулар
Аппараттык туташуулар
Аппараттык туташуулар

Arduino Board ар кандай тышкы сенсорлорду туташтырууну, ошондой эле ЖКда жыйынтыктарды көрүүнү оңой кылат. УЗИ диапазонун сезүү үчүн биз арзан HC-SR04 модулун колдонобуз. Модулда микроконтроллер тактасына туташтырыла турган 4 пин бар: VCC, TRIG, ECHO жана GND.

VCC пинди 5Vга жана GND пинди Arduino тактасына жерге туташтырыңыз.

TRIG пин жана ECHO пин тактада бар болгон казыктарга туташтырылышы мүмкүн. Пинди иштетүү үчүн эң аз 10us "жогорку" сигналын жөнөтүү 40 кГц сегиз үн толкундарын жөнөтөт жана жаңырык пинди бийик тартат. Эгерде үн жакын жердеги нерседен секирип, кайра кайтып келсе, анда ал кабыл алгыч аркылуу кабыл алынат жана жаңырык пин «төмөн» тартылат.

УЗИ сенсор модулдарынын башка варианттары да 3 төөнөгүч менен жеткиликтүү. Иштөө принциби дагы деле ошол бойдон, бирок триггердин жана эхо пиндердин иштеши бир пинге бириктирилген.

Туташкандан кийин, Trigger жана Echo Pins программалык камсыздоо аркылуу конфигурацияланат. Бул мисалды жөнөкөй кармоо үчүн, биз бул мисалда эч кандай үзгүлтүк төөнөгүчтөрүн (же Input Capture Pin) колдонбойбуз. Белгиленген үзгүлтүк төөнөгүчтөрдү колдонбоо бизге модулду борттогу каалаган казыкка туташтыруу эркиндигин берет.

6 -кадам: Код

CodeThe Төмөндөгү код мурунку макаланын H-Bridge жардамы менен DC моторун башкарууга "ультрадыбыштуу" гана кеңейтүүнү камтыйт. Робот анын алдында тоскоолдукту байкаганда, ал артка бурулат (туш келди даражада) жана алдыга жылууну улантат. Бул функцияны бир убакта буруп, тоскоолдуктарды аныктоо үчүн оңой эле узартууга болот - ошондуктан робот туш келди бурулбайт, бирок эч нерсе табылбаганда гана алдыга жыла баштайт.

Коддун түшүндүрмөсү үчүн каналда көрсөтүлгөн Youtube видеосун караңыз.

7 -кадам: Видео

Бүтүндөй процесс үчүн видеону көрүңүз.

Сунушталууда: