Etape 35 : Facultatif : débogage
Avant que vous commencez à déboguer, vérifiez les points suivants :
- Tout le câblage est aussi courte que possible, comme le montre ce Instructable. Fils d’une longueur obtiendrez bruit sur eux des moteurs et la communication sérielle échouera. TOUS LES FILS DOIVENT ÊTRE TORDUS ET TRÈS COURTS!!
- Les résistances illustrés dans schéma ont été ajoutés.
- Le MPU6050 Accel/gyroscope est installé et orienté comme indiqué dans l’Instructable.
- L’interrupteur à bascule est pour des ajustements mineurs de confort. Ne l’utilisez pas pour le tuning. Juste essayer d’incliner le jury en arrière tandis que le Conseil soit en équilibre sur un seau ou un tabouret.
- Assurez-vous d’attendre au moins 5 secondes après la mise sous tension pour la MPU6050 pour calibrer en interne.
- Assurez-vous que vos batteries sont fraîches. Chaque batterie doit mesurer au moins 12 v pas sous charge. Si ce n’est pas le cas, remplacez vos batteries.
Cette partie est facultative pour le débogage
Arduino Serial Monitor
Ouvrez le moniteur de la série de l’Arduino. Réglez-le à 115 200 bauds
Le code a cette ligne dedans :
Serial.Begin(115200) ; initialiser I2C et serial monitor à 115 200 bauds
Pour activer l’impression sur le moniteur de la série, cette valeur un 1 :
#define DEBUG_ENABLE_PRINTING 0 //normal
Si vous êtes vers le haut sur un seau, afin d’éviter de tenir l’interrupteur de deadman, définir ce 1 :
#define DEBUG_FORCE_DEADMAN_SWITCH 0 //normal
Pour il suffit de regarder le moniteur de la série et n’ont pas les moteurs en cours d’exécution, cette valeur a 1 :
#define DEBUG_DISABLE_MOTORS 0 //normal
recompiler.
L’écran du moniteur série devrait sortie quelque chose comme ceci :
Initialisation des périphériques I2C...
Tests de connexion de périphérique...
MPU6050 connexion successfulI
initialisation du DMP...
Activation de DMP...
Permettant la détection d’interruption (Arduino interruption externe 0)...
DMP prêt ! En attente de la première interruption...
REMARQUE :
Si vous tournez sur DEBUG_ENABLE_PRINTING et voir un message qui dit : "mpuIntStatus 1024 : débordement 19FIFO! », ne vous inquiétez pas il. Elle est causée par le fait que l’impression des messages est une tâche relativement lente pour le processeur de l’Arduino. Alors que cette impression se produit, la boucle de régulation qui tente d’extraire des données d’accell/gyro de la MPU6050 ne peux pas suivre. Finalement, le FIFO tenant ces données dans le MPU6050 a trop de données ou déborde. Le FIFO se rétabliront. Lorsque vous avez terminé avec debug, désactiver l’indicateur de DEBUG_ENABLE_PRINTING.
Oscilloscope :
Si vous voulez observer la « boucle » du code de l’Arduino, vous pouvez utiliser un oscilloscope pour ce faire. Il devrait être autour de 10Hz ou 10 fois par seconde.
- Accrochez une sonde portée sur la broche 3 de Arduino. Connectez le sol aussi bien.
- ONU-commenter ces lignes dans le code: / / digitalWrite (oscopePin, HIGH) ;
- recompiler.
Pour régler l’angle d’inclinaison de base dans le code :
Si les pouvoirs de la Commission vers le haut et veut s’asseoir à un angle étrange, vous pouvez utiliser l’interrupteur à bascule pour tordre ou, vous pouvez faire un code changer pour ruser en permanence :
Recherchez cette ligne dans le code et modifiez le nombre 80 à tout ce que vous voulez :
Numéro d’inclinaison capteur ci-dessous est déterminée expérimentalement. Plus grand est plus incliné vers l’avant. Elle doit changer si vous régler ANGLE_GAIN. x_accdeg = (float) ((SG_filter_result - (80 + balancetrim)) * (1.0)) ;