Энгийн робот хэрхэн хийх вэ

Энгийн робот хэрхэн хийх вэ

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

1. Энгийн роботын тухай ойлголтыг ойлгох

Ерөнхийдөө роботууд нь тархи (хянагч), мэдрэхүй (мэдрэгч), булчин (хөдөлгүүр) гэсэн гурван үндсэн бүрэлдэхүүн хэсэгтэй. Энэ төсөлд:

– Хянагч: Arduino Uno (эсвэл нийцтэй)
– Мэдрэгч: Зайг хэмжих зориулалттай HC-SR04 хэт авианы мэдрэгч
– Хөдөлгүүр: Дугуйг хөдөлгөдөг тогтмол гүйдлийн мотор
– Моторын драйвер: L298N (эсвэл L293D) моторын драйвер нь моторыг Arduino-оор удирдаж болно.

Мэдрэгч роботын урд талын зайг уншиж, зай хэт ойрхон байвал Arduino нь хөдөлгүүрийн жолоочид хөдөлгөөний чиглэлийг өөрчлөх, жишээлбэл, баруун эсвэл зүүн эргэх команд өгнө.

2. Шаардлагатай багаж хэрэгсэл, материал

Электроникийн дэлгүүр эсвэл зах зээлээс олоход хялбар түгээмэл хэрэглэгддэг эд ангиудын жагсаалтыг энд оруулав.

1. Arduino Uno (1 ширхэг)
2. L298N моторын хөтлөгч (1 ширхэг)
3. HC-SR04 хэт авианы мэдрэгч (1 ширхэг)
4. 2 дугуйтай роботын (дифференциал хөтлөгчтэй) тогтмол гүйдлийн мотор + хурдны хайрцаг болон дугуй (2 ширхэг)
5. Урд эсвэл хойд хэсэгтээ жижиг тэнцвэржүүлэгч дугуй (1 ширхэг)
6. Моторын хэрэгцээнээс хамааран батерей (жишээ нь 2×18650 эсвэл 7,4V багц) эсвэл 6xAA
7. Робот явах эд анги (бэлэн худалдаж авах эсвэл акрил/фанераар хийж болно)
8. Холбогч кабель (эрэгтэй-эмэгтэй, эр-эрэгтэй)
9. Асаах/унтраах унтраалга (заавал биш боловч маш хэрэгтэй)
10. Жижиг талхны тавцан (заавал биш)
11. Шаардлагатай бол боолт, самар, халив болон халуун цавуу

Хэрэв та бүр ч энгийн зүйлийг хүсч байвал (хэт авианы мэдрэгчгүйгээр) шугам мэдрэгчтэй "шугам дагагч" робот бүтээж болно, гэхдээ саад бэрхшээлээс зайлсхийх хувилбарууд нь урд байгаа объектуудад хариу үйлдэл үзүүлдэг тул илүү "амьд" санагддаг.

READ  Динамик системийн хяналтын техникүүд

3. Роботын явах эд ангийг зохион бүтээх

Явах эд анги нь бүх эд ангиудыг суурилуулсан хүрээ юм. Та бэлэн явах эд ангийн иж бүрдлийг ашиглах эсвэл нийлэг, PVC, эсвэл нимгэн мод зэрэг хөнгөн материалаар өөрөө хийж болно. Зарчим нь:

– Зүүн ба баруун талд хоёр тогтмол гүйдлийн мотор суурилуулна.
– Мотоцикл дээр дугуйг суурилуул.
– Роботыг тогтвортой байлгахын тулд тэнцвэржүүлэгч болгон дугуй нэмнэ үү.
– Батерейг роботыг хазайлгахгүй байрлалд байрлуул.
– Arduino болон моторын хөтчүүдийг хялбархан нэвтрэхийн тулд дээд хэсэгт байрлуулах хэрэгтэй.

Дугуйнд тээглэхгүйн тулд кабель унжихгүй байгаа эсэхийг шалгаарай.

4. Үндсэн холболтын диаграмм

Энд холболтын ерөнхий ойлголт байна (түлхүүрүүдийг өөрчлөх боломжтой):

a) Мотороос жолооч хүртэл L298N
– Зүүн моторыг OUT1 болон OUT2 гаралт руу холбоно уу
– Баруун мотор OUT3 ба OUT4 гаралт руу

б) L298N драйвер нь Arduino руу хөтөлдөг
– Зүүн моторын хувьд IN1, IN2 нь Arduino дижитал зүү рүү холбогдоно
– Баруун моторын хувьд зарим Arduino дижитал зүү рүү IN3, IN4
– ENA болон ENB (enable)-ийг Arduino PWM зүүнүүдтэй холбож хурдыг хянаж болно (заавал биш). Хэрэв үгүй ​​бол зарим L298N модулиуд нь моторыг бүрэн хурдаар ажиллуулах боломжийг олгох enable jumper-тэй байдаг.

в) HC-SR04 мэдрэгчийг Arduino руу холбоно уу
– VCC-ээс 5V Arduino хүртэл
– GND-ээс GND Arduino руу
– TRIG-г Arduino дижитал зүү рүү холбоно уу
– ECHO нь Arduino дижитал зүү рүү

d) Хүч чадал
Мотор нь Arduino-ийн өгч чадахаас илүү их гүйдэл шаарддаг. Тиймээс:
– Үндсэн батерей нь моторын драйвер руу очдог (L298N дээрх +12V болон GND терминалууд).
– Arduino-г батерейгаар (VIN-ээр) эсвэл тусдаа power bank/USB-ээр тэжээж болно.
– Газардуулга: Хяналтын дохио тогтвортой байхын тулд зай/хөтөч GND болон Arduino GND-г холбох шаардлагатай.

Анхан шатны суралцагчдын дунд хамгийн түгээмэл тохиолддог алдаа бол GND-г угсрахаа мартдаг тул робот тогтворгүй хөдөлдөг.

READ  Цахилгаан мотор хэрхэн ажилладаг вэ?

5. Саад бэрхшээлээс зайлсхийх роботын ажиллах логик

Робот нь энгийн урсгалаар ажиллах болно:

1. Хэт авианы мэдрэгч хүртэлх зайг уншина уу.
2. Хэрэв зай > босго (жишээ нь 20 см) байвал робот урагшилна.
3. Хэрэв зай ≤ 20 см байвал робот түр зогсоно.
4. Робот бага зэрэг ухарч, дараа нь хэдэн зуун миллисекундын турш (жишээлбэл, баруун тийш) эргэдэг.
5. Зайг дахин уншаад давтана уу.

Энэ хэв маягаар робот хамгийн оновчтой замыг сонгоогүй ч гэсэн саад бэрхшээлээс "зайлсхийж" байгаа мэт харагдах болно.

6. Arduino-н энгийн кодын жишээ

Доор үндсэн кодын жишээ байна. Та хэлхээндээ тохируулан зүүг өөрчилж болно:

“`cpp
TRIG 8-г тодорхойлох
ECHO 9-ийг тодорхойлох

// Зүүн мотор
IN1 2-ийг тодорхойлох
IN2 3-ийг тодорхойлох

// Баруун мотор
IN3 4-ийг тодорхойлох
IN4 5-ийг тодорхойлох

урт хугацааны;
int зай;

int readDistance() {
digitalWrite(TRIG, LOW);
сааталМикросекунд(2);
digitalWrite(TRIG, ӨНДӨР);
сааталМикросекунд(10);
digitalWrite(TRIG, LOW);

үргэлжлэх хугацаа = pulseIn(ECHO, HIGH);
int см = үргэлжлэх хугацаа 0.034 / 2;
см буцах;
}

хоосон урагшлах() {
digitalWrite(IN1, ӨНДӨР);
digitalWrite(IN2, БАГА);
digitalWrite(IN3, ӨНДӨР);
digitalWrite(IN4, БАГА);
}

хүчингүй урвуу () {
digitalWrite(IN1, БАГА);
digitalWrite(IN2, ӨНДӨР);
digitalWrite(IN3, БАГА);
digitalWrite(IN4, ӨНДӨР);
}

хоосон эргэлтБаруун() {
digitalWrite(IN1, ӨНДӨР);
digitalWrite(IN2, БАГА);
digitalWrite(IN3, БАГА);
digitalWrite(IN4, ӨНДӨР);
}

хүчингүй зогсоох() {
digitalWrite(IN1, БАГА);
digitalWrite(IN2, БАГА);
digitalWrite(IN3, БАГА);
digitalWrite(IN4, БАГА);
}

хүчингүй тохиргоо () {
pinMode(TRIG, OUTPUT);
pinMode(ECHO, ОРОЛТ);

pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);

Цуваа.begin (9600);
}

хүчингүй гогцоо () {
зай = readDistance();
Serial.println(зай);

хэрэв (зай > 20) {
үргэлжлүүлэх();
} else {
зогсоох();
хойшлуулах (200);
урвуу();
хойшлуулах (300);
зогсоох();
хойшлуулах (200);
баруун тийш эргэх ();
хойшлуулах (400);
зогсоох();
}

хойшлуулах (50);
}
""

Энэ код нь хамгийн энгийн хувилбар юм. Хэрэв робот хэт олон удаа гацвал та босгыг 25-30 см хүртэл нэмэгдүүлэх эсвэл эргэх хугацааг нэмэгдүүлэх боломжтой.

7. Туршилт ба тохируулга

Роботыг угсарсны дараа алхам алхмаар туршилтыг гүйцэтгэнэ үү:

1. Эхлээд моторыг шалгана уу: дугуй зөв чиглэлд эргэлдэж байгаа эсэхийг шалгахын тулд урагш/ухрах функцийг ажиллуулна уу.
2. Хэт авианы мэдрэгчийг турших: зайн үр дүнг Arduino IDE цуваа монитороос харна уу.
3. Системийг нэгтгэх: програмыг бүрэн ажиллуулж, роботын хариу үйлдлийг ажиглах.

READ  Хөдөлгөөнгүй долгионы тухай ойлголт

Хэрэв робот урагшлах ёстой үедээ эргэж эсвэл арагшаа хөдөлж байвал та моторын кабелийг солих эсвэл IN1-IN2 (ба IN3-IN4) логикийг урвуулах шаардлагатай болж магадгүй.

8. Нийтлэг асуудлууд ба шийдлүүд

Ихэнхдээ гарч ирдэг зарим саад бэрхшээлүүд:

– Робот огт хөдлөхгүй байна: зайгаа, моторын драйверыг шалгана уу, идэвхжүүлэх холбогч идэвхтэй байгаа эсэхийг шалгаарай.
– Мотор ажиллаж байх үед Arduino дахин тохируулагддаг: тэжээлийн хангамж хангалтгүй эсвэл моторын чимээ шуугиантай байна. Arduino-д зориулж тусдаа батерей ашиглаж, конденсатор нэмж, газардуулгыг нь засаж үзээрэй.
– Зай мэдрэгчийн заалт тогтворгүй байна: мэдрэгч шулуун харагдаж байгаа эсэхийг шалгаарай, хэт их чичиргээнээс хол байлгаж, кабель сулараагүй эсэхийг шалгаарай.
– Робот буланд “гацчихсан”: санамсаргүй эргэлтийн логик нэмэх эсвэл мэдрэгчийг зүүн, баруун “харах” боломжтой болгохын тулд серво ашиглан хөдөлгөнө үү.

9. Амжилтын дараах хөгжлийн санаанууд

Үндсэн робот ажиллаж эхэлмэгц та үүнийг илүү сонирхолтой зүйл болгон сайжруулж болно:

– Робот хамгийн сайн замыг сонгохын тулд хэт авианы мэдрэгчийг хөдөлгөхийн тулд серво нэмж байна.
– Гар утаснаас удирдах боломжтой тул Bluetooth удирдлага (HC-05) нэмсэн.
– Шугамын мэдрэгч ашиглан шугам дагагч робот хийх.
– Илүү жигд хөдөлгөөн хийхийн тулд PWM хурдыг тохируулна уу.
– Саад бэрхшээлийг илрүүлэх үед дохиолол эсвэл LED гэрэл индикатор болгон нэмнэ үү.

Дүгнэлт

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

Хэрэв та хүсвэл би таны сонгосон зүүний дагуу илүү нарийвчилсан холболтын диаграммыг гаргахад туслах эсвэл робот зүүн/баруун санамсаргүй байдлаар эргэж, илүү "ухаалаг" болохын тулд кодыг тохируулах боломжтой.

Сэтгэгдэл үлдээх