Étape 1: Faire une plate-forme
La plate-forme, que j’ai utilisé pour construire ce robot a été la plate-forme Cherokey 4 roues motrices. La première étape consistait à obtenir au robot de se déplacer – ce fut la partie facile.
La grande chose au sujet de ce kit est qu’elle comprend tout ce dont vous avez besoin pour mettre en mouvement – il a son propre ensemble de moteurs et de chauffeurs et d’un microcontrôleur Romeo V2, donc tout ce que vous devez faire est d’ajouter des modules supplémentaires pour faire faire ce que vous voulez qu’il fasse. Pour mettre sur pied la plate-forme, vous aurez besoin souder des fils pour chaque moteur et puis fil d’eux dans les bornes à vis sur la carte de conducteur moteur (M1, M2, M3 et M4). Afin de connecter le microcontrôleur de la trousse, vous devez connecter D4, D5, D6, D7 broches sur la plate-forme Cherokey aux broches 4, 5, 6, 7 sur le microcontrôleur avec les fils de raccordement (ou vous pouvez souder si vous préférez une solution permanente). Vous êtes maintenant prêt à programmer le microcontrôleur à mettre en mouvement ! Il y a un exemple de code inclus dans la page DFRobot Wiki, qui peut être trouvée ici.
Dans l’exemple de code, il existe quatre fonctions de base contrôlées par des facteurs de production essentiels dans le moniteur de la série. Appuyez sur « w » pour aller de l’avant, appuyez sur « a » de virer à gauche, appuyez sur « d » pour tourner à droite, appuyez sur « x » pour arrêter, appuyez sur « z » d’imprimer « Bonjour » dans le moniteur de la série. Il s’agit d’un bon test pour voir si la plate-forme fonctionne comme vous voulez, et toutes les directions de moteurs sont correctes. Si vous avez des problèmes avec la direction du moteur, vous pouvez essayer de modifier les axes de direction haut ou bas dans le code, ou pour une solution low-tech, vous pouvez simplement inverser la polarité des fils dans les bornes de raccordement moteur sur la plateforme Cherokey.
Le code que j’ai utilisé est le suivant :
<p>int E1 = 5; //M1 Speed Control<br>int E2 = 6; //M2 Speed Control int M1 = 4; //M1 Direction Control int M2 = 7; //M1 Direction Control void stop(void) //Stop { digitalWrite(E1,0); digitalWrite(M1,LOW); digitalWrite(E2,0); digitalWrite(M2,LOW); } void advance(char a,char b) //Move forward { analogWrite (E1,a); //PWM Speed Control digitalWrite(M1,HIGH); analogWrite (E2,b); digitalWrite(M2,HIGH); } void back_off (char a,char b) //Move backward { analogWrite (E1,a); digitalWrite(M1,LOW); analogWrite (E2,b); digitalWrite(M2,LOW); } void turn_L (char a,char b) //Turn Left { analogWrite (E1,a); digitalWrite(M1,LOW); analogWrite (E2,b); digitalWrite(M2,HIGH); } void turn_R (char a,char b) //Turn Right { analogWrite (E1,a); digitalWrite(M1,HIGH); analogWrite (E2,b); digitalWrite(M2,LOW); } void setup(void) { int i; for(i=4;i<=7;i++) pinMode(i, OUTPUT); Serial.begin(19200); //Set Baud Rate Serial.println("Run keyboard control"); digitalWrite(E1,LOW); digitalWrite(E2,LOW); } void loop(void) { if(Serial.available()){ char val = Serial.read(); if(val != -1) { switch(val) { case 'w'://Move Forward advance (255,255); //move forward in max speed break; case 's'://Move Backward back_off (255,255); //move back in max speed break; case 'a'://Turn Left turn_L (100,100); break; case 'd'://Turn Right turn_R (100,100); break; case 'z': Serial.println("Hello"); break; case 'x': stop(); break; } } else stop(); } }</p>