Агуулгын хүснэгт:

Гэртээ роботоос зайлсхийх DIY Arduino саад бэрхшээлийг хэрхэн яаж хийх вэ: 4 алхам
Гэртээ роботоос зайлсхийх DIY Arduino саад бэрхшээлийг хэрхэн яаж хийх вэ: 4 алхам

Видео: Гэртээ роботоос зайлсхийх DIY Arduino саад бэрхшээлийг хэрхэн яаж хийх вэ: 4 алхам

Видео: Гэртээ роботоос зайлсхийх DIY Arduino саад бэрхшээлийг хэрхэн яаж хийх вэ: 4 алхам
Видео: BTT GTR v1.0/M5 v1.0 - TMC2209 UART with Sensor less Homing 2024, Долдугаар сарын
Anonim
Image
Image

Сайн байна уу залуусаа, энэхүү зааварчилгаанд та роботоос зайлсхийх саад бэрхшээлийг даван туулах болно. Энэхүү зааварчилгаа нь хэт авианы мэдрэгч бүхий робот бүтээх бөгөөд эдгээр объектоос зайлсхийхийн тулд ойролцоох объектуудыг илрүүлж, чиглэлээ өөрчилж чаддаг. Хэт авианы мэдрэгчийг баруун, зүүн тийш байнга скан хийж, замдаа байгаа объектуудыг хайж буй servo моторт бэхлэх болно.

Тиймээс, илүү их зүйлгүйгээр эхлүүлье!

Алхам 1: Энэхүү төсөлд танд хэрэгтэй зүйл:

Энэхүү төсөлд танд хэрэгтэй зүйл
Энэхүү төсөлд танд хэрэгтэй зүйл
Энэхүү төсөлд танд хэрэгтэй зүйл
Энэхүү төсөлд танд хэрэгтэй зүйл

Энд хэсгүүдийн жагсаалт байна:

1) Ардуино Уно

2) Мотор жолоочийн бамбай

3) Араа хөдөлгүүр, хүрээ, дугуйны багц

4) Servo мотор

5) Хэт авианы мэдрэгч

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

7) Зай эзэмшигч

8) Эрэгтэй, эмэгтэй холбогч утас

9) Гагнуурын төмөр

10) Цэнэглэгч

Алхам 2: Хэлхээ диаграм

Хэлхээ диаграм
Хэлхээ диаграм

Ажиллаж байна:

Төсөл дээр ажиллахаасаа өмнө хэт авианы мэдрэгч хэрхэн ажилладагийг ойлгох нь чухал юм. Хэт авианы мэдрэгчийн ажиллах үндсэн зарчим дараах байдалтай байна.

Гаднах гох дохиог ашиглан хэт авианы мэдрэгч дээрх Trig зүүг дор хаяж 10 микс өндөр логикоор хийдэг. Дамжуулагч модулийн дууны тэсрэлтийг илгээдэг. Энэ нь 40 кГц давтамжтай 8 импульсээс бүрдэнэ.

Гадаргуу дээр цохиулсны дараа дохио буцаж ирдэг бөгөөд хүлээн авагч энэ дохиог илрүүлдэг. Цуурай зүү нь дохио илгээж, хүлээн авснаас хойш өндөр байдаг. Энэ хугацааг тохирох тооцооллыг ашиглан зай болгон хувиргаж болно.

Энэхүү төслийн зорилго нь хэт авианы мэдрэгч болон Arduino ашиглан роботоос зайлсхийх саад бэрхшээлийг хэрэгжүүлэх явдал юм. Бүх холболтыг схемийн дагуу хийдэг. Төслийн ажлыг доор тайлбарласан болно.

Роботыг асаахад роботын мотор хоёулаа хэвийн ажиллаж, робот урагшлах болно. Энэ хугацаанд хэт авианы мэдрэгч робот болон цацруулагч гадаргуугийн хоорондох зайг тасралтгүй тооцоолж гаргадаг.

Энэ мэдээллийг Arduino боловсруулдаг. Хэрэв робот ба саадыг хоорондох зай 15см -ээс бага байвал робот нь зүүн ба баруун чиглэлд зогсож, Servo мотор ба хэт авианы мэдрэгч ашиглан шинэ зайг хайна. Хэрэв зүүн тийш чиглэсэн зай нь баруун талынхаас хол байвал робот зүүн тийш эргэхэд бэлтгэнэ. Гэхдээ эхлээд бага зэрэг ухарч, дараа нь зүүн дугуйны моторыг урвуу чиглэлд идэвхжүүлнэ.

Үүний нэгэн адил, хэрэв зөв зай нь зүүнээс хол байвал робот баруун эргэлтийг бэлддэг. Энэ үйл явц үүрд үргэлжлэх бөгөөд робот ямар ч саад бэрхшээлгүйгээр хөдөлсөөр байна.

Алхам 3: Arduino UNO програмчлах

#оруулах

#оруулах

#оруулах

# тодорхойлох TRIG_PIN A1

# ECHO_PIN A0 тодорхойлох

# MAX_DISTANCE 200 тодорхойлох

# define MAX_SPEED 255 // DC моторын хурдыг тохируулна

# MAX_SPEED_OFFSET -ийг тодорхойлох 20

NewPing sonar (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotor мотор3 (3, MOTOR34_1KHZ);

AF_DCMotor мотор4 (4, MOTOR34_1KHZ); Servo myservo;

boolean goForward = худал;

int зай = 100; int speedSet = 0;

хүчингүй тохиргоо () {

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); зайR = lookRight (); саатал (200); зайL = харагдахЗүүн (); саатал (200);

хэрэв (зайR> = зайL) {

Баруун тийш эргэ(); moveStop (); } өөр {turnLeft (); moveStop (); }} өөр {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 (); хэрэв (см == 0) {см = 250; } буцах см; }

void moveStop () {

мотор 3. ажиллуулах (суллах);

мотор 4. ажиллуулах (суллах); }

void moveForward () {

if (! goForward) {

goForward = үнэн;

мотор 3. гүйх (урагш);

мотор 4. гүйх (урагш); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // батерейг хэт хурдан цэнэглэхгүйн тулд хурдыг аажмаар дээшлүүлнэ үү {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); саатал (5); }}}

хүчингүй алхамBackward () {

goForward = худал;

мотор 3. ажиллуулах (УХАРАХ);

мотор 4. ажиллуулах (БУЦАХ); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // батерейг хэт хурдан цэнэглэхгүйн тулд хурдыг аажмаар дээшлүүлнэ үү {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); саатал (5); }}

void turnRight () {

мотор 3. гүйх (урагш);

мотор 4. ажиллуулах (БУЦАХ); саатал (500);

мотор 3. гүйх (урагш);

мотор 4. гүйх (урагш); }

void turnLeft () {

мотор 3. ажиллуулах (БУЦАХ);

мотор 4. гүйх (урагш); саатал (500);

мотор 3. гүйх (урагш);

мотор 4. гүйх (урагш); }

1) Arduino Desktop IDE татаж аваад суулгана уу

  • цонхнууд -
  • Mac OS X -
  • Линукс -

2) NewPing номын сангийн (Хэт авианы мэдрэгчийн функцын номын сан) файлыг татаж аваад Arduino номын сангийн хавтсанд буулгана уу.

  1. NewPing.rar -ийг доороос татаж авна уу
  2. Үүнийг зам руу гаргаж аваарай - C: / Arduino / libraries

3) USB кабелиар дамжуулан кодыг Arduino самбар дээр байршуулна уу

Татаж авах код:

Алхам 4: Гайхалтай

Одоо таны робот ямар ч саад бэрхшээлээс зайлсхийхэд бэлэн байна …

Би танд байгаа бүх асуултанд хариулахад баяртай байх болно

Имэйл: [email protected]

Вэбсайт:

Миний YouTube сувагт бүртгүүлнэ үү:

Инстаграм:

Facebook:

Баярлалаа:)

Зөвлөмж болгож буй: