Étape 13 : Débogage le firmware avec tout ajouté
La meilleure partie en écrivant un firmware est le moment où tout fonctionne à la première tentative. J’ai tendance à écrire beaucoup de code avant en fait sortir et tester, si ça marche à la première mise sous tension, c’est encore mieux. Malheureusement et bien entendu, ce n’était pas le cas, j’ai dû faire pas mal de débogage pour obtenir le logiciel de fonctionner de la façon dont je l’imaginais.
Depuis le débogage peut et va prendre plus de temps que de taper le code lui-même - Préparez-vous au pire. Il y a une photo assez drôle et réaliste sur le web, qui montre les étapes de débogage.
Comment déboguer
Pour figurer dehors où votre compteur de programme est à un moment donné, il faut penser des moyens d’obtenir une sorte de rétroaction de la PIC. La meilleure façon d’aller est d’utiliser certains voyants et allument leur à étant donné les points dans le code - de cette façon, que vous saurez à coup sûr, que le code écrit, il a été exécuté. Puisque j’ai eu un femelle 2 x 4 inutilisé en-tête embarqué, j’ai conçu une petite planche juste au débogage, une planche qui se connecte à ce connecteur. De cette façon, que j’ai été en mesure d’identifier si le PIC est prendre les bonnes décisions dans l’algorithme. C’était relativement facile à mettre en place. Après un certain temps les LEDs simplement ne suffisait pas, et j’ai commencé à penser à une sorte de débogage port, peut-être un écran SPI qui affiche les distances enregistrées. Il n’a pas fallu longtemps pour réaliser que - par hasard - J’ai mis en évidence deux broches PIC très importants pour ce connecteur 2 x 4: les broches TX et RX du port série ! J’ai sorti un convertisseur série-USB, j’ai commandé de e-bay il y a quelque temps (lien) et reliés à ces bornes.
Le matériel était prêt, j’avais juste besoin d’un firmware pour initialiser le port avec les paramètres requis et de mettre en place la vitesse de communication. Cela peut être fait en lisant la section fiche technique, je l’ai fait par fois de main de nombreuses, alors cette fois que j’ai décidé d’utiliser une calculatrice pour un développement plus rapide. Découvrez les photos, l’un d’eux a ce peu soignée bauds (bits/seconde) - générateur de bonnes choses ! J’ai utilisé 48 vitesse d’oscillateur [MHz] et fait les calculs pour 115200 [bits/seconde].
Après avoir terminé la configuration initiale, j’ai écrit quelques fonctions communes je savais que j’aurez besoin et mettre à l’essai. Le port série a fonctionné au premier essai, mon meilleur port de débogage a été prêt à l’emploi ! J’avais juste besoin d’un programme de terminal pour pouvoir visualiser les données envoyée du PIC. Facile : J’ai téléchargé Hercules ici : lien.
Avantages d’avoir le port série
Après avoir obtenu le port série en cours d’exécution, ma vie est devenue dix fois plus facile. Chaque variable, chaque mesure, tout ce qui a été écrit à l’intérieur de la PIC est devenu accessible par l’intermédiaire de ce port de débogage. J’ai rapidement constaté que la variable stockée le maximum de mesure des 11 distances était « unsigned char », mais quelques lectures étaient plus grands que ce type peut s’adapter dedans, je suis passé en unsigned int avec qui.
J’ai aussi réalisé que la distance mesurée est assez précise, mais je ne prends en compte le fait que le robot a besoin de peu d’espace pour pouvoir tourner à gauche ou à droite. J’ai soustrait 8 [cm] de la dernière commande « courir vers l’avant » et a résolu ce problème.
Dès que le robot a commencé à aller les droite distances par rapport aux distances qu'il mesuré, j’ai enlevé la connexion série et replacer la platine des LED à l’intérieur.