4.2.9 Coche Robot Mecanum 4WD Controlado por Gamepad Micro:bit

4.2.9.1 Resumen

Img En este proyecto, controlamos un Coche Robot Mecanum 4WD mediante una placa de control de gamepad y una placa Micro:bit. El joystick permite que el coche avance, retroceda, gire a la izquierda y a la derecha; el botón C mueve el coche lateralmente a la izquierda, el D lateralmente a la derecha, el E acelera y la tecla F desacelera (con un rango de velocidad de 20 a 95). Cuando no se realiza ninguna operación, el coche permanece estacionario.

Img

4.2.9.2 Piezas Requeridas

Img

Img

Img

Placa micro:bit V2 (suministrada por el usuario) ×1

Smart Gamepad micro:bit (ensamblado) ×1

Pila AAA (suministrada por el usuario) ×4

Img

Img

Kit KS4034 (suministrado por el usuario) ×1

Pila 18650 (suministrada por el usuario) ×2

Para obtener información detallada sobre el Coche Robot Mecanum 4WD**(KS4034)**, visite aquí.

4.2.9.3 Diagrama de Cableado

Consulte las instrucciones de cableado en la documentación del KS4034 para conectar el Coche Robot Mecanum 4WD y el gamepad mediante comunicación por radio. No se requiere cableado físico entre ambos; ambos dispositivos se comunican de forma inalámbrica.

4.2.9.4 Flujo del Código

⚠️ Tenga en cuenta que la siguiente librería debe importarse al programar los códigos del coche: https://github.com/keyestudio2019/mecanum_robot_v2.

Flujo de código del gamepad:

Img

Flujo de código del coche:

Img

4.2.9.5 Código de Prueba

Código completo del gamepad:

Img

Img

Breve explicación:

① Inicialice el grupo de radio en 1 con una fuerza de transmisión de señal de 7; muestre un icono de corazón y establezca las variables SEND_INTERCAL en 100 y BTN_DEBOUNCE_TIME en 20.

Img

② Establezca la variable currentCmd (variable de contenido de instrucción) en el carácter ‘0’ y asigne los valores de los ejes X e Y del joystick a las variables rockerX y rockerY, respectivamente.

Img

③ Compruebe si el joystick o el botón tienen una operación correspondiente. Si ocurre una operación, establezca la variable currentCmd (variable de contenido de instrucción) en el carácter correspondiente (R/U/L/D/A/B/Z/X); de lo contrario, déjela sin cambios.

Img

④ Compruebe si currentCmd (variable de contenido de instrucción) difiere de lastCmd (almacena el contenido de la instrucción anterior). Si es así, envíe currentCmd, establezca lastCmd en currentCmd y espere un retraso especificado.

Img

Código completo del coche:

Img

Img

Breve explicación:

① Inicialice el grupo de radio en 1 con una fuerza de transmisión de señal de 7; muestre un icono de corazón y establezca las variables SPEED en 50, MIN_SPEED en 20 y MAX_speed en 95.

Img

② Reciba el valor de comando enviado por la radio y almacene el comando en la variable item.

Img

③ Basándose en los comandos de caracteres (U/L/D/R/A/B) recibidos por item, llame a las funciones correspondientes para controlar el coche para que avance, retroceda, gire a la izquierda, a la derecha, y se desplace a la izquierda y a la derecha.

Img

④ Basándose en el comando de carácter (Z/X) recibido por item, el coche se acelera o desacelera en consecuencia.

Durante la aceleración, la velocidad se establece en el mínimo de SPEED+5 y MAX_speed (para evitar exceder MAX_speed); durante la desaceleración, la velocidad se establece en el máximo de SPEED-5 y MIN_speed (para evitar caer por debajo de MIN_speed).

Img

⑤ Aquí se definen seis funciones de control de movimiento del vehículo:

  • car_back controla los cuatro motores para que giren en sentido inverso para retroceder;

  • car_forward controla los cuatro motores para que giren hacia adelante para avanzar;

  • car_left logra el giro a la izquierda del coche configurando los motores del lado izquierdo hacia atrás y los motores del lado derecho hacia adelante;

  • car_right logra el giro a la derecha configurando los motores del lado derecho hacia atrás y los motores del lado izquierdo hacia adelante;

  • car_left_move y car_right_move permiten el desplazamiento lateral izquierdo y derecho mediante la rotación coordinada de los motores diagonales.

Todas las funciones toman la variable SPEED como parámetro de velocidad del motor.

Img

4.2.9.6 Resultado de la Prueba

Img

Después de grabar el código, inserte la placa micro:bit en la ranura del gamepad (pilas instaladas), y active el interruptor a “ON”.

Cargando estos códigos en dos placas Micro:bit del gamepad y del coche respectivamente, y asegúrese de que las baterías tengan suficiente carga. Inserte la Micro:bit correspondiente en el gamepad y el coche y active los interruptores de ambos a “ON”.

Ahora puede controlar el coche con el gamepad: empuje el joystick hacia arriba y el coche avanzará, empújelo hacia abajo para retroceder, a la izquierda lo girará a la izquierda y a la derecha lo girará a la derecha. También podemos controlar la aceleración (presione el botón E) / desaceleración (presione el botón F) del coche, el desplazamiento lateral izquierdo © y el desplazamiento lateral derecho (D). Tenga en cuenta que el rango de velocidad es de 20 a 95.

Img

Consejo: Si no hay respuesta en la placa, presione el botón de reinicio en la parte posterior de la placa micro:bit.

Img