제조공정
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
|
프로젝트
이것은 Arduino와 TCS 3200과 같은 센서를 사용하여 색상을 읽는 방법을 탐구하는 간단한 튜토리얼입니다. 아이디어는 물체 색상을 감지하고 LCD에 표시하는 것입니다. 이 프로젝트는 물체의 색상에 따라 적절한 동작을 선택하는 로봇 팔이 될 더 큰 프로젝트의 구성 요소입니다. 위의 블록 다이어그램은 주요 구성 요소를 보여줍니다.
아래 비디오는 작업 중인 최종 프로젝트를 보여줍니다.
1단계:BoM
아래 링크와 가격은 참고용입니다.
<울>
2단계:TSC 3200 컬러 센서
데이터시트에 설명된 대로 TCS3200은 단일 모놀리식 CMOS 집적 회로에 구성 가능한 실리콘 포토다이오드와 전류-주파수 변환기를 결합한 프로그래밍 가능한 컬러 광-주파수 변환기입니다.
출력은 광도(조도)에 정비례하는 주파수를 갖는 구형파(50% 듀티 사이클)입니다. 전체 범위 출력 주파수는 2개의 제어 입력 핀(S0 및 S1)을 통해 3개의 사전 설정 값 중 하나로 조정될 수 있습니다. 디지털 입력 및 디지털 출력을 통해 마이크로컨트롤러 또는 기타 논리 회로에 직접 인터페이스할 수 있습니다.
출력 활성화(OE)는 마이크로컨트롤러 입력 라인의 다중 장치 공유를 위해 출력을 고임피던스 상태로 설정합니다. TCS3200에서 광-주파수 변환기는 8 x 8 어레이의 포토다이오드를 읽습니다.
<울>핀 S2 및 S3은 활성 광다이오드 그룹(빨간색, 녹색, 파란색, 투명)을 선택하는 데 사용됩니다. 포토다이오드는 크기가 110μm x 110μm이고 134μm 중심에 있습니다.
OE(Enable)는 GND(LOW)에 연결해야 합니다.
센서는 캡슐화되어 있으며 2.7 ~ 5.5VDC 사이에서 전원이 공급되어야 합니다. 5V Arduino 출력을 사용하여 센서에 전원을 공급합니다. 센서를 올바르게 사용하기 위해 작은 고무 링을 설치하여 센서를 측광으로부터 격리합니다. 나는 그것을 고칠 때 뜨거운 접착제를 사용했습니다.
3단계:하드웨어 연결
다음과 같이 TSC3200 센서를 연결합니다.
<울>I2C LCD 2/16 직렬 디스플레이 연결:
<울>브레드보드에 아두이노 나노를 설치합니다. 두 전원 레일에서 Nano 5V 출력과 GND를 연결합니다.
4단계:Arduino 코드
가장 먼저 정의할 것은 위의 표에 정의된 주파수 스케일링입니다. 이를 위해 핀 S0 및 S1이 사용됩니다. 출력 주파수를 스케일링하면 다양한 주파수 카운터 또는 마이크로컨트롤러에 대한 센서 판독값을 최적화하는 데 유용합니다. S0과 S1을 모두 HIGH(100%)로 설정합니다.
<사전><코드> digitalWrite(s0,HIGH); digitalWrite(s1,HIGH);다음으로 할 일은 포토다이오드에서 읽을 색상(빨간색, 녹색 또는 파란색)을 선택하는 것입니다. 이를 위해 제어 핀 S2 및 S3을 사용합니다. 포토다이오드가 병렬로 연결되어 있기 때문에 S2와 S3를 LOW와 HIGH를 서로 다른 조합으로 설정하면 위의 표와 같이 서로 다른 포토다이오드를 선택할 수 있습니다.
digitalWrite(s2, LOW); 디지털 쓰기(s3, LOW); 빨간색 =pulseIn(outPin, LOW); // 색상의 RED 컴포넌트 읽기 digitalWrite(s2, HIGH); 디지털 쓰기(s3, 높음); grn =펄스 입력(outPin, LOW); // 색상의 GREEN 구성 요소 읽기 digitalWrite(s2, LOW); 디지털 쓰기(s3, 높음); 블루 =펄스 입력(outPin, LOW); // 색상의 BLUE 구성 요소 읽기
최종 코드에서 RGB 구성요소를 각각 몇 번씩 읽고 평균을 취하므로 판독값 중 하나가 잘못된 경우 오류를 줄일 수 있습니다.
3가지 구성요소(RGB)가 있으면 색상을 정의해야 합니다. 이전에 프로젝트를 보정하기 위해 수행하는 방법입니다. 알려진 색의 시험지나 물체를 사용하여 생성된 3가지 구성 요소를 읽을 수 있습니다.
광산에서 시작하여 조명 수준에 대한 매개변수를 변경할 수 있습니다.
<사전><코드> 무효 getColor(){ readRGB(); if (빨간색> 8 &&빨간색 <18 &&grn> 9 &&grn <19 &&blu> 8 &&blu <16) color ="흰색"; else if (red> 80 &&red <125 &&grn> 90 &&grn <125 &&blu> 80 &&blu <125) color ="BLACK"; else if (빨간색> 12 &&빨간색 <30 &&grn> 40 &&grn <70 &&blu> 33 &&blu <70) color ="RED"; else if (빨간색> 50 &&빨간색 <95 &&grn> 35 &&grn <70 &&blu> 45 &&blu <85) color ="녹색"; else if (빨간색> 10 &&빨간색 <20 &&grn> 10 &&grn <25 &&blu> 20 &&blu <38) color ="노란색"; else if (빨간색> 65 &&빨간색 <125 &&grn> 65 &&grn <115 &&blu> 32 &&blu <65) color ="파란색"; 다른 색상 ="NO_COLOR";}위에서 볼 수 있듯이 흰색, 검정색, 빨간색, 녹색, 노란색 및 파란색의 6가지 색상을 미리 정의했습니다. 주변광이 낮아지면 매개변수가 높아지는 경향이 있습니다.
loop() 내부에서 1초마다 LCD의 디스플레이 판독값을 정의합니다.
전체 코드는 내 GitHub에서 찾을 수 있습니다.
5단계:결론
항상 그렇듯이 이 프로젝트가 다른 사람들이 전자, 로봇 및 IoT의 흥미진진한 세계에서 길을 찾는 데 도움이 되기를 바랍니다.
업데이트된 파일을 보려면 내 GitHub를 방문하세요:Color Detector
더 많은 프로젝트를 보려면 제 블로그를 방문하십시오:MJRoBot.org
세계 남쪽에서 온 살루도스!
다음 튜토리얼에서 만나요!
감사합니다.
마르셀로
섹션> <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">제조공정
이 Arduino 자습서에서는 Arduino 보드와 처리 개발 환경을 사용하여 이 멋진 레이더를 만드는 방법을 보여 드리겠습니다. 자세한 내용은 다음 동영상을 보거나 아래에 작성된 튜토리얼을 참조하세요. 개요 이 Arduino 프로젝트에 필요한 것은 물체를 감지하기 위한 초음파 센서, 센서를 회전시키기 위한 작은 취미 생활자 서보 모터 및 이를 제어하기 위한 Arduino 보드뿐입니다. 다음 동영상을 보거나 아래에 작성된 튜토리얼을 읽을 수 있습니다.[/column] 이 Arduino 프로젝트에 필요한 구성요소 다음 사이트에서
이것은 제 메카트로닉스 마지막 해 프로젝트였습니다. 스코페에 있는 기계공학부에서. 실제 팔 움직임과 3D 컴퓨터 모델의 상호작용을 가능하게 하는 기기를 개발하는 것이 목표였습니다. 나는 하나의 장치에 세 가지 다른 분야를 통합했습니다. 기계, 전기 및 컴퓨터 공학: Solidworks는 팔의 움직임을 나타내는 3D 모델을 디자인합니다. 현실 세계와 컴퓨터를 연결하기 위한 Arduino Mega 2560 카드입니다. 3D 모델 제어를 프로그래밍하기 위한 MATLAB / Simulink 다음 비디오에서 프로젝트의 프레젠테이션을