- Gerekli Bileşenler
- Renk Sıralama Robotik Kol için şasi nasıl yapılır
- TCS3200 Renk Sensörü
- Arduino Renk Sıralayıcısı Devre Şeması
- Arduino Uno'nun renkli topları sıralamak için programlanması
Adından da anlaşılacağı gibi, renk sıralama basitçe nesneleri renklerine göre sınıflandırmaktır. Görerek kolayca yapılabilir ancak sıralanacak çok şey olduğunda ve tekrar eden bir görev olduğunda otomatik renk sıralama makineleri çok kullanışlıdır. Bu makineler, herhangi bir nesnenin rengini algılamak için renk sensörüne sahiptir ve renk servo motorunu algıladıktan sonra nesneyi yakalar ve ilgili kutuya koyar. Renk tanımlama, renk ayrımı ve renk sınıflandırmasının önemli olduğu farklı uygulama alanlarında kullanılabilirler. Uygulama alanlarından bazıları Tarım Endüstrisi (Renk bazında Tahıl Ayırma), Gıda Endüstrisi, Elmas ve Madencilik Endüstrisi, Geri Dönüşüm vb.
Renkleri algılamak için en popüler sensör TCS3200 renk sensörüdür. Daha önce herhangi bir rengin RGB bileşenini (Kırmızı, Yeşil, Mavi) elde etmek için Arduino ile TCS3200 sensörünü kullandık ve herhangi bir nesnenin rengini algılamak için Raspberry Pi ile arayüz oluşturduk.
İşte bu eğitimde bir renk sensörü TCS3200, bazı servo motorlar ve Arduino kartı kullanarak bir renk ayırma makinesi yapacağız. Bu eğitim , renkli topların sıralanmasını ve bunları ilgili renk kutusunda tutmayı içerecektir. Kutu sabit konumda olacak ve topun ilgili kutuda kalmasını sağlamak için sıralayıcı elini hareket ettirmek için servo motor kullanılacaktır.
Gerekli Bileşenler
- Arduino UNO
- TCS3200 Renk Sensörü
- Servo motorlar
- Süveter
- Breadboard
Renk Sıralama Robotik Kol için şasi nasıl yapılır
Şasi, kol, rulo, ped dahil komple kurulumu yapmak için 2 mm kalınlığında beyaz Sunboard kullandık. Kırtasiyelerde kolaylıkla bulunur. Sunboard Levhasını kesmek için kağıt kesici ve farklı parçaları birleştirmek için FlexKwik veya FeviKwik kullandık.
Aşağıda Renk sıralama Kolunu oluşturan bazı adımlar bulunmaktadır:
1) Sunboard Sheet'i alın.
2) Tüm kenarları şekilde gösterildiği gibi ölçek ve işaretleyici ile ölçtükten sonra güneş paneli örtüsünü parçalara ayırın.
3) Şimdi iki parça sunboard'u bir arada tutun ve parçaları birbirine yapıştırmak için üzerine bir damla FeviKwik dökün. Şekli takip ederek parçaları birleştirmeye devam edin.
4) Tüm parçaları bir araya getirdikten sonra, bu renk ayırma makinesi şuna benzeyecektir:
TCS3200 Renk Sensörü
TCS3200, doğru programlama ile herhangi bir sayıda rengi algılayabilen bir renk sensörüdür. TCS3200, RGB (Kırmızı Yeşil Mavi) dizileri içerir. Mikroskobik seviyede şekilde gösterildiği gibi, sensör üzerinde gözün içindeki kare kutular görülebilir. Bu kare kutular, RGB matris dizileridir. Bu kutuların her biri üç sensör içerir, Biri KIRMIZI ışık yoğunluğunu algılamak içindir, Biri YEŞİL ışık yoğunluğunu algılamak için ve sonuncusu MAVİ ışık yoğunluğunu algılamak içindir.
Bu üç dizideki sensör dizilerinin her biri, ihtiyaca göre ayrı ayrı seçilir. Bu nedenle programlanabilir sensör olarak bilinir. Modül, belirli rengi algılamak ve diğerlerini terk etmek için öne çıkarılabilir. Bu seçim amacı için filtreler içerir. Sensörün beyaz ışığı algıladığı 'filtresiz modu' adı verilen dördüncü bir mod vardır.
Arduino Renk Sıralayıcısı Devre Şeması
Bu Arduino Renk Sıralayıcısının devre şemasını yapmak oldukça kolaydır ve çok fazla bağlantı gerektirmez. Şematik aşağıda verilmiştir.
Bu, renk ayırma makinesinin kurulumunun arkasındaki devredir:
Arduino Uno'nun renkli topları sıralamak için programlanması
Arduino UNO'yu programlamak oldukça basittir ve renk sıralamasında yer alan adımları basitleştirmek için basit bir mantık gerektirir. Programın sonunda bir tanıtım videosu ile birlikte eksiksiz bir program verilmektedir.
Servo motor kullanıldığından, servo kitaplığı programın önemli bir parçasıdır. Burada iki servo motor kullanıyoruz. Birinci servo TCS3200 detektör pozisyonuna başlangıç konumundan renkli topları taşımak ve sonra top çökecektir sıralama konuma hareket eder. Ayıklama pozisyonuna geçtikten sonra, ikinci servo kolunu kullanarak topu istenen renk kovasına bırakacaktır. Sonunda verilen Videoda çalışmanın tamamına bakın.
İlk adım, tüm kitaplığın dahil edilmesi ve servo değişkenlerinin tanımlanması olacaktır.
#Dahil etmek
TCS3200 renk sensörü, renge karar vermek için yalnızca sensör pininden frekans okumaya ihtiyaç duyulduğundan kitaplık olmadan çalışabilir. Bu yüzden sadece TCS3200'ün pin numaralarını tanımlayın.
#define S0 4 #define S1 5 #define S2 7 #define S3 6 #define sensorOut 8 int frekans = 0; int renk = 0;
Renkli fotodiyotu yüksek veya düşük hale getireceği ve giriş olarak TCS3200'ün Çıkış pinini alacağı için seçme pinlerini çıktı olarak yapın. OUT pini frekans sağlayacaktır. Başlangıçta frekans ölçeklendirmesini% 20 olarak seçin.
pinMode (S0, ÇIKIŞ); pinMode (S1, ÇIKIŞ); pinMode (S2, OUTPUT); pinMode (S3, OUTPUT); pinMode (sensorOut, INPUT); digitalWrite (S0, DÜŞÜK); digitalWrite (S1, YÜKSEK);
Servo motorlar Arduino'nun 9 ve 10 numaralı pinlerine bağlanır. Başlatma servo renkli topları Pin 9 pikap bağlanır ve damla servo Pin10 bağlanmış olan renk göre renk topları düşecektir.
pickServo.attach (9); dropServo.attach (10);
Başlangıçta alma servo motoru, bu durumda 115 derece olan başlangıç konumuna ayarlanır. Farklı olabilir ve buna göre özelleştirilebilir. Motor, bir süre sonra detektör bölgesine hareket eder ve tespit için bekler.
pickServo.write (115); gecikme (600); for (int i = 115; i> 65; i--) { pickServo.write (i); gecikme (2); } gecikme (500);
TCS 3200 renk okur ve Out Pin gelen frekansını verir.
renk = detektörColor (); gecikme (1000);
Tespit edilen renge bağlı olarak, damla servo motoru belirli bir açıyla hareket eder ve renkli topu ilgili kutuya bırakır.
anahtar (renk) { durum 1: dropServo.write (50); kırmak; durum 2: dropServo.write (80); kırmak; durum 3: dropServo.write (110); kırmak; 4. durum: dropServo.write (140); kırmak; durum 5: dropServo.write (170); kırmak; durum 0: ara; } gecikme (500);
Servo motor, bir sonraki topun seçilmesi için başlangıç konumuna döner.
for (int i = 65; i> 29; i--) { pickServo.write (i); gecikme (2); } gecikme (300); for (int i = 29; i <115; i ++) { pickServo.write (i); gecikme (2); }
DetectColor () işlevi, frekansı ölçmek için kullanılır ve renk sonucunu çıkarmak için renk frekansını karşılaştırır. Sonuç, seri monitörde yazdırılır. Ardından, düşme servo motor açısını hareket ettirmek için durumların renk değerini döndürür.
int DetectionColor () {
S2 ve S3'e yazmak (DÜŞÜK, DÜŞÜK), kırmızı renk yoğunluğu için okumaları almak üzere kırmızı fotodiyotları etkinleştirir.
digitalWrite (S2, DÜŞÜK); digitalWrite (S3, DÜŞÜK); frekans = pulseIn (sensorOut, LOW); int R = frekans; Serial.print ("Kırmızı ="); Serial.print (frekans); // KIRMIZI renk frekansı yazdırma Seri.print (""); gecikme (50);
S2 ve S3'e yazmak (DÜŞÜK, YÜKSEK), mavi renk yoğunluğu okumalarını almak için mavi fotodiyotları etkinleştirir.
digitalWrite (S2, DÜŞÜK); digitalWrite (S3, YÜKSEK); frekans = pulseIn (sensorOut, LOW); int B = frekans; Serial.print ("Mavi ="); Seri baskı (frekans); Serial.println ("");
S2 ve S3'e yazmak (YÜKSEK, YÜKSEK), yeşil renk yoğunluğu için okumaları almak üzere yeşil fotodiyotları etkinleştirir.
digitalWrite (S2, YÜKSEK); digitalWrite (S3, YÜKSEK); // Çıkış frekansı frekansının okunması = pulseIn (sensorOut, LOW); int G = frekans; Seri.print ("Yeşil ="); Seri baskı (frekans); Seri.baskı (""); gecikme (50);
Ardından renk kararını vermek için değerler karşılaştırılır. Kurulum yapılırken algılama mesafesi herkes için değiştiğinden, farklı deneysel kurulum için okumalar farklıdır.
eğer (R <22 & R> 20 & G <29 & G> 27) { renk = 1; // Red Serial.print ("Algılanan Renk ="); Serial.println ("KIRMIZI"); } eğer (G <25 & G> 22 & B <22 & B> 19) { renk = 2; // Turuncu Serial.println ("Turuncu"); } eğer (R <21 & R> 20 & G <28 & G> 25) { renk = 3; // Yeşil Serial.print ("Algılanan Renk ="); Serial.println ("YEŞİL"); } eğer (R <38 & R> 24 & G <44 & G> 30) { renk = 4; // Sarı Seri.print ("Algılanan Renk ="); Serial.println ("SARI"); } eğer (G <29 & G> 27 & B <22 & B> 19) { renk = 5; // Mavi Seri.print ("Algılanan Renk ="); Serial.println ("MAVİ"); } dönüş rengi; }
Bu, renk ayırma makinesini TCS3200 ve Arduino UNO kullanarak bitirir. Ayrıca gerekirse daha fazla renk algılaması için programlayabilirsiniz. Herhangi bir şüpheniz veya öneriniz varsa, forumumuza yazın veya aşağıya yorum yapın. Ayrıca aşağıda verilen videoyu kontrol edin.