Съдържание:

Асинхронно откриване на препятствия с ултразвук: 4 стъпки
Асинхронно откриване на препятствия с ултразвук: 4 стъпки

Видео: Асинхронно откриване на препятствия с ултразвук: 4 стъпки

Видео: Асинхронно откриване на препятствия с ултразвук: 4 стъпки
Видео: проф. д.ик.н. Нина Дюлгерова, Газът - политическият инструмент на корпоративните интереси 2024, Ноември
Anonim
Асинхронно откриване на препятствия с ултразвук
Асинхронно откриване на препятствия с ултразвук

Изграждам за забавление робот, който искам да се движи автономно в къща.

Това е дълга работа и върша стъпка по стъпка.

Този инструктируем фокус върху откриването на препятствия с Arduino Mega

Ултразвуковите сензори HC-SR04 срещу HY-SRF05 са евтини и лесни за използване, но могат да станат трудни за интегриране в контура на микроконтролера в сложен робот. Исках да стартирам откриването на препятствия по асинхронен начин.

_

Вече публикувах 3 инструкции за функциите на този робот:

  • Направете своя енкодер за колела
  • Направете своя WIFI Gateway
  • Използвайте модул за инерционен модул

И документация за комбиниране на изкуствен интелект и ултразвук за локализиране на робота.

Стъпка 1: Какъв точно е проблемът с ултразвукови сензори и микроконтролери?

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

Синхронно изчакване и ограничения на Arduino

Кодът на микроконтролерите работи в цикъл и не поддържа многопоточен. Ултразвуковите сензори се основават на продължителността на сигнала. Тази продължителност продължава до 30 m s, което е много дълго за изчакване вътре в контура, когато микроконтролерите трябва да се справят с множество двигатели и сензори (например серво и DC двигатели с енкодери на колела).

Затова исках да разработя обект, който да работи асинхронно.

Стъпка 2: Как работи?

Как работи ?
Как работи ?

Той е проектиран за Atmega за откриване на препятствия. Той поддържа до 4 ултразвукови сензора.

Благодарение на периодичното прекъсване на времето, системата може да наблюдава до 4 ултразвукови сензора. Основният код трябва само да определи кой сензор да се активира със състояние и праг. Основният код ще бъде прекъснат само в случай, че се появи (състояние, праг).

Основните функции са:

  • Предупреждението е основното откриване на препятствия и осигурява прекъсване, ако поне 1 от четирите сензора открие разстояние под неговия праг
  • Мониторът е разширена функция, която осигурява прекъсване при комбинация от разстояние до 4 сензора. Възможните условия са над, под, равни или не равни на прагове.

Стъпка 3: Технически подробности

Използвайте таймер 4, така че щифт 6 7 8 не може да се използва като ШИМ.

За всеки сензор обектът се нуждае от ПИН за задействане и ПИН за прекъсване.

Върху ПИН кодовете за прекъсване на сензорите обектът се нуждае от друг ПИН за прекъсване за използване на софтуера.

Стъпка 4: Как да приложим?

Как да приложим?
Как да приложим?

Свържете сензорите както по -горе

Изтеглете от това хранилище на GitHub

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

Създайте директория EchoObstacleDetection във вашата IDE библиотека и преместете.cpp и.h

Тествайте го

Отворете ExampleEchoObstacleDetection.ino.

Това е прост пример за откриване на препятствия, изпълнен с 2 ултразвукови сензора.

Изходът се насочва към сериен монитор. Първоначално той ще отпечатва разстояния, открити от 2 сензора, а след това ще отпечата сигнали в зависимост от разстоянията под праговете.

Препоръчано: