라즈베리파이 3: TCS34725 컬러 센서 사용하기

라즈베리파이 3에 tcs34725 컬러 센서를 연결하고 사용해봅니다.


Introduction

라즈베리파이 3에서 컬러 센서를 사용해보겠습니다. 사용할 컬러 센서의 모델은 Adafruit TCS34725 모델입니다.


라즈베리파이 I2C 기능 설정

먼저 라즈베리파이 3의 I2C 기능을 켜주어야 합니다. 다음의 명령어로 라즈베리파이 설정에 들어갑니다.

$ sudo raspi-config

그 후, 순서대로 Interfacing Options - I2C - Yes - Finish를 선택해 I2C를 켜줍니다.

i2cdetect -y 1 명령으로 I2C가 동작중인지 확인할 수 있습니다.

Adafruit Color Sensor Library

먼저, 파이썬에서 Adafruit의 컬러 센서 라이브러리를 사용하기 위한 설정을 먼저 진행하겠습니다.

파이썬 라이브러리 빌드를 위한 패키지들을 설치하기 위해, 터미널에서 다음 명령어를 입력합니다.

$ sudo apt-get install git build-essential python-dev

설치가 완료되면, 컬러 센서 라이브러리를 다운로드받을 임의의 디렉토리를 지정합니다. 이 글에서는 ~/Downloads/ 디렉토리로 하겠습니다.

~/Downloads/ 디렉토리로 이동해서 라이브러리를 다운받고 설치합니다.

$ cd ~/Downloads/
$ git clone https://github.com/adafruit/Adafruit_Python_TCS34725.git
$ cd Adafruit_Python_TCS34725
$ sudo python setup.py install

테스트 코드 구현

이제 라이브러리를 옮겨서 컬러 센서 구현을 진행해봅시다. 구현 소스코드를 작성할 디렉터리를 ~/TCStest/ 로 설정하겠습니다. 임의로 디렉토리를 만들어서 진행합니다.

라이브러리 파일들을 구현 디렉토리에 옮겨 줍니다.

$ cp -a Adafruit_TCS34725/ build/ ~/TCStest/

그리고 아래와 같이 파이썬으로 센서 테스트 파일을 작성하면 센서 동작을 확인해볼 수 있습니다.

import os
import time
import Adafruit_TCS34725 as TCS

tcs = TCS.TCS34725()      # TCS34725 객체 생성
tcs.set_interrupt(False)  # 센서의 인터럽트 모드 해제
 
while True:
    r, g, b, _ = tcs.get_raw_data()                          # Raw Data 수집 (Red Green Blue)
    color_temp = TCS.calculate_color_temperature(r, g, b)    # 색온도 계산
    lux = TCS.calculate_lux(r, g, b)                         # 주변 밝기 계산
 
    print('Red :', r, 'Green :', g, 'Blue :', b)    # 색상 데이터 출력
    print('Temperature :', color_temp)              # 색온도 출력
    print('Lux :', lux)                             # 주변 밝기 출력
 
    time.sleep(0.2)
    os.system('clear')

컬러센서의 대부분의 기능이 포함된 코드입니다. Adafruit_TCS34725 모듈을 import해서 객체를 생성하고, 현재 센서가 보고있는 색상, 색온도, 주변 밝기 등을 수집할 수 있습니다.