Haga un auto RC que pueda controlar con cualquier control remoto: 6 pasos

Haga un auto RC que pueda controlar con cualquier control remoto: 6 pasos

Tabla de contenido:

Anonim

En estas instrucciones, te mostraré cómo puedes hacer un auto fácil que puedes hacer tú mismo.

Lo mejor de este coche es que, con una ligera modificación, puede controlarlo con casi cualquier control remoto que pueda imaginar.

Por ejemplo, puedes controlarlo usando:

  • Una aplicación (que te mostraré pronto;))
  • Un control remoto RC (que estoy usando aquí)
  • Un control remoto por infrarrojos

¡Empecemos!

Suministros:

Paso 1: Piezas

Para hacer el coche, necesitarás varias piezas.

  • Un kit de coche, con los motores y el cuadro.
  • Un puente en H para controlar el motor. (velocidad y dirección)
  • A arduino, estoy usando un mega aquí, pero puedes usar cualquier tipo de arduino
  • Algún tipo de control remoto (estoy usando el Spektrum DX6i, pero puedes usar casi cualquier control remoto)

Opcional:

  • Un convertidor de 12V a 6V (solo si está usando una batería de 12V en lugar de las celdas 4AA)
  • Un módulo Bluetooth HC-05 (para controlar el automóvil para un teléfono o PC)
  • Otros accesorios

Paso 2: Qué está incluido en el kit de coche

Con el kit de coche consigues muchas piezas. Son:

  • 4 ruedas con neumáticos de goma.
  • Acrílico superior y placa inferior.
  • 4 Motores con cajas de engranajes, por lo que el eje de salida gira más lento que el eje del motor, pero con más torque.
  • Caja de baterías para baterías 4AA, no la estoy usando porque prefiero usar una batería lipo
  • 2 cables para cada motor (rojo y negro)
  • Suficientes tornillos y tuercas para juntarlos y algunos adicionales para montar el controlador
  • 6 espaciadores entre la placa superior e inferior.
  • 8 soportes de motor, 2 para cada motor
  • 4 discos de encoder para si quieres medir la velocidad del motor.
  • Un destornillador
  • Unas instrucciones de compilación

Paso 3: Montar el coche

El primer paso es pelar el papel protector de todas las piezas de acrílico. (Placa superior e inferior, soportes de motor, discos de codificador)

Después de eso, puede comenzar a ensamblar el chasis usando las imágenes en las instrucciones. Deja la placa superior fuera.

Después de eso, puede acortar los cables y soldarlos transversalmente a los cuatro motores. (Como se ve en la última foto)

Paso 4: Instalación de la electrónica

Primero coloque el puente H entre los 4 motores y conéctelo a los motores.

Después de eso, puede conectar el regulador de voltaje, si se usa, de lo contrario, conecte la batería al puente H, a VCC y GND.

También agregue 2 cables (rojo y azul) para alimentar el arduino. Puede utilizar el regulador de 5V en el puente H.

También agregue cables de puente hembra a macho o hembra a hembra a los pines de control del puente H.

Si está utilizando una batería lipo, conecte un conector de batería a la entrada del regulador de voltaje.

Ahora atornille la placa superior. Y monte el arduino encima.

Conecte el cable rojo y azul a 5V y GND del arduino.

También conecte los 4 pines de control desde el puente H al pin 10 - 13.

Esta es la parte para el coche. La siguiente parte es para el control remoto. Si utiliza otro tipo (bluetooth, …), debe cambiar aquí.

Para un controlador RC, simplemente conecte 5V y GND a una conexión de 5V y GND del arduino. También conecte los canales 2 y 3 (para conducir) a los pines 3 y 4.

Eso es todo por el lado del hardware. Ahora vamos al lado del software.

Paso 5: Arduino Software

El software del arduino no es tan difícil. He agregado comentarios, pero si algo no está claro, hágamelo saber.

#define Motor1_Dir 13 // Pin de control de dirección del motor 1 #define Motor2_Dir 11 // Pin de control de dirección del motor #define Motor1_PWM 12 // Pin de control de velocidad del motor 1 #define Motor2_PWM 10 // Pin de control de velocidad del motor 2 int canal 4 = {0, 0, 0, 0}; // Una variable para guardar los valores del control remoto int pwm 4 = {0, 0, 0, 0}; // Una variable para guardar los valores remotos de -255 a 255 int prev_pwm 4 = {0, 0, 0, 0}; // Una variable para verificar si el estado cambió int pwm_m1 = 0; // Una variable para guardar la velocidad del primer motor int pwm_m2 = 0; // Una variable para guardar la velocidad del segundo motor int reversa = 0; // Una variable para verificar si el auto necesita conducir hacia atrás int prev_reverse = 0; // Una variable para verificar si el estado de reversa cambió los pines const. Int. 4 = {2, 3, 4, 5}; // Una variable constante para los pines de la configuración de anulación remota () {pinMode (2, ENTRADA); // Ch1 pinMode (3, ENTRADA); // Ch2 pinMode (4, ENTRADA); // Ch3 pinMode (5, ENTRADA); // Ch4 pinMode (6, ENTRADA); // Ch5 pinMode (7, ENTRADA); // Ch6 pinMode (Motor1_Dir, OUTPUT); pinMode (Motor2_Dir, OUTPUT); pinMode (Motor1_PWM, SALIDA); pinMode (Motor2_PWM, SALIDA); digitalWrite (Motor1_Dir, LOW); // Motor 1 forward digitalWrite (Motor2_Dir, LOW); // Motor 2 adelante} void loop () {for (int i = 1; i <3; i ++) // verifique los canales 2 y 3 (de 0 a 3) {channel i = pulseIn (pins i, ALTO, 25000); // Lea el canal de pulso canal i = (canal i == 0)? 990: canal i; // Si hay un error, el valor es 0 / ************************************** *** * Igual que este pero más corto: * if (canal i == 0) * {* canal i = 990; *} * else * {* channel i = channel i; *} ***************************************** / pwm i = map (canal i, 990, 2000, -255, 255); // Convertir de (990 - 2000) a (-255 - 255) si (i == 2) // Si el canal 3 está marcado (movimiento vertical) {reversa = (pwm i <2)? 1: 0; // Adelante o atrás pwm i = (pwm i <0)? (255 + pwm i): pwm i; // si es hacia atrás, en lugar de (-255 a 0) => (0 a 255)} if ((prev_pwm i + 4 <pwm i) || (prev_pwm i - 4> pwm i)) // Si hay un movimiento mínimo de 4 en una dirección {/ ** Define motor 1 speed ** / pwm_m1 = pwm 2 - pwm 1; pwm_m1 = (pwm_m1 <0)? 0: pwm_m1; // Mínimo 0, no negativo pwm_m1 = (pwm_m1> 255)? 255: pwm_m1; // Máximo 255, no más / ** Definir velocidad del motor 2 ** / pwm_m2 = pwm 2 + pwm 1; pwm_m2 = (pwm_m2 <0)? 0: pwm_m2; // Mínimo 0, no negativo pwm_m2 = (pwm_m2> 255)? 255: pwm_m2; // Máximo 255, no más analogWrite (Motor1_PWM, pwm_m1); // Velocidad de escritura en los motores analogWrite (Motor2_PWM, pwm_m2); prev_pwm i = pwm i; // Coloque aquí para verificar el movimiento mínimo de 4 (ver arriba)} if (reverse! = Prev_reverse) // Si se cambia la dirección {digitalWrite (Motor1_Dir, reverse); // Escríbelo en el puente H digitalWrite (Motor2_Dir, reverse); // Escríbelo en el puente H prev_reverse = reverse; // Definir para verificación posterior}} retraso (100); // duerme un poco

Así que ese es todo el código.

Paso 6: Reanudar

Así que eso es todo, has hecho un auto que puedes controlar con casi todos los controles remotos.

Disfruta haciéndolo y manejándolo!

Si te ha gustado, vota y comparte.

Si tienes alguna idea para mí qué hacer a continuación, ¡compártela!

Si tiene preguntas, hágales saber en los comentarios.

¡Y un feliz año Nuevo!

Laurens