Table des matières:

Robot Mecanum Omni Wheels avec moteurs pas à pas GRBL Arduino Shield : 4 étapes
Robot Mecanum Omni Wheels avec moteurs pas à pas GRBL Arduino Shield : 4 étapes

Vidéo: Robot Mecanum Omni Wheels avec moteurs pas à pas GRBL Arduino Shield : 4 étapes

Vidéo: Robot Mecanum Omni Wheels avec moteurs pas à pas GRBL Arduino Shield : 4 étapes
Vidéo: OSOYOO Mecanum Wheels Robot Car Kit for Arduino Mega2560 2024, Novembre
Anonim
Robot Mecanum Omni Wheels avec moteurs pas à pas GRBL Arduino Shield
Robot Mecanum Omni Wheels avec moteurs pas à pas GRBL Arduino Shield
Robot Mecanum Omni Wheels avec moteurs pas à pas GRBL Arduino Shield
Robot Mecanum Omni Wheels avec moteurs pas à pas GRBL Arduino Shield
Robot Mecanum Omni Wheels avec moteurs pas à pas GRBL Arduino Shield
Robot Mecanum Omni Wheels avec moteurs pas à pas GRBL Arduino Shield

Mecanum Robot - Un projet que je voulais construire depuis que je l'ai vu sur le grand blog mécatronique de Dejan: howtomechatronics.com

Dejan a vraiment fait du bon travail en couvrant tous les aspects du matériel, de l'impression 3D, de l'électronique, du code et d'une application Android (inventeur de l'application du MIT)

Il s'agit d'un grand projet de refonte qui rafraîchit toutes les compétences d'un fabricant.

J'ai eu peu de changements à faire sur les projets

Je ne voulais pas utiliser le PCB sur mesure qu'il utilisait, mais un vieux shield GRBL que j'avais à la maison.

Je voulais utiliser BlueTooth

Donc:

Fournitures

Bouclier Arduino Uno + GRBL

Moteurs pas à pas

Module Bluetooth HC-06

Batterie Lipo 12V

Étape 1: Matériel

Matériel
Matériel
Matériel
Matériel

J'ai imprimé les roues et je les ai assemblées comme ici:

Connecté 4 moteurs pas à pas au châssis (dans mon cas un tiroir inutilisé à l'envers)

Acheminer les câbles vers le haut du robot.

Étape 2: Électronique

Électronique
Électronique
Électronique
Électronique
Électronique
Électronique

J'ai utilisé mon module HC-06 BT, La partie la plus difficile a été de configurer le blindage GRBL pour qu'il fonctionne avec 4 moteurs pas à pas car il n'y a pas de bon guide pour cela, Il est nécessaire de mettre des cavaliers comme on peut le voir sur l'image ci-jointe, afin de faire en sorte que la sortie "Outil" du bouclier contrôle également un moteur pas à pas. également besoin de mettre le cavalier "Activer"

câblage des 4 steppers et c'est tout.

J'ai également fourni l'alimentation à partir de batteries 12V - deux étapes - une pour l'Arduino et une pour le GRBl Shield

Étape 3: Code Arduino

/* === Robot Arduino Mecanum Wheels === Contrôle par smartphone via Bluetooth par Dejan, www. HowToMechatronics.com Bibliothèques: RF24, www. HowToMechatronics.com AccelStepper par Mike McCauley: www. HowToMechatronics.com

*/ /* 2019-11-12 Gilad Meller (https://www.keerbot.com - modifiez le code pour qu'il fonctionne avec GRBL arduino motor shield Les moteurs pas à pas dans le shield sont mappés comme (pas/direction): 2/5 3 /6 4/7 12/13 utilisant le pilote A4988 12V

Le code de Dejan utilise SoftwareSerial et le mien utilisera les broches RX, TX standard (0, 1) de l'Arduino Uno.

*/ #comprendre

// Définir les moteurs pas à pas et les broches qui utiliseront AccelStepper LeftBackWheel(1, 2, 5); // (Type:driver, STEP, DIR) - Stepper1 AccelStepper LeftFrontWheel (1, 3, 6); // Stepper2 AccelStepper RightBackWheel (1, 4, 7); // Stepper3 AccelStepper RightFrontWheel (1, 12, 13); // Stepper4

int octet entrant = 0, c; // pour les données série entrantes int wheelSpeed = 100;

void setup() { Serial.begin(9600); // ouvre le port série, définit le débit de données à 9600 bps // définit les valeurs de départ initiales pour les steppers LeftFrontWheel.setMaxSpeed(600); LeftBackWheel.setMaxSpeed(600); RightFrontWheel.setMaxSpeed(600); RightBackWheel.setMaxSpeed(600);

}

void loop() { if (Serial.available() > 0) { // lit l'octet entrant: entrantByte = Serial.read();

c = octet entrant; switch (c) { case 71: Serial.println("J'ai reçu Rotate right W"); tourner à droite(); Pause; case 65: Serial.println("J'ai reçu Rotate left Q"); tourne à gauche(); Pause; case 1: Serial.println("J'ai reçu BK/LFT "); moveRightBackward(); Pause; case 2: Serial.println("J'ai reçu BK "); recule(); Pause; case 3: Serial.println("J'ai reçu BK/RT "); moveRightBackward(); Pause; case 4: Serial.println("J'ai reçu LEFT "); moveSidewaysLeft();

Pause; case 5: Serial.println("J'ai reçu STOP "); arrête de bouger(); Pause; case 6: Serial.println("J'ai reçu RT "); moveSidewaysRight(); Pause; case 7: Serial.println("J'ai reçu FWD/LFT "); moveLeftForward(); Pause; case 8: Serial.println("J'ai reçu FWD "); Avance(); Pause; case 9: Serial.println("J'ai reçu FWD/RT "); moveRightForward(); Pause; par défaut: Serial.print("Pas une commande "); Serial.println(incomingByte, DEC); Pause; } } //recule(); 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); }

Étape 4: Appinventeur

Une nouvelle application appinventor avec des fonctionnalités différentes et plus simples (pas d'enregistrements)

Veuillez envoyer un message et je vous l'envoie - les téléchargements échouent.

Prends soin.

Conseillé: