Reset Arduino

École Secondaire Monseigneur-Richard

Published on 2020-01-07

Quand nous changeons brusquement la direction (avant arrière, gauche avant, peu-importe) du joystick, l'arduino redémarre à chaque fois.  Si on regarde nos moteurs, on voit de la lumière dans le bobinage. Peut-on changer cela avec notre code et si oui, comment ?

Voici notre code:

#include <CrcLib.h>
en utilisant l'espace de noms Crc;

void setup() 
{

  CrcLib :: Initialize ();

  CrcLib :: InitializePwmOutput (CRC_PWM_5);
  CrcLib :: InitializePwmOutput (CRC_PWM_6);
  CrcLib :: InitializePwmOutput (CRC_PWM_9);
  CrcLib :: InitializePwmOutput (CRC_PWM_10);
  //Serial.println("Allo ");
}

boucle vide () 
{
  // mettez ici votre code principal, à exécuter de manière répétée:
  CrcLib :: Update (); 

  CrcLib :: MoveArcade (ANALOG :: LCHANY, ANALOG :: LCHANX, CRC_PWM_5, CRC_PWM_6, CRC_PWM_9, CRC_PWM_10);

}

EDIT:

Le code a été automatique traduit, c'est étrange.

Voici le lien vers les vidéos de la situation :

https://drive.google.com/file/d/1EicXWimK6HhYjv_xfDEDrHt7gvaG2-Ko/view?usp=sharing
https://drive.google.com/open?id=1F2Sd6n-BqqaRf-0_ILAmfz6ls2kNbWQN

EDIT:

Le code a été automatique traduit, c'est étrange.

Voici le lien vers les vidéos de la situation :

https://drive.google.com/file/d/1EicXWimK6HhYjv_xfDEDrHt7gvaG2-Ko/view?usp=sharing
https://drive.google.com/open?id=1F2Sd6n-BqqaRf-0_ILAmfz6ls2kNbWQN

EDIT:

Voici le lien du deuxième vidéo qui ne fonctionnait pas.
https://drive.google.com/file/d/1EicXWimK6HhYjv_xfDEDrHt7gvaG2-Ko/view?usp=sharing

EDIT:

Finalement le bon lien : 
https://drive.google.com/file/d/1F2Sd6n-BqqaRf-0_ILAmfz6ls2kNbWQN/view?usp=sharing

Answers

David Martin

Published on 2020-01-08

Salut! :)

Avant toute chose, je tiens à dire que ton code est bien beau et qu'il n'est pas la cause directe des comportements observés.

Lumière dans le bobinage

Les moteurs 12V utilisés dans la compétition sont des moteurs CC à balais (aussi appelés "à aimants permanents", DC brushed motor en anglais). Cette lumière est un arc électrique entre les balais (brush) et le rotor du moteur et elle est normale. Les balais utilisés dans les moteurs de cette grosseur/prix sont de simples blocs de carbones, qui comportent des irrégularités sur leur face qui est en contact avec le rotor.

Une explication plausible aux arcs observés: Les changements de sens de rotations / de vitesse brusques du rotor font "sauter" les balais. Un arc électrique se créé momentanément entre le balais et le stator, causant la lumière en question. Ces arcs électriques peuvent à la longue venir user prématurément un moteur en détériorant les balais et les contacts du rotor. Cependant, les moteurs "ne travaillent pas beaucoup" dans le cadre de la compétition (comparativement par exemple à un moteur qui roulerait 24/7), donc une usure significative n'est pas trop à craindre dans votre cas. Un moteur dont la surface de contact entre le stator et les balais est usée causera beaucoup d'arcs en roulant à une vitesse constante.

Je vous invite à rechercher le fonctionnement d'un moteur à curant continu pour en savoir plus! Un bon point de départ: https://www.roboteq.com/index.php/87-products/417-how-brushed-motors-work

Redémarrage du contrôleur

Une investigation plus poussée est requise, mais ma première hypothèse est que l'appel de courant des moteurs (inrush current) cause le problème.

Un changement brusque de direction entraîne un changement rapide et important du courant traversant un moteur. Cet appel de courant peut faire chuter la tension de la batterie momentanément. Puisque le contrôleur tire son alimentation de la même batterie alimentant les moteurs de puissance, le contrôleur peut s’éteindre lorsque la tension de la batterie devient trop faible, puis se rallume dès que la tension redevient suffisante. Le système d'alimentation du contrôleur est supposé pouvoir le "prendre", mais ça vaut le coût quand même d'explorer le tout. Nous n'avons pas observé ce comportement lors de nos tests, mais c'est justement à ça que sert le Beta testing! Tester le contrôleur dans des cas d'utilisation et avec du matériel varié!

Donc, pour nous aider à identifier ton problème, merci de tester les choses suivantes dans les mêmes conditions que dans le vidéo:

1) S'assurer que la batterie 12V est chargée à pleine capacité. La résistance interne d'une batterie fait que plus le courant tiré d'une batterie augmente, plus la tension à ses bornes diminue. 

2) Enlever les roues de sur l'arbre des moteurs: une charge plus faible diminue le courant demandé par le moteur.

3) Utiliser 2 batteries; 1 dédiée à l'alimentation des moteurs et l'autre dédiée à l'alimentation du contrôleur.

4) Si possible, mesurer avec un oscilloscope le comportement de la tension et du courant de la batterie pendant un changement brusque de direction causant un redémarrage.

Merci de nous revenir avec le comportement lors des tests 1 à 4 afin qu'on puisse vous aider à trouver une solution :)

David Martin, Coordonnateur Robotique CRC

École Secondaire Monseigneur-Richard

Published on 2020-01-09

Merci! Nos tests étaient fait avec une batterie, et nous avons vu que le voltmetre passait de 12,5 V à 11V en vitesse maximale. En changeant rapidement la vitesse, le voltage baissait à 6V! Notre équipe électrique ont travaillé à nous faire un circuit dans lequel les moteurs sont alimenter par les deux batteries en même temps, nous allons tester cela ce soir. Nous allons aussi essayer de modifier notre code afin d'avoir plus de contrôle sur notre accélération afin que les changements de vitesse soit moins drastique.


St. George's School of Montreal

Published on 2020-01-31

We had the same experience with inrush current resetting the board on abrupt direction changes.
We tested a 2x battery solution today where the 9880 and our motors are each powered independently and it resolved the issue.

Just to be clear, we can use 2x 12v 3Ah batteries, right?
And they don't have to be the exact ones we received in our kit, so long as they're Lead-Acid or Nickel-Cadmium?