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

FlickMote

구성품 및 소모품

초음파 센서
× 1
IR 송신기(일반)
× 1
RGB 확산 공통 음극
× 1
아두이노 101
× 1

앱 및 온라인 서비스

Arduino IDE

이 프로젝트 정보

소개

이제 적외선 리모컨으로 가전제품과 전자제품을 제어하는 ​​것이 보편화되었습니다. 그러나 동일한 제어 작업을 더 쉽게 수행할 수 있습니다. 새로운 손 제스처 원격 제어 시스템을 목적으로 하는 주요 동기는 손에 들고 있는 리모컨을 들여다볼 필요를 없애고 주로 구형 리모컨에 대해 특정 기능에 대한 특정 키를 검색하는 것입니다. 이 프로젝트는 원격 제어 장치로서 손 제스처를 통해 가전 제품을 제어하는 ​​새로운 시스템을 제시합니다. 이 보고서에서는 프로젝트를 flickremote라고 합니다. 초음파 거리 측정기를 사용하여 사용자의 제스처를 확인하고 IR 신호를 출력합니다. Microcontroller Developer Board Arduino 101

하드웨어 구성요소

1. Arduino 101 또는 uno

2. HC-SR04 초음파 모듈

3. 적외선 LED

4. 적외선 LED(220R)에 적합한 저항기

5. RGB LED

6. 브레드보드와 전선

작동 방식:

이 프로젝트는 초음파 거리 측정기를 사용하여 사용자의 제스처를 확인하고 주어진 명령에 따라 IR 신호를 TV로 출력합니다. 사용자의 편의에 맞는 코드에서 거리 또는 인치를 편집할 수 있습니다.

- 높은 스와이프(> 10인치) =채널 위로

- 낮은 스와이프 =채널 다운

- 하이 홀드(> 10인치) =볼륨 높이기

- 낮은 홀드 =볼륨 낮추기

- 커버 센서(<3in) =켜기/끄기

Fritzing을 사용한 회로도 :

건설:

1. 적절한 저항을 통해 IR LED를 핀 3에 연결한 다음 음극을 GND에 연결합니다.

2. 초음파 센서를 핀이 지정하는 5v 및 GND에 연결합니다. 트리거 핀을 핀 8에 연결하고 에코 핀을 7에 연결합니다. 프로그램에서 이 핀을 구성할 수 있습니다.

3. RGB LED를 GND와 핀 11(빨간색), 10(녹색), 9(파란색)에 연결합니다. 이 핀도 구성할 수 있습니다.

컨트롤

3인치 이내로 센서 위로 스와이프하면 LED가 보라색으로 깜박입니다. '켜기/끄기' 신호를 보낼 준비가 되었음을 확인하는 것입니다. 실수로 TV가 꺼지는 것을 방지하기 위해 스케치가 첫 번째 확인 후 5초 이내에 두 번째 스와이프를 기다리도록 했습니다. 이 시점에서 신호를 TV로 보내 켜거나 끕니다.

채널

센서에서 10인치 이내(단, 3인치 이내는 제외)로 스와이프하면 채널이 아래로 변경됩니다. 10인치에서 20인치 사이를 스와이프하면 채널이 변경됩니다.

볼륨

센서에서 10인치 이내(단, 3인치 이내는 제외)에 손을 대면 볼륨이 낮아집니다. 10인치에서 20인치 사이를 유지하면 볼륨이 변경됩니다. 손을 뗄 때까지 볼륨이 계속 변경됩니다(위 또는 아래).

장점 및 개선 사항:

휴대용 리모컨을 들여다보고 특정 기능에 대한 특정 키를 검색할 필요가 없습니다.

시각 장애인 및 신체 장애자를 위한 가제트(TV)를 제어하는 ​​솔루션

동일한 방식으로 모든 가전제품을 제어하는 ​​기능을 추가하여 프로젝트를 개선할 수 있습니다.

감사합니다.

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

코드

<울>
  • 코드
  • 코드C/C++
    /* Swipe Remote Control이 스케치는 초음파 거리 측정기를 사용하여 사용자의 제스처를 결정하고 주어진 명령에 따라 IR 신호를 Sony TV로 출력합니다.- High Swipe (> 10in) =Channel Up- Low Swipe =Channel Down- 하이 홀드(> 10in) =볼륨 업-로우 홀드 =볼륨 다운-커버 센서(<3in) =켜기/끄기 Vignesh Jaishankar에 의해 생성이 코드는 IRremote 라이브러리를 사용합니다(https://github.com/shirriff/Arduino-IRremote) */#include // 제어 기능 정의#define CONTROL_CH 1 // 채널 변경#define CONTROL_VOL 2 // 볼륨#define CONTROL_POW 3 // 전원#define CONTROL_UP 1#define CONTROL_DOWN -1#define DIST_MAX 20 // 최대 거리(인치), 위의 값은 무시됩니다.#define DIST_DOWN 10 // 위/아래 명령의 임계값. 더 높으면 명령은 "up"입니다. 낮으면 "down".#define DIST_POW 3 // 전원 명령에 대한 임계값, 보다 낮음 =전원 켜기/끄기// IR PINconst int irPin =3; // 이것은 라이브러리에 정의되어 있으며 이 var는 알림일 뿐입니다. 이것을 변경해도 라이브러리의 핀이 변경되지 않습니다.// 2 핀 핑 Sensorconst int pingPin =8;const int echoPin =7;// 확인 LED Pinsconst int led =13; //업/다운 디버깅을 위한 내부 LEDconst int ledR =11;const int ledG =10;const int ledB =9;// LED on timerunsigned long timer;// IR 송신기 objectIRsend irsend;// 전원 확인 플래그(두 번의 스와이프 필요 신호 보내기)boolean powerConfirmed =false;void setup() { // 직렬 통신을 초기화하고 핀을 설정합니다. Serial.begin(9600); 핀모드(LED, 출력); 핀모드(LEDR, 출력); 핀모드(LEDG, 출력); 핀모드(LEDB, 출력); 핀모드(핑핀, 출력); 핀모드(에코핀, 입력); timer =millis();}void 루프(){ // Serial.println(millis()); 긴 기간, 인치; 정수 값; // 읽기 지속 시간 확인 =doPing(); // 동작을 확인하는 타이머(현재는 전원만) if (timer &&timer <(millis() - 5000) &&(millis()> 5000)) { Serial.println("timer reset"); 타이머 =거짓; } digitalWrite(LED, LOW); setColor(0, 0, 0); // off // 시간을 거리로 변환 inches =microsecondsToInches(duration); // 최대 인치보다 작으면 작동 if (inches  DIST_MAX) { doIR(CONTROL_CH, 값); // 스와이프 } else { // 볼륨 int d =500; // 단일 볼륨 변경의 경우 첫 번째 지연 시간이 더 깁니다. // 손을 뗄 때까지 반복합니다. while (inches  DIST_DOWN) { digitalWrite(led, 높은); 반환 CONTROL_UP; } else { digitalWrite(LED, LOW); CONTROL_DOWN을 반환합니다. }}/** 올바른 IR 코드 실행*/void doIR(int control, int val){ switch(control) { case CONTROL_POW:// power Serial.println("power on / off 0xa90"); for (int i =0; i <3; i++) { setColor(255, 0, 0); irsend.sendSony(0xa90, 12); // Sony TV 전원 코드 delay(40); } 부서지다; 케이스 CONTROL_CH:setColor(0, 255, 0); // val에 따라 '채널 업/다운' 출력 if (val ==CONTROL_UP) { digitalWrite(led, HIGH); (int i =0; i <3; i++) { irsend.sendSony(0x90, 12); 지연(40); } Serial.println("채널 업 0xD00A"); } else // 아래로 { for (int i =0; i <3; i++) { irsend.sendSony(0x890, 12); 지연(40); } Serial.println("채널 다운 0x3002"); } 부서지다; 케이스 CONTROL_VOL:setColor(0, 0, 255); // val에 따라 '볼륨 업/다운' 출력 if (val ==CONTROL_UP) { digitalWrite(led, HIGH); (int i =0; i <3; i++) { irsend.sendSony(0x490, 12); 지연(40); } Serial.println("볼륨 업 0x490"); } else //down { for (int i =0; i <3; i++) { irsend.sendSony(0xC90, 12); 지연(40); } Serial.println("볼륨 다운 0xC90"); } 부서지다; }} 무효 setColor(int red, int 녹색, int blue){ analogWrite(ledR, red); analogWrite(LEDG, 녹색); analogWrite(ledB, 파란색);}긴 doPing(){ digitalWrite(pingPin, LOW); 지연 마이크로초(2); 디지털 쓰기(핑핀, 높음); 지연 마이크로초(5); 디지털 쓰기(핑핀, 낮음); return pulseIn(echoPin, HIGH);}long microsecondsToInches(long microseconds){ return microseconds / 74 / 2;}long microsecondsToCentimeters(long microseconds){ return microseconds / 29 / 2;}

    회로도

    flickmote_9Gx3XNFHEp.fzz

    제조공정

    1. ARDUINO를 사용하는 초음파 부상 기계
    2. Arduino 스파이봇
    3. 수제 TV B-Gone
    4. 마스터 시계
    5. 나를 찾기
    6. Arduino Power
    7. Tech-TicTacToe
    8. Arduino Quadruped
    9. Arduino 조이스틱
    10. Arduino가 있는 미니 레이더