İçindekiler:

Evde Kendin Yap Arduino Engelden Kaçınan Robot Nasıl Yapılır: 4 Adım
Evde Kendin Yap Arduino Engelden Kaçınan Robot Nasıl Yapılır: 4 Adım

Video: Evde Kendin Yap Arduino Engelden Kaçınan Robot Nasıl Yapılır: 4 Adım

Video: Evde Kendin Yap Arduino Engelden Kaçınan Robot Nasıl Yapılır: 4 Adım
Video: YAPAY ZEKAYA Robot Kodlatmak 2024, Temmuz
Anonim
Image
Image

Merhaba Arkadaşlar, Bu Eğitilebilir Kitapta engelden kaçan bir robot yapacaksınız. Bu Eğitilebilirlik, yakındaki nesneleri algılayabilen ve bu nesnelerden kaçınmak için yönlerini değiştirebilen ultrasonik sensörlü bir robot oluşturmayı içerir. Ultrasonik sensör, yolundaki nesneleri aramak için sürekli olarak sola ve sağa tarayan bir servo motora bağlanacaktır.

O halde lafı fazla uzatmadan başlayalım!

Adım 1: Bu Projede İhtiyacınız Olan Şeyler:

Bu Projede İhtiyacınız Olan Şeyler
Bu Projede İhtiyacınız Olan Şeyler
Bu Projede İhtiyacınız Olan Şeyler
Bu Projede İhtiyacınız Olan Şeyler

İşte Parça Listesi:

1) Arduino Uno

2) Motor Sürücü Kalkanı

3) Dişli Motor, Şasi ve tekerlek takımı

4) Servo Motor

5) Ultrasonik Sensör

6) Li-ion Pil (2x)

7) Pil Tutucu

8) Erkek ve Dişi Jumper teli

9) Havya

10) şarj cihazı

Adım 2: Devre Şeması

Devre şeması
Devre şeması

Çalışma:

Proje üzerinde çalışmaya başlamadan önce ultrasonik sensörün nasıl çalıştığını anlamak önemlidir. Ultrasonik sensörün çalışmasının arkasındaki temel prensip aşağıdaki gibidir:

Harici bir tetikleme sinyali kullanarak, ultrasonik sensör üzerindeki Trig pini en az 10µs için lojik yüksek yapılır. Verici modülünden bir sonik patlama gönderilir. Bu, 40KHz'lik 8 darbeden oluşur.

Bir yüzeye çarptıktan sonra sinyaller geri döner ve alıcı bu sinyali algılar. Yankı pimi, sinyalin gönderildiği ve alındığı andan itibaren yüksektir. Bu süre, uygun hesaplamalar kullanılarak mesafeye dönüştürülebilir.

Bu projenin amacı, ultrasonik sensör ve Arduino kullanarak engellerden kaçınan bir robot gerçekleştirmektir. Tüm bağlantılar devre şemasına göre yapılır. Projenin işleyişi aşağıda açıklanmıştır.

Robot çalıştırıldığında, robotun her iki motoru da normal şekilde çalışacak ve robot ileriye doğru hareket edecektir. Bu süre boyunca ultrasonik sensör robot ile yansıtıcı yüzey arasındaki mesafeyi sürekli olarak hesaplar.

Bu bilgi Arduino tarafından işlenir. Robot ile engel arasındaki mesafe 15 cm'den az ise Robot durur ve Servo Motor ve Ultrasonik Sensör kullanarak yeni mesafe için sol ve sağ yönlerde tarama yapar. Sol tarafa olan mesafe sağ tarafa göre daha fazla ise, robot sola dönüş için hazırlanacaktır. Ama önce biraz geriliyor ve ardından Sol Tekerlek Motorunu ters yönde çalıştırıyor.

Benzer şekilde, sağ mesafe sol mesafeden fazlaysa, Robot sağa dönüş hazırlar. Bu süreç sonsuza kadar devam eder ve robot hiçbir engele çarpmadan hareketine devam eder.

Adım 3: Arduino UNO'yu Programlama

#Dahil etmek

#Dahil etmek

#Dahil etmek

# TRIG_PIN A1'i tanımla

# ECHO_PIN A0 tanımla

# MAX_DISTANCE 200 tanımla

# MAX_SPEED 255 tanımla // DC motorların hızını ayarlar

# MAX_SPEED_OFFSET 20 tanımla

NewPing sonar(TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotor motor3(3, MOTOR34_1KHZ);

AF_DCMotor motor4(4, MOTOR34_1KHZ); Servo myservo;

boolean gidiyorForward = false;

int mesafe = 100; int hız Kümesi = 0;

geçersiz kurulum() {

myservo.attach(10);

myservo.write(115); gecikme(2000); mesafe = readPing(); gecikme(100); mesafe = readPing(); gecikme(100); mesafe = readPing(); gecikme(100); mesafe = readPing(); gecikme(100); }

boşluk döngüsü () {

int mesafeR = 0; int mesafeL = 0; gecikme(40);

if (mesafe <= 15) { moveStop(); gecikme(100); Geriye doğru hareket(); gecikme(300); hareketStop(); gecikme(200); mesafeR = bakSağ(); gecikme(200); mesafeL = bakSol(); gecikme(200);

if (mesafeR >= mesafeL) {

Sağa dönün(); hareketStop(); } başka { turnLeft(); hareketStop(); } } başka { moveForward(); } mesafe = readPing(); }

int görünümSağ() {

myservo.write(50); gecikme(500); int mesafe = readPing(); gecikme(100); myservo.write(115); dönüş mesafesi; }

int görünümSol() {

myservo.write(170); gecikme(500); int mesafe = readPing(); gecikme(100); myservo.write(115); dönüş mesafesi; gecikme(100); }

int readPing() {

gecikme(70); int cm = sonar.ping_cm(); if (cm == 0) { cm = 250; } cm'yi döndür; }

geçersiz moveStop() {

motor3.run(ÇALIŞTIR);

motor4.run(ÇALIŞTIR); }

geçersiz moveForward() {

if (!gider) {

giderİleri = doğru;

motor3.run(İLERİ);

motor4.run(İLERİ); for (speedSet = 0; speedSet < MAX_SPEED; speedSet += 2) // pillerin çok hızlı dolmasını önlemek için hızı yavaşça artırın {

motor3.setSpeed(speedSet);

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

void moveBackward() {

giderİleri = yanlış;

motor3.run(GERİ);

motor4.run(GERİ); for (speedSet = 0; speedSet < MAX_SPEED; speedSet += 2) // pillerin çok hızlı dolmasını önlemek için hızı yavaşça artırın {

motor3.setSpeed(speedSet);

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

geçersiz dönüşRight() {

motor3.run(İLERİ);

motor4.run(GERİ); gecikme(500);

motor3.run(İLERİ);

motor4.run(İLERİ); }

geçersiz dönüşSol() {

motor3.run(GERİ);

motor4.run(İLERİ); gecikme(500);

motor3.run(İLERİ);

motor4.run(İLERİ); }

1) Arduino Masaüstü IDE'sini İndirin ve Kurun

  • pencereler -
  • Mac OS X -
  • Linux -

2) NewPing kitaplığı (Ultrasonik sensör fonksiyon kitaplığı) dosyasını indirip Arduino kitaplıkları klasörüne yapıştırın.

  1. Aşağıdaki NewPing.rar dosyasını indirin
  2. Bunu yola çıkarın - C:\Arduino\libraries

3) Kodu bir USB kablosuyla Arduino kartına yükleyin

Kodu İndirin:

Adım 4: Harika

Artık robotunuz herhangi bir engelden kaçınmaya hazır…

sorularınız varsa cevaplamaktan mutluluk duyarım

Emailme: [email protected]

Web sitesi:

YouTube Kanalıma abone olun:

Instagram:

Facebook:

Teşekkürler:)

Önerilen: