RGBカラーセンサーTCS3200の紹介

問題を排除するために楽器を試してください





TCS3200は、マイクロコントローラーを介してプログラムできる色光-周波数変換チップです。このモジュールは、Arduinoなどの統合マイクロコントローラーを使用して、7色すべての白色光を検出するために使用できます。

この投稿では、RGBカラーセンサーTCS3200を見て、カラーセンサーがどのように機能するかを理解し、Arduinoを使用してTCS3200センサーを実際にテストし、いくつかの有用なデータを抽出します。



色認識の重要性

豊かな色彩に満ちた世界を毎日目にしますが、実際に色が視覚的に感じることとは別物なのか疑問に思ったことはありませんか。さて、色は異なる波長の電磁波です。赤、緑、青にはさまざまな波長があり、人間の目は、電磁スペクトルからの狭い帯域であるこれらのRGB色を拾うように調整されています。

しかし、私たちの脳は2つ以上の色を混ぜ合わせて新しい色を出すことができるため、赤、青、緑以上のものが見えます。



さまざまな色を見ることができることで、古代の人間の文明は動物などの生命を脅かす危険から逃れることができ、また、果物などの食用アイテムを適切に成長させて識別できるようになりました。

女性は男性よりもさまざまな色合い(色に敏感)を認識するのが得意ですが、男性は動きの速い物体を追跡し、それに応じて反応するのが得意です。

多くの研究は、これは古代の間に男性が女性よりも優れた体力のために狩りに行くためであることを示唆しています。

女性は、植物や樹木から果物やその他の食用アイテムを集めるなど、リスクの少ない仕事をすることができます。

正しい成長で植物から食用アイテムを集めること(果物の色が大きな役割を果たします)は、消化を良くするために非常に重要であり、それは人間が健康上の問題から逃れるのを助けました。

男性と女性の視覚能力のこれらの違いは、現代でも持続します。

さて、なぜ電子カラーセンサーの上記の説明ですか?カラーセンサーは、他の動物の目の色モデルではなく、人間の目の色モデルに基づいて製造されているためです。

たとえば、スマートフォンのデュアルカメラの1つは、RGBカラーを認識するために特別に作成され、他のカメラは通常の画像を撮影するために作成されています。これらの2つの画像/情報を注意深いアルゴリズムとブレンドすると、人間が知覚できるものだけが画面上に実際のオブジェクトの正確な色を再現します。

注:すべてのデュアルカメラが上記と同じように機能するわけではありません。光学ズームに使用されるものもあれば、被写界深度効果などを生成するために使用されるものもあります。

それでは、TCS3200カラーセンサーがどのように製造されているかを見てみましょう。

TCS3200センサーの図:

TCS3200センサー

物体を照らすための4つの白色LEDが組み込まれています。 10ピンと2つのVccピンとGNDピンがあります(これらのいずれか2つを使用してください)。 S0、S1、S2、S3、S4および「出力」ピンの機能について簡単に説明します。

センサーをよく見ると、次のようなものがあります。

合計64個のカラーセンサーの8x 8アレイがあります。フォトセンサーブロックには、赤、青、緑のセンサーがあります。異なるカラーセンサーは、センサーに異なるカラーフィルターを適用することによって形成されます。 64個のうち、16個の青、16個の緑、16個の赤のセンサーがあり、カラーフィルターのない16個のフォトセンサーがあります。

青色のカラーフィルターは、青色の光のみがセンサーに当たり、残りの波長(色)を拒否します。これは、他の2つのカラーセンサーでも同じです。

赤のフィルターまたは緑のフィルターに青の光を当てると、青のフィルターに比べて、緑または赤のフィルターを通過する光の強度が弱くなります。したがって、青色のフィルター処理されたセンサーは、他の2つと比較してより多くの光を受け取ります。

したがって、RGBフィルターを備えたカラーセンサーをブロックに配置して、任意の色の光を照らすことができ、関連するカラーセンサーは他の2つよりも多くの光を受け取ります。

センサーで受け取った光の強度を測定することにより、光が輝いた色を明らかにすることができます。

センサーからマイクロコントローラーへの信号のインターフェースは、光強度から周波数へのコンバーターで行われます。

回路ブロック図

「出力」ピンは出力です。出力ピンの周波数は50%のデューティサイクルです。 S2ピンとS3ピンは、フォトセンサーの選択ラインです。

表を見ると、よりよく理解できます。

S2ピンとS3ピンは、フォトセンサーの選択ラインです。

ピンS2とS3に低信号を適用することにより、赤色センサーを選択し、赤色波長の強度を測定します。

同様に、残りの色については上記の表に従ってください。

一般に、赤、青、緑のセンサーが測定され、センサーはフィルターなしで測定されます。

S0とS1は周波数スケーリングピンです。

S0とS1は周波数スケーリングピンです

S0とS1は、出力周波数をスケーリングするための周波数スケーリングピンです。周波数スケーリングは、センサーからマイクロコントローラーへの最適な出力周波数を選択するために使用されます。 Arduinoの場合は20%が推奨され、S0は「HIGH」、S1は「LOW」です。

関連するセンサーの光強度が高い場合、出力周波数は高くなります。プログラムコードを簡単にするために、周波数は測定されませんが、パルス持続時間は測定されます。周波数が高いほど、パルス持続時間は短くなります。

したがって、シリアルモニターの読み取り値で最も少なく表示されるのは、センサーの前に配置されている色である必要があります。

カラーセンサーからのデータの抽出

それでは、実際にセンサーからデータを抽出してみましょう。

Arduino回路を使用してカラーセンサーからデータを抽出する方法

プログラムコード:

//--------------Program Developed by R.GIRISH--------------//
const int s0 = 4
const int s1 = 5
const int s2 = 6
const int s3 = 7
const int out = 8
int frequency1 = 0
int frequency2 = 0
int frequency3 = 0
int state = LOW
int state1 = LOW
int state2 = HIGH
void setup()
{
Serial.begin(9600)
pinMode(s0, OUTPUT)
pinMode(s1, OUTPUT)
pinMode(s2, OUTPUT)
pinMode(s3, OUTPUT)
pinMode(out, INPUT)
//----Scaling Frequency 20%-----//
digitalWrite(s0, state2)
digitalWrite(s1, state1)
//-----------------------------//
}
void loop()
')
delay(100)
//------Sensing Blue colour----//
digitalWrite(s2, state1)
digitalWrite(s3, state2)
frequency3 = pulseIn(out, state)
Serial.print(' Blue = ')
Serial.println(frequency3)
delay(100)
Serial.println('---------------------------------------')
delay(400)

//--------------Program Developed by R.GIRISH--------------//

シリアルモニター出力:

最も低い値を示す読み取り値は、センサーの前に配置された色です。黄色などの任意の色を認識するためのコードを作成することもできます。黄色は緑と赤を混ぜ合わせた結果であるため、センサーの前に黄色を配置する場合は、他の色と同様に、赤と緑のセンサーの読み取り値を考慮する必要があります。

Arduinoの記事を使用したこのRGBカラーセンサーTCS3200について質問がある場合は、コメントセクションで表現してください。迅速な返信が届く場合があります。

上記で説明したカラーセンサーは、 リレーを介して外部ガジェットをトリガーする 目的の操作を実行します。




前:パスワード制御のAC電源ON / OFFスイッチ 次へ:カスタマイズされた周波数でTSOP17XXセンサーを使用する