Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

FlickMote

Componentes e suprimentos

Sensor UltraSônico
× 1
Transmissor IR (genérico)
× 1
Cátodo comum difuso RGB
× 1
Arduino 101
× 1

Aplicativos e serviços online

Arduino IDE

Sobre este projeto




INTRODUÇÃO

O controle de eletrodomésticos e aparelhos eletrônicos por meio de um controle remoto infravermelho agora é geral. Mas a mesma tarefa de controle pode ser realizada com mais facilidade. O motivo principal para propor o novo sistema de controle remoto por gesto de mão é eliminar a necessidade de olhar para o controle remoto portátil e procurar uma tecla específica para uma função específica, principalmente para os mais antigos. Este projeto apresenta um novo sistema para controlar eletrodomésticos por meio de gestos manuais como um dispositivo de controle remoto. O projeto será referido como flickremote neste relatório. Ele usa um telêmetro ultrassônico para determinar o gesto do usuário e emite um sinal IR, Microcontrolador Developer Board Arduino 101

COMPONENTES DE HARDWARE

1. Um Arduino 101 ou uno

2. Um módulo ultrassônico HC-SR04

3. Um LED infravermelho

4. Um resistor apropriado para o seu LED infravermelho (220R)

5. Um LED RGB

6. Uma placa de ensaio e fios

COMO FUNCIONA:

Este projeto usa um telêmetro ultrassônico para determinar o gesto do usuário e envia um sinal IR para uma TV no comando dado .. A distância ou polegadas podem ser editadas no código que corresponda à sua conveniência

- Deslizamento alto (> 10 pol.) =Canal para cima

- Deslizar baixo =Canal para baixo

- Manter alto (> 10 pol.) =Aumentar o volume

- Manter baixo =diminuir o volume

- Sensor de cobertura (<3 pol.) =Liga / Desliga

Diagrama de circuito usando Fritzing:

CONSTRUÇÃO:

1. Conecte o LED IV ao pino 3 por meio de um resistor apropriado e, a seguir, conecte o cátodo ao GND.

2. Conecte o sensor ultrassônico a 5v e GND onde os pinos especificam. Conecte o pino de disparo ao pino 8 e o pino de eco ao 7. Você pode configurar esses pinos no programa

3. Conecte o LED RGB ao GND e aos pinos 11 (vermelho), 10 (verde), 9 (azul). Esses pinos também são configuráveis.

CONTROLES

Poder

Deslizar sobre o sensor em 3 polegadas fará com que o LED pisque em roxo. Esta é a confirmação de que um sinal 'liga / desliga' está pronto para ser enviado. Para evitar que ele desligue acidentalmente a TV, fiz o esboço esperar por um segundo deslize 5 segundos após o primeiro para confirmar. Neste ponto, o sinal é enviado para a TV para ligar ou desligar.

Canal

Deslizar dentro de 10 polegadas do sensor (mas não dentro de 3) fará com que o canal mude para baixo. Deslizar entre 10 e 20 polegadas fará com que o canal mude.

Volume

Segurar sua mão a 25 centímetros do sensor (mas não a 3 centímetros) fará com que o volume diminua. Segurar entre 10 e 20 polegadas fará com que o volume aumente. O volume continuará a mudar (para cima ou para baixo) até que sua mão seja removida

VANTAGENS E MELHORIAS:

Eliminará a necessidade de olhar para o controle remoto portátil e de procurar uma tecla específica para uma função específica

Uma solução para controlar o gadget (TV) para cegos e pessoas com deficiência física

O projeto pode ser melhorado adicionando mais funcionalidade para controlar todos os eletrodomésticos usando o mesmo método

OBRIGADA








Código

  • Código
Código C / C ++
 / * Swipe Remote ControlEste esboço usa um telêmetro ultrassônico para determinar o gesto do usuário e envia um sinal IR para uma TV Sony com base no comando dado.- Deslize alto (> 10in) =Canal para cima- Deslize para baixo =Canal para baixo- High hold (> 10in) =Volume Up- Low hold =Volume Down- Cover sensor (<3in) =Turn On / OffCreated by Vignesh JaishankarEste código usa a biblioteca IRremote (https://github.com/shirriff/Arduino-IRremote) * / # include  // Define as funções de controle # define CONTROL_CH 1 // Mudança de canal # define CONTROL_VOL 2 // Volume # define CONTROL_POW 3 // Power # define CONTROL_UP 1 # define CONTROL_DOWN -1 # define DIST_MAX 20 // Distância máxima em polegadas, qualquer coisa acima é ignorada. # Define DIST_DOWN 10 // Limite para comandos subir / descer. Se for mais alto, o comando é "para cima". Se inferior, "para baixo". # Define DIST_POW 3 // Limite para comando de energia, inferior a =liga / desliga // IR PINconst int irPin =3; // isso é definido na biblioteca, esta var é apenas um lembrete. ALTERAR ISTO NÃO VAI ALTERAR O PIN NA BIBLIOTECA // 2 Pin Ping Sensorconst int pingPin =8; const int echoPin =7; // LED de confirmação Pinsconst int led =13; // LED interno para depuração up / downconst int ledR =11; const int ledG =10; const int ledB =9; // LED em timerunsigned long timer; // transmissor IR objectIRsend irsend; // Sinalizador de confirmação de energia (precisa de duas passagens para enviar o sinal) boolean powerConfirmed =false; void setup () {// inicializa a comunicação serial e define os pinos Serial.begin (9600); pinMode (led, OUTPUT); pinMode (ledR, OUTPUT); pinMode (ledG, OUTPUT); pinMode (ledB, OUTPUT); pinMode (pingPin, OUTPUT); pinMode (echoPin, INPUT); timer =millis ();} void loop () {// Serial.println (millis ()); longa duração, polegadas; valor int; // Verifique a duração da leitura =doPing (); // Timer para confirmar ações (atualmente apenas energia) if (timer &&timer <(millis () - 5000) &&(millis ()> 5000)) {Serial.println ("reset do timer"); temporizador =falso; } digitalWrite (led, BAIXO); setColor (0, 0, 0); // off // converte o tempo em uma distância polegadas =microsecondsToInches (duração); // Se estiver a menos de no máximo polegadas de distância, agir se (polegadas  DIST_MAX) {doIR (CONTROL_CH, value); // deslizar} else {// volume int d =500; // o primeiro retardo é mais longo para a mudança de volume único // repita até que a mão seja removida while (inches  DIST_DOWN) {digitalWrite (led, ALTO); return CONTROL_UP; } else {digitalWrite (led, LOW); return CONTROL_DOWN; }} / ** Dispara o código IR correto * / void doIR (int control, int val) {switch (control) {case CONTROL_POW:// power Serial.println ("power on / off 0xa90"); para (int i =0; i <3; i ++) {setColor (255, 0, 0); irsend.sendSony (0xa90, 12); // Atraso do código de energia da TV Sony (40); } pausa; case CONTROL_CH:setColor (0, 255, 0); // output 'canal up / down' dependendo de val if (val ==CONTROL_UP) {digitalWrite (led, HIGH); para (int i =0; i <3; i ++) {irsend.sendSony (0x90, 12); atraso (40); } Serial.println ("canal para cima 0xD00A"); } else // down {for (int i =0; i <3; i ++) {irsend.sendSony (0x890, 12); atraso (40); } Serial.println ("canal abaixo 0x3002"); } pausa; case CONTROL_VOL:setColor (0, 0, 255); // produza 'aumentar / diminuir o volume' dependendo de val if (val ==CONTROL_UP) {digitalWrite (led, HIGH); para (int i =0; i <3; i ++) {irsend.sendSony (0x490, 12); atraso (40); } Serial.println ("aumentar o volume 0x490"); } else // down {for (int i =0; i <3; i ++) {irsend.sendSony (0xC90, 12); atraso (40); } Serial.println ("diminuir o volume 0xC90"); } pausa; }} void setColor (int vermelho, int verde, int azul) {analogWrite (ledR, vermelho); analogWrite (ledG, verde); analogWrite (ledB, azul);} long doPing () {digitalWrite (pingPin, LOW); atrasoMicrosegundos (2); digitalWrite (pingPin, HIGH); atrasoMicrosegundos (5); digitalWrite (pingPin, LOW); return pulseIn (echoPin, HIGH);} long microssegundosToInches (long microssegundos) {return microssegundos / 74/2;} long microssegundosToCentimeter (long microssegundos) {return microssegundos / 29/2;} 

Esquemas

flickmote_9Gx3XNFHEp.fzz

Processo de manufatura

  1. Máquina de LEVITAÇÃO ULTRASÔNICA Usando ARDUINO
  2. Arduino Spybot
  3. TV B-Gone caseiro
  4. Relógio mestre
  5. Encontre-me
  6. Arduino Power
  7. Tech-TicTacToe
  8. Arduino Quadruped
  9. Joystick Arduino
  10. Mini Radar com Arduino