精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用TCS3200和Arduino UNO制作顏色分選機

科技觀察員 ? 來源:circuitdigest ? 作者:Abhimanyu Pandit ? 2022-09-01 16:55 ? 次閱讀

顧名思義,顏色分類就是簡單地根據事物的顏色對事物進行分類。它可以通過看到它來輕松完成,但是當要分類的東西太多并且這是一項重復性任務時,自動色選機非常有用。這些機器有顏色傳感器來感知任何物體的顏色,并在檢測到顏色伺服電機后抓住物體并將其放入相應的盒子中。它們可用于顏色識別、顏色區分和顏色分類很重要的不同應用領域。一些應用領域包括農業(基于顏色的谷物分選)、食品工業、鉆石和采礦業、回收等。應用不僅限于此,還可以進一步應用于不同的行業。

在本教程中,我們將使用顏色傳感器 TCS3200、一些伺服電機和 Arduino 板制作顏色分選機。本教程將包括彩球的分類并將它們保存在相關的彩盒中。盒子將處于固定位置,伺服電機將用于移動分揀手以將球保持在相關盒子中。

所需組件

Arduino UNO

TCS3200 顏色傳感器

伺服電機

跳線

面包板

色選機械臂底盤的制作方法

為了制作包括底盤、臂、滾輪、墊子在內的完整設置,我們使用了 2 毫米厚的白色Sunboard。它在固定商店很容易買到。我們使用切紙機切割 Sunboard Sheet 和 FlexKwik 或 FeviKwik 來連接不同的部分。以下是構建顏色分類臂

的一些步驟:

1)拿取防曬板。

poYBAGMQckuATBUeAAHWP3lVEGU977.png

2) 如圖所示,用刻度尺和記號筆測量好所有邊后,將陽光板切成小塊。

poYBAGMQckiAJo2uAAP45qHpkTo684.png

pYYBAGMQckSAHAGFAAJQ0lzPifQ899.png

pYYBAGMQckWAQ6zkAAKL4GWX2RY662.png

3)現在將兩塊陽光板放在一起,然后在上面倒一滴 FeviKwik 將它們粘在一起。按照圖繼續連接。

pYYBAGMQcjuAcOu0AAIcwKv3Rpg671.png

4) 將所有部件連接在一起后,這臺色選機將如下所示:

poYBAGMQcjyARr0gAAQfIitSbJk495.png

TCS3200 顏色傳感器

poYBAGMQcjOAWhuTAAR2KfpVTe0574.png

TCS3200 是一種顏色傳感器,可以通過正確的編程檢測任意數量的顏色。TCS3200 包含 RGB(紅綠藍)陣列。如圖所示,在顯微鏡下可以看到傳感器眼睛內部的方框。這些方塊是 RGB 矩陣的數組。這些盒子中的每一個都包含三個傳感器,一個用于感測紅光強度,一個用于感測綠光強度,最后一個用于感測藍光強度。

pYYBAGMQciuAcTIRAABOAmwuRN4263.png

這三個陣列中的每個傳感器陣列都是根據需要單獨選擇的。因此它被稱為可編程傳感器。該模塊可以用來感知特定顏色并離開其他顏色。它包含用于該選擇目的的過濾器。第四種模式稱為“無濾鏡模式”,其中傳感器檢測白光。

Arduino色選機電路圖

這個Arduino 顏色分類器的電路圖很容易制作,不需要太多連接。示意圖如下。

poYBAGMQciiAdIDVAACqTkuMOc0450.png

這是色選機設置背后的電路:

pYYBAGMQciSARENlAAPgdMe1fNI960.png

對 Arduino Uno 進行編程以對彩色球進行分類

對 Arduino UNO 進行編程非常簡單,需要一個簡單的邏輯來簡化顏色分類所涉及的步驟。最后給出了帶有演示視頻的完整程序。

由于使用的是伺服電機,所以伺服庫是程序的重要組成部分。這里我們使用兩個伺服電機。第一個伺服將彩球從初始位置移動到 TCS3200 檢測器位置,然后移動到將落下的分揀位置。移動到分揀位置后,第二個伺服將使用其手臂將球落到所需的顏色桶中。請參閱最后給出的視頻中的完整工作。

第一步將包含所有庫并定義伺服變量。

#include 
伺服拾取伺服;
伺服下降伺服;

TCS3200 顏色傳感器可以在沒有庫的情況下工作,因為只需要從傳感器引腳讀取頻率來決定顏色。所以只需定義 TCS3200 的引腳號。

#define S0 4 
#define S1 5 
#define S2 7 
#define S3 6 
#define sensorOut 8 
int 頻率 = 0; 
詮釋顏色=0;

使選擇引腳作為輸出,因為這將使彩色光電二極管高或低,并將TCS3200 的 Out 引腳作為輸入。OUT 引腳將提供頻率。最初選擇頻率縮放為 20%。

  pinMode(S0,輸出);
  pinMode(S1,輸出);
  pinMode(S2,輸出);
  pinMode(S3,輸出);
  pinMode(傳感器輸出,輸入);
  數字寫入(S0,低);
  數字寫入(S1,高);

伺服電機連接在 Arduino 的引腳 9 和 10。將拾取彩球的拾取伺服器連接在引腳 9 上,將根據顏色掉落彩球的下落伺服器連接在引腳 10 上。

  pickServo.attach(9); 
  dropServo.attach(10);

最初,拾取伺服電機設置在初始位置,在這種情況下為 115 度。它可能會有所不同,并且可以相應地進行定制。電機在延遲一段時間后移動到檢測器區域并等待檢測。

  pickServo.write(115); 
  延遲(600);
  for(int i = 115; i > 65; i--) { 
    pickServo.write(i); 
    延遲(2);
  }
  延遲(500);

TCS 3200從Out Pin 讀取顏色并給出頻率。

  顏色 = 檢測顏色();
  延遲(1000);

根據檢測到的顏色,下落伺服電機以特定角度移動,并將彩球落入相應的盒子中。

  開關(顏色){
    案例1:
    dropServo.write(50);
    休息; 
    案例2:
    dropServo.write(80);
    休息; 
    案例3:
    dropServo.write(110);
    休息; 
    案例4:
    dropServo.write(140);
    休息; 
    案例5:
    dropServo.write(170);
    休息; 
    案例0:
    中斷;
  }
  延遲(500);

伺服電機返回初始位置,等待下一個球被拾取。

  for(int i = 65; i > 29; i--) { 
    pickServo.write(i); 
    延遲(2);
  }
  延遲(300);
  for(int i = 29; i < 115; i++) { 
    pickServo.write(i); 
    延遲(2);
  }

函數detectColor()用于測量頻率并比較顏色頻率以得出顏色結論。結果打印在串行監視器上。然后它返回用于移動下降伺服電機角度的案例的顏色值。

詮釋檢測顏色(){

寫入 S2 和 S3 (LOW,LOW) 會激活紅色光電二極管以獲取紅色密度讀數。

  數字寫入(S2,低);
  數字寫入(S3,低);
  頻率 = 脈沖輸入(傳感器輸出,低);
  int R = 頻率;
  Serial.print("紅色 = "); 
  Serial.print(frequency);//打印紅色頻率
  Serial.print(" "); 
  延遲(50);

寫入 S2 和 S3(低、高)會激活藍色光電二極管以獲取藍色密度讀數。

  數字寫入(S2,低);
  數字寫入(S3,高);
  頻率 = 脈沖輸入(傳感器輸出,低);
  int B = 頻率;
  Serial.print("藍色 = ");
  Serial.print(頻率);
  序列號.println(" ");

寫入 S2 和 S3 (HIGH,HIGH) 會激活綠色光電二極管以獲取綠色密度讀數。

  數字寫入(S2,高);
  數字寫入(S3,高);

  // 讀取輸出頻率
  頻率 = pulseIn(sensorOut, LOW); 
  int G = 頻率;
  Serial.print("綠色 = "); 
  Serial.print(頻率);
  序列號.print(""); 
  延遲(50);

然后比較這些值以做出顏色決定。不同實驗設置的讀數不同,因為在進行設置時每個人的檢測距離都不同。

 如果(R<22 & R>20 & G<29 & G>27){
    顏色 = 1; // Red 
    Serial.print("檢測到的顏色是 = "); 
    Serial.println("RED"); 
  } 
  if(G<25 & G>22 & B<22 &B>19){
    顏色 = 2; // 橙色
      Serial.println("橙色"); 
  } 
  if(R<21 & R>20 & G<28 & G>25){
    顏色 = 3; // 綠色
      Serial.print("檢測到的顏色是 = "); 
    Serial.println("綠色"); 
  } 
  if(R<38 & R>24 & G<44 & G>30){
    顏色 = 4; // 黃色
       Serial.print("檢測到的顏色是 = "); 
    Serial.println("黃色"); 
  } 
  if (G<29 & G>27 & B<22 &B>19){
    顏色 = 5; // 藍色
     Serial.print("檢測到的顏色是 = ");
    Serial.println("藍色"); 
  }
  返回顏色;
}

