Etape 33 : Robot Test moteur - qui a mal tourné
Alors regardez cette vidéo et voir si vous pouvez dire quoi comme mal tourné...Video - premier essai -
1 - les moteurs tournent à très rapide
2 - le mosfet contrôle du moteur de taille est grillée
Vidéo 2 - essayez de tourner et rallumez
1 - les moteurs tournent à très rapide
Vous voyez pourquoi ?
J’ai couru tous les vitesses comme sorties, alors nous obtenons juste ensemble 0 Volt ou 18Volts va au moteur.
Donc là où il y a quelque chose comme ceci :
digitalWrite (RightArmSpeed, Fast) ;
Il devrait être ;
analogWrite (RightArmSpeed, Fast) ;
la commande analogWrite envoie ce qui est fondamentalement une tension variable comprise entre 0 et 5V (avec 0 = 0V ; et 255 = 5V)-ce qui traverse le mosfet donne une puissance avec 0 = 0V ; et 255 = 18V.
Si - dessous le code est fixé. Les valeurs de vitesse sont maintenant dans la plage 0-255 et peuvent être modifiés dans la partie supérieure du code.
2 - le mosfet contrôle du moteur de taille est grillée
Deux problèmes ici - la première est que nous ne sommes pas correctement contrôle alimentation électrique du moteur - mais qui doit maintenant être fixée. L’autre problème est qu’il est vraiment difficile de soulever l’arrière du robot comme ça - alors que le moteur tire beaucoup de courant pour obtenir le robot à se plier à la taille. Nous devrions être en mesure de résoudre ce problème mécaniquement par : construire un meilleur lien ; ajout de ressorts ou poids d’équilibre le haut du corps, ou autre chose... Je me sens comme il y aura un pas long sur la fixation de cette partie. Je vais ignorer le problème pour l’instant.
Arduino Code pour contrôler la vitesse avec analogWrite function / / /
Direction basses = vers le corps ou Foward
Direction = haut du corps ou vers l’arrière
int RightArmDir = 2 ;
int RightArmSpeed = 3 ;
int LeftArmDir = 4 ;
int LeftArmSpeed = 5 ;
int WaistDir = 7 ;
int WaistSpeed = 6 ;
int RightWheelDir = 8 ;
int RightWheelSpeed = 9 ;
int LeftWheelDir = 12 ;
int LeftWheelSpeed = 10 ;
int Slow = 100 ;
int Fast = 200 ;
int t1 = 500 ;
int t2 = 100 ;
int WheelSpeed = 120 ;
void setup() {}
pinMode (RightArmDir, sortie) ;
pinMode (RightArmSpeed, sortie) ;
pinMode (LeftArmDir, sortie) ;
pinMode (LeftArmSpeed, sortie) ;
pinMode (WaistDir, sortie) ;
pinMode (WaistSpeed, sortie) ;
pinMode (RightWheelDir, sortie) ;
pinMode (RightWheelSpeed, sortie) ;
pinMode (LeftWheelDir, sortie) ;
pinMode (LeftWheelSpeed, sortie) ;
Serial.Begin(9600) ;
}
void loop() {}
TESTS DE BASE / /
Serial.println ("TESTS de base") ;
Bras droit de test
Serial.println (« bras droit ») ;
Bras droit vers le haut
Serial.println("up") ;
digitalWrite (RightArmDir, élevé) ;
analogWrite (RightArmSpeed, lent) ;
retard (t1) ;
analogWrite(RightArmSpeed,Fast) ;
retard (t2) ;
analogWrite(RightArmSpeed,Slow) ;
Delay(T1) ;
analogWrite (RightArmSpeed, 0) ;
Delay(T1) ;
Bras droit vers le bas
Serial.println("Down") ;
digitalWrite (RightArmDir, basse) ;
analogWrite (RightArmSpeed, lent) ;
retard (t1) ;
analogWrite (RightArmSpeed, Fast) ;
retard (t2) ;
analogWrite (RightArmSpeed, lent) ;
Delay(T1) ;
analogWrite (RightArmSpeed, 0) ;
Delay(T1) ;
Test de bras gauche
Serial.println ("bras gauche") ;
Bras gauche vers le haut
Serial.println("up") ;
digitalWrite (LeftArmDir, élevé) ;
analogWrite (LeftArmSpeed, lent) ;
retard (t1) ;
analogWrite (LeftArmSpeed, Fast) ;
retard (t2) ;
analogWrite (LeftArmSpeed, lent) ;
retard (t1) ;
analogWrite (LeftArmSpeed, 0) ;
Delay(T1) ;
Bras gauche vers le bas
Serial.println("Down") ;
digitalWrite (LeftArmDir, basse) ;
analogWrite (LeftArmSpeed, lent) ;
retard (t1) ;
analogWrite (LeftArmSpeed, Fast) ;
retard (t2) ;
analogWrite(LeftArmSpeed,Slow) ;
Delay(T1) ;
analogWrite (LeftArmSpeed, 0) ;
Delay(T1) ;
Test de taille
Serial.println("Waist") ;
Baissez-vous
Serial.println("Down") ;
digitalWrite (WaistDir, élevé) ;
analogWrite (WaistSpeed, lent) ;
retard (2 * t1) ;
analogWrite (WaistSpeed, Fast) ;
retard (4 * t2) ;
analogWrite (WaistSpeed, lent) ;
Delay(2 * T1) ;
analogWrite (WaistSpeed, 0) ;
Delay(T1) ;
Plier vers le haut
Serial.println("up") ;
digitalWrite (WaistDir, basse) ;
analogWrite (WaistSpeed, lent) ;
retard (2 * t1) ;
analogWrite (WaistSpeed, Fast) ;
retard (4 * t2) ;
analogWrite (WaistSpeed, lent) ;
Delay(2 * T1) ;
analogWrite (WaistSpeed, 0) ;
Delay(T1) ;
Test roue droite
Serial.println ("la roue droite") ;
Roue droite Foward'
Serial.println("foward") ;
digitalWrite (RightWheelDir, élevé) ;
analogWrite (RightWheelSpeed, WheelSpeed/2) ;
retard (t1) ;
analogWrite (RightWheelSpeed, WheelSpeed) ;
retard (t2) ;
analogWrite (RightWheelSpeed, WheelSpeed/2) ;
Delay(T1) ;
analogWrite (RightWheelSpeed, 0) ;
Delay(T1) ;
Roue droite en arrière
Serial.println("backward") ;
digitalWrite (RightWheelDir, basse) ;
analogWrite (RightWheelSpeed, WheelSpeed/2) ;
retard (t1) ;
analogWrite (RightWheelSpeed, WheelSpeed) ;
retard (t2) ;
analogWrite (RightWheelSpeed, WheelSpeed/2) ;
Delay(T1) ;
analogWrite (RightWheelSpeed, 0) ;
Delay(T2) ;
Test roue gauche
Serial.println ("roue gauche") ;
Foward roue gauche
Serial.println("foward") ;
digitalWrite (LeftWheelDir, élevé) ;
analogWrite (RightWheelSpeed, WheelSpeed/2) ;
retard (t1) ;
analogWrite (RightWheelSpeed, WheelSpeed) ;
retard (t2) ;
analogWrite (RightWheelSpeed, WheelSpeed/2) ;
Delay(T1) ;
analogWrite (LeftWheelSpeed, 0) ;
Delay(T1) ;
Roue gauche arrière
Serial.println("backward") ;
digitalWrite (LeftWheelDir, basse) ;
analogWrite (RightWheelSpeed, WheelSpeed/2) ;
retard (t1) ;
analogWrite (RightWheelSpeed, WheelSpeed) ;
retard (t2) ;
analogWrite (RightWheelSpeed, WheelSpeed/2) ;
Delay(T1) ;
analogWrite (LeftWheelSpeed, 0) ;
Delay(T1) ;
TESTS DE FANTAISIE / /
Serial.println (« TESTS de fantaisie ») ;
Toucher le sol
Toucher le ciel
Position d’origine
Tourner à gauche
Tourner à droite
Aller Foward
Serial.println ("allez Foward") ;
digitalWrite (LeftWheelDir, élevé) ;
digitalWrite(RightWheelDir,HIGH) ;
analogWrite (RightWheelSpeed, WheelSpeed/2) ;
analogWrite (LeftWheelSpeed, WheelSpeed/2) ;
retard (t1) ;
analogWrite (RightWheelSpeed, WheelSpeed) ;
analogWrite (LeftWheelSpeed, WheelSpeed/2) ;
retard (t2) ;
analogWrite (RightWheelSpeed, WheelSpeed/2) ;
analogWrite (LeftWheelSpeed, WheelSpeed/2) ;
Delay(T1) ;
analogWrite (LeftWheelSpeed, 0) ;
analogWrite (RightWheelSpeed, 0) ;
Delay(T1) ;
Revenir en arrière
Danse de robot
Serial.println("REPEAT...") ;
} / / Direction basses = vers le corps ou Foward
Direction = haut du corps ou vers l’arrière
int RightArmDir = 2 ;
int RightArmSpeed = 3 ;
int LeftArmDir = 4 ;
int LeftArmSpeed = 5 ;
int WaistDir = 7 ;
int WaistSpeed = 6 ;
int RightWheelDir = 8 ;
int RightWheelSpeed = 9 ;
int LeftWheelDir = 12 ;
int LeftWheelSpeed = 10 ;
int Slow = 100 ;
int Fast = 200 ;
int t1 = 500 ;
int t2 = 100 ;
int WheelSpeed = 120 ;
void setup() {}
pinMode (RightArmDir, sortie) ;
pinMode (RightArmSpeed, sortie) ;
pinMode (LeftArmDir, sortie) ;
pinMode (LeftArmSpeed, sortie) ;
pinMode (WaistDir, sortie) ;
pinMode (WaistSpeed, sortie) ;
pinMode (RightWheelDir, sortie) ;
pinMode (RightWheelSpeed, sortie) ;
pinMode (LeftWheelDir, sortie) ;
pinMode (LeftWheelSpeed, sortie) ;
Serial.Begin(9600) ;
}
void loop() {}
TESTS DE BASE / /
Serial.println ("TESTS de base") ;
Bras droit de test
Serial.println (« bras droit ») ;
Bras droit vers le haut
Serial.println("up") ;
digitalWrite (RightArmDir, élevé) ;
analogWrite (RightArmSpeed, lent) ;
retard (t1) ;
analogWrite(RightArmSpeed,Fast) ;
retard (t2) ;
analogWrite(RightArmSpeed,Slow) ;
Delay(T1) ;
analogWrite (RightArmSpeed, 0) ;
Delay(T1) ;
Bras droit vers le bas
Serial.println("Down") ;
digitalWrite (RightArmDir, basse) ;
analogWrite (RightArmSpeed, lent) ;
retard (t1) ;
analogWrite (RightArmSpeed, Fast) ;
retard (t2) ;
analogWrite (RightArmSpeed, lent) ;
Delay(T1) ;
analogWrite (RightArmSpeed, 0) ;
Delay(T1) ;
Test de bras gauche
Serial.println ("bras gauche") ;
Bras gauche vers le haut
Serial.println("up") ;
digitalWrite (LeftArmDir, élevé) ;
analogWrite (LeftArmSpeed, lent) ;
retard (t1) ;
analogWrite (LeftArmSpeed, Fast) ;
retard (t2) ;
analogWrite (LeftArmSpeed, lent) ;
retard (t1) ;
analogWrite (LeftArmSpeed, 0) ;
Delay(T1) ;
Bras gauche vers le bas
Serial.println("Down") ;
digitalWrite (LeftArmDir, basse) ;
analogWrite (LeftArmSpeed, lent) ;
retard (t1) ;
analogWrite (LeftArmSpeed, Fast) ;
retard (t2) ;
analogWrite(LeftArmSpeed,Slow) ;
Delay(T1) ;
analogWrite (LeftArmSpeed, 0) ;
Delay(T1) ;
Test de taille
Serial.println("Waist") ;
Baissez-vous
Serial.println("Down") ;
digitalWrite (WaistDir, élevé) ;
analogWrite (WaistSpeed, lent) ;
retard (2 * t1) ;
analogWrite (WaistSpeed, Fast) ;
retard (4 * t2) ;
analogWrite (WaistSpeed, lent) ;
Delay(2 * T1) ;
analogWrite (WaistSpeed, 0) ;
Delay(T1) ;
Plier vers le haut
Serial.println("up") ;
digitalWrite (WaistDir, basse) ;
analogWrite (WaistSpeed, lent) ;
retard (2 * t1) ;
analogWrite (WaistSpeed, Fast) ;
retard (4 * t2) ;
analogWrite (WaistSpeed, lent) ;
Delay(2 * T1) ;
analogWrite (WaistSpeed, 0) ;
Delay(T1) ;
Test roue droite
Serial.println ("la roue droite") ;
Roue droite Foward'
Serial.println("foward") ;
digitalWrite (RightWheelDir, élevé) ;
analogWrite (RightWheelSpeed, WheelSpeed/2) ;
retard (t1) ;
analogWrite (RightWheelSpeed, WheelSpeed) ;
retard (t2) ;
analogWrite (RightWheelSpeed, WheelSpeed/2) ;
Delay(T1) ;
analogWrite (RightWheelSpeed, 0) ;
Delay(T1) ;
Roue droite en arrière
Serial.println("backward") ;
digitalWrite (RightWheelDir, basse) ;
analogWrite (RightWheelSpeed, WheelSpeed/2) ;
retard (t1) ;
analogWrite (RightWheelSpeed, WheelSpeed) ;
retard (t2) ;
analogWrite (RightWheelSpeed, WheelSpeed/2) ;
Delay(T1) ;
analogWrite (RightWheelSpeed, 0) ;
Delay(T2) ;
Test roue gauche
Serial.println ("roue gauche") ;
Foward roue gauche
Serial.println("foward") ;
digitalWrite (LeftWheelDir, élevé) ;
analogWrite (RightWheelSpeed, WheelSpeed/2) ;
retard (t1) ;
analogWrite (RightWheelSpeed, WheelSpeed) ;
retard (t2) ;
analogWrite (RightWheelSpeed, WheelSpeed/2) ;
Delay(T1) ;
analogWrite (LeftWheelSpeed, 0) ;
Delay(T1) ;
Roue gauche arrière
Serial.println("backward") ;
digitalWrite (LeftWheelDir, basse) ;
analogWrite (RightWheelSpeed, WheelSpeed/2) ;
retard (t1) ;
analogWrite (RightWheelSpeed, WheelSpeed) ;
retard (t2) ;
analogWrite (RightWheelSpeed, WheelSpeed/2) ;
Delay(T1) ;
analogWrite (LeftWheelSpeed, 0) ;
Delay(T1) ;
TESTS DE FANTAISIE / /
Serial.println (« TESTS de fantaisie ») ;
Toucher le sol
Toucher le ciel
Position d’origine
Tourner à gauche
Tourner à droite
Aller Foward
Serial.println ("allez Foward") ;
digitalWrite (LeftWheelDir, élevé) ;
digitalWrite(RightWheelDir,HIGH) ;
analogWrite (RightWheelSpeed, WheelSpeed/2) ;
analogWrite (LeftWheelSpeed, WheelSpeed/2) ;
retard (t1) ;
analogWrite (RightWheelSpeed, WheelSpeed) ;
analogWrite (LeftWheelSpeed, WheelSpeed/2) ;
retard (t2) ;
analogWrite (RightWheelSpeed, WheelSpeed/2) ;
analogWrite (LeftWheelSpeed, WheelSpeed/2) ;
Delay(T1) ;
analogWrite (LeftWheelSpeed, 0) ;
analogWrite (RightWheelSpeed, 0) ;
Delay(T1) ;
Revenir en arrière
Danse de robot
Serial.println("REPEAT...") ;
}