Съдържание:

Робот Controlado Con Cualquier Control De Tv: 6 стъпки
Робот Controlado Con Cualquier Control De Tv: 6 стъпки

Видео: Робот Controlado Con Cualquier Control De Tv: 6 стъпки

Видео: Робот Controlado Con Cualquier Control De Tv: 6 стъпки
Видео: AUTO A CONTROL REMOTO CON SENSOR 2024, Ноември
Anonim
Image
Image
Робот Controlado Con Cualquier Control De Tv
Робот Controlado Con Cualquier Control De Tv

La idea de este instructable es ensenar a controller un robot con el control de cualquier televisor. Muchas veces creemos que necesitamos materiales complicados para hacer un robot, sin embargo, la realidad es que con materiales sumamente populares, como el control de un televisor, podemos crear grandes cosas. En este proyecto се обяснява с como programar un robot para que se pueda controlar de manera automatica y manual; ademas, se explica la teoria necesaria de las tecnologias que se utilizaron. Este proyecto es ideal para principiantes o intermedios que se sientan relativamente comodos entendiendo codigo. A lo largo de este instructable se va a enseñar como controlly servo-motores de rotacion continua, activar LED RGB, utilizar sensore infrarojos para decodificar se; ales infrarojas y programar en Arduino. Todo el codigo necesario va a estar claramente comentado y los invito a hacer cualquier cambio que vean comfortente. Sin mas que decir, aqui les dejo un video de muestra.

Стъпка 1: Материали

Материали
Материали

Además de una computadora with el software of Arduino descargado, vamos a necesitar la librería IRremote (Si no están seguros de como descargar una librería para Arduino vean este tutorial) y estos materiales:

  1. 1x Arduino UNO
  2. 2 x Servos de rotación continua, pequeños preferiblemente /\ /\ aunque en este proyecto се използва с помощта на SM-S4303R, препоръчан за MG90D.
  3. 1 x Рецептор за инфрачервен диод (TSOP382)/\/\ a 1.95 $ bg
  4. 1 x LED RGB/\/\ a 1.95 bg
  5. 1 x Contensor de baterías 3xAA/\/\ a 1.5 $ bg
  6. 1 x Adaptador tipo jack a batería de 9v/\/\ a 2.95 bg
  7. 1 x Batería de 9v y 3x baterías AA
  8. Превключвател за включване/изключване (по избор)/\/\ a 0.95 bg
  9. Кабел. Es más sencillo con jumpers, aunque habría que cortar uno de los bordes.

Materiales Chasis

Esto puede quedar a la creatividad de ustedes y el tipo de robot que quieran hacer. De cualquier forma, el chasis que use para este proyecto fue diseñado para otro proyecto por el Dr. Tomas de Camino Beck y yo no tuve ninguna relación con el diseño. Aquí les compareto un link al instructable en el cual aparecen los archivos del chasis que usa este proyecto y aquí están los archivos en formato stl. Si quieren usar el mismo chasis que yo además necesitarán amarras de plástico como las que se usan para cerrar las maletas.

Стъпка 2: Chasis

Chasis
Chasis
Chasis
Chasis
Chasis
Chasis

Si quieren usar el mismo chasis que yo, estos son los pasos. Използвайте las fotos para guiarse.

1. Una vez con las piezas diseñadas por rl Dr. Tomas de Camino en mano, podemos pegar el velcro en la parte de arriba.

2. Abajo de donde pegaron el vecro, amarren la caja de baterías y la batería de 9v al chasis utilizando las amarras de plástico.

3. Ahora sigue amarrrar losservos. Asegurence que estén orientados hacia el mismo lado y estén lo más paralelo posible uno de otro. Además, verifiquen que los servos estén ajustando la caja de baterías.

4. Con los servos ya amarrados, enrollen el cable delservo alrededor del mismo servo.

5. Peguen un pedazo de velcro debajo del arduino y, utilizando el velcro, peguen el arduino al chasis.

Стъпка 3: Conexiones

Конексиони
Конексиони
Конексиони
Конексиони
Конексиони
Конексиони

1. Електрическият RGB е свързан с лос борове 9, 10 и 11. Ел пинът е свързан с конектадо с 5 pin del arduino. (Ver foto # 1)

2. Електронен рецептор за инфрачервена връзка, който е свързан към земята, дел arduino, ел. Пин за 5V и цифров цифров пин. En este código се използва el pin número 6. (Вер снимка 2)

3. Los dos cable de tierra de los servomotores van conectados al cable de tierra de la caja de baterías. Además, este cable de tierra tiene que ir conectado a algún pin ground del arduino. De la misma manera, los cable de corriente de los servomotores van conectados al cable de corriente de la caja de baterías. Esta corriente no es necesaria conectarla al arduino.

4. En este proyecto los cable de señal de los motores van conectados a los pines 3 y 4 del Arduino.

5. Допълнително включен агрегат и превключване на кабел de la batería de 9v. Para hacerlo solo tienen que cortar el cable de tierra de este cable y conectarlo por medio del switch. (Ver foto 3)

*** Бележки ***

La caja de baterias es exclusivamente para los servomotores, ya que consumen mucha bateria.

Que tanto duren las baterias va a depender del tipo de motores que usen.

Алтернативно подриански кортар la cabezera de los кабели дел серво мотор, грешно ембарго, en mi caso decidi консервара y conectarle unos кабели tal y como се muestra en las камера.

Препоръчително е que solden las conexiones. Aquí un excelente tutorial que pueden utilizar si no estan seguros de como hacerlo.

Стъпка 4: Приемник Infra Rojo

Приемник Infra Rojo
Приемник Infra Rojo
Приемник Infra Rojo
Приемник Infra Rojo
Приемник Infra Rojo
Приемник Infra Rojo

Primero que todo Qué es Infra Rojo?

Infra-Rojo /debajo del Rojo /

Básicamente, la luz infrarroja es una luz con una longitud de onda кмет a la que se encuentra en el espectro видим y por ende непобедим al ojo humano. Es muy poco común encontrarla de forma natural, por lo que се използва mucho en aplicaciones electrónicas. El TSOP382 tiene filtros que logran que solo luz de 980 nanómetros pase, por lo cual un ambiente con mucha luz no nos afectara en nada. Además, nuestro código esta diseñado para solo tomar en cuenta luz que este parpadeando на 38,5 kHz, tal y como los контролира телевизията. (Ver Foto # uno)

¿Добре, y como funciona la comunicación?

El TSOP382 е нормално абиерто, está diseñado de esta forma para que cada vez que reciba alguna señal se corte el pulso que mandamos al microprocesador. En nuestro código, una vez que el pulso se corta, se empieza el protocolo de comunicación. Con 2.4 ms de que el este recibiendo un pulso (recibiendo LOW en el Arduino) se entiende que se quiere empezar una comunicación. Los ceros се представя с пулс от 0,6 ms, los unos con pulsos 2,4, y entre cada pulso сено 0,6 ms от descanso. (Ver Foto # dos)

Lo que estamos consiguiendo es una cadena de números binaria única para cada botún que presionamos. Накрая, podemos usar estos unos y ceros para sabre cual botón del control se presiono y actuar según correnda.

Nuestro código funciona con el equivalente del numero binario en decimal. La table de la foto numero tres muestra el numero binario y el equivalente decimal de los botones de mi control. Es importante notar que aunque normalmente todos los controles envían el mismo numero binario para cada botón, algunos controles varian. Si este es el caso con su control, o simplemente quieren agregar otros botones, pueden correr el código de abajo para obtener el numero decimal que съответства на определено botón de su control. En este ejemplo se imprime en el monitor сериен el numero десетичен que съответства al botón que presionamos. Recuerden que necesitan la librería IRremote descargada y en la carpeta correcta.

#включва

IRrecv сензор (6);

decode_results resultados;

void setup () {

Serial.begin (9600);

sensor.enableIRIn (); // habilitamos "sensor" para recibir

}

void loop () {

if (unrecv.decode (& results)) {// la función.decode nos devuelve 1 si se decodificó correctamente o 0 si no.

Serial.println (резултати); // NOS DA EL NUMERO QUE NECESITAMOS

unrecv.resume (); // Подготовка на сензора за рецибиране на силата на доблестта

}

}

Стъпка 5: ¿Como Usar Servomotores?

Como Usar Servomotores?
Como Usar Servomotores?

Los servomotores son sumamente fácil de manipular rápidamente y controlar con Exactitud por lo que son ideales para este tipo de proyectos. Lo primero que hay que sabre es que existen dos kategorías principales que difieren ampliamente entre los servomotores, los de 180 grados y los de rotación continua o 360 grados. Aunque, usan la misma libraría de Arduino y se programan de la misma manera, responden различен al código.

Primero un ejemplo:

1) #включване

Esta librería ya viene instalada cuando descargamos el IDE de Arduino, lo lo cual solo tenemos que incluirla al código para poder usarla.

2) Серво мотор1;

Creamos un objeto que vamos a usar para controler el motor.

3) void setup () {

мотор1.прикачване (9);

}

Con la función attach () asignamos un pin para usar con nuestro servomotor. Естествен щифт е свързан с кабел за свързване на кабел от сенален сервомотор.

4) void loop () {

motor1.write (180); // un lado velocidad maxima

забавяне (3000); // que corra por tres segundos

motor1.write (0); // otro lado velocidad maxima

забавяне (3000); // que corra por tres segundos

// con 90 grados detenemos el motor

motor1.write (90); // si no se detiene hay que calibrarlo girando el tornillo ubicado a un costado del servomotor

забавяне (3000); // esperamos sin mover el motor tres segundos

}

Aquí podemos observar las diferencias entre un servomotor de 180 grados y uno de 360. En un servomotor de 180 grados al usar la función напишете movemos el motor a el grado que pongamos en el parámetro, pero en uno de 360 grados al poner 90 en el parámetro detenmos el sensor y entre más nos alejemos del 90 más rápido nos movemos hacia uno u otra dirección. Por ejemplo, si quisiéramos mover el motor de este código lentamente hacia un lado podriamos escribir motor1.write (105) y si quisiéramos moverlo lo más rápido posible a la dirección opuesta habría que escribir motor1.write (0).

Стъпка 6: Código

Кодиго
Кодиго

Ya tenemos casi todo listo, solo nos falta preparar el "cerebro" de nuestro robot. La mejor forma de entender el cdigo es viendo cada detalle en el codigo. Por eso, aquí les adjunto el código que escribí. Cada parte está sumamente comentada para intentar explicar todo de la mejor manera y el código en si está escrito buscando claridad principalmente. Cual duda o sugerencia, no duden en dejar un comentario.

Препоръчано: