Mundarija:

Uyda robotdan qochadigan Arduino to'sig'ini qanday qilish kerak: 4 qadam
Uyda robotdan qochadigan Arduino to'sig'ini qanday qilish kerak: 4 qadam

Video: Uyda robotdan qochadigan Arduino to'sig'ini qanday qilish kerak: 4 qadam

Video: Uyda robotdan qochadigan Arduino to'sig'ini qanday qilish kerak: 4 qadam
Video: Уй шароитида робот ясаш || Uy sharoitida robot yasash 2024, Dekabr
Anonim
Image
Image

Salom bolalar, bu yo'riqnomada siz robotni chetlab o'tishga to'sqinlik qilasiz. Bu ko'rsatma ultratovushli sensorli robotni qurishni o'z ichiga oladi, u yaqin atrofdagi narsalarni aniqlay oladi va bu ob'ektlardan qochish uchun yo'nalishini o'zgartiradi. Ultrasonik sensori servo dvigatelga ulanadi, u doimo chap va o'ng tomonda skanerdan o'tib, o'z yo'lidagi narsalarni qidiradi.

Xullas, ko'p gapirmasdan, boshlaylik!

1 -qadam: Ushbu loyihada sizga nima kerak:

Ushbu loyihada sizga kerak bo'lgan narsalar
Ushbu loyihada sizga kerak bo'lgan narsalar
Ushbu loyihada sizga kerak bo'lgan narsalar
Ushbu loyihada sizga kerak bo'lgan narsalar

Mana bu qismlar ro'yxati:

1) Arduino Uno

2) Dvigatel haydovchisi qalqoni

3) Tishli dvigatel, ramka va g'ildiraklar to'plami

4) Servo dvigatel

5) Ultrasonik sensor

6) Li-ion batareyasi (2x)

7) Batareya ushlagichi

8) Erkak va ayol o'tish kabeli

9) lehimlantiruvchi temir

10) Zaryadlovchi

2 -qadam: O'chirish diagrammasi

O'chirish diagrammasi
O'chirish diagrammasi

Ishlash:

Loyiha ustida ishlashdan oldin, ultratovush sensori qanday ishlashini tushunish kerak. Ultrasonik sensorning ishlashining asosiy printsipi quyidagicha:

Tashqi tetik signalidan foydalanib, ultratovush sensori ustidagi Trig pimi kamida 10 miks balandlikdagi mantiqqa ega. Transmitter modulidan ovozli signal yuboriladi. Bu 40 kHz chastotali 8 ta impulsdan iborat.

Sirtga urilgandan so'ng signallar orqaga qaytadi va qabul qiluvchi bu signalni aniqlaydi. Signalni yuborish va qabul qilish paytidan boshlab Echo pin baland. Bu vaqtni tegishli hisoblar yordamida masofaga aylantirish mumkin.

Loyihaning maqsadi ultratovush sensori va Arduino yordamida robotning oldini oladigan to'siqni amalga oshirishdir. Barcha ulanishlar sxemaga muvofiq amalga oshiriladi. Loyihaning ishlashi quyida tasvirlangan.

Robot yoqilganda, ikkala robot ham normal ishlaydi va robot oldinga siljiydi. Bu vaqt davomida ultratovush sensori robot va aks ettiruvchi sirt orasidagi masofani uzluksiz hisoblab chiqadi.

Bu ma'lumotlar Arduino tomonidan qayta ishlanadi. Agar robot va to'siq orasidagi masofa 15 sm dan kam bo'lsa, robot to'xtab qoladi va Servo Dvigatel va Ultrasonik Sensor yordamida yangi masofani chap va o'ng yo'nalishda tekshiradi. Agar chap tomonga masofa o'ng tomonga qaraganda ko'proq bo'lsa, robot chapga burilishga tayyorlanadi. Birinchidan, u biroz zaxiralanadi va keyin chap g'ildirak motorini teskari yo'nalishda faollashtiradi.

Xuddi shunday, agar o'ng masofa chap masofadan katta bo'lsa, Robot o'ngga burilishni tayyorlaydi. Bu jarayon abadiy davom etadi va robot hech qanday to'siqsiz harakatlanishda davom etadi.

3 -qadam: Arduino UNO dasturlash

#qo'shing

#qo'shing

#qo'shing

# TRIG_PIN A1 ni aniqlang

# ECHO_PIN A0 ni aniqlang

# MAX_DISTANCE 200 ni aniqlang

# MAX_SPEED 255 ni aniqlang // shahar motorlarining tezligini belgilaydi

# MAX_SPEED_OFFSET 20 ni aniqlang

NewPing sonar (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotor motor3 (3, MOTOR34_1KHZ);

AF_DCMotor dvigateli4 (4, MOTOR34_1KHZ); Xizmat ko'rsatish xizmati;

boolean goForward = false;

int masofa = 100; int speedSet = 0;

bo'sh o'rnatish () {

myservo.attach (10);

myservo.write (115); kechikish (2000); masofa = readPing (); kechikish (100); masofa = readPing (); kechikish (100); masofa = readPing (); kechikish (100); masofa = readPing (); kechikish (100); }

void loop () {

int masofaR = 0; int masofaL = 0; kechikish (40);

if (masofa <= 15) {moveStop (); kechikish (100); moveBackward (); kechikish (300); moveStop (); kechikish (200); masofaR = qarashRight (); kechikish (200); masofaL = qarashLeft (); kechikish (200);

agar (masofaR> = masofaL) {

O'ng tomonga buriling(); moveStop (); } boshqa {turnLeft (); moveStop (); }} boshqa {moveForward (); } masofa = readPing (); }

int lookRight () {

myservo.write (50); kechikish (500); int masofasi = readPing (); kechikish (100); myservo.write (115); qaytish masofasi; }

int lookLeft () {

myservo.write (170); kechikish (500); int masofasi = readPing (); kechikish (100); myservo.write (115); qaytish masofasi; kechikish (100); }

int readPing () {

kechikish (70); int sm = sonar.ping_cm (); agar (sm == 0) {sm = 250; } qaytarish sm; }

void moveStop () {

motor3. ishga tushirish (RELEASE);

motor4. ishga tushirish (RELEASE); }

void moveForward () {

agar (! oldinga ketadi) {

goForward = rost;

motor3. ishga tushirish (OLDINGA);

motor4.run (oldinga); uchun (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // batareyalarni tez yuklamaslik uchun tezlikni asta -sekin oshiring {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); kechikish (5); }}}

bekor harakatBackward () {

goForward = false;

motor3. ishga tushirish (orqaga);

motor4. ishga tushirish (orqaga); uchun (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // batareyalarni tez yuklamaslik uchun tezlikni asta -sekin oshiring {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); kechikish (5); }}

void turnRight () {

motor3. ishga tushirish (OLDINGA);

motor4. ishga tushirish (orqaga); kechikish (500);

motor3. ishga tushirish (OLDINGA);

motor4.run (oldinga); }

void turnLeft () {

motor3. ishga tushirish (orqaga);

motor4.run (oldinga); kechikish (500);

motor3. ishga tushirish (OLDINGA);

motor4.run (oldinga); }

1) Arduino Desktop IDE -ni yuklab oling va o'rnating

  • derazalar -
  • Mac OS X -
  • Linux -

2) NewPing kutubxonasi (Ultrasonik sensorli funktsiyalar kutubxonasi) faylini Arduino kutubxonalari jildiga yuklab olib joylashtiring.

  1. Quyida NewPing.rar -ni yuklab oling
  2. Uni yo'lga chiqarib oling - C: / Arduino / library

3) Kodni USB kabeli orqali Arduino kartasiga yuklang

Yuklab olish kodi:

4 -qadam: Ajoyib

Endi sizning robotingiz har qanday to'siqdan qochishga tayyor …

Sizni qiziqtirgan savollarga javob berishdan xursand bo'lardim

Elektron pochta: [email protected]

Veb -sayt:

YouTube kanalimga obuna bo'ling:

Instagram:

Facebook:

Rahmat:)

Tavsiya: