제조공정
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
|
이 프로젝트를 통해 모션의 힘을 활용하여 RGB LED를 제어할 수 있습니다. Sparkfun APDS-9960과 양극이 아닌 일반적인 음극 RGB LED가 필요합니다. 이 센서는 I2C 프로토콜을 사용하므로 4.7k Ohm 저항이 있는 5v Arduino 보드를 사용해야 합니다. 그런 다음 회로도와 같이 연결합니다. 거기에서 코드에 사용자 정의 색상을 추가할 수 있습니다. 벌써 6개 넣었습니다. 기본 컨트롤은 위로 스와이프하여 켜고, 아래로 스와이프하여 끄고, 오른쪽으로 스와이프하여 다음 색상으로 앞으로, 왼쪽으로 스와이프하여 뒤로 이동합니다. 이 코드는 다른 많은 유형의 프로젝트에도 맞도록 조정할 수 있습니다! 자유롭게 실험하고 더 멋진 프로젝트를 만드십시오. 행복한 만들기!
브레드보드에 있는 제품 사진:
섹션> <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">
#include섹션>#include // Pins#define APDS9960_INT 2 // 인터럽트 핀이어야 함 // Constantsint red_pin =A0;int green_pin =A1;int blue_pin =A2;int onOff_flag =0;//배열을 순환하도록 설정 int colorNumber =0;// 전역 변수SparkFun_APDS9960 apds =SparkFun_APDS9960();int isr_flag =0;void setup() { // 인터럽트 핀을 입력으로 설정 pinMode(APDS9960_INT, 입력); // 시리얼 포트 초기화 Serial.begin(9600); 직렬.println(); Serial.println(F("--------------------------------")); Serial.println(F("SparkFun APDS-9960 - 제스처 테스트")); Serial.println(F("--------------------------------")); // 인터럽트 서비스 루틴 초기화 attachInterrupt(0, interruptRoutine, FALLING); // APDS-9960 초기화(I2C 및 초기값 설정) if ( apds.init() ) { Serial.println(F("APDS-9960 초기화 완료")); } else { Serial.println(F("APDS-9960 초기화 중에 문제가 발생했습니다!")); } // APDS-9960 제스처 센서 엔진 실행 시작 if ( apds.enableGestureSensor(true) ) { Serial.println(F("제스처 센서가 현재 실행 중입니다.")); } else { Serial.println(F("제스처 센서 초기화 중 문제가 발생했습니다!")); } 핀모드(A0, 출력); 핀모드(A1, 출력); 핀모드(A2, 출력); analogWrite(A0, 0); analogWrite(A1, 0); analogWrite(A2, 0);} 무효 루프() { if( isr_flag ==1 ) { detachInterrupt(0); 핸들제스쳐(); isr_flag =0; attachInterrupt(0, 인터럽트 루틴, 폴링); } if (onOff_flag ==1){ 스위치(colorNumber){ 경우 0:Serial.println("빨간색"); analogWrite(red_pin, 255); analogWrite(녹색 핀, 0); analogWrite(blue_pin, 0); 부서지다; 경우 1:Serial.println("베이비 블루"); analogWrite(red_pin, 255); analogWrite(녹색 핀, 153); analogWrite(blue_pin, 204); 부서지다; 경우 2:Serial.println("진한 파란색"); analogWrite(red_pin, 100); analogWrite(녹색 핀, 0); analogWrite(blue_pin, 170); 부서지다; 사례 3:Serial.println("녹색"); analogWrite(red_pin, 0); analogWrite(녹색 핀, 255); analogWrite(blue_pin, 0); 부서지다; 사례 4:Serial.println("파란색"); analogWrite(red_pin, 0); analogWrite(녹색 핀, 0); analogWrite(blue_pin, 255); 부서지다; 사례 5:Serial.println("보라색"); analogWrite(red_pin, 191); analogWrite(녹색 핀, 0); analogWrite(blue_pin, 255); 부서지다; }} else if(onOff_flag ==0){ analogWrite(red_pin, 0); analogWrite(녹색 핀, 0); analogWrite(blue_pin, 0);}delay(1000);}void interruptRoutine() { isr_flag =1;}void handleGesture() { if ( apds.isGestureAvailable() ) { 스위치 ( apds.readGesture() ) { 경우 DIR_UP:Serial.println("업"); onOff_flag =1; 부서지다; 케이스 DIR_DOWN:Serial.println("DOWN"); onOff_flag =0; 부서지다; 케이스 DIR_LEFT:Serial.println("LEFT"); if(onOff_flag ==1){ if(colorNumber>0){ colorNumber -=1; Serial.println(색상번호); } else if(colorNumber <1){ colorNumber =5; Serial.println(색상번호); } } 부서지다; 케이스 DIR_RIGHT:Serial.println("RIGHT"); if(onOff_flag ==1){ if(colorNumber <5){ colorNumber +=1; Serial.println(색상번호); } else if(colorNumber> 4){ colorNumber =0; Serial.println(색상번호); } } 부서지다; 케이스 DIR_NEAR:Serial.println("NEAR"); 부서지다; 케이스 DIR_FAR:Serial.println("FAR"); 부서지다; 기본값:Serial.println("없음"); } }}
제조공정
구성품 및 소모품 Arduino Mega 2560 × 1 Adafruit 2핀 LCD 디스플레이 × 1 24V 전원 공급 장치 × 1 Adafruit 힘 센서 × 1 팝 범퍼 어셈블리 × 1 팝 범퍼 스위치 × 1 대상 스위치 × 1 롤오버 스위치 × 1 플리퍼 어셈블리 × 1 LED 램프 × 1 이 프로젝트 정보 Arduino 제어 핀
이 기사에서는 Arduino 색상 분류기를 만드는 방법을 보여 드리겠습니다. 다음 동영상을 보거나 아래에 작성된 기사를 읽을 수 있습니다. 디자인 이 Arduino 프로젝트에 필요한 것은 컬러 센서(TCS3200) 1개와 취미용 서보 모터 2개뿐입니다. 이 덕분에 이 프로젝트는 매우 간단하지만 구축하는 것은 매우 재미있습니다. 먼저 Solidworks 3D 모델링 소프트웨어를 사용하여 색상 분류기의 디자인을 만들었고 작동 원리는 다음과 같습니다. 초기에는 충전기에 고정되어 있는 컬러 주걱이 상단 서보 모터에 부착된 플랫폼으