산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

모션 컨트롤 컬러 체인저!

구성품 및 소모품

Sparkfun APDS-9960
× 1
점퍼 와이어(일반)
× 1
Arduino UNO
× 1
저항 4.75k 옴
× 1
RGB 확산 공통 음극
× 1

앱 및 온라인 서비스

Arduino IDE

이 프로젝트 정보

이 프로젝트를 통해 모션의 힘을 활용하여 RGB LED를 제어할 수 있습니다. Sparkfun APDS-9960과 양극이 아닌 일반적인 음극 RGB LED가 필요합니다. 이 센서는 I2C 프로토콜을 사용하므로 4.7k Ohm 저항이 있는 5v Arduino 보드를 사용해야 합니다. 그런 다음 회로도와 같이 연결합니다. 거기에서 코드에 사용자 정의 색상을 추가할 수 있습니다. 벌써 6개 넣었습니다. 기본 컨트롤은 위로 스와이프하여 켜고, 아래로 스와이프하여 끄고, 오른쪽으로 스와이프하여 다음 색상으로 앞으로, 왼쪽으로 스와이프하여 뒤로 이동합니다. 이 코드는 다른 많은 유형의 프로젝트에도 맞도록 조정할 수 있습니다! 자유롭게 실험하고 더 멋진 프로젝트를 만드십시오. 행복한 만들기!

브레드보드에 있는 제품 사진:

<섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

코드

<울>
  • Arduino 코드
  • Arduino 코드C/C++
    복사하여 붙여넣기
    #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("없음"); } }}

    회로도

    있는 그대로 연결합니다.

    제조공정

    1. 동작 제어 AWS IoT 버튼
    2. Bluetooth를 통해 제어되는 Raspberry Pi Robot
    3. 제스처 제어 대화형 테이블 조명
    4. Raspberry Pi를 통한 Alexa 제어 LED
    5. 조이스틱 제어 RC 자동차
    6. Nunchuk 제어 로봇 팔(Arduino 포함)
    7. 음성 제어 로봇
    8. 모션 센서 물총
    9. Arduino 제어 피아노 로봇:PiBot
    10. Arduino RGB 컬러 믹서