Programmation ULTIMATE 2.0 mBlock: comment contrôler à distance le robot? – Kit de robot ultime – Mbot Robot


Bonjour @tec_support,

Merci pour votre aide.

Si j’obtiens, j’aimerais quand même savoir quelle est la différence entre les deux options: Vitesse / Puissance
Le code Arduino pour le bloc Speed-rpm ajoute des paramètres liés au PID.

Encoder_1.setPulse(8);
Encoder_1.setRatio(46.67);
Encoder_1.setPosPid(1.8,0,1.2);
Encoder_1.setSpeedPid(0.18,0,0);

Puis-je supposer que:

  • Puissance = simple pwd / rapport cyclique (serait-ce comme un simple moteur à courant continu (sans encodeur optique)?
  • Vitesse = PID (~ feedback …) pour pwd
    ???

La chose PID est-elle la raison pour laquelle les moteurs sont des moteurs de codage optique? Afin qu’ils puissent permettre un contrôle de mouvement exactement reproductible?

Désolé s’il semble que je n’ai aucune idée de ce dont je parle … c’est assez proche :clin d'œil:

void setup(){
//Set Pwm frequency to 8KHz
TCCR1A = _BV(WGM10);
TCCR1B = _BV(CS11) | _BV(WGM12);
TCCR2A = _BV(WGM21) | _BV(WGM20);
TCCR2B = _BV(CS21);

// ***	
// Pre-defined parametres, no manual control ***

// Set encoder motor Port1 		=== POWER block
attachInterrupt(Encoder_1.getIntNum(), isr_process_encoder1, RISING);

// Set encoder motor Port1 to 	=== SPEED-RPM block --> PID
Encoder_1.setPulse(8);
Encoder_1.setRatio(46.67);
Encoder_1.setPosPid(1.8,0,1.2);
Encoder_1.setSpeedPid(0.18,0,0);

// *** 
// User values ***

// Set encoder motor Port1 to 	=== SPEED 180 RPM --> PID
Encoder_1.runSpeed(180);

// Set encoder motor Port1 to	=== POWER to 100 (PWM)
Encoder_1.setTarPWM(100);

// Set encoder motor Port1 to	=== Rotate 1000 degrees at SPEED 180 RPM --> PID
Encoder_1.move(1000,abs(180));

// Set encoder motor Port1 to	=== POWER to 0 = STOP (PWM)
Encoder_1.setTarPWM(0);

}

Merci.

Stefan

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *