Os robôs estão desempenhando um papel importante na automação em todos os setores como construção, militar, médico, manufatura, etc. Depois de fazer alguns robôs básicos como robô seguidor de linha, robô controlado por computador, etc., desenvolvemos este robô controlado por gesto baseado em acelerômetro usando arduino uno. Neste projeto, usamos o movimento da mão para conduzir o robô. Para isso, utilizamos acelerômetro que funciona na aceleração.
Componentes Requeridos
- Arduino UNO
- Motores DC
- Acelerômetro
- HT12D
- HT12E
- Par RF
- Motorista L293D
- Bateria de 9 volts
- Conector de bateria
- cabo USB
- Robot Chasis
RF Par:
Um robô controlado por gestos é controlado usando a mão no lugar de qualquer outro método, como botões ou joystick. Aqui, basta mover a mão para controlar o robô. Um dispositivo de transmissão é usado em sua mão, o qual contém o transmissor de RF e o acelerômetro. Isso transmitirá o comando ao robô para que ele execute as tarefas necessárias, como mover-se para frente, para trás, virar à esquerda, virar à direita e parar. Todas essas tarefas serão realizadas com gestos manuais.
Aqui, o componente mais importante é o acelerômetro. O acelerômetro é um dispositivo de medição de aceleração de 3 eixos com faixa de + -3g. Este dispositivo é feito usando sensor de superfície de polissilício e circuito de condicionamento de sinal para medir a aceleração. A saída deste dispositivo é analógica por natureza e proporcional à aceleração. Este dispositivo mede a aceleração estática da gravidade quando o inclinamos. E dá um resultado na forma de movimento ou vibração.
De acordo com a folha de dados da estrutura de superfície microusinada de polissilício adxl335 colocada no topo da pastilha de silício. As molas de polissilício suspendem a estrutura sobre a superfície do wafer e fornecem uma resistência contra as forças de aceleração. A deflexão da estrutura é medida usando um capacitor diferencial que incorpora placas fixas independentes e placas fixadas à massa móvel. As placas fixas são impulsionadas por ondas quadradas fora de fase de 180 °. A aceleração desvia a massa em movimento e desequilibra o capacitor diferencial, resultando em uma saída do sensor cuja amplitude é proporcional à aceleração. As técnicas de demodulação sensível à fase são então usadas para determinar a magnitude e a direção da aceleração.
Descrição do pino do acelerômetro
- A alimentação Vcc de 5 volts deve ser conectada neste pino.
- X-OUT Este pino fornece uma saída analógica na direção x
- Y-OUT Este pino fornece uma saída analógica na direção y
- Z-OUT Este pino fornece uma saída analógica na direção z
- GND Ground
- ST Este pino usado para definir a sensibilidade do sensor
Diagrama de Circuito e Explicação
Robô controlado por gestos é dividido em duas seções:
- Parte do transmissor
- Parte do receptor
Na parte do transmissor, um acelerômetro e uma unidade transmissora de RF são usados. Como já discutimos, o acelerômetro fornece uma saída analógica, portanto, precisamos converter esses dados analógicos em digitais. Para este propósito, usamos o circuito comparador de 4 canais no lugar de qualquer ADC. Ao definir a tensão de referência, obtemos um sinal digital e, em seguida, aplicamos esse sinal ao codificador HT12E para codificar os dados ou convertê-los para a forma serial e, em seguida, enviar esses dados usando um transmissor de RF para o ambiente.
Na extremidade do receptor, usamos o receptor RF para receber dados e depois aplicamos o decodificador HT12D. Este decodificador IC converte os dados seriais recebidos em paralelo e, em seguida, lê-os usando o arduino. De acordo com os dados recebidos, dirigimos o robô usando dois motores DC nas direções para frente, reversa, esquerda, direita e parada.
Trabalhando
O robô controlado por gestos se move de acordo com o movimento da mão conforme colocamos o transmissor em nossa mão. Quando inclinamos a mão na frente, o robô começa a se mover para frente e continua avançando até o próximo comando ser dado.
Quando inclinamos a mão para trás, o robô muda seu estado e começa a se mover para trás até que outro comando seja dado.
Quando o inclinarmos no lado esquerdo do Robot, vire à esquerda até o próximo comando.
Quando inclinamos a mão no robô do lado direito virou para a direita.
E para parar o robô, mantemos a mão estável.
Diagrama de Circuito para Seção do Transmissor
Diagrama de Circuito para Seção do Receptor
O circuito para este robô controlado por gestos manuais é bastante simples. Conforme mostrado nos diagramas esquemáticos acima, um par de RF é usado para comunicação e conectado com o arduino. O driver do motor está conectado ao Arduino para executar o robô. Os pinos de entrada 2, 7, 10 e 15 do driver do motor estão conectados ao pino digital número 6, 5, 4 e 3 do Arduino, respectivamente. Aqui nós usamos dois motores DC para acionar o robô no qual um motor está conectado no pino de saída do acionador do motor 3 e 6 e outro motor está conectado nos 11 e 14. Uma bateria de 9 volts também é usada para alimentar o acionador do motor para acionamento dos motores.
Explicação do programa
No programa, em primeiro lugar, definimos pinos de saída para motores.
E então, na configuração, demos as instruções para fixar.
Depois disso, lemos a entrada usando 'instrução if' e executamos a operação relativa.
Existem no total cinco condições para este robô controlado por gestos que são fornecidas abaixo:
Movimento de mão |
Entrada para Arduino a partir do gesto |
||||
Lado |
D3 |
D2 |
D1 |
D0 |
Direção |
Estábulo |
0 |
0 |
0 |
0 |
Pare |
Incline para a direita |
0 |
0 |
0 |
1 |
Vire à direita |
Inclinar para a esquerda |
0 |
0 |
1 |
0 |
Vire a esquerda |
Inclinar para trás |
1 |
0 |
0 |
0 |
Para trás |
Inclinar para a frente |
0 |
1 |
0 |
0 |
frente |
Escrevemos o programa completo de acordo com as condições da tabela acima. Abaixo está o código completo.