Los robots están jugando un papel importante en la automatización en todos los sectores como construcción, militar, médico, fabricación, etc. Después de hacer algunos robots básicos como el robot seguidor de línea, el robot controlado por computadora, etc., hemos desarrollado este robot controlado por gestos basado en acelerómetro mediante el uso de arduino uno. En este proyecto hemos utilizado el movimiento de la mano para conducir el robot. Para ello hemos utilizado un acelerómetro que trabaja sobre la aceleración.
Componentes requeridos
- Arduino UNO
- Motores DC
- Acelerómetro
- HT12D
- HT12E
- Par RF
- Controlador de motor L293D
- Batería de 9 voltios
- Conector de bateria
- cable USB
- Chasis robot
Par de RF:
Un robot controlado por gestos se controla usando la mano en lugar de cualquier otro método como botones o joystick. Aquí solo se necesita mover la mano para controlar el robot. Se utiliza un dispositivo de transmisión en su mano que contiene un transmisor de RF y un medidor de acelerómetro. Esto transmitirá el comando al robot para que pueda realizar la tarea requerida, como avanzar, retroceder, girar a la izquierda, girar a la derecha y detenerse. Todas estas tareas se realizarán mediante un gesto con la mano.
Aquí el componente más importante es el acelerómetro. El acelerómetro es un dispositivo de medición de aceleración de 3 ejes con un rango de + -3g. Este dispositivo se fabrica utilizando un sensor de superficie de polisilicio y un circuito de acondicionamiento de señal para medir la aceleración. La salida de este dispositivo es de naturaleza analógica y proporcional a la aceleración. Este dispositivo mide la aceleración estática de la gravedad cuando lo inclinamos. Y da un resultado en forma de movimiento o vibración.
De acuerdo con la hoja de datos de la estructura micromaquinada de superficie de polisilicio adxl335 colocada encima de la oblea de silicio. Los resortes de polisilicio suspenden la estructura sobre la superficie de la oblea y brindan resistencia contra las fuerzas de aceleración. La deflexión de la estructura se mide mediante un condensador diferencial que incorpora placas fijas independientes y placas unidas a la masa en movimiento. Las placas fijas son impulsadas por ondas cuadradas desfasadas de 180 °. La aceleración desvía la masa en movimiento y desequilibra el capacitor diferencial dando como resultado una salida de sensor cuya amplitud es proporcional a la aceleración. A continuación, se utilizan técnicas de demodulación sensibles a la fase para determinar la magnitud y dirección de la aceleración.
Pin Descripción del acelerómetro
- El suministro de Vcc de 5 voltios debe conectarse en este pin.
- X-OUT Este pin proporciona una salida analógica en la dirección x
- Y-OUT Este pin proporciona una salida analógica en la dirección y
- Z-OUT Este pin proporciona una salida analógica en la dirección z
- Tierra GND
- ST Este pin se usa para configurar la sensibilidad del sensor
Diagrama de circuito y explicación
Robot controlado por gestos se divide en dos secciones:
- Parte del transmisor
- Parte del receptor
En la parte del transmisor se utiliza un acelerómetro y una unidad transmisora de RF. Como ya hemos comentado, el acelerómetro proporciona una salida analógica, por lo que aquí debemos convertir estos datos analógicos en digitales. Para este propósito, hemos utilizado un circuito comparador de 4 canales en lugar de cualquier ADC. Al establecer el voltaje de referencia, obtenemos una señal digital y luego aplicamos esta señal al codificador HT12E para codificar datos o convertirlos en forma serial y luego enviar estos datos mediante el uso de un transmisor de RF al entorno.
En el extremo del receptor, hemos utilizado un receptor de RF para recibir datos y luego los hemos aplicado al decodificador HT12D. Este decodificador IC convierte los datos en serie recibidos en paralelo y luego los lee usando arduino. De acuerdo con los datos recibidos, manejamos el robot utilizando dos motores de CC en dirección de avance, retroceso, izquierda, derecha y parada.
Trabajando
El robot controlado por gestos se mueve de acuerdo con el movimiento de la mano cuando colocamos el transmisor en nuestra mano. Cuando inclinamos la mano hacia el frente, el robot comienza a moverse hacia adelante y continúa avanzando hasta que se da el siguiente comando.
Cuando inclinamos la mano hacia atrás, el robot cambia de estado y comienza a moverse hacia atrás hasta que se da otra orden.
Cuando lo inclinamos hacia el lado izquierdo, el robot gira a la izquierda hasta el siguiente comando.
Cuando inclino la mano en el robot del lado derecho se volvió a la derecha.
Y para detener el robot, mantenemos la mano estable.
Diagrama de circuito para la sección del transmisor
Diagrama de circuito para la sección del receptor
El circuito de este robot controlado por gestos con la mano es bastante simple. Como se muestra en los diagramas esquemáticos anteriores, se utiliza un par de RF para la comunicación y se conecta con arduino. El controlador del motor está conectado a arduino para ejecutar el robot. El pin de entrada 2, 7, 10 y 15 del controlador del motor está conectado al pin digital arduino número 6, 5, 4 y 3 respectivamente. Aquí hemos utilizado dos motores de CC para impulsar el robot en los que un motor está conectado en el pin de salida del controlador de motor 3 y 6 y otro motor está conectado en 11 y 14. También se usa una batería de 9 voltios para alimentar el controlador de motor para impulsar motores.
Explicación del programa
En el programa, en primer lugar, hemos definido pines de salida para motores.
Y luego, en la configuración, hemos dado las instrucciones para fijar.
Después de esto, leemos la entrada usando 'instrucción if' y realizamos una operación relativa.
Hay un total de cinco condiciones para este robot controlado por gestos que se indican a continuación:
Movimiento de la mano |
Entrada para Arduino desde gesto |
||||
Lado |
D3 |
D2 |
D1 |
D0 |
Dirección |
Estable |
0 |
0 |
0 |
0 |
Detener |
Inclinar a la derecha |
0 |
0 |
0 |
1 |
Girar a la derecha |
Inclina hacia la izquierda |
0 |
0 |
1 |
0 |
Girar a la izquierda |
Inclinarse hacia atrás |
1 |
0 |
0 |
0 |
Hacia atrás |
Inclinar el frente |
0 |
1 |
0 |
0 |
Adelante |
Hemos redactado el programa completo de acuerdo con las condiciones de la tabla anterior. A continuación se muestra el código completo.