Оглавление:

Собака с инфракрасным отслеживанием: 3 шага
Собака с инфракрасным отслеживанием: 3 шага

Видео: Собака с инфракрасным отслеживанием: 3 шага

Видео: Собака с инфракрасным отслеживанием: 3 шага
Видео: The Witcher 3: Wild Hunt Прохождение ► БАБКА И СКОВОРОДКА ► #3 2024, Июль
Anonim
Image
Image
Собака с инфракрасным отслеживанием
Собака с инфракрасным отслеживанием

Однажды я нашел интересное видео по адресу: https://arduinotr.com/cisim/?fbclid=IwAR22rYmiRQQJ0nqAusOLhBj_778gROseej6TUonvbOnAd65A-sl_wnyqrJQ&tdsourcetag=s_pcqq_aiomsg, но это действительно читерство.

На первый взгляд, это действительно странно, а потом ноги обманули, не знаю, в чем основная причина, по которой этот дизайнер сделал такую вводящую в заблуждение историю … Это невозможно с помощью простого ИК-датчика или даже без какого-либо контроллера, а только с простыми триодами.

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

  • Любой совместимый с Arduino контроллер, например Maduino
  • Драйвер двигателя L298N
  • 3x ИК-датчик
  • Некоторые распространенные перемычки

Шаг 1: Обнаружение препятствий

Обнаружение препятствий
Обнаружение препятствий

Для обнаружения препятствия используются 3 ИК-датчика, и левый / правый датчик обнаружил препятствие, он должен вращаться в направлении часов / против часовой стрелки, в то время как средний датчик обнаруживает, все в порядке.

Датчик 3 определяет, есть ли впереди препятствия. Подключает сигнальный контакт к входным контактам Maduino, таким как Pin2 / 3/4;

В качестве программного обеспечения просто проверьте состояние выхода датчика, чтобы решить, что двигатель должен делать:

if (IR1_STA == HIGH & IR2_STA == LOW & IR3_STA == HIGH) // Если средний датчик обнаруживает препятствие, двигатель останавливается

{

analogWrite (EN, 0);

Стоп();

}

if (IR1_STA == LOW & IR2_STA == HIGH & IR3_STA == HIGH) // если правый датчик обнаруживает препятствие, двигатель реверсирует с высокой скоростью;

{

analogWrite (EN, высокая скорость);

Задний ход();

}

if (IR1_STA == LOW & IR2_STA == LOW & IR3_STA == HIGH) // если

правый и средний датчик обнаруживают препятствие, двигатель реверсирует с низкой скоростью;

{

analogWrite (EN, низкая скорость);

Задний ход();

}

……

Шаг 2: Управление двигателем

Управление двигателем
Управление двигателем
Управление двигателем
Управление двигателем

И драйвер двигателя для управления двигателем с высокой / низкой скоростью зависит от состояния датчика.

Использование модуля L298N для управления двигателем с выводом Maduino pin5 / 6 и выводом PWM (Maduino Pin9) на вывод L298N, включение и питание модуля напряжением 9В:

int EN = 9; // ШИМ-контроль

int highspeed = 80; // определяем высокую скорость

int lowspeed = 60; // определяем низкую скорость

а затем скорость двигателя можно контролировать с помощью:

analogWrite (EN, высокая скорость);

Шаг 3. Установите что-нибудь туда, такую собаку…

Установите что-нибудь там, такую собаку…
Установите что-нибудь там, такую собаку…

Установите датчики и моторы, и сделайте что-нибудь, для меня я люблю собаку, чтобы играть с моей 1,5-летней дочерью. Загрузите код Arduino здесь … Если у вас возникнут вопросы, свяжитесь со мной: [email protected]

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