Buenas tardes, seguimos haciendo robots y juguetes. Hoy, el siguiente paso es la modificación de mi modelo de tanque. Instrucciones de fabricación legibles aqui
La esencia de la modificación es cambiar la forma de gestión. Esta vez, para el control usaremos un puntero láser. Más precisamente, el tanque viajará detrás del punto láser. El tanque determinará la ubicación del punto a través de fotoresistores. La lista de lo necesario es similar a la lista de arriba hecho en casapero no del todo:
- Tamiya 70168 doble engranaje
- Conjunto de rodillos y orugas Tamiya 70100
- Tamiya 70157
- Contrachapado 10 mm (una pieza pequeña)
- Arduino Pro Mini 5V AtMega 328
- DRV 8833
- Photoresistors 5506 4 pcs.
- USB-UART para firmware Arduino
- LED rectangulares rojos y verdes
- LED blancos de 5 mm 2 piezas.
- Resistencias 3x 150 Ohms
- Baterías Li-ion 18650
- Conectores Dupont papá-mamá
- Alambres de diferentes colores.
- soldadura
- Resina
- soldador
- Pernos 3x40, 3x20, tuercas y arandelas para ellos.
- 2x10 tornillos para madera
- Taladros de madera de 3 mm y 6 mm.
- Sierra de traste eléctrica
- pintura acrílica
Paso 1 Producción de partes de tanques.
Detallado proceso de fabricación de tanques descrito en casero.
Repetirlo no tiene sentido. Por lo tanto, el primer y segundo paso de la completa casera anterior.
Paso 2 Instalación de fotoresistores.
Necesitaremos los fotoresistores más comunes, son fáciles de comprar en la tienda de radio:
A continuación, antes de instalar las pistas, debe preparar lugares para los fotoresistores e insertarlos allí. Entonces, tenemos cuatro fotoresistores, dos en la parte delantera, dos en la parte posterior. Todos estarán ubicados en la parte inferior de la caja, en las esquinas. Retirándose a 5 mm de cada lado, haga dos agujeros para las patas del fotorresistor. La distancia entre los agujeros es de 4 mm. Puede usar el taladro del diámetro más pequeño o simplemente perforar la chapa con un punzón. Una vez hecho esto, inserte los fotoresistores. Comencemos con el frente:
Después de insertar los fotoresistores en la madera contrachapada, suelde los cables a los contactos y al conector Dupont de la madre. Aislamos el lugar de la soldadura. Puede usar cinta aislante o, como yo, poner aislamiento en el cable más grueso.
Y en la parte de atrás también hacemos:
A continuación se verá así:
Ensamblamos el caso más de acuerdo con las instrucciones, cuyo enlace se indica arriba.
Para aumentar la sensibilidad de los fotoresistores al punto láser y eliminar las interferencias innecesarias, deben pintarse con un marcador rojo o pintura. Lo principal es que la luz penetra a través del recubrimiento. No pintes completamente sobre ellos.
De esta manera, aumentaremos la sensibilidad de los sensores al punto rojo del láser.
Paso 3 Electricista
En el cuarto paso, las instrucciones para hacer que el tanque describa en detalle qué y cómo conectarse. Hacemos todo de acuerdo con esto, con la excepción de conectar el módulo Bluetooth. No lo necesitamos a él. Conectamos uno de los contactos de los fotoresistores a GND. El segundo está conectado a Arduino según el esquema:
Delantero derecho a A0 (Pin14)
Delantero izquierdo a A1 (Pin15)
Trasero izquierdo a A2 (Pin16)
Trasero derecho a A3 (Pin17)
Como herramienta de control, utilizaremos el puntero láser chino habitual con un haz rojo:
Paso 4 Edición de un boceto.
Para editar y completar el boceto, debe descargar el IDE de Arduino. Vamos al oficial sitio del proyecto y descargue la última versión.
No se necesitan bibliotecas adicionales.
Los fotoresistores están lejos de ser el dispositivo de medición más preciso. Sus características, en la práctica, dependen de una gran cantidad de factores. Por lo tanto, para un funcionamiento adecuado, es necesario ajustar cada fotorresistencia. Corregiremos las lecturas editando el boceto usando el IDE de Arduino y el monitor de puerto. Abre el boceto:
Comencemos con las resistencias fotográficas frontales. En la parte inferior, descomente las tres líneas para los sensores frontales:
//Serial.print(senLF); // Descomentar para ajustar los fotorresistores frontales
//Serial.print ("");
//Serial.println(senRF);
Y también debe agregar una pausa para tener tiempo de verlos. Por lo tanto, descomenta esta línea también:
// retraso (500);
Rellena el boceto. Ponemos el tanque sobre la mesa, cuando se ilumina la habitación con una lámpara de araña común, la lámpara de mesa no debe encenderse. Y abra el monitor de puerto Arduino IDE. Bajo iluminación normal, las lecturas deben ser superiores a 500, y al mismo tiempo aproximadamente iguales para ambos sensores. Tratemos de mover el puntero láser frente a la nariz del tanque. Las indicaciones deben variar. Cuanto más cerca esté el punto, más pequeños deberían ser los números. Deben estar en el rango de 80 (en la proximidad máxima del punto) a 500 (a una distancia de aproximadamente 2-3 cm.).
Para ajustar, use las variables en el boceto:
int corLF = 0; // Variables de corrección, frontal izquierda
int corRF = 30; // Delantero derecho
Las variables de corrección pueden ser positivas (agregadas a las lecturas del sensor) o negativas (restadas de las lecturas). Cambiando estas variables, rellene nuevamente el boceto y vea que los indicadores están en los rangos que necesitamos.
Ahora haga lo mismo con los fotoresistores traseros. Para hacer esto, comente las líneas de los sensores frontales y descomente las siguientes líneas:
//Serial.print(senLB); // No comentar para ajustar los fotoresistores traseros
//Serial.print ("");
//Serial.println(senRB);
Una pausa debe dejarse sin comentar. Realizamos las mismas mediciones, solo que ahora con fotoresistores en la parte posterior. Y escribe las variables de corrección:
int corLB = 0; // trasero izquierdo
int corRB = 35; // trasero derecho
Para dejar en claro cómo funciona todo. El sensor delantero izquierdo controla el movimiento de la pista derecha hacia adelante, y el sensor delantero derecho controla la pista izquierda hacia adelante, y así sucesivamente. Las lecturas del sensor se ajustan de acuerdo con las siguientes fórmulas:
senLF = (analogRead (senLFPin) + corLF); // delantero izquierdo
senRF = (analogRead (senRFPin) + corRF); // Delantero derecho
senLB = (analogRead (senLBPin) + corLB); // trasero izquierdo
senRB = (analogRead (senRBPin) + corRB); // trasero derecho
Donde, senLF, senRF, senLB, sen RB - lecturas corregidas
analogRead (senLFPin), (analogRead (senRFPin), (analogRead (senLBPin), (analogRead (senRBPin) - lecturas de sensor "limpias"
colLF, colRF, corLB, corRB - variables de corrección.
Y luego las lecturas se traducen en la velocidad de rotación de la pista opuesta:
walRF = mapa (senLF, 80, 500, 100, 255);
walLF = mapa (senRF, 80, 500, 100, 255);
walRB = mapa (senLB, 80, 500, 100, 255);
walLB = mapa (senRB, 80, 500, 100, 255);
Si no puede corregir las lecturas de los sensores, cambie las lecturas máximas y mínimas a las que las pistas comienzan a moverse. Estos son los números 80 y 500 en las líneas de conversión escritas arriba.
Una vez finalizados todos los procedimientos, comente todas estas líneas y complete el boceto. Ahora el tanque viajará detrás del punto rojo del puntero láser.