12. Cảm biến màu sắc

../../_images/13.1.png

Module cảm biến màu sắc là một cảm biến màu có khả năng nhận dạng các loại màu sắc. Module này sử dụng giao thức I2C để giao tiếp.

1. Mua sản phẩm


some image

2. Thông số kỹ thuật


  • Thông số kỹ thuật

    • Điện áp hoạt động: 3.3V

    • Dòng hoạt động: <5mA

    • Nhiệt độ hoạt động: -20 ~ 60˚C

    • Loại tín hiệu: I2C

    • Kích thước module: 48mm x 24mm x 18mm (DxRxC)

  • Pinout của cảm biến màu sắc

Cảm biến màu sắc có 4 chân, và mỗi chân có chức năng như sau:

STT

Chân

Chức năng

1

GND

Nối đất

2

VCC

Cấp nguồn (3.3V)

3

SDA

Truyền tín hiệu

4

SCL

Xung tín hiệu

3. Kết nối


  • Bước 1: Chuẩn bị các thiết bị như sau:

../../_images/yolo.png ../../_images/mmr.png ../../_images/13.1.png

Máy tính lập trình Yolo:Bit

Mạch mở rộng cho Yolo:Bit

Cảm biến màu sắc (kèm dây Grove)

Mua sản phẩm

Mua sản phẩm

Mua sản phẩm

  • Bước 2: Cắm Yolo:Bit vào mạch mở rộng

  • Bước 3: Sử dụng dây Grove cắm vào cảm biến

  • Bước 4: Kết nối cảm biến với cổng I2C trên mạch mở rộng.

../../_images/13.21.png

Bạn có thể kết nối vào 1 trong 2 chân I2C

4. Hướng dẫn lập trình với OhStem App:


  • Bước 1: Để làm việc với cảm biến, bạn cần tải thư viện Cảm biến màu sắc, xem hướng dẫn tải thư viện tại đây.

    ../../_images/13.31.png

    Sau khi tải thư viện, trong danh mục khối lệnh sẽ xuất hiện các khối lệnh tương ứng:

    ../../_images/13.41.png

  • Bước 2: Gửi chương trình sau lên Yolo:Bit:

    ../../_images/13.51.png

Note

Giải thích chương trình:

Chương trình phát hiện và đổi màu sắc tương ứng. Nếu cảm biến phát hiện màu đỏ, mạch Yolo:Bit sẽ nhận tín hiệu và xử lý để đổi màu tất cả các đèn LED trên Yolo:Bit sang màu tương ứng. Tương tự mới màu xanh lá và xanh dương.

5. Hướng dẫn lập trình Arduino


  • Mở phần mềm Arduino IDE. Xem hướng dẫn lập trình với Arduino tại đây.

  • Copy đoạn code sau, click vào nút Verify để kiểm tra lỗi chương trình. Sau khi biên dịch không báo lỗi, bạn có thể nạp đoạn code vào board.

#include "YoloBit.h"

YoloBit yolobit;

#include <Wire.h>
#include "Adafruit_TCS34725.h"
Adafruit_TCS34725 tcs = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_700MS, TCS34725_GAIN_1X);

void setup() {
  Serial.begin(9600);
  if (tcs.begin()) {
     Serial.println("Found sensor");
  }
  else {
     Serial.println("No TCS34725 found ... check your connections");
     while (1);
  }
  // Đọc giá trị cảm biến!
}

void loop(void) {
  uint16_t r, g, b, c, colorTemp, lux;
  tcs.getRawData(&r, &g, &b, &c);
  colorTemp = tcs.calculateColorTemperature_dn40(r, g, b, c);
  lux = tcs.calculateLux(r, g, b);
  Serial.print("Color Temp: "); Serial.print(colorTemp, DEC); Serial.print(" K - ");
  Serial.print("Lux: "); Serial.print(lux, DEC); Serial.print(" - ");
  Serial.print("R: "); Serial.print(r, DEC); Serial.print(" ");
  Serial.print("G: "); Serial.print(g, DEC); Serial.print(" ");
  Serial.print("B: "); Serial.print(b, DEC); Serial.print(" ");
  Serial.print("C: "); Serial.print(c, DEC); Serial.print(" ");
  Serial.println(" ");
}

Note

Giải thích chương trình: Sau khi nạp chương trình và mở cửa sổ Serial, bạn sẽ thấy giá trị đọc được từ cảm biến được in ra.

6. Góc kiến thức:


Mỗi màu sắc đều được cấu tạo từ 3 giá trị cơ bản đó chính là đỏ (red) – xanh dương (blue) – xanh lá (green).

../../_images/13.61.png

Ví dụ như màu trắng sẽ được cấu tạo từ giá trị RGB sau Red = 255, Green = 255, Blue = 255; màu vàng sẽ có mã màu RGB là (255,255,0). Các bạn có thể tra thêm một số giá trị màu RGB ở bảng sau:

../../_images/13.71.png

Cảm biến màu sắc có khả năng nhận diện màu sắc bằng cách trả về 3 giá trị RGB tương ứng với màu sắc đó. Chính nhờ thế nên cảm biến này thường được ứng dụng trong chương trình như: phân loại dựa theo màu sắc, nhận biến màu để di chuyển.