Tabla de contenido:
Video: Robot Mecanum Omni Wheels con motores paso a paso GRBL Arduino Shield: 4 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:41
Mecanum Robot: un proyecto que quería construir desde que lo vi en el blog de mecatrónica de Dejan: howtomechatronics.com
Dejan realmente hizo un buen trabajo cubriendo todos los aspectos del hardware, la impresión 3D, la electrónica, el código y una aplicación para Android (inventor de la aplicación del MIT)
Este es un gran proyecto de overhoul que actualiza todas las habilidades de un creador.
Tenía pocos cambios que hacer en los proyectos.
No quería usar el PCB hecho a medida que usaba, sino un viejo escudo GRBL que tenía en casa.
Quería usar BlueTooth
Entonces:
Suministros
Escudo Arduino Uno + GRBL
Motores paso a paso
Módulo HC-06 BlueTooth
Batería de 12V Lipo
Paso 1: hardware
Imprimí las ruedas y las ensamblé como aquí:
4 motores paso a paso conectados al chasis (en mi caso, un cajón sin usar boca abajo)
Enrute los cables a la parte superior del robot.
Paso 2: Electrónica
Usé mi módulo HC-06 BT, La parte más difícil fue configurar el escudo GRBL para que funcione con 4 motores paso a paso, ya que no hay una buena guía para eso, Es necesario colocar puentes como se puede ver en la imagen adjunta, para que la salida "Herramienta" del escudo también controle un motor paso a paso. también es necesario poner el puente "Habilitar"
cableado de los 4 steppers y eso es todo.
También suministré la energía de baterías de 12 V, dos estaciones, una para Arduino y otra para GRBl Shield
Paso 3: Código Arduino
/ * === Arduino Mecanum Wheels Robot === Control de teléfono inteligente a través de Bluetooth por Dejan, www. HowToMechatronics.com Bibliotecas: RF24, www. HowToMechatronics.com AccelStepper por Mike McCauley: www. HowToMechatronics.com
* / / * 2019-11-12 Gilad Meller (https://www.keerbot.com - modificar el código para que funcione con el escudo del motor arduino GRBL Los motores paso a paso en el escudo están mapeados como (paso / dirección): 2/5 3 / 6 4/7 12/13 usando el controlador A4988 12V
El código de Dejan usa SoftwareSerial y el mío usará los pines estándar RX, TX (0, 1) del Arduino Uno Nota: Asegúrese de cambiar los pines RX TX cuando suba el boceto al arduino o la carga fallará.
* / #include
// Defina los motores paso a paso y los pines que usará AccelStepper LeftBackWheel (1, 2, 5); // (Tipo: controlador, PASO, DIR) - Stepper1 AccelStepper LeftFrontWheel (1, 3, 6); // Stepper2 AccelStepper RightBackWheel (1, 4, 7); // Stepper3 AccelStepper RightFrontWheel (1, 12, 13); // Stepper4
int entranteByte = 0, c; // para datos seriales entrantes int wheelSpeed = 100;
configuración vacía () {Serial.begin (9600); // abre el puerto serie, establece la velocidad de datos en 9600 bps // Establece los valores de semilla iniciales para los steppers LeftFrontWheel.setMaxSpeed (600); LeftBackWheel.setMaxSpeed (600); RightFrontWheel.setMaxSpeed (600); RightBackWheel.setMaxSpeed (600);
}
void loop () {if (Serial.available ()> 0) {// leer el byte entrante: entranteByte = Serial.read ();
c = entranteByte; switch (c) {caso 71: Serial.println ("Recibí Girar a la derecha W"); Gira a la derecha(); rotura; caso 65: Serial.println ("Recibí Rotate left Q"); girar a la izquierda(); rotura; caso 1: Serial.println ("Recibí BK / LFT"); moveRightBackward (); rotura; caso 2: Serial.println ("Recibí BK"); mover hacia atrás(); rotura; caso 3: Serial.println ("Recibí BK / RT"); moveRightBackward (); rotura; caso 4: Serial.println ("Recibí IZQUIERDA"); moveSidewaysLeft ();
rotura; caso 5: Serial.println ("Recibí STOP"); stopMoving (); rotura; caso 6: Serial.println ("Recibí RT"); moveSidewaysRight (); rotura; caso 7: Serial.println ("Recibí FWD / LFT"); moveLeftForward (); rotura; caso 8: Serial.println ("Recibí FWD"); moveForward (); rotura; caso 9: Serial.println ("Recibí FWD / RT"); moveRightForward (); rotura; predeterminado: Serial.print ("No es un comando"); Serial.println (entranteByte, DEC); rotura; } } //mover hacia atrás(); moveRobot ();
}
void moveRobot () {LeftBackWheel.runSpeed (); LeftFrontWheel.runSpeed (); RightFrontWheel.runSpeed (); RightBackWheel.runSpeed (); }
void moveForward () {LeftFrontWheel.setSpeed (wheelSpeed); LeftBackWheel.setSpeed (wheelSpeed); RightFrontWheel.setSpeed (wheelSpeed); RightBackWheel.setSpeed (wheelSpeed); } void moveBackward () {LeftFrontWheel.setSpeed (-wheelSpeed); LeftBackWheel.setSpeed (-wheelSpeed); RightFrontWheel.setSpeed (-wheelSpeed); RightBackWheel.setSpeed (-wheelSpeed); } void moveSidewaysRight () {LeftFrontWheel.setSpeed (wheelSpeed); LeftBackWheel.setSpeed (-wheelSpeed); RightFrontWheel.setSpeed (-wheelSpeed); RightBackWheel.setSpeed (wheelSpeed); } void moveSidewaysLeft () {LeftFrontWheel.setSpeed (-wheelSpeed); LeftBackWheel.setSpeed (wheelSpeed); RightFrontWheel.setSpeed (wheelSpeed); RightBackWheel.setSpeed (-wheelSpeed); } void rotateLeft () {LeftFrontWheel.setSpeed (-wheelSpeed); LeftBackWheel.setSpeed (-wheelSpeed); RightFrontWheel.setSpeed (wheelSpeed); RightBackWheel.setSpeed (wheelSpeed); } void rotateRight () {LeftFrontWheel.setSpeed (wheelSpeed); LeftBackWheel.setSpeed (wheelSpeed); RightFrontWheel.setSpeed (-wheelSpeed); RightBackWheel.setSpeed (-wheelSpeed); } void moveRightForward () {LeftFrontWheel.setSpeed (wheelSpeed); LeftBackWheel.setSpeed (0); RightFrontWheel.setSpeed (0); RightBackWheel.setSpeed (wheelSpeed); } void moveRightBackward () {LeftFrontWheel.setSpeed (0); LeftBackWheel.setSpeed (-wheelSpeed); RightFrontWheel.setSpeed (-wheelSpeed); RightBackWheel.setSpeed (0); } void moveLeftForward () {LeftFrontWheel.setSpeed (0); LeftBackWheel.setSpeed (wheelSpeed); RightFrontWheel.setSpeed (wheelSpeed); RightBackWheel.setSpeed (0); } void moveLeftBackward () {LeftFrontWheel.setSpeed (-wheelSpeed); LeftBackWheel.setSpeed (0); RightFrontWheel.setSpeed (0); RightBackWheel.setSpeed (-wheelSpeed); } void stopMoving () {LeftFrontWheel.setSpeed (0); LeftBackWheel.setSpeed (0); RightFrontWheel.setSpeed (0); RightBackWheel.setSpeed (0); }
Paso 4: Appinventor
Una nueva aplicación appinventor con una funcionalidad diferente y más simple (sin grabaciones)
Por favor envíe msg y yo se lo envío - la carga falla.
Cuídate.
Recomendado:
Motor paso a paso controlado por motor paso a paso sin microcontrolador (V2): 9 pasos (con imágenes)
Motor paso a paso controlado por motor paso a paso sin microcontrolador (V2): En uno de mis Instructables anteriores, le mostré cómo controlar un motor paso a paso usando un motor paso a paso sin un microcontrolador. Fue un proyecto rápido y divertido, pero vino con dos problemas que se resolverán en este Instructable. Entonces, ingenio
Modelo de locomotora controlada por motor paso a paso - Motor paso a paso como codificador rotatorio: 11 pasos (con imágenes)
Locomotora modelo controlada por motor paso a paso | Motor paso a paso como codificador rotatorio: en uno de los Instructables anteriores, aprendimos cómo usar un motor paso a paso como codificador rotatorio. En este proyecto, ahora usaremos ese motor paso a paso convertido en codificador rotatorio para controlar un modelo de locomotora usando un microcontrolador Arduino. Entonces, sin fu
Motor paso a paso controlado por motor - Motor paso a paso como codificador rotatorio: 11 pasos (con imágenes)
Motor paso a paso controlado por motor paso a paso | Motor paso a paso como codificador rotatorio: ¿Tiene un par de motores paso a paso por ahí y quiere hacer algo? En este Instructable, usemos un motor paso a paso como codificador rotatorio para controlar la posición de otro motor paso a paso usando un microcontrolador Arduino. Así que sin más preámbulos, vamos a
Brazo de robot de bricolaje de 6 ejes (con motores paso a paso): 9 pasos (con imágenes)
Brazo de robot DIY de 6 ejes (con motores paso a paso): Después de más de un año de estudios, prototipos y varios fallos logré construir un robot de hierro / aluminio con 6 grados de libertad controlado por motores paso a paso, la parte más difícil fue el diseño porque Quería lograr 3 objetivos fundamentales
Robot FPV Rover controlado por Wi-Fi (con Arduino, ESP8266 y motores paso a paso): 11 pasos (con imágenes)
Robot FPV Rover controlado por Wi-Fi (con Arduino, ESP8266 y motores paso a paso): este instructivo muestra cómo diseñar un rover robótico de dos ruedas controlado remotamente a través de una red wi-fi, usando un Arduino Uno conectado a un módulo Wi-Fi ESP8266 y dos motores paso a paso. El robot se puede controlar desde un navegador de Internet ordinario