Съдържание:

Как да си направите робот за избягване на препятствия Arduino у дома: 4 стъпки
Как да си направите робот за избягване на препятствия Arduino у дома: 4 стъпки

Видео: Как да си направите робот за избягване на препятствия Arduino у дома: 4 стъпки

Видео: Как да си направите робот за избягване на препятствия Arduino у дома: 4 стъпки
Видео: Could this tiny tube of metal fix our broken suspension? - Edd China's Workshop Diaries 28 2024, Юли
Anonim
Image
Image

Здравейте момчета, В тази инструкция ще направите препятствие, избягвайки робота. Тази инструкция включва изграждане на робот с ултразвуков сензор, който може да открие близки обекти и да промени посоката им, за да избегне тези обекти. Ултразвуковият сензор ще бъде прикрепен към серво мотор, който постоянно сканира наляво и надясно, търсейки обекти по пътя си.

Така че, без да се замисляме, нека започнем!

Стъпка 1: Какво ви трябва в този проект:

Какво ви трябва в този проект
Какво ви трябва в този проект
Какво ви трябва в този проект
Какво ви трябва в този проект

Ето списъка с части:

1) Arduino Uno

2) Щит на водача на двигателя

3) Редуктор, комплект рамка и колела

4) Серво мотор

5) Ултразвуков сензор

6) Литиево-йонна батерия (2x)

7) Поставка за батерия

8) Мъжки и женски джъмпер

9) поялник

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

Стъпка 2: Електрическа схема

Електрическа схема
Електрическа схема

Работещи:

Преди да започнете работа по проекта, важно е да разберете как работи ултразвуковият сензор. Основният принцип на работа на ултразвуковия сензор е следният:

Използвайки външен задействащ сигнал, триггерният щифт на ултразвуковия сензор се прави логически висок за поне 10 μs. Излъчва се звуков сигнал от предавателния модул. Това се състои от 8 импулса по 40KHz.

Сигналите се връщат обратно, след като ударят повърхност и приемникът открива този сигнал. Ехо пинът е висок от момента на изпращане на сигнала и приемане. Това време може да се преобразува в разстояние чрез подходящи изчисления.

Целта на този проект е да се приложи робот за избягване на препятствия с помощта на ултразвуков сензор и Arduino. Всички връзки са направени съгласно електрическата схема. Работата по проекта е обяснена по -долу.

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

Тази информация се обработва от Arduino. Ако разстоянието между робота и препятствието е по -малко от 15 см, роботът спира и сканира в лявата и дясната посока за ново разстояние, използвайки сервомотор и ултразвуков сензор. Ако разстоянието към лявата страна е повече от това на дясната страна, роботът ще се подготви за ляв завой. Но първо, той се архивира малко и след това активира двигателя на лявото колело в обратна посока.

По същия начин, ако дясното разстояние е повече от това на лявото разстояние, роботът подготвя дясно завъртане. Този процес продължава завинаги и роботът продължава да се движи, без да удря препятствия.

Стъпка 3: Програмиране на Arduino UNO

#включва

#включва

#включва

# дефинирайте TRIG_PIN A1

# дефинирайте ECHO_PIN A0

# дефинирайте MAX_DISTANCE 200

# define MAX_SPEED 255 // задава скорост на DC двигатели

# дефинирайте MAX_SPEED_OFFSET 20

NewPing сонар (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCМотор на двигателя3 (3, MOTOR34_1KHZ);

AF_DCМотор на мотора4 (4, MOTOR34_1KHZ); Servo myservo;

boolean goesForward = false;

int разстояние = 100; int speedSet = 0;

void setup () {

myservo.attach (10);

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

void loop () {

int разстояние R = 0; int разстояние L = 0; забавяне (40);

if (разстояние <= 15) {moveStop (); забавяне (100); moveBackward (); забавяне (300); moveStop (); забавяне (200); distanceR = lookRight (); забавяне (200); distanceL = lookLeft (); забавяне (200);

if (distanceR> = distanceL) {

обърни се на дясно(); moveStop (); } else {turnLeft (); moveStop (); }} else {moveForward (); } разстояние = readPing (); }

int lookRight () {

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

int lookLeft () {

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

int readPing () {

забавяне (70); int cm = sonar.ping_cm (); ако (cm == 0) {cm = 250; } return cm; }

void moveStop () {

motor3.run (РЕЛИЗАЦИЯ);

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

void moveForward () {

ако (! отива напред) {

отива напред = вярно;

motor3.run (НАПРЕД);

motor4.run (НАПРЕД); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // бавно увеличавайте скоростта, за да избегнете зареждането на батериите твърде бързо {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); забавяне (5); }}}

void moveBackward () {

отива напред = невярно;

motor3.run (НАЗАД);

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

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); забавяне (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

  • windows -
  • Mac OS X -
  • Linux -

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

  1. Изтеглете NewPing.rar по -долу
  2. Извлечете го в пътя - C: / Arduino / libraries

3) Качете кода на платката Arduino чрез USB кабел

Изтеглете код:

Стъпка 4: Страхотно

Сега вашият робот е готов да избегне всяко препятствие …

Ще се радвам да отговоря на всички ваши въпроси

Изпратете ми имейл: [email protected]

Уебсайт:

Абонирайте се за моя канал в YouTube:

Instagram:

Facebook:

Благодаря ти:)

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