Bir Robot Kullanarak Yemekleri Mutfak Rafınızın Etrafında Nasıl Taşıyabilirsiniz?
Mutfağınızın çekiciliğini ve işlevselliğini önemli ölçüde artırmanın bir yolunu arıyorsanız, oradaki insan çabasını en aza indirmeyi düşünün. Mutfakta bulunacak ve kirli eşyaları lavaboya doğru taşıyacak ve orada duracak bir yerli robot yapılarak insan çabası en aza indirilebilir. Kişi kapları robottan indirdiğinde geri dönecek ve daha fazlasını getirecektir. Bazen büyük mutfaklarda çamaşır lavabosu dolaplara çok yakın olmadığından robot bulaşıkları rafın bir yerinden diğerine götürür. Siyah bant kullanılarak rafta robot için bir yol açılacaktır. Robot, yolu tespit etmek için iki kızılötesi yakınlık sensörü kullanacak ve sensörlerden alınan girişe göre, Arduino motorları bir motor sürücüsü yardımıyla hareket etmeye yönlendirecektir.
Yerli Robot Yaparken Gerekli Tüm Çevre Birimleri Nasıl Bağlanır?
Şimdi, gerekli bileşenleri toplamalı ve robotu yapmaya başlamalıyız.
Adım 1: Kullanılan Bileşenler
Adım 2: Bileşenlerin İncelenmesi
Bileşenlerin bir listesini zaten yaptığımız için, bir adım öne geçelim ve her bir bileşenin çalışmasıyla ilgili kısa bir çalışmadan geçelim.
Arduino UNO bir mikroçip ATMega 328P'den oluşan ve Arduino.cc tarafından geliştirilmiş bir mikrodenetleyici kartıdır. Bu kart, diğer genişleme kartları veya devreleri ile arayüzlenebilen bir dizi dijital ve analog veri pinine sahiptir. Bu kartta 14 Dijital pin, 6 Analog pin bulunur ve B tipi USB kablosu aracılığıyla Arduino IDE (Entegre Geliştirme Ortamı) ile programlanabilir. Güç için 5V gerektirir AÇIK ve bir C Koduçalıştırmak için.
L298N Motor Sürücüsü, DC Motorları çalıştırmak için kullanılır. L298N, aynı anda iki DC motorun hız ve yön kontrolüne izin veren çift H-Köprü motor sürücüsüdür. Modül, tepe akımı 2A'ya kadar olan 5 ile 35V arasında voltajlara sahip DC motorları sürebilir. Motorların VCC terminalinde kullanılan gerilime bağlıdır. IC'nin düzgün çalışması için 5V'luk bir güç kaynağına bağlamamız gerektiğinden projemizde 5V pin giriş olarak kullanılacaktır. DC motorlar bağlı olarak L298N motor sürücüsünün devre şeması L298N motor sürücüsünün mekanizmasını anlamak için aşağıda gösterilmiştir. Gösteri için girdi, Mantık DurumuIR sensörleri yerine.
Adım 3: Blok Şemasını ve Çalışma Prensibini Anlamak
Öncelikle blok diyagramdan geçeceğiz, çalışma prensibini anlayacağız ve ardından donanım bileşenlerini monte etmeye doğru ilerleyeceğiz.
Kullanacağımız sensörler dijitaldir ve çıkışları 0 veya 1 olarak verebilirler. Satın almış olduğumuz bu sensörler, 1 beyaz yüzeylerde ve 0 siyah yüzeylerde. Satın aldığımız sensörler rastgele değerler veriyor, bazen veriyorlar 0 beyaz yüzeylerde ve 1 siyah yüzeylerde. Bu robotta beş sensör kullanacağız Kodda beş sensör için dört koşul vardır.
- Hat Üzerinde İlerlemek: Orta sensör siyah yüzeyde ve sensörlerin geri kalanı beyaz yüzeyde olduğunda, ileri durum yürütülür ve robot düz ileri hareket eder. Başlarsak Sensör1 ve kadar ilerle Sensör5, sensörlerin her birinin sırasıyla vereceği değer (1 1 0 1 1).
- Keskin Sağa Dönüş:Ne zaman Sensör 1 ve Sensör 2 beyaz yüzeyde ve sensörlerin geri kalanı siyah yüzeyde, keskin sağa dönüş koşulu yürütülecek ve robot keskin sağa dönecektir. Başlarsak Sensör1 ve kadar ilerle Sensör5, sensörlerin her birinin sırasıyla vereceği değer (1 1 0 0 0).
- Keskin Sola Dönüş:Ne zaman Sensör 4 ve Sensör 5 beyaz yüzeyde ve sensörlerin geri kalanı siyah yüzeyde, keskin sola dönüş koşulu yürütülecek ve robot keskin sola dönecektir. Başlarsak Sensör1 ve kadar ilerle Sensör5, sensörlerin her birinin sırasıyla vereceği değer (0 0 0 1 1).
- Dur: Beş sensörün tümü siyah yüzeyde olduğunda robot duracak ve motorlar dönecektir. KAPALI. Beş siyah yüzeyli bu nokta lavabonun yanında olacak, böylece bulaşık makinesi tabakları robottan yıkamak için boşaltabilecektir.
Siyah bant kullanarak mutfak rafına bir yol yapacağız ve bu yol lavabonun yanında sona erecek, böylece robot lavabonun yanında duracak ve bulaşık makinesi tabakları indirecek ve ardından robot yola doğru hareket edecek ve mutfak eşyaları arayacaktır. tekrar.
Adım 4: Arduino'ya Başlarken
Daha önce Arduino IDE'ye aşina değilseniz endişelenmeyin çünkü aşağıda Arduino IDE'yi kullanarak mikrodenetleyici kartında kod yazma işleminin net adımlarını görebilirsiniz. Arduino IDE'nin son sürümünü buradan indirebilir ve aşağıdaki adımları takip edebilirsiniz:
- Arduino kartı PC'nize bağlandığında, "Kontrol paneli" ni açın ve "Donanım ve Ses" e tıklayın. Ardından "Aygıtlar ve Yazıcılar" a tıklayın. Arduino kartınızın bağlı olduğu bağlantı noktasının adını bulun. Benim durumumda "COM14" ama sizin PC'nizde farklı olabilir.
- Şimdi Arduino IDE'yi açın. Araçlar'dan Arduino kartını şu şekilde ayarlayın: Arduino / Genuino UNO.
- Aynı Araç menüsünden, kontrol panelinde gördüğünüz bağlantı noktası numarasını ayarlayın.
- Aşağıda ekli kodu indirin ve IDE'nize kopyalayın. Kodu yüklemek için yükle düğmesine tıklayın.
Kodu buradan indirebilirsiniz
Adım 5: Kodu Anlama
Kod çok basit. Aşağıda kısaca açıklanmıştır:
- Kodun başlangıcında sensör pimleri başlatılır ve bununla birlikte Motor Sürücüsü L298N için pimler de başlatılır.
int enable1pin = 10; // Analog Giriş İçin PWM Pinini Başlatma Motor 1 için int motor1pin1 = 2; // Motor 1 için Pozitif Pin Başlatılıyor int motor1pin2 = 3; // Motor 1 İçin Negatif Pin Başlatılıyor int enable2pin = 11; // Analog Giriş İçin PWM Pinini Başlatma Motor 2 için int motor2pin1 = 4; // Motor 2 için Pozitif Pin Başlatılıyor int motor2pin2 = 5; // Motor 2 İçin Negatif Pin Başlatılıyor int S1 = 12; // Sensör 1 için Pin 12 başlatılıyor int S2 = 9; // Sensör 2 için Pin 9 başlatılıyor int S3 = 8; // Sensör 3 için Pin 8 başlatılıyor int S4 = 7; // Sensör 4 için Pin 7 başlatılıyor int S5 = 6; // Sensör 5 için Pin 6'yı Başlatma
- geçersiz kurulum ()pinleri INPUT veya OUTPUT olarak ayarlamak için kullanılan bir işlevdir. Ayrıca Arduino'nun baud hızını da ayarlar. Baud hızı, mikro denetleyici kartının takılı diğer bileşenlerle iletişim kurduğu hızdır.
{pinMode (enable1pin, OUTPUT); // Motor 1 pinMode için PWM'nin etkinleştirilmesi (enable2pin, OUTPUT); // Motor 2 pinMode (motor1pin1, OUTPUT) için PWM'nin etkinleştirilmesi; // motor1 pin1'in çıkış pinMode olarak ayarlanması (motor1pin2, OUTPUT); // motor1 pin2'nin çıkış pinMode olarak ayarlanması (motor2pin1, OUTPUT); // motor2 pin1'in çıkış pinMode olarak ayarlanması (motor2pin2, OUTPUT); // motor2 pin2'nin çıkış pinMode (S1, INPUT) olarak ayarlanması; // sensor1'in input pinMode (S2, INPUT) olarak ayarlanması; // sensor2'yi input pinMode (S3, INPUT) olarak ayarlama; // sensor3'ü input pinMode (S4, INPUT) olarak ayarlama; // sensor4'ü input pinMode (S5, INPUT) olarak ayarlama; // sensor5 girdi Serial.begin (9600) olarak ayarlanıyor; // Baud hızının ayarlanması}
- geçersiz döngü () bir döngüde tekrar tekrar çalışan bir işlevdir. Bu döngüde, Arduino UNO'ya hangi işlemlerin yapılacağına dair talimatlar veriyoruz. Motorların tam hızı 255'tir ve her iki motorun hızı farklıdır. Yani robotu ilerletmek, sağa dönmek vb. İstiyorsak motorların hızını ayarlamamız gerekiyor. Kodda analog pinler kullandık çünkü iki motorun hızını farklı koşullarda değiştirmek istiyoruz. Motorlarınızın hızını kendiniz ayarlayabilirsiniz.
void loop () {if (! (digitalRead (S1)) &&! (digitalRead (S2)) && (digitalRead (S3)) &&! (digitalRead (S4)) &&! (digitalRead (S5))) // İleri {analogWrite (enable1pin, 61) satırı; // Motor 1 hızlı analogWrite (enable2pin, 63); // Motor 2 hızlı digitalWrite (motor1pin1, HIGH); // Motor 1 pin 1, High digitalWrite (motor1pin2, LOW) olarak ayarlandı; // Motor 1 pin 2, Low digitalWrite (motor2pin1, HIGH) olarak ayarlandı; // Motor 2 pin 1, High digitalWrite (motor2pin2, LOW) olarak ayarlandı; // Motor 2 pim 2 Düşük olarak ayarlandı} if (! (DigitalRead (S1)) &&! (DigitalRead (S2)) && (digitalRead (S3)) && (digitalRead (S4)) && (digitalRead (S5))) / / Keskin Sağa Dönüş {analogWrite (enable1pin, 60); // Motor 1 hızlı analogWrite (enable2pin, 80); // Motor 2 hızlı digitalWrite (motor1pin1, HIGH); // Motor 1 pin 1, High digitalWrite (motor1pin2, LOW) olarak ayarlandı; // Motor 1 pin 2, Low digitalWrite (motor2pin1, LOW) olarak ayarlanmış; // Motor 2 pin 1, Low digitalWrite (motor2pin2, LOW) olarak ayarlandı; // Motor 2 pin 2 Düşük olarak ayarlandı} if ((digitalRead (S1)) && (digitalRead (S2)) && (digitalRead (S3)) &&! (DigitalRead (S4)) &&! (DigitalRead (S5))) / / Keskin Sola Dönüş {analogWrite (enable1pin, 80); // Motor 1 hızlı analogWrite (enable2pin, 65); // Motor 2 hızlı digitalWrite (motor1pin1, LOW); // Motor 1 pin 1, Low digitalWrite (motor1pin2, LOW) olarak ayarlandı; // Motor 1 pin 2, Low digitalWrite (motor2pin1, HIGH) olarak ayarlandı; // Motor 2 pin 1, High digitalWrite (motor2pin2, LOW) olarak ayarlandı; // Motor 2 pin 2 Düşük olarak ayarlandı} if ((digitalRead (S1)) && (digitalRead (S2)) && (digitalRead (S3)) && (digitalRead (S4)) && (digitalRead (S5))) // stop {analogWrite (enable1pin, 0); // Motor 1 hız analogWrite (enable2pin, 0); // Motor 2 hızlı digitalWrite (motor1pin1, LOW); // Motor 1 pin 1, Low digitalWrite (motor1pin2, LOW) olarak ayarlandı; // Motor 1 pin 2, Low digitalWrite (motor2pin1, LOW) olarak ayarlanmış; // Motor 2 pin 1, Low digitalWrite (motor2pin2, LOW) olarak ayarlandı; // Motor 2 pin 2 Düşük olarak ayarlandı}}
Başvurular
- Endüstriyel Uygulamalar: Bu robotlar, geleneksel konveyör bantlarının yerini alan endüstrilerde otomatik ekipman taşıyıcıları olarak kullanılabilir.
- Yurtiçi uygulamalar: Bunlar aynı zamanda evlerde zemin temizliği, mutfak işleri gibi evsel amaçlarla da kullanılabilir.
- Rehberlik uygulamaları: Bu robotlar, yol rehberliği sağlamak için alışveriş merkezleri, yemek alanları, müzeler vb. Gibi halka açık yerlerde kullanılabilir.