Оглавление:

Асинхронное обнаружение препятствий с помощью ультразвука: 4 шага
Асинхронное обнаружение препятствий с помощью ультразвука: 4 шага

Видео: Асинхронное обнаружение препятствий с помощью ультразвука: 4 шага

Видео: Асинхронное обнаружение препятствий с помощью ультразвука: 4 шага
Видео: Урок 11. Ультразвуковой датчик расстояния и Arduino (как работает, обнаружении препятствия) 2024, Июль
Anonim
Асинхронное обнаружение препятствий с помощью ультразвука
Асинхронное обнаружение препятствий с помощью ультразвука

Я создаю для развлечения робота, которого хочу автономно перемещать внутри дома.

Это долгая работа, и я делаю ее постепенно.

Это поучительный акцент на обнаружении препятствий с помощью Arduino Mega

Ультразвуковые датчики HC-SR04 и HY-SRF05 дешевы и просты в использовании, но их сложно интегрировать в цикл микроконтроллера в сложном роботе. Я хотел запустить обнаружение препятствий асинхронным способом.

_

Я уже опубликовал 3 инструкции об особенностях этого робота:

  • Сделайте свой колесный энкодер
  • Сделайте свой WIFI шлюз
  • Используйте инерциальный модуль

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

Шаг 1. В чем именно заключается проблема ультразвуковых датчиков и микроконтроллеров?

В чем именно проблема ультразвуковых датчиков и микроконтроллеров?
В чем именно проблема ультразвуковых датчиков и микроконтроллеров?
В чем именно проблема ультразвуковых датчиков и микроконтроллеров?
В чем именно проблема ультразвуковых датчиков и микроконтроллеров?

Синхронное ожидание и ограничения Arduino

Код микроконтроллеров работает в цикле и не поддерживает многопоточность. Ультразвуковые датчики основаны на продолжительности сигнала. Эта продолжительность длится до 30 мс, что очень долго, чтобы ждать внутри цикла, когда микроконтроллеры должны иметь дело с несколькими двигателями и датчиками (например, сервоприводами и двигателями постоянного тока с колесными энкодерами).

Итак, я хотел разработать объект, который работает асинхронно.

Шаг 2: как это работает?

Как это работает ?
Как это работает ?

Он был разработан для Atmega для обнаружения препятствий. Он поддерживает до 4 ультразвуковых датчиков.

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

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

  • Оповещение является основным средством обнаружения препятствий и обеспечивает прерывание, если хотя бы 1 из 4 датчиков обнаруживает расстояние ниже порогового значения.
  • Монитор - это расширенная функция, которая обеспечивает прерывание при сочетании условий расстояния до 4 датчиков. Возможные условия: выше, ниже, равны или не равны пороговым значениям.

Шаг 3. Технические подробности

Используйте timer4, чтобы контакты 6 7 8 не могли использоваться в качестве ШИМ.

Для каждого датчика объекту нужен ПИН-код триггера и ПИН-код прерывания.

Помимо PIN-кодов прерывания датчиков объекту требуется другой PIN-код прерывания для использования программного обеспечения.

Шаг 4: Как реализовать?

Как реализовать?
Как реализовать?

Подключите датчики, как указано выше

Скачать из этого репозитория GitHub

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

Создайте каталог EchoObstacleDetection внутри своей библиотеки IDE и переместите.cpp и.h

Попробуй это

Откройте ExampleEchoObstacleDetection.ino.

Это простой пример обнаружения препятствий с использованием 2 ультразвуковых датчиков.

Вывод направляется на последовательный монитор. Сначала он распечатает расстояния, обнаруженные двумя датчиками, а затем распечатает предупреждения в зависимости от расстояний ниже пороговых значений.

Рекомендуемые: