Table des matières:
Vidéo: Robot Mecanum Omni Wheels avec moteurs pas à pas GRBL Arduino Shield : 4 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:07
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
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
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é:
Bras robotique 3D avec moteurs pas à pas contrôlés par Bluetooth : 12 étapes
Bras robotique 3D avec moteurs pas à pas contrôlés par Bluetooth : Dans ce tutoriel, nous verrons comment fabriquer un bras robotique 3D, avec des moteurs pas à pas 28byj-48, un servomoteur et des pièces imprimées en 3D. Carte de circuit imprimé, code source, schéma électrique, code source et de nombreuses informations sont inclus sur mon site Web
Testeur de moteurs à courant continu et pas à pas : 12 étapes (avec photos)
Testeur de moteurs à courant continu et pas à pas : Il y a quelques mois, un de mes amis m'a donné quelques imprimantes à jet d'encre et photocopieuses mises au rebut. J'étais intéressé par la récolte de leurs blocs d'alimentation, câbles, capteurs et surtout moteurs. J'ai récupéré ce que j'ai pu et j'ai voulu tester tous les pa
Moteur pas à pas contrôlé par moteur pas à pas - Moteur pas à pas en tant qu'encodeur rotatif : 11 étapes (avec photos)
Moteur pas à pas contrôlé par moteur pas à pas | Moteur pas à pas en tant qu'encodeur rotatif : Vous avez quelques moteurs pas à pas qui traînent et vous voulez faire quelque chose ? Dans ce Instructable, utilisons un moteur pas à pas comme encodeur rotatif pour contrôler la position d'un autre moteur pas à pas à l'aide d'un microcontrôleur Arduino. Alors sans plus tarder, allons-y
Bras de robot bricolage 6 axes (avec moteurs pas à pas): 9 étapes (avec photos)
Bras de Robot DIY 6 Axes (avec Moteurs Pas à Pas) : Après plus d'un an d'études, de prototypes et d'échecs divers j'ai réussi à construire un robot fer/aluminium avec 6 degrés de liberté contrôlé par des moteurs pas à pas. La partie la plus difficile était la conception car Je voulais atteindre 3 objectifs fondamentaux
Robot FPV Rover contrôlé par Wi-Fi (avec Arduino, ESP8266 et moteurs pas à pas) : 11 étapes (avec photos)
Robot rover FPV contrôlé par Wi-fi (avec Arduino, ESP8266 et moteurs pas à pas): cette instructable montre comment concevoir un rover robotique à deux roues télécommandé sur un réseau wi-fi, à l'aide d'un Arduino Uno connecté à un module Wi-fi ESP8266 et deux moteurs pas à pas. Le robot peut être contrôlé à partir d'un navigateur Internet ordinaire