這樣就完成了使用 TCS3200 和 Arduino UNO 的色選機。如果需要,您還可以對其進行編程以檢測更多顏色。

#include

伺服拾取伺服;

伺服下降伺服;


#define S0 4

#define S1 5

#define S2 7

#define S3 6

#define sensorOut 8

int 頻率 = 0;

詮釋顏色=0;


int detectColor() {

// 激活紅色光電二極管以讀取

digitalWrite(S2, LOW);

數字寫入(S3,低);

頻率 = 脈沖輸入(傳感器輸出,低);

int R = 頻率;

Serial.print("紅色 = ");

Serial.print(frequency);//打印紅色頻率

Serial.print(" ");

延遲(50);


// 激活藍色光電二極管以讀取

digitalWrite(S2, LOW);

數字寫入(S3,高);

頻率 = 脈沖輸入(傳感器輸出,低);

int B = 頻率;

Serial.print("藍色 = ");

Serial.print(頻率);

序列號.println(" ");



// 激活綠色光電二極管以讀取

digitalWrite(S2, HIGH);

數字寫入(S3,高);

// 讀取輸出頻率

頻率 = pulseIn(sensorOut, LOW);

int G = 頻率;

Serial.print("綠色 = ");

Serial.print(頻率);

序列號.print("");

延遲(50);


延遲(50);


//不同設置

的讀數不同 //根據您的項目和檢測到的讀數更改讀數

if(R<22 & R>20 & G<29 & G>27){

color = 1; // Red

Serial.print("檢測到的顏色是 = ");

Serial.println("RED");

}

if(G<25 & G>22 & B<22 &B>19){

顏色 = 2; // 橙色

Serial.println("橙色");

}

if(R<21 & R>20 & G<28 & G>25){

顏色 = 3; // 綠色

Serial.print("檢測到的顏色是 = ");

Serial.println("綠色");

}

if(R<38 & R>24 & G<44 & G>

30){顏色 = 4; // 黃色

Serial.print("檢測到的顏色是 = ");

Serial.println("黃色");

}

if (G<29 & G>27 & B<22 &B>19){

顏色 = 5; // 藍色

Serial.print("檢測到的顏色是 = ");

Serial.println("藍色");

}

返回顏色;

}


無效設置(){

pinMode(S0,輸出);

pinMode(S1,輸出);

pinMode(S2,輸出);

pinMode(S3,輸出);

pinMode(傳感器輸出,輸入);


//頻率縮放到 20% 選定

的 digitalWrite(S0, LOW);

數字寫入(S1,高);


pickServo.attach(9);

dropServo.attach(10);


序列號.開始(9600);

}


void loop() {

//伺服電機的初始位置

pickServo.write(115);

延遲(600);



for(int i = 115; i > 65; i--) {

pickServo.write(i);

延遲(2);

}

延遲(500);

//通過調用函數讀取顏色值。將結論值保存在變量

color = detectColor();

延遲(1000);


開關(顏色){

案例1:

dropServo.write(50);



休息;


案例2:

dropServo.write(80);

休息;


案例3:

dropServo.write(110);

休息;


案例4:

dropServo.write(140);

休息;


案例5:

dropServo.write(170);

休息;



案例0:

中斷;

}

延遲(500);



for(int i = 65; i > 29; i--) {

pickServo.write(i);

延遲(2);

}

延遲(300);



for(int i = 29; i < 115; i++) {

pickServo.write(i);

延遲(2);

}

顏色=0;

}

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 伺服電機
    +關注

    關注

    85

    文章

    2028

    瀏覽量

    57698
  • Arduino
    +關注

    關注

    187

    文章

    6464

    瀏覽量

    186642
  • 分選機
    +關注

    關注

    0

    文章

    22

    瀏覽量

    6776
  • TCS3200
    +關注

    關注

    0

    文章

    23

    瀏覽量

    15548
收藏 人收藏

    評論

    相關推薦

    TCS230/TCS3200的脈沖問題

    最近正在做一個TCS3200顏色芯片設計,電路搭好之后,發現輸出的脈沖幅值在0.14-0.06V,太小了。這是不能被單片機識別的。請問各位大哥原因可能是什么?
    發表于 11-15 11:56

    請問顏色傳感器GY-33 TCS34725和TCS3200有什么區別?

    請教顏色傳感器GY-33 TCS34725和TCS3200的具體區別?哪種用于檢測透明瓶中液體顏色更好?有沒有做過相關實驗的朋友,希望大家給出點建議,非常感謝。
    發表于 03-26 07:17

    基于STM32F103的TCS3200顏色傳感器使用

    基于STM32F103的TCS3200顏色傳感器的使用團隊布置的任務內容是2019年中國機器人大賽的題目,小車運行過程中需要對不同物料進行顏色上的識別。因此我最近就學了TCS3200
    發表于 08-10 07:15

    介紹單片機如何使用TCS3200顏色識別傳感器

    應用場景與單片機連接arduino連接方式stm32連接方式3 實現效果5 相關代碼6 最后1 簡介Hi,大家好,這里是丹成學長,今天向大家介紹單片機如何使用顏色識別傳感器,以arduino單片機為例
    發表于 01-07 08:23

    如何調試TCS3200顏色傳感器模塊?

    如何調試TCS3200顏色傳感器模塊?
    發表于 03-09 06:34

    TCS3200顏色傳感器配套資料

    TCS3200顏色傳感器是一個比較簡單功能強大的顏色傳感器,可以識別有紅綠藍三原色組成的各種顏色
    發表于 11-04 17:10 ?74次下載

    基于TCS3200顏色識別的自動分揀系統

    TCS3200相關的應用以及參數等等。方便學習
    發表于 11-19 14:08 ?90次下載

    基于TCS3200顏色傳感器

    基于TCS3200顏色傳感器實驗畫圖辨別顏色等等
    發表于 02-25 10:50 ?71次下載

    TCS3200顏色傳感器的使用說明詳細資料免費下載

    TCS3200顏色傳感器是一款全彩的顏色檢測器,包括了一塊TAOS TCS3200RGB感應芯片和4個白光LED燈,TCS3200能在一定的
    發表于 04-19 08:00 ?23次下載
    <b class='flag-5'>TCS3200</b><b class='flag-5'>顏色</b>傳感器的使用說明詳細資料免費下載

    基于STM32F103的TCS3200顏色傳感器的使用

    ; 團隊布置的任務內容是2019年中國機器人大賽的題目,小車運行過程中需要對不同物料進行顏色上的識別。因此我最近就學了TCS3200顏色傳感器的基本原理和代碼的具體實現。網上對該模塊的使用基本是基于
    發表于 12-01 10:51 ?46次下載
    基于STM32F103的<b class='flag-5'>TCS3200</b><b class='flag-5'>顏色</b>傳感器的使用

    使用TCS3200Arduino Uno制作Arduino Chameleon

    電子發燒友網站提供《使用TCS3200Arduino Uno制作Arduino Chameleon.zip》資料免費下載
    發表于 10-27 09:55 ?2次下載
    使用<b class='flag-5'>TCS3200</b>和<b class='flag-5'>Arduino</b> <b class='flag-5'>Uno</b><b class='flag-5'>制作</b><b class='flag-5'>Arduino</b> Chameleon

    使用TCS3200/230進行顏色檢測

    電子發燒友網站提供《使用TCS3200/230進行顏色檢測.zip》資料免費下載
    發表于 02-03 11:40 ?0次下載
    使用<b class='flag-5'>TCS3200</b>/230進行<b class='flag-5'>顏色</b>檢測

    使用TCS230 TCS3200顏色傳感器制作顏色檢測器

    電子發燒友網站提供《使用TCS230 TCS3200顏色傳感器制作顏色檢測器.zip》資料免費下載
    發表于 02-13 16:48 ?7次下載
    使用<b class='flag-5'>TCS</b>230 <b class='flag-5'>TCS3200</b><b class='flag-5'>顏色</b>傳感器<b class='flag-5'>制作</b><b class='flag-5'>顏色</b>檢測器

    TCS3200顏色傳感器模塊原理圖及參考代碼

    TCS3200顏色傳感器模塊參考代碼原理圖文檔資料
    發表于 05-25 15:51 ?2次下載

    使用TCS3200模塊進行顏色識別

    該項目用于檢測顏色并使用TCS3200顏色傳感器模塊和Arduino板在LCD上顯示顏色名稱。傳感器使用彩色光電二極管輸出紅色,綠色和藍色的
    的頭像 發表于 10-15 16:11 ?1989次閱讀
    使用<b class='flag-5'>TCS3200</b>模塊進行<b class='flag-5'>顏色</b>識別