Mündəricat:

Evdə Arduino maneə törətməyən bir robotu necə düzəltmək olar: 4 addım
Evdə Arduino maneə törətməyən bir robotu necə düzəltmək olar: 4 addım

Video: Evdə Arduino maneə törətməyən bir robotu necə düzəltmək olar: 4 addım

Video: Evdə Arduino maneə törətməyən bir robotu necə düzəltmək olar: 4 addım
Video: Как сделать беспроводную рацию с помощью Arduino в домашних условиях / Диапазон 1,5 км 2024, Iyul
Anonim
Image
Image

Salam Uşaqlar, Bu Təlimat kitabında robotdan qaçaraq bir maneə yaradacaqsınız. Bu Təlimat, yaxınlıqdakı obyektləri aşkar edə bilən və bu obyektlərin qarşısını almaq üçün istiqamətlərini dəyişə bilən ultrasəs sensoru olan bir robot qurmağı nəzərdə tutur. Ultrasonik sensor, solunda və sağında mütəmadi olaraq yolunda olan obyektləri axtaran bir servo mühərrikə bağlanacaq.

Beləliklə, heç bir uzatmadan, başlayaq!

Addım 1: Bu Layihədə Nə Lazımdır:

Bu layihədə sizə lazım olanlar
Bu layihədə sizə lazım olanlar
Bu layihədə sizə lazım olanlar
Bu layihədə sizə lazım olanlar

İşdə Parça siyahısı:

1) Arduino Uno

2) Motor Sürücü Qalxanı

3) Ötürücü Motor, Çərçivə və təkərlər dəsti

4) Servo motor

5) Ultrasonik Sensor

6) Li-ion Batareya (2x)

7) Batareya tutacağı

8) Kişi və Qadın Jumper teli

9) Havya

10) şarj cihazı

Addım 2: Dövrə Şeması

Dövrə diaqramı
Dövrə diaqramı

İş:

Layihə üzərində işləməyə başlamazdan əvvəl, ultrasəs sensorunun necə işlədiyini anlamaq vacibdir. Ultrasonik sensorun işləmə prinsipi aşağıdakı kimidir:

Xarici bir tetik siqnalı istifadə edərək ultrasəs sensoru üzərindəki Trig pin, ən az 10µs yüksək məntiqə malikdir. Verici modulundan sonic partlaması göndərilir. Bu 40KHz 8 impulsdan ibarətdir.

Siqnallar bir səthə çırpıldıqdan sonra geri qayıdır və alıcı bu siqnalı algılar. Echo pin, siqnalın göndərildiyi və alındığı vaxtdan yüksəkdir. Müvafiq hesablamalarla bu vaxt məsafəyə çevrilə bilər.

Bu layihənin məqsədi, ultrasəs sensoru və Arduino istifadə edərək robotun qarşısını alan maneəni həyata keçirməkdir. Bütün əlaqələr dövrə diaqramına uyğun olaraq aparılır. Layihənin işi aşağıda izah olunur.

Robot işə salındıqda həm robotun mühərrikləri normal işləyəcək, həm də robot irəli gedir. Bu müddət ərzində ultrasəs sensoru robotla əks etdirən səth arasındakı məsafəni davamlı olaraq hesablayır.

Bu məlumatlar Arduino tərəfindən işlənir. Robotla maneə arasındakı məsafə 15 sm -dən az olarsa, Robot Servo Motor və Ultrasonik Sensor istifadə edərək yeni məsafə üçün sol və sağ istiqamətdə dayanır və tarar. Sol tərəfə olan məsafə sağ tərəfdən daha çox olarsa, robot sola dönməyə hazırlaşacaq. Ancaq əvvəlcə bir az geri çəkilir və sonra Sol Təkərli Motoru əks istiqamətdə işə salır.

Eynilə, əgər sağ məsafə sol məsafədən çox olarsa, Robot sağ fırlanmağa hazırlaşır. Bu proses sonsuza qədər davam edir və robot heç bir maneə vurmadan hərəkətə davam edir.

Addım 3: Arduino UNO proqramlaşdırılması

#daxil edin

#daxil edin

#daxil edin

# TRIG_PIN A1 təyin edin

# ECHO_PIN A0 təyin edin

# MAX_DISTANCE 200 təyin edin

# define MAX_SPEED 255 // DC mühərriklərinin sürətini təyin edir

# MAX_SPEED_OFFSET müəyyən 20

NewPing sonar (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotor motor3 (3, MOTOR34_1KHZ);

AF_DCMotor motor4 (4, MOTOR34_1KHZ); Servo xidməti;

boolean goForward = false;

int məsafəsi = 100; int speedSet = 0;

boş quraşdırma () {

myservo.attach (10);

myservo.write (115); gecikmə (2000); məsafə = readPing (); gecikmə (100); məsafə = readPing (); gecikmə (100); məsafə = readPing (); gecikmə (100); məsafə = readPing (); gecikmə (100); }

boşluq döngəsi () {

int məsafəsiR = 0; int məsafəsiL = 0; gecikmə (40);

if (məsafə <= 15) {moveStop (); gecikmə (100); moveBackward (); gecikmə (300); moveStop (); gecikmə (200); məsafəR = baxmaqRight (); gecikmə (200); məsafəL = baxmaqLeft (); gecikmə (200);

əgər (məsafəR> = məsafəL) {

sağa dönün(); moveStop (); } başqa {turnLeft (); moveStop (); }} başqa {moveForward (); } məsafə = readPing (); }

int lookRight () {

myservo.write (50); gecikmə (500); int məsafəsi = readPing (); gecikmə (100); myservo.write (115); dönüş məsafəsi; }

int lookLeft () {

myservo.write (170); gecikmə (500); int məsafəsi = readPing (); gecikmə (100); myservo.write (115); dönüş məsafəsi; gecikmə (100); }

int readPing () {

gecikmə (70); int cm = sonar.ping_cm (); əgər (cm == 0) {sm = 250; } sm qaytar; }

void moveStop () {

motor3.run (buraxın);

motor4.run (buraxın); }

void moveForward () {

əgər (! irəli gedərsə) {

goForward = doğru;

motor3.qoşun (İLƏ);

motor4.run (İLƏ); üçün (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // batareyaları çox tez yükləməmək üçün sürəti yavaş -yavaş artırın {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); gecikmə (5); }}}

void moveBackward () {

goForward = yanlış;

motor3.run (arxaya);

motor4.run (arxaya); üçün (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // batareyaları çox tez yükləməmək üçün sürəti yavaş -yavaş artırın {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); gecikmə (5); }}

void turnRight () {

motor3.qoşun (İLƏ);

motor4.run (arxaya); gecikmə (500);

motor3.qoşun (İLƏ);

motor4.run (İLƏ); }

void turnLeft () {

motor3.run (arxaya);

motor4.run (İLƏ); gecikmə (500);

motor3.qoşun (İLƏ);

motor4.run (İLƏ); }

1) Arduino Desktop IDE -ni yükləyin və quraşdırın

  • pəncərələr -
  • Mac OS X -
  • Linux -

2) NewPing kitabxana (Ultrasonik sensor funksiyası kitabxanası) faylını Arduino kitabxanaları qovluğuna yükləyib yapışdırın.

  1. Aşağıdakı NewPing.rar yükləyin
  2. Yola çıxarın - C: / Arduino / libraries

3) Kodu USB kabel vasitəsilə Arduino lövhəsinə yükləyin

Yükləmə Kodu:

Addım 4: Əla

İndi robotunuz hər hansı bir maneənin qarşısını almağa hazırdır …

Hər hansı bir sualınıza cavab verməkdən məmnun olaram

E -poçt: [email protected]

Veb sayt:

YouTube kanalıma abunə olun:

İnstagram:

Facebook:

Çox sağ ol:)

Tövsiyə: