Оглавление:

Как сделать дома робота для обхода препятствий на Arduino: 4 шага
Как сделать дома робота для обхода препятствий на Arduino: 4 шага

Видео: Как сделать дома робота для обхода препятствий на Arduino: 4 шага

Видео: Как сделать дома робота для обхода препятствий на Arduino: 4 шага
Видео: КАК СДЕЛАТЬ ARDUINO РОБОТ МАШИНКУ КОТОРЫЙ ОБХОДИТ ПРЕПЯТСТВИЯ 2024, Июль
Anonim
Image
Image

Привет, ребята, в этой инструкции вы создадите робота, избегающего препятствий. Это руководство включает в себя создание робота с ультразвуковым датчиком, который может обнаруживать близлежащие объекты и изменять их направление, чтобы избегать этих объектов. Ультразвуковой датчик будет прикреплен к серводвигателю, который постоянно сканирует влево и вправо в поисках объектов на своем пути.

Итак, без лишних слов, приступим!

Шаг 1. Что вам нужно в этом проекте:

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

Вот список деталей:

1) Arduino Uno

2) Щиток драйвера двигателя

3) Мотор-редуктор, рама и комплект колес

4) Серводвигатель

5) Ультразвуковой датчик

6) Литий-ионный аккумулятор (2 шт.)

7) Держатель батареи

8) Мужской и женский перемычки

9) Паяльник

10) Зарядное устройство

Шаг 2: Принципиальная схема

Принципиальная электрическая схема
Принципиальная электрическая схема

Работающий:

Прежде чем приступить к работе над проектом, важно понять, как работает ультразвуковой датчик. Основной принцип работы ультразвукового датчика заключается в следующем:

При использовании внешнего триггерного сигнала триггерный вывод ультразвукового датчика получает высокий логический уровень как минимум на 10 мкс. Отправляется звуковой пакет от модуля передатчика. Он состоит из 8 импульсов по 40 кГц.

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

Целью этого проекта является создание робота для обхода препятствий с использованием ультразвукового датчика и Arduino. Все подключения выполняются согласно принципиальной схеме. Ниже поясняется принцип работы проекта.

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

Эта информация обрабатывается Arduino. Если расстояние между роботом и препятствием составляет менее 15 см, робот останавливается и сканирует влево и вправо для определения нового расстояния с помощью серводвигателя и ультразвукового датчика. Если расстояние по направлению к левой стороне больше, чем с правой стороны, робот подготовится к повороту налево. Но сначала он немного отступает, а затем активирует мотор левого колеса в обратном направлении.

Точно так же, если правое расстояние больше, чем левое расстояние, робот готовится к правому вращению. Этот процесс продолжается вечно, и робот продолжает движение, не сталкиваясь с какими-либо препятствиями.

Шаг 3: Программирование Arduino UNO

#включают

#включают

#включают

# определить TRIG_PIN A1

# определить ECHO_PIN A0

# define MAX_DISTANCE 200

# define MAX_SPEED 255 // устанавливает скорость двигателей постоянного тока

# определить MAX_SPEED_OFFSET 20

Эхолот NewPing (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotor motor3 (3, MOTOR34_1KHZ);

AF_DCMotor motor4 (4, MOTOR34_1KHZ); Сервомашина;

логическое goForward = false;

int distance = 100; int speedSet = 0;

void setup () {

myservo.attach (10);

myservo.write (115); задержка (2000); расстояние = readPing (); задержка (100); расстояние = readPing (); задержка (100); расстояние = readPing (); задержка (100); расстояние = readPing (); задержка (100); }

void loop () {

int distanceR = 0; int distanceL = 0; задержка (40);

если (расстояние <= 15) {moveStop (); задержка (100); двигаться назад(); задержка (300); moveStop (); задержка (200); distanceR = lookRight (); задержка (200); distanceL = lookLeft (); задержка (200);

if (distanceR> = distanceL) {

Поверните направо(); moveStop (); } еще {turnLeft (); moveStop (); }} еще {moveForward (); } distance = readPing (); }

int lookRight () {

myservo.write (50); задержка (500); int distance = readPing (); задержка (100); myservo.write (115); расстояние возврата; }

int lookLeft () {

myservo.write (170); задержка (500); int distance = readPing (); задержка (100); myservo.write (115); расстояние возврата; задержка (100); }

int readPing () {

задержка (70); int cm = sonar.ping_cm (); если (см == 0) {см = 250; } return cm; }

void moveStop () {

motor3.run (ВЫПУСК);

motor4.run (РЕЛИЗ); }

void moveForward () {

if (! goForward) {

goForward = true;

motor3.run (ВПЕРЕД);

motor4.run (ВПЕРЕД); for (speedSet = 0; speedSet <MAX_SPEED; speedSet + = 2) // медленно увеличивайте скорость, чтобы не разряжать батареи слишком быстро {

motor3.setSpeed (набор скорости);

motor4.setSpeed (набор скорости); задержка (5); }}}

void moveBackward () {

goForward = false;

motor3.run (НАЗАД);

motor4.run (НАЗАД); for (speedSet = 0; speedSet <MAX_SPEED; speedSet + = 2) // медленно увеличивайте скорость, чтобы не разряжать батареи слишком быстро {

motor3.setSpeed (набор скорости);

motor4.setSpeed (набор скорости); задержка (5); }}

void turnRight () {

motor3.run (ВПЕРЕД);

motor4.run (НАЗАД); задержка (500);

motor3.run (ВПЕРЕД);

motor4.run (ВПЕРЕД); }

void turnLeft () {

motor3.run (НАЗАД);

motor4.run (ВПЕРЕД); задержка (500);

motor3.run (ВПЕРЕД);

motor4.run (ВПЕРЕД); }

1) Загрузите и установите Arduino Desktop IDE

  • окна -
  • Mac OS X -
  • Linux -

2) Загрузите и вставьте файл библиотеки NewPing (библиотека функций ультразвукового датчика) в папку библиотек Arduino.

  1. Загрузите NewPing.rar ниже
  2. Распакуйте по пути - C: / Arduino / libraries

3) Загрузите код на плату Arduino через USB-кабель.

Код загрузки:

Шаг 4: Отлично

Теперь ваш робот готов избегать любого препятствия …

Буду рад ответить на любые ваши вопросы

Электронная почта: [email protected]

Сайт:

Подпишитесь на мой канал на YouTube:

Instagram:

Facebook:

Спасибо:)

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