Мазмұны:

Ультрадыбыспен кедергілерді асинхронды түрде анықтаңыз: 4 қадам
Ультрадыбыспен кедергілерді асинхронды түрде анықтаңыз: 4 қадам

Бейне: Ультрадыбыспен кедергілерді асинхронды түрде анықтаңыз: 4 қадам

Бейне: Ультрадыбыспен кедергілерді асинхронды түрде анықтаңыз: 4 қадам
Бейне: Ультрадыбыспен бетті тазалау. "Қайырлы таң" бағдарламасы 2024, Шілде
Anonim
Ультрадыбыспен кедергілерді асинхронды түрде анықтау
Ультрадыбыспен кедергілерді асинхронды түрде анықтау

Мен ермек үшін үйдің ішінде автономды түрде қозғалатын робот жасап жатырмын.

Бұл ұзақ жұмыс, мен біртіндеп жасаймын.

Бұл нұсқаулық Arduino Mega көмегімен кедергілерді анықтауға бағытталған

HC-SR04 vs HY-SRF05 ультрадыбыстық датчиктері арзан және қолдануға қарапайым, бірақ күрделі роботтағы микроконтроллерлік контурға кіріктіру қиынға соғуы мүмкін. Мен кедергілерді анықтауды асинхронды түрде жүргізгім келді.

_

Мен осы роботтың ерекшеліктері туралы 3 нұсқаулықты жарияладым:

  • Дөңгелекті кодтаушы жасаңыз
  • WIFI шлюзін жасаңыз
  • Инерциялық модуль бірлігін қолданыңыз

Роботты локализациялау үшін жасанды интеллект пен ультрадыбысты біріктіру туралы құжаттама.

1 -қадам: Ультрадыбыстық датчиктер мен микроконтроллерлерде нақты мәселе қандай?

Ультрадыбыстық датчиктер мен микроконтроллерлерде нақты мәселе қандай?
Ультрадыбыстық датчиктер мен микроконтроллерлерде нақты мәселе қандай?
Ультрадыбыстық датчиктер мен микроконтроллерлерде нақты мәселе қандай?
Ультрадыбыстық датчиктер мен микроконтроллерлерде нақты мәселе қандай?

Синхронды күту және Arduino шектеулері

Микроконтроллерлер коды циклде жұмыс істейді және көп ағынды қолдамайды. Ультрадыбыстық датчиктер сигналдың ұзақтығына негізделген. Бұл ұзақтығы 30 м -ге дейін созылады, бұл микроконтроллерлер бірнеше қозғалтқыштар мен датчиктермен жұмыс істеуге мәжбүр болған кезде цикл ішінде күту өте ұзақ (мысалы, доңғалақты кодтағыштары бар серво мен тұрақты ток қозғалтқыштары).

Сондықтан мен асинхронды түрде жұмыс істейтін нысанды дамытқым келді.

2 -қадам: Бұл қалай жұмыс істейді?

Бұл қалай жұмыс істейді?
Бұл қалай жұмыс істейді?

Ол кедергілерді анықтауға арналған Atmega үшін жасалған. Ол 4 -ке дейін ультрадыбыстық сенсорларды қолдайды.

Уақытша үзілістің арқасында жүйе 4 ультрадыбыстық датчиктерді бақылай алады. Негізгі код тек сенсорды шарт пен табалдырықта іске қосу керектігін анықтауы тиіс.

Негізгі функциялары:

  • Ескерту - бұл кедергілерді анықтаудың негізгі әдісі және егер 4 датчиктің кем дегенде біреуі табалдырықтың астындағы қашықтықты анықтаса, үзілісті қамтамасыз етеді.
  • Монитор - бұл 4 датчикке дейінгі қашықтық жағдайының комбинациясын үзуді қамтамасыз ететін кеңейтілген функция. Мүмкін болатын шарттар шегінен төмен, тең немесе шектік емес.

3 -қадам: Техникалық мәліметтер

Таймер4 қолданыңыз, сондықтан 6 7 8 түйреуішін PWM ретінде қолдануға болмайды.

Әрбір сенсор үшін объект триггер PIN кодын және үзіліс PIN кодын қажет етеді.

Сенсорлардың жоғарғы жағында PIN кодын ажыратады, объект бағдарламалық қамтамасыз етуді пайдалану үшін басқа үзіліс PIN кодын қажет етеді.

4 -қадам: Қалай енгізу керек?

Қалай енгізу керек?
Қалай енгізу керек?

Сенсорларды жоғарыдағыдай жалғаңыз

Осы GitHub репозиторийінен жүктеп алыңыз

  • EchoObstacleDetection.cpp,
  • EchoObstacleDetection.h
  • ExampleEchoObstacleDetection.ino

IDE кітапханасында EchoObstacleDetection каталогын жасаңыз және.cpp және.h жылжытыңыз

Оны сынап көріңіз

ExampleEchoObstacleDetection.ino ашыңыз.

Бұл 2 ультрадыбыстық датчиктермен орындалатын кедергілерді анықтаудың қарапайым мысалы.

Шығу сериялық мониторға бағытталған. Алдымен ол 2 сенсор анықтайтын қашықтықты басып шығарады, содан кейін табалдырықтағы қашықтыққа байланысты ескертулерді басып шығарады.

Ұсынылған